Supported Datatypes

PrestoDB and TileDB have slight differences in their supported datatypes. This document serves as a mapping between the (core) TileDB datatypes and the MariaDB datatypes for easy reference.

TileDB Datatype

PrestoDB SQL Datatype

TILEDB_INT8

BOOLEAN

TILEDB_INT16

TINYINT

TILEDB_INT32

INTEGER

TILEDB_INT64

BIGINT

TILEDB_FLOAT64

REAL

TILEDB_FLOAT64

DOUBLE

TILEDB_FLOAT64

DECIMAL (treated as DOUBLE)

TILEDB_CHAR (var)

STRING

TILEDB_CHAR (var)

VARCHAR

TILEDB_CHAR (var)

CHAR

TILEDB_CHAR (var)

VARBINARY

Presto and all connectors are written in Java, and Java does not have unsigned values. As a result, an unsigned 64-bit integer can overflow if it is larger than 2^63 - 1. Unsigned integers that are 8, 16 or 32 bits are treated as larger integers. For instance, an unsigned 32-bit value is read into a Java type oflong.

Special cases ofchar(1)orvarchar(1)are stored on disk as fixed-sized attributes of size 1. Any char/varchar greater than 1 is stored as a variable-length attribute in TileDB. TileDB will not enforce the length parameter, but Presto will for inserts.

Decimal types are currently treated as doubles. TileDB does not enforce the precision or scale of the decimal types.