Skip to content

Data types

NameDescriptionLength constraints
INTEGERSigned 64-bit integer value. Usually referred to as BIGINT in other databases.-
BOOLEANA boolean value, either TRUE or FALSE-
VARCHARUTF8-encoded textMaximum number of bytes in the UTF-8 encoded representation of the string
BLOBSequence of bytesMaximum number of bytes in the sequence
TIMESTAMPDatetime value with microsecond precision-
FLOATIEEE-754 64-bit floating-point number-
UUIDUniversally Unique Identifier (UUID), 128-bit value-
JSONRFC 8259 textual JSON dataMaximum 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 typeInternal SQL typeDescription
STRINGVARCHARcontrol characters, quotation marks and backslashes must be escaped
NUMBERFLOATNaN, Infinity and -Infinity are not supported
BOOLEANBOOLEANonly lowercase true and false are valid
NULLNULL-

Released under the Apache 2.0 License.