Mapping
The following tables explain how MySQL/MariaDB source datatypes are mapped to each target database. Wirekite extracts data from MySQL, converts it to an internal type representation, then maps to the appropriate target type.Numeric Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
TINYINT | smallint | SMALLINT | NUMBER(38) | INTEGER | tinyint | INT64 | INT64 | TINYINT | TINYINT |
TINYINT UNSIGNED | smallint | SMALLINT | NUMBER(38) | INTEGER | number | INT64 | INT64 | TINYINT UNSIGNED | SMALLINT |
SMALLINT | smallint | SMALLINT | NUMBER(38) | INTEGER | number | INT64 | INT64 | SMALLINT | SMALLINT |
SMALLINT UNSIGNED | integer | INT | NUMBER(38) | INTEGER | number | INT64 | INT64 | SMALLINT UNSIGNED | INT |
MEDIUMINT | integer | INT | NUMBER(38) | INTEGER | number | INT64 | INT64 | MEDIUMINT | INT |
MEDIUMINT UNSIGNED | integer | INT | NUMBER(38) | INTEGER | number | INT64 | INT64 | MEDIUMINT UNSIGNED | INT |
INT | integer | INT | NUMBER(38) | INTEGER | int | INT64 | INT64 | INT | INT |
INT UNSIGNED | bigint | BIGINT | NUMBER(38) | BIGINT | number | INT64 | INT64 | INT UNSIGNED | DECIMAL |
BIGINT | bigint | BIGINT | NUMBER(38) | BIGINT | bigint | INT64 | INT64 | BIGINT | BIGINT |
BIGINT UNSIGNED | numeric(21) | NUMERIC(21) | NUMBER(38) | NUMERIC | number | NUMERIC | NUMERIC | BIGINT UNSIGNED | DECIMAL |
DECIMAL | decimal | DECIMAL | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | DECIMAL | DECIMAL |
DECIMAL UNSIGNED | numeric | NUMERIC(38) | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | DECIMAL UNSIGNED | DECIMAL |
FLOAT | real | REAL | BINARY_FLOAT | DOUBLE | float | FLOAT32 | FLOAT64 | FLOAT | FLOAT |
FLOAT UNSIGNED | double precision | REAL | BINARY_FLOAT | DOUBLE | float | FLOAT64 | FLOAT64 | FLOAT UNSIGNED | DOUBLE |
DOUBLE | double precision | FLOAT | BINARY_DOUBLE | DOUBLE | float | FLOAT64 | FLOAT64 | DOUBLE | DOUBLE |
DOUBLE UNSIGNED | N/A | N/A | BINARY_DOUBLE | N/A | N/A | NUMERIC | NUMERIC | DOUBLE UNSIGNED | DECIMAL |
BIT | bit varying | VARCHAR | VARCHAR2 | TEXT | varchar | STRING | STRING | BIT | STRING |
BOOL / BOOLEAN | boolean | BIT | CHAR(1) | BOOLEAN | boolean | BOOL | BOOL | TINYINT(1) | BOOLEAN |
YEAR | smallint | SMALLINT | NUMBER(38) | INTEGER | int | INT64 | INT64 | YEAR | INT |
Date and Time Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
DATE | date | DATE | DATE | DATE | date | DATE | DATE | DATE | DATE |
TIME | time without time zone | TIME | VARCHAR2(64) | TEXT | time | STRING | TIME | TIME(6) | STRING |
DATETIME | timestamp without time zone | DATETIME2 | TIMESTAMP | TIMESTAMP | timestamp_ntz | TIMESTAMP | DATETIME | DATETIME(6) | TIMESTAMP |
TIMESTAMP | varchar(64) | VARCHAR(32) | TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP | timestamp_ltz | STRING | STRING | DATETIME(6) | STRING |
Character Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
CHAR | character | CHAR | CHAR | TEXT | varchar | STRING | STRING | CHAR | STRING |
VARCHAR | character varying | VARCHAR | VARCHAR2 | TEXT | varchar | STRING | STRING | VARCHAR | STRING |
TINYTEXT | text | VARCHAR(MAX) | VARCHAR2(255) | TEXT | varchar | STRING | STRING | TINYTEXT | STRING |
TEXT | text | VARCHAR(MAX) | CLOB | TEXT | varchar | STRING | STRING | LONGTEXT | STRING |
MEDIUMTEXT | text | VARCHAR(MAX) | CLOB | TEXT | varchar | STRING | STRING | MEDIUMTEXT | STRING |
LONGTEXT | text | VARCHAR(MAX) | CLOB | TEXT | varchar | STRING | STRING | LONGTEXT | STRING |
JSON | jsonb | VARCHAR(MAX) | CLOB | TEXT | varchar | JSON | JSON | JSON | STRING |
Binary Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
BINARY | bytea | BINARY | RAW | BYTEA | binary | BYTES | BYTES | BINARY | BINARY |
VARBINARY | bytea | VARBINARY | RAW | BYTEA | binary | BYTES | BYTES | VARBINARY | BINARY |
TINYBLOB | bytea | VARBINARY | RAW | BYTEA | binary | BYTES | BYTES | TINYBLOB | BINARY |
BLOB | bytea | VARBINARY(MAX) | BLOB | BYTEA | binary | BYTES | BYTES | BLOB | BINARY |
MEDIUMBLOB | bytea | VARBINARY(MAX) | BLOB | BYTEA | binary | BYTES | BYTES | MEDIUMBLOB | BINARY |
LONGBLOB | bytea | VARBINARY(MAX) | BLOB | BYTEA | binary | BYTES | BYTES | LONGBLOB | BINARY |
Set Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
ENUM | varchar(64) | VARCHAR(64) | VARCHAR2 | TEXT | varchar(64) | STRING | STRING | ENUM | STRING |
SET | varchar(64) | VARCHAR(64) | VARCHAR2 | TEXT | varchar(64) | STRING | STRING | SET | STRING |
Spatial Types
| MySQL | PostgreSQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
POINT | point | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
LINESTRING | text | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
POLYGON | polygon | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar(1024) | STRING | STRING | VARCHAR(1024) | STRING |
GEOMETRY | text | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar | STRING | STRING | VARCHAR(1024) | STRING |
MULTIPOINT | text | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar | STRING | STRING | VARCHAR(1024) | STRING |
