All types

Reference catalog of FeatureQL types and how to write a literal for each. For the mental model and casting, start with Types . For validation rules and NULL/EMPTY, see Literals .

Data types

CategoryTypeExample literal
IntegerBIGINT
alias INT64
1 or BIGINT '1'
INT
aliases INT32, INTEGER
INT '1'
SMALLINT
alias INT16
SMALLINT '1'
TINYINT
alias INT8
TINYINT '1'
DecimalDECIMAL / DECIMAL(p,s)
default DECIMALDECIMAL(18,6)
1.0 or DECIMAL '1.23'
Floating pointFLOAT
alias FLOAT32
FLOAT '1.1'
DOUBLE
alias FLOAT64
1.1e0 or DOUBLE '1.1'
StringVARCHAR
alias STRING
'hello'
BooleanBOOLEAN
alias BOOL
TRUE / FALSE
TemporalTIMESTAMP / TIMESTAMP(p)
default precision 3
TIMESTAMP '2024-10-15 10:04:00'
TIMESTAMPTZ / TIMESTAMPTZ(p)
default precision 3
TIMESTAMPTZ '2024-10-15 10:04:00'
DATEDATE '2024-10-15'
INTERVALINTERVAL '1 DAY'
DocumentJSONJSON '{"a": 1}'
BinaryBITSTRINGBITSTRING '1010'
BINARYX'0102' or BINARY '0102'
GeometryGEOM_POINTGEOM_POINT 'POINT(0 0)'
GEOM_LINESTRINGGEOM_LINESTRING 'LINESTRING(0 0, 1 1)'
GEOM_POLYGONGEOM_POLYGON 'POLYGON((0 0, 1 0, 1 1, 0 0))'
GEOM_MULTIPOINTGEOM_MULTIPOINT 'MULTIPOINT((0 0), (1 1))'
GEOM_MULTILINESTRINGGEOM_MULTILINESTRING 'MULTILINESTRING((0 0, 1 1))'
GEOM_MULTIPOLYGONGEOM_MULTIPOLYGON 'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 0)))'
GEOM_MULTIANYGEOM_MULTIANY 'POINT(0 0)'
GeographyGEOG_POINTGEOG_POINT 'POINT(-122.4 37.8)'
GEOG_LINESTRINGGEOG_LINESTRING 'LINESTRING(0 0, 1 1)'
GEOG_POLYGONGEOG_POLYGON 'POLYGON((0 0, 1 0, 1 1, 0 0))'
GEOG_MULTIPOINTGEOG_MULTIPOINT 'MULTIPOINT((0 0), (1 1))'
GEOG_MULTILINESTRINGGEOG_MULTILINESTRING 'MULTILINESTRING((0 0, 1 1))'
GEOG_MULTIPOLYGONGEOG_MULTIPOLYGON 'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 0)))'
GEOG_MULTIANYGEOG_MULTIANY 'POINT(0 0)'
ComplexARRAY / ARRAY(T)
alias LIST
ARRAY[1, 2, 3]
ROW / ROW(…)
alias STRUCT
ROW(1 AS id, 'A' AS name)

Use the subtype keyword for geospatial literals (GEOM_POINT, …). Bare GEOM '…' / GEOG '…' are not valid syntax. Constructors such as ST_GEOMPOINT() are alternatives — see All functions .

ARRAY(ROW(…)) is a common pattern — see Array of Rows .

Names that look like types but are not usable as values

NameWhat happens
HUGEINTRejected (UE/HUGEINT-NOT-SUPPORTED). Use BIGINT.
INT128Rejected (UE/INT128-NOT-SUPPORTED). Use BIGINT.
MAPNot supported. Use ARRAY(ROW(…)) with an INDEX.
EMPTYMarker for optional function parameters — not a column/value type.
UNSPECIFIEDType of bare NULL before it is typed — not a cast or INPUT() target. Prefer NULL(concrete_type).

Backend availability

Not available on Trino: BITSTRING literals.

Not available on Serving: BITSTRING literals, BINARY / X'…' literals, and GEOM_* / GEOG_* WKT literals.

TYPEOF(X'0102') and TYPEOF(GEOM_POINT '…') still work on every backend — the type is resolved at compile time without emitting the payload.

Meta literal types

These appear in function parameters and metaprogramming, not as ordinary column values:

TypeExample literal
FEATUREFEATURE 'feature_name'
FIELDFIELD 'field_name'
TYPETYPE 'type_name'