Mapping
The following tables explain how PostgreSQL source datatypes are mapped to each target database. Wirekite extracts data from PostgreSQL, converts it to an internal type representation, then maps to the appropriate target type.Numeric Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
SMALLINT / INT2 | SMALLINT | SMALLINT | NUMBER(38) | INTEGER | number | INT64 | INT64 | SMALLINT | SMALLINT |
INTEGER / INT4 | INT | INT | NUMBER(38) | INTEGER | int | INT64 | INT64 | INT | INT |
BIGINT / INT8 | BIGINT | BIGINT | NUMBER(38) | BIGINT | bigint | INT64 | INT64 | BIGINT | BIGINT |
NUMERIC | NUMERIC | NUMERIC | NUMBER | NUMERIC | number | NUMERIC | NUMERIC | NUMERIC | DECIMAL |
REAL / FLOAT4 | FLOAT | REAL | BINARY_FLOAT | DOUBLE | float | FLOAT32 | FLOAT64 | FLOAT | FLOAT |
DOUBLE PRECISION / FLOAT8 | DOUBLE | FLOAT | BINARY_DOUBLE | DOUBLE | float | FLOAT64 | FLOAT64 | DOUBLE | DOUBLE |
MONEY | DECIMAL(21,2) | MONEY | NUMBER(21,2) | NUMERIC(21,2) | number(21,2) | NUMERIC | NUMERIC | DECIMAL(21,2) | DECIMAL(21,2) |
BOOLEAN | TINYINT(1) | BIT | CHAR(1) | BOOLEAN | boolean | BOOL | BOOL | TINYINT(1) | BOOLEAN |
SMALLSERIAL | SMALLINT | SMALLINT | NUMBER(38) | INTEGER | number | INT64 | INT64 | SMALLINT | SMALLINT |
SERIAL | INT | INT | NUMBER(38) | INTEGER | int | INT64 | INT64 | INT | INT |
BIGSERIAL | BIGINT | BIGINT | NUMBER(38) | BIGINT | bigint | INT64 | INT64 | BIGINT | BIGINT |
Date and Time Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
DATE | DATE | DATE | DATE | DATE | date | DATE | DATE | DATE | DATE |
TIME | TIME(6) | TIME | VARCHAR2(64) | TEXT | time | STRING | TIME | TIME(6) | STRING |
TIME WITH TIME ZONE | VARCHAR(32) | VARCHAR(64) | VARCHAR2(64) | TEXT | varchar(32) | STRING | STRING | VARCHAR(32) | STRING |
TIMESTAMP | DATETIME(6) | DATETIME2 | TIMESTAMP | TIMESTAMP | timestamp_ntz | TIMESTAMP | DATETIME | DATETIME(6) | TIMESTAMP_NTZ |
TIMESTAMP WITH TIME ZONE | VARCHAR(32) | VARCHAR(32) | TIMESTAMP WITH TIME ZONE | TIMESTAMPTZ | timestamp_tz | STRING | TIMESTAMP | VARCHAR(32) | TIMESTAMP |
INTERVAL | VARCHAR(64) | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
Character Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
CHARACTER / CHAR | CHAR | CHAR | CHAR | TEXT | varchar | STRING | STRING | CHAR | STRING |
CHARACTER VARYING / VARCHAR | VARCHAR | VARCHAR | VARCHAR2 | TEXT | varchar | STRING | STRING | VARCHAR | STRING |
TEXT | LONGTEXT | VARCHAR(MAX) | CLOB | TEXT | varchar | STRING | STRING | LONGTEXT | STRING |
UUID | VARCHAR(64) | UNIQUEIDENTIFIER | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
XML | TEXT | XML | CLOB | TEXT | varchar | STRING | STRING | TEXT | STRING |
JSON / JSONB | JSON | VARCHAR(MAX) | CLOB | TEXT | varchar | JSON | JSON | JSON | STRING |
Binary Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
BYTEA | BLOB | VARBINARY(MAX) | BLOB | BYTEA | binary | BYTES | BYTES | BLOB | BINARY |
Bit String Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
BIT / BIT VARYING | BIT | VARCHAR | VARCHAR2 | TEXT | varchar | STRING | STRING | BIT | STRING |
Network Address Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
INET | VARCHAR(64) | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
CIDR | VARCHAR(64) | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
MACADDR | VARCHAR(64) | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
Geometric Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
POINT | VARCHAR(256) | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
LINE | VARCHAR(256) | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
LSEG | VARCHAR(512) | VARCHAR(512) | VARCHAR2(512) | TEXT | varchar(512) | STRING | STRING | VARCHAR(512) | STRING |
BOX | VARCHAR(512) | VARCHAR(512) | VARCHAR2(512) | TEXT | varchar(512) | STRING | STRING | VARCHAR(512) | STRING |
PATH | VARCHAR(1024) | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar(1024) | STRING | STRING | VARCHAR(1024) | STRING |
POLYGON | VARCHAR(1024) | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar(1024) | STRING | STRING | VARCHAR(1024) | STRING |
CIRCLE | VARCHAR(256) | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
Text Search Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
TSVECTOR | VARCHAR(1024) | VARCHAR(1024) | VARCHAR2(1024) | TEXT | varchar(1024) | STRING | STRING | VARCHAR(1024) | STRING |
TSQUERY | VARCHAR(256) | VARCHAR(256) | VARCHAR2(256) | TEXT | varchar(256) | STRING | STRING | VARCHAR(256) | STRING |
Other Types
| PostgreSQL | MySQL | SQL Server | Oracle | Firebolt | Snowflake | Spanner | BigQuery | SingleStore | Databricks |
|---|---|---|---|---|---|---|---|---|---|
TXID_SNAPSHOT | VARCHAR(64) | VARCHAR(64) | VARCHAR2(128) | TEXT | varchar(64) | STRING | STRING | VARCHAR(64) | STRING |
ENUM | ENUM | VARCHAR(64) | VARCHAR2 | TEXT | varchar(64) | STRING | STRING | ENUM | STRING |
ARRAY | varies | varies | varies | ARRAY | ARRAY | ARRAY | ARRAY | varies | ARRAY |
