# Data types
Name | Description | Length constraints |
---|---|---|
INTEGER | Signed 64-bit integer value. Usually referred to as BIGINT in other databases. | - |
BOOLEAN | A boolean value, either TRUE or FALSE | - |
VARCHAR | UTF8-encoded text | Maximum number of bytes in the UTF-8 encoded representation of the string |
BLOB | Sequence of bytes | Maximum number of bytes in the sequence |
TIMESTAMP | Datetime value with microsecond precision | - |
FLOAT | IEEE-754 64-bit floating-point number | - |
UUID | Universally Unique Identifier (UUID), 128-bit value | - |
JSON | RFC 8259 textual JSON data | Maximum number of bytes in the textual representation of the data |
# Size constraints
Size constraint is specified with a [MAX_SIZE]
suffix on the type,
e.g. BLOB[16]
represents a sequence of up to 16 bytes.
# NULL values
NULL
values in immudb are not unique - two NULL
values are considered equal on comparisons.
# Timestamp values
Timestamp values are internally stored as a 64-bit signed integer being a number of microseconds since the epoch time. Those values are not associated with any timezone, whenever a conversion is needed, it is considered to be in UTC.
# JSON primitive types and internal SQL types
Except for lists
and objects
, each JSON type is backed by a specific immudb internal SQL type. The mapping between JSON primitive types and SQL internal types is reported in the following table:
JSON primitive type | Internal SQL type | Description |
---|---|---|
STRING | VARCHAR | control characters, quotation marks and backslashes must be escaped |
NUMBER | FLOAT | NaN , Infinity and -Infinity are not supported |
BOOLEAN | BOOLEAN | only lowercase true and false are valid |
NULL | NULL | - |