Skip to main content

Type conversions

Here's a table to visualize the type conversions in the Rell backend to its corresponding GTV types when inserting into and querying them.

Rell typeOperation inputQuery inputQuery output
entityGtvIntegerGtvIntegerGtvInteger
enumGtvIntegerGtvInteger (can be GtvString)GtvInteger
structGtvArrayGtvArray (can be GtvDict)GtvDict
integerGtvIntegerGtvIntegerGtvInteger
big_integerGtvBigIntegerGtvBigIntegerGtvBigInteger
decimalGtvStringGtvStringGtvString
booleanGtvIntegerGtvIntegerGtvInteger
rowidGtvIntegerGtvIntegerGtvInteger
jsonGtvStringGtvStringGtvString
textGtvStringGtvStringGtvString
byte_arrayGtvByteArrayGtvByteArrayGtvByteArray
nullableGtvNull or typeGtvNull or typeGtvNull or type
collectionGtvArrayGtvArrayGtvArray
text mapGtvDictGtvDictGtvDict
non-text map (e.g., [[k1, v1], [k2, v2], ...])GtvArrayGtvArrayGtvArray
named tuple (e.g., (x = 1, y = 2, z = 3))GtvDictGtvDictGtvDict
unnamed tuple (e.g., (1, 2, 3))GtvArrayGtvArrayGtvArray

Strict Type Conversion

Since Rell Version 0.13.9 the default behaviour of gtv type conversion have changed, from non-strict to strict. The following table highlights how this affects how operation arguments gets parsed.

Operation Input Rell TypeTypes Accepted in StrictTypes Accepted in Non-Strict
byte_arrayGtvByteArrayGtvByteArray
GtvString
integerGtvIntegerGtvInteger
GtvBigInteger
big_integerGtvBigIntegerGtvBigInteger
GtvInteger
decimalGtvStringGtvString
GtvInteger
GtvBigInteger
rowidGtvIntegerGtvInteger
GtvBigInteger