34.6. Data Type Correspondence in Postgres Pro, DuckDB, and Parquet #
Table 34.1.
Postgres Pro | DuckDB | Parquet Physical | Parquet Logical | Parquet Converted |
---|
bigint
| BIGINT
| INT64
| – | INT_64
|
bigserial
| BIGINT
| INT64
| – | INT_64
|
boolean
| BOOLEAN
| BOOLEAN
| – | – |
bytea
| BLOB
| BYTE_ARRAY
| – | – |
character
| VARCHAR
| BYTE_ARRAY
| – | UTF8
|
character varying
| VARCHAR
| BYTE_ARRAY
| – | UTF8
|
date
| DATE
| INT32
| – | DATE
|
double precision
| DOUBLE
| DOUBLE
| – | – |
integer
| INTEGER
| INT32
| – | INT_32
|
interval
| INTERVAL
| FIXED_LEN_BYTE_ARRAY(12)
| – | INTERVAL
|
json
| JSON
| BYTE_ARRAY
| JsonType
| JSON
|
jsonb
| JSON
| BYTE_ARRAY
| JsonType
| JSON
|
money
| VARCHAR
| BYTE_ARRAY
| – | UTF8
|
numeric
| DOUBLE
| DOUBLE
| – | – |
numeric (1—9)
| DECIMAL (1—9)
| INT32
| Decimal (1—9)
| DECIMAL
|
numeric (10—18)
| DECIMAL (10—18)
| INT64
| Decimal (10—18)
| DECIMAL
|
numeric (19—38)
| DECIMAL (19—38)
| FIXED_LEN_BYTE_ARRAY(16)
| Decimal (19—38)
| DECIMAL
|
real
| FLOAT
| FLOAT
| – | – |
smallint
| SMALLINT
| INT32
| – | INT_16
|
smallserial
| SMALLINT
| INT32
| – | INT_16
|
serial
| INTEGER
| INT32
| – | INT_32
|
text
| VARCHAR
| BYTE_ARRAY
| – | UTF8
|
time
| TIME
| INT64
| TimeType(MICROS)
| TIME_MICROS
|
timetz
| TIMETZ
| INT64
| TimeType(MICROS)
| TIME_MICROS
|
timestamp
| TIMESTAMP
| INT64
| TimestampType(MICROS)
| TIMESTAMP_MICROS
|
timestamptz
| TIMESTAMPTZ
| INT64
| TimestampType(MICROS)
| TIMESTAMP_MICROS
|
uuid
| UUID
| FIXED_LEN_BYTE_ARRAY(16)
| UUIDType()
| – |
For more information about data type limitations, see the official DuckDB documentation.