# bit_xor — DuckDB 1.3.2

Returns the bitwise XOR of all bits in a given expression.

- Reference: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/
- JSON: /products/haybarn/functions/api/v1/duckdb-1.3.2/functions/bit_xor.json
- Snapshot ID: duckdb-1.3.2
- Engine: duckdb v1.3.2
- Source ID: 0b83e5d2f6
- Binary SHA-256: 9a2ae2a4d5dbd07a5b0cb30c502d65014825d34924c681eb3faa7647e7cd2b6f
- Captured: 2026-09-05T18:37:33.818Z
- Source: https://github.com/duckdb/duckdb/releases/tag/v1.3.2
- Loaded extensions: autocomplete, core_functions, icu, json, parquet, shell

## Interpretation

- Choose a snapshot matching the target engine and build. The default is captured from the published Haybarn WASM package used by the browser playground. Historical native snapshots are also available.
- Availability is an observation in the recorded build and extension profile, not a guarantee of support in every installation or in WASM.
- Types and descriptions are declarations from duckdb_functions(). Binding can specialize result types. Null means not supplied by the catalog; do not invent defaults, optionality, argument mode, or table output columns.
- Raw parameter arrays preserve catalog order for scalar/aggregate/macro functions. Raw table arguments are alphabetical. Use callingConvention for engine-confirmed positional order and named arguments; null modes are unrecorded. Named does not mean optional. Macro defaults and special named variadic behavior are not supplied by duckdb_functions().
- Catalog examples are source material and may require data or extensions. runnableExamples contains separately verified SQL for the pinned WASM package; sample-data adaptations and guide examples are labeled separately.
- Guide annotations and recipes are separate editorial content. The browser runner always uses Haybarn WASM 1.5.5-rc3, independently of the documentation snapshot.
- All URLs beginning with / are relative to the origin hosting this document. Exports require no JavaScript, cookies, API key, or browser engine.

## Overloads

### overload-5dc8c71564e32dc6

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: BIGINT) → BIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-5dc8c71564e32dc6

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | BIGINT | not recorded |

Declared return type: BIGINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-55e0f9a3b0211e64

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: BIT) → BIT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-55e0f9a3b0211e64

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | BIT | not recorded |

Declared return type: BIT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-239d7d16e74c29b4

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: HUGEINT) → HUGEINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-239d7d16e74c29b4

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | HUGEINT | not recorded |

Declared return type: HUGEINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-2daf9aa734e50111

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: INTEGER) → INTEGER
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-2daf9aa734e50111

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | INTEGER | not recorded |

Declared return type: INTEGER. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-cd1bdbd5d3a45184

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: SMALLINT) → SMALLINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-cd1bdbd5d3a45184

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | SMALLINT | not recorded |

Declared return type: SMALLINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-92521fd7a8a90e66

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: TINYINT) → TINYINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-92521fd7a8a90e66

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | TINYINT | not recorded |

Declared return type: TINYINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-c1c7751a01cca400

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: UBIGINT) → UBIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-c1c7751a01cca400

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | UBIGINT | not recorded |

Declared return type: UBIGINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-8029b22fab19a7ac

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: UHUGEINT) → UHUGEINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-8029b22fab19a7ac

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | UHUGEINT | not recorded |

Declared return type: UHUGEINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-2251afe1d439d4e2

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: UINTEGER) → UINTEGER
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-2251afe1d439d4e2

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | UINTEGER | not recorded |

Declared return type: UINTEGER. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-d07d2caa21c23c86

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: USMALLINT) → USMALLINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-d07d2caa21c23c86

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | USMALLINT | not recorded |

Declared return type: USMALLINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-6a7b82f42c72c70e

Kind: aggregate. Parameter order: catalog-order.

```text
bit_xor(arg: UTINYINT) → UTINYINT
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/bit_xor/#overload-6a7b82f42c72c70e

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| arg | UTINYINT | not recorded |

Declared return type: UTINYINT. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.


## Guide recipes

No guide recipes.

## Engine catalog examples

Source examples may require additional data or extensions. Expressions are wrapped in SELECT; execution verification is not recorded.

Reported for: overload-5dc8c71564e32dc6, overload-55e0f9a3b0211e64, overload-239d7d16e74c29b4, overload-2daf9aa734e50111, overload-cd1bdbd5d3a45184, overload-92521fd7a8a90e66, overload-c1c7751a01cca400, overload-8029b22fab19a7ac, overload-2251afe1d439d4e2, overload-d07d2caa21c23c86, overload-6a7b82f42c72c70e

```sql
SELECT bit_xor(A);
```

## Runnable examples

Executed successfully in Haybarn WASM 1.5.5-rc3. Sample data and guide examples are separate from the original catalog.

```sql
SELECT bit_xor(A)
FROM (VALUES
  (10),
  (20),
  (NULL)
) AS sample("A");
```

## Additional DuckDB documentation

- [Aggregate Functions](https://duckdb.org/docs/current/sql/functions/aggregates#bit_xorarg)
- [Bitstring Functions](https://duckdb.org/docs/current/sql/functions/bitstring#bit_xorarg)

## In other engines

### BigQuery: bit_xor()

Same function. The SQLGlot example uses the same call in both engines.

```sql
BIT_XOR(x)
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_bigquery.py#L3997).

### Snowflake: bitxor_agg()



Snowflake:

```sql
SELECT BITXOR_AGG(int_value) FROM t
```

Haybarn / DuckDB:

```sql
SELECT BIT_XOR(int_value) FROM t
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_duckdb.py#L2752).

## Observed availability

| Snapshot | Observed | Overloads | JSON |
| --- | --- | --- | --- |
| haybarn-1.5.5-rc3 | present | 11 | [reference](/products/haybarn/functions/api/v1/haybarn-1.5.5-rc3/functions/bit_xor.json) |
| duckdb-1.5.5 | present | 11 | [reference](/products/haybarn/functions/api/v1/duckdb-1.5.5/functions/bit_xor.json) |
| duckdb-1.4.4 | present | 11 | [reference](/products/haybarn/functions/api/v1/duckdb-1.4.4/functions/bit_xor.json) |
| duckdb-1.3.2 | present | 11 | [reference](/products/haybarn/functions/api/v1/duckdb-1.3.2/functions/bit_xor.json) |

Engine catalog documentation is derived from MIT-licensed Haybarn and DuckDB. [Notices](/third-party-notices.txt).
