# array_extract — Haybarn WASM 1.5.5-rc3

Extracts a single character from a `string` using a (1-based) `index`.

- Reference: /products/haybarn/functions/releases/haybarn-1.5.5-rc3/array_extract/
- JSON: /products/haybarn/functions/api/v1/haybarn-1.5.5-rc3/functions/array_extract.json
- Snapshot ID: haybarn-1.5.5-rc3
- Engine: haybarn v1.5.6-dev149
- Source ID: 105edd31b5
- Binary SHA-256: 426638bc374fcc542fea93b251f885bfb7d221c68fcc0a5a81cc565d7e6ca180
- Captured: 2026-09-06T00:23:30.515Z
- Source: https://www.npmjs.com/package/@haybarn/haybarn-wasm/v/1.5.5-rc3
- Loaded extensions: core_functions, icu, json, parquet

## 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-b80eff69ffdb01eb

Kind: scalar. Parameter order: catalog-order.

```text
array_extract(col0: T[], col1: BIGINT) → T
```

Link: /products/haybarn/functions/releases/haybarn-1.5.5-rc3/array_extract/#overload-b80eff69ffdb01eb

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| col0 | T[] | not recorded |
| col1 | BIGINT | not recorded |

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

### overload-9d0343fc29b195ec

Kind: scalar. Parameter order: catalog-order.

```text
array_extract(string: VARCHAR, index: BIGINT) → VARCHAR
```

Link: /products/haybarn/functions/releases/haybarn-1.5.5-rc3/array_extract/#overload-9d0343fc29b195ec

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| string | VARCHAR | not recorded |
| index | BIGINT | not recorded |

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

### overload-16d893a99eb96791

Kind: scalar. Parameter order: catalog-order.

```text
array_extract(struct: STRUCT, entry: VARCHAR) → ANY
```

Link: /products/haybarn/functions/releases/haybarn-1.5.5-rc3/array_extract/#overload-16d893a99eb96791

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| struct | STRUCT | not recorded |
| entry | VARCHAR | not recorded |

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

Extracts the named `entry` from the `STRUCT`.

### overload-47f51c0bd039d2f2

Kind: scalar. Parameter order: catalog-order.

```text
array_extract(struct: STRUCT, index: BIGINT) → ANY
```

Link: /products/haybarn/functions/releases/haybarn-1.5.5-rc3/array_extract/#overload-47f51c0bd039d2f2

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| struct | STRUCT | not recorded |
| index | BIGINT | not recorded |

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

Extracts the entry from an unnamed `STRUCT` (tuple) using an index (1-based).


## 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-9d0343fc29b195ec

```sql
SELECT array_extract('DuckDB', 2);
```

Reported for: overload-16d893a99eb96791

```sql
SELECT array_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i');
```

Reported for: overload-47f51c0bd039d2f2

```sql
SELECT array_extract(row(42, 84), 1);
```

## Runnable examples

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

```sql
SELECT array_extract('DuckDB', 2);
```

```sql
SELECT array_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i');
```

```sql
SELECT array_extract(row(42, 84), 1);
```

## Additional DuckDB documentation

- [List Functions](https://duckdb.org/docs/current/sql/functions/list#array_extractlist-index)
- [Text Functions](https://duckdb.org/docs/current/sql/functions/text#array_extractstring-index)
- [Text Functions](https://duckdb.org/docs/current/sql/functions/text.html#array_extractstring-index)

## In other engines

### BigQuery: regexp_extract()



BigQuery:

```sql
SELECT REGEXP_EXTRACT(abc, 'pattern(group)', 2, 3) FROM table
```

Haybarn / DuckDB:

```sql
SELECT ARRAY_EXTRACT(REGEXP_EXTRACT_ALL(NULLIF(SUBSTRING(abc, 2), ''), 'pattern(group)', 1), 3) FROM "table"
```

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

### Snowflake: regexp_substr()



Snowflake:

```sql
REGEXP_SUBSTR(subject, pattern, 1, 2)
```

Haybarn / DuckDB:

```sql
ARRAY_EXTRACT(REGEXP_EXTRACT_ALL(subject, pattern), 2)
```

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

## Observed availability

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

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