squeal-postgresql-0.6.0.0: Squeal PostgreSQL Library

Copyright(c) Eitan Chatav 2019
Maintainereitan@morphism.tech
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Squeal.PostgreSQL.Expression.Array

Contents

Description

array functions

Synopsis

Array Functions

array Source #

Arguments

:: [Expression grp lat with db params from ty]

array elements

-> Expression grp lat with db params from (null (PGvararray ty)) 

Construct an array. >>> printSQL $ array [null_, false, true] ARRAY[NULL, FALSE, TRUE]

array0 :: TypeExpression db ty -> Expression grp lat with db params from (null (PGvararray ty)) Source #

Safely construct an empty array. >>> printSQL $ array0 text (ARRAY[] :: text[])

array1 Source #

Arguments

:: (n ~ Length tys, All ((~) ty) tys) 
=> NP (Expression grp lat with db params from) tys

array elements

-> Expression grp lat with db params from (null (PGfixarray '[n] ty)) 

Construct a fixed length array.

>>> printSQL $ array1 (null_ :* false *: true)
ARRAY[NULL, FALSE, TRUE]
>>> :type array1 (null_ :* false *: true)
array1 (null_ :* false *: true)
  :: Expression
       grp
       lat
       with
       db
       params
       from
       (null ('PGfixarray '[3] ('Null 'PGbool)))

array2 Source #

Arguments

:: (All ((~) tys) tyss, All SListI tyss, Length tyss ~ n1, All ((~) ty) tys, Length tys ~ n2) 
=> NP (NP (Expression grp lat with db params from)) tyss

matrix elements

-> Expression grp lat with db params from (null (PGfixarray '[n1, n2] ty)) 

Construct a fixed size matrix.

>>> printSQL $ array2 ((null_ :* false *: true) *: (false :* null_ *: true))
ARRAY[[NULL, FALSE, TRUE], [FALSE, NULL, TRUE]]
>>> :type array2 ((null_ :* false *: true) *: (false :* null_ *: true))
array2 ((null_ :* false *: true) *: (false :* null_ *: true))
  :: Expression
       grp
       lat
       with
       db
       params
       from
       (null ('PGfixarray '[2, 3] ('Null 'PGbool)))

cardinality :: null (PGvararray ty) --> null PGint8 Source #

>>> printSQL $ cardinality (array [null_, false, true])
cardinality(ARRAY[NULL, FALSE, TRUE])

index Source #

Arguments

:: Word64

index

-> null (PGvararray ty) --> NullifyType ty 
>>> printSQL $ array [null_, false, true] & index 2
(ARRAY[NULL, FALSE, TRUE])[2]

unnest :: null (PGvararray ty) -|-> ("unnest" ::: '["unnest" ::: ty]) Source #

Expand an array to a set of rows