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 type | Operation input | Query input | Query output |
---|---|---|---|
entity | GtvInteger | GtvInteger | GtvInteger |
enum | GtvInteger | GtvInteger (can be GtvString) | GtvInteger |
struct | GtvArray | GtvArray (can be GtvDict) | GtvDict |
integer | GtvInteger | GtvInteger | GtvInteger |
big_integer | GtvBigInteger | GtvBigInteger | GtvBigInteger |
decimal | GtvString | GtvString | GtvString |
boolean | GtvInteger | GtvInteger | GtvInteger |
rowid | GtvInteger | GtvInteger | GtvInteger |
json | GtvString | GtvString | GtvString |
text | GtvString | GtvString | GtvString |
byte_array | GtvByteArray | GtvByteArray | GtvByteArray |
nullable | GtvNull or type | GtvNull or type | GtvNull or type |
collection | GtvArray | GtvArray | GtvArray |
text map | GtvDict | GtvDict | GtvDict |
non-text map (e.g., [[k1, v1], [k2, v2], ...] ) | GtvArray | GtvArray | GtvArray |
named tuple (e.g., (x = 1, y = 2, z = 3) ) | GtvDict | GtvDict | GtvDict |
unnamed tuple (e.g., (1, 2, 3) ) | GtvArray | GtvArray | GtvArray |
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 Type | Types Accepted in Strict | Types Accepted in Non-Strict |
---|---|---|
byte_array | GtvByteArray | GtvByteArray |
GtvString | ||
integer | GtvInteger | GtvInteger |
GtvBigInteger | ||
big_integer | GtvBigInteger | GtvBigInteger |
GtvInteger | ||
decimal | GtvString | GtvString |
GtvInteger | ||
GtvBigInteger | ||
rowid | GtvInteger | GtvInteger |
GtvBigInteger |