PostgreSQL to SingleStore Data Type Mapping
On this page
The following mappings define how PostgreSQL data types are represented in SingleStore.
For more information about SingleStore data types, refer to Data Types.
String Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
CHAR |
CHAR |
|
VARCHAR |
VARCHAR |
|
BPCHAR |
CHAR |
|
TEXT |
LONGTEXT |
|
UUID |
VARCHAR |
Integer Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
SMALLINT |
SMALLINT |
|
INTEGER |
INT |
|
BIGINT |
BIGINT |
|
SMALLSERIAL |
SMALLINT |
|
SERIAL |
INT |
|
BIGSERIAL |
BIGINT |
|
BOOL / BOOLEAN |
TINYINT |
Floating Point Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
REAL |
FLOAT |
|
FLOAT4 |
FLOAT |
|
FLOAT8 |
DOUBLE |
|
DOUBLE PRECISION |
DOUBLE |
Decimal and Numeric Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
DECIMAL |
DECIMAL |
|
NUMERIC |
DECIMAL (65,30) |
|
MONEY |
DECIMAL |
Binary String Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
BYTEA |
LONGBLOB |
Date and Time Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
DATE |
DATE |
|
TIME |
TIME(6) |
|
TIMESTAMP |
DATETIME(6) |
|
TIMESTAMPTZ |
DATETIME(6) |
Invalid PostgreSQL DATETIME and TIMESTAMP Values
Certain invalid DATETIME values are automatically converted to valid SingleStore values:
|
PostgreSQL Type |
SingleStore Type |
|---|---|
|
0000-00-00 00:00:00 |
1000-01-01 00:00:00 |
|
0001-00-00 00:00:00 |
1001-01-01 00:00:00 |
|
0001-01-01 01:01:01 |
1001-01-01 01:01:01 |
|
0025-01-01 00:00:00 |
1025-01-01 00:00:00 |
For TIMESTAMP, the following conversion takes place:
|
PostgreSQL Type |
SingleStore Type |
|---|---|
|
0000-00-00 00:00:00 |
1000-01-01 00:00:00 |
Flow converts these invalid values using the following rules, in order:
-
Zero dates
If the value is
0000-00-00 00:00:00, convert it to1000-01-01 00:00:00. -
Years below
1000If the year is between
0000and0999, add1000to the year.Examples:
-
Year
0001becomes1001 -
Year
0025becomes1025 -
Year
0999becomes1999
-
-
Invalid month or day (
00)If the month or day is
00, it is replaced with01.-
If month is
00, replace it with01. -
If day is
00, replace it with01.
For example:
-
0001-00-00→ (Rule 2) →1001-00-00→ (Rule 3) →1001-01-01
-
These rules ensure that common invalid values can be ingested without pipeline failures while preserving their relative ordering as much as possible.
JSON Types
|
PostgreSQL Type |
SingleStore Type (more info) |
|---|---|
|
JSON |
JSON |
|
JSONB |
JSON |
Additional Notes
-
TIME is mapped to TIME(6).
-
TIMESTAMP and TIMESTAMPTZ types are mapped to DATETIME(6).
Last modified: