diff --git a/docs/src/main/sphinx/connector/mariadb.rst b/docs/src/main/sphinx/connector/mariadb.rst index 8565a2682624..96815b7ca4b7 100644 --- a/docs/src/main/sphinx/connector/mariadb.rst +++ b/docs/src/main/sphinx/connector/mariadb.rst @@ -71,41 +71,167 @@ that catalog name instead of ``mariadb`` in the above examples. Type mapping ------------ -Trino supports the following MariaDB data types: - -================================== =============================== ============================================================================================================= -MariaDB type Trino type Notes -================================== =============================== ============================================================================================================= -``boolean`` ``tinyint`` -``tinyint`` ``tinyint`` -``smallint`` ``smallint`` -``int`` ``integer`` -``bigint`` ``bigint`` -``tinyint unsigned`` ``smallint`` -``smallint unsigned`` ``integer`` -``mediumint unsigned`` ``integer`` -``integer unsigned`` ``bigint`` -``bigint unsigned`` ``decimal(20,0)`` -``float`` ``real`` -``double`` ``double`` -``decimal(p,s)`` ``decimal(p,s)`` -``char(n)`` ``char(n)`` -``tinytext`` ``varchar(255)`` -``text`` ``varchar(65535)`` -``mediumtext`` ``varchar(16777215)`` -``longtext`` ``varchar`` -``varchar(n)`` ``varchar(n)`` -``tinyblob`` ``varbinary`` -``blob`` ``varbinary`` -``mediumblob`` ``varbinary`` -``longblob`` ``varbinary`` -``varbinary(n)`` ``varbinary`` -``date`` ``date`` -``time(n)`` ``time(n)`` -``timestamp(n)`` ``timestamp(n)`` MariaDB stores the current timestamp by default. - Please enable `explicit_defaults_for_timestamp `_ - to avoid implicit default values. -================================== =============================== ============================================================================================================= +Because Trino and MariaDB each support types that the other does not, this +connector modifies some types when reading or writing data. Data types may not +map the same way in both directions between Trino and the data source. Refer to +the following sections for type mapping in each direction. + +MariaDB type to Trino type mapping +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The connector maps MariaDB types to the corresponding Trino types according +to the following table: + +.. list-table:: MariaDB type to Trino type mapping + :widths: 30, 30, 50 + :header-rows: 1 + + * - MariaDB type + - Trino type + - Notes + * - ``BOOLEAN`` + - ``TINYINT`` + - ``BOOL`` and ``BOOLEAN`` are aliases of ``TINYINT(1)`` + * - ``TINYINT`` + - ``TINYINT`` + - + * - ``SMALLINT`` + - ``SMALLINT`` + - + * - ``INT`` + - ``INTEGER`` + - + * - ``BIGINT`` + - ``BIGINT`` + - + * - ``FLOAT`` + - ``REAL`` + - + * - ``DOUBLE`` + - ``DOUBLE`` + - + * - ``DECIMAL(p,s)`` + - ``DECIMAL(p,s)`` + - + * - ``CHAR(n)`` + - ``CHAR(n)`` + - + * - ``TINYTEXT`` + - ``VARCHAR(255)`` + - + * - ``TEXT`` + - ``VARCHAR(65535)`` + - + * - ``MEDIUMTEXT`` + - ``VARCHAR(16777215)`` + - + * - ``LONGTEXT`` + - ``VARCHAR`` + - + * - ``VARCHAR(n)`` + - ``VARCHAR(n)`` + - + * - ``TINYBLOB`` + - ``VARBINARY`` + - + * - ``BLOB`` + - ``VARBINARY`` + - + * - ``MEDIUMBLOB`` + - ``VARBINARY`` + - + * - ``LONGBLOB`` + - ``VARBINARY`` + - + * - ``VARBINARY(n)`` + - ``VARBINARY`` + - + * - ``DATE`` + - ``DATE`` + - + * - ``TIME(n)`` + - ``TIME(n)`` + - + * - ``TIMESTAMP(n)`` + - ``TIMESTAMP(n)`` + - MariaDB stores the current timestamp by default. Enable + `explicit_defaults_for_timestamp + `_ + to avoid implicit default values and use ``NULL`` as the default value. + +No other types are supported. + +Trino type mapping to MariaDB type mapping +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The connector maps Trino types to the corresponding MariaDB types according +to the following table: + +.. list-table:: Trino type mapping to MariaDB type mapping + :widths: 30, 25, 50 + :header-rows: 1 + + * - Trino type + - MariaDB type + - Notes + * - ``BOOLEAN`` + - ``BOOLEAN`` + - + * - ``TINYINT`` + - ``TINYINT`` + - + * - ``SMALLINT`` + - ``SMALLINT`` + - + * - ``INTEGER`` + - ``INT`` + - + * - ``BIGINT`` + - ``BIGINT`` + - + * - ``REAL`` + - ``FLOAT`` + - + * - ``DOUBLE`` + - ``DOUBLE`` + - + * - ``DECIMAL(p,s)`` + - ``DECIMAL(p,s)`` + - + * - ``CHAR(n)`` + - ``CHAR(n)`` + - + * - ``VARCHAR(255)`` + - ``TINYTEXT`` + - Maps on ``VARCHAR`` of length 255 or less. + * - ``VARCHAR(65535)`` + - ``TEXT`` + - Maps on ``VARCHAR`` of length between 256 and 65535, inclusive. + * - ``VARCHAR(16777215)`` + - ``MEDIUMTEXT`` + - Maps on ``VARCHAR`` of length between 65536 and 16777215, inclusive. + * - ``VARCHAR`` + - ``LONGTEXT`` + - ``VARCHAR`` of length greater than 16777215 and unbounded ``VARCHAR`` map + to ``LONGTEXT``. + * - ``VARBINARY`` + - ``MEDIUMBLOB`` + - + * - ``DATE`` + - ``DATE`` + - + * - ``TIME(n)`` + - ``TIME(n)`` + - + * - ``TIMESTAMP(n)`` + - ``TIMESTAMP(n)`` + - MariaDB stores the current timestamp by default. Enable + `explicit_defaults_for_timestamp + `_ + to avoid implicit default values and use ``NULL`` as the default value. + +No other types are supported. + Complete list of `MariaDB data types `_.