Skip to content

PgArray

[Source]

A 1-dimensional PostgreSQL array. Contains the element type OID and an ordered sequence of elements, where each element is either a FieldData value or None (SQL NULL).

Used for both decoding arrays from query results and encoding arrays as query parameters:

// As a query parameter
let arr = PgArray(23,
  recover val [as (FieldData | None): I32(1); I32(2); None; I32(4)] end)
session.execute(PreparedQuery("SELECT $1::int4[]",
  recover val [as FieldDataTypes: arr] end), receiver)

// From a result field
match field.value
| let a: PgArray =>
  for elem in a.elements.values() do
    match elem
    | let v: I32 => // use v
    | None => // NULL element
    end
  end
end
class val PgArray is
  FieldData val,
  FieldDataEquatable val,
  Equatable[PgArray val] ref

Implements


Constructors

create

[Source]

new val create(
  element_oid': U32 val,
  elements': Array[(FieldData val | None val)] val)
: PgArray val^

Parameters

Returns


Public fields

let element_oid: U32 val

[Source]


let elements: Array[(FieldData val | None val)] val

[Source]


Public Functions

size

[Source]

Number of elements in the array.

fun box size()
: USize val

Returns


apply

[Source]

Indexed element access.

fun box apply(
  i: USize val)
: (FieldData val | None val) ?

Parameters

Returns


eq

[Source]

fun box eq(
  that: PgArray val)
: Bool val

Parameters

Returns


field_data_eq

[Source]

fun box field_data_eq(
  that: FieldData box)
: Bool val

Parameters

Returns


string

[Source]

PostgreSQL array literal format: {1,2,NULL,4}. Elements containing commas, braces, quotes, backslashes, or whitespace are double-quoted with internal backslash escaping. Empty string elements are quoted ("") to distinguish from NULL. None elements render as unquoted NULL.

fun box string()
: String iso^

Returns


ne

[Source]

fun box ne(
  that: PgArray val)
: Bool val

Parameters

Returns