Skip to main content

Struct Functions

NameDescription
struct.entryDot notation that serves as an alias for struct_extract from named STRUCTs.
struct[entry]Bracket notation that serves as an alias for struct_extract from named STRUCTs.
struct[idx]Bracket notation that serves as an alias for struct_extract from unnamed STRUCTs (tuples), using an index (1-based).
row(any, ...)Create an unnamed STRUCT (tuple) containing the argument values.
struct_concat(structs...)Merge the multiple structs into a single STRUCT.
struct_contains(struct, entry)Check if the STRUCT contains the specified entry.
struct_extract(struct, 'entry')Extract the named entry from the STRUCT.
struct_extract(struct, idx)Extract the entry from an unnamed STRUCT (tuple) using an index (1-based).
struct_extract_at(struct, idx)Extract the entry from a STRUCT (tuple) using an index (1-based).
struct_insert(struct, name := any, ...)Add field(s) to an existing STRUCT.
struct_pack(name := any, ...)Create a STRUCT containing the argument values. The entry name will be the bound variable name.
struct_position(struct, entry)Return the index of the entry within the STRUCT (1-based), or NULL if not found.
struct_update(struct, name := any, ...)Add or update field(s) of an existing STRUCT.

struct.entry

| Description | Dot notation that serves as an alias for struct_extract from named STRUCTs. | | Example | ({'i': 3, 's': 'string'}).i | | Result | 3 |

struct[entry]

| Description | Bracket notation that serves as an alias for struct_extract from named STRUCTs. | | Example | ({'i': 3, 's': 'string'})['i'] | | Result | 3 |

struct[idx]

| Description | Bracket notation that serves as an alias for struct_extract from unnamed STRUCTs (tuples), using an index (1-based). | | Example | (row(42, 84))[1] | | Result | 42 |

row(any, ...)

| Description | Create an unnamed STRUCT (tuple) containing the argument values. | | Example | row(i, i % 4, i / 4) | | Result | (10, 2, 2.5) |

struct_concat(structs...)

| Description | Merge the multiple structs into a single STRUCT. | | Example | struct_concat(struct_pack(i := 4), struct_pack(s := 'string')) | | Result | {'i': 4, 's': string} |

struct_contains(struct, entry)

| Description | Check if the STRUCT contains the specified entry. | | Example | struct_contains(row(1, 2, 3), 2) | | Result | true | | Alias | struct_has |

struct_extract(struct, 'entry')

| Description | Extract the named entry from the STRUCT. | | Example | struct_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i') | | Result | 3 |

struct_extract(struct, idx)

| Description | Extract the entry from an unnamed STRUCT (tuple) using an index (1-based). | | Example | struct_extract(row(42, 84), 1) | | Result | 42 |

struct_extract_at(struct, idx)

| Description | Extract the entry from a STRUCT (tuple) using an index (1-based). | | Example | struct_extract_at({'v1': 10, 'v2': 20, 'v3': 3}, 20) | | Result | 20 |

struct_insert(struct, name := any, ...)

| Description | Add field(s) to an existing STRUCT. | | Example | struct_insert({'a': 1}, b := 2) | | Result | {'a': 1, 'b': 2} |

struct_pack(name := any, ...)

| Description | Create a STRUCT containing the argument values. The entry name will be the bound variable name. | | Example | struct_pack(i := 4, s := 'string') | | Result | {'i': 4, 's': string} |

struct_position(struct, entry)

| Description | Return the index of the entry within the STRUCT (1-based), or NULL if not found. | | Example | struct_position(row(1, 2, 3), 2) | | Result | 2 | | Alias | struct_indexof |

struct_update(struct, name := any, ...)

| Description | Add or update field(s) of an existing STRUCT. | | Example | struct_update({'a': 1, 'b': 2}, b := 3, c := 4) | | Result | {'a': 1, 'b': 3, 'c': 4} |