Supported Data Types
Readyset takes an initial snapshot of tables from a primary database and uses the database's replication stream to keep the snapshot (and cached query results) up to date as the tables change. To successfully snapshot and replicate a table, Readyset must support the data types of the columns, the character set in which the data is encoded, and any modifications to the table via writes and schema changes.
The scope of data types, character sets, and table changes supported by Readyset are described below.
Numeric types
Type | Supported | Notes |
---|---|---|
INT SMALLINT BIGINT (opens in a new tab) | ✔️ | Readyset ignores the optional length field. |
DECIMAL NUMERIC (opens in a new tab) | ✔️ | Readyset does not support DECIMAL /NUMERIC values with a scale greater than 28, i.e., with more than 28 digits to the right of the decimal point. 'NaN', 'Infinity', and '-Infinity' are also not supported. |
FLOAT DOUBLE PRECISION REAL (opens in a new tab) | ✔️ | |
SERIAL SMALLSERIAL BIGSERIAL (opens in a new tab) | ✔️ |
Monetary types
Type | Supported | Notes |
---|---|---|
MONEY (opens in a new tab) | ✖️ |
Character types
Type | Supported | Notes |
---|---|---|
CHAR VARCHAR TEXT (opens in a new tab) | ✔️ | |
"CHAR" (opens in a new tab) | ✔️ | |
CITEXT (opens in a new tab) | ✔️ |
Binary types
Type | Supported | Notes |
---|---|---|
BYTEA (opens in a new tab) | ✔️ |
Date and time types
Type | Supported | Notes |
---|---|---|
DATE TIME TIMETZ TIMESTAMP TIMESTAMPTZ (opens in a new tab) | ✔️ | |
INTERVAL (opens in a new tab) | ✖️ |
Boolean typess
Type | Supported | Notes |
---|---|---|
BOOLEAN (opens in a new tab) | ✔️ |
Enumerated types
Type | Supported | Notes |
---|---|---|
ENUM (opens in a new tab) | ✔️ |
Geometric types
Type | Supported | Notes |
---|---|---|
POINT LINE LSEG BOX PATH POLYGON CIRCLE (opens in a new tab) | ✖️ |
Network address typess
Type | Supported | Notes |
---|---|---|
INET (opens in a new tab) | ✖️ | |
CIDR (opens in a new tab) | ✖️ | |
MACADDR (opens in a new tab) | ✖️ | |
MACADDR8 (opens in a new tab) | ✖️ |
Bit string types
Type | Supported | Notes |
---|---|---|
BITBIT VARYING (opens in a new tab) | ✔️ | Readyset ignores the optional length field. |
Text search types
Type | Supported | Notes |
---|---|---|
tsvector (opens in a new tab) | ✖️ | |
tsquery (opens in a new tab) | ✖️ |
UUID types
Type | Supported | Notes |
---|---|---|
UUID (opens in a new tab) | ✖️ |
XML types
Type | Supported | Notes |
---|---|---|
XML (opens in a new tab) | ✖️ |
JSON types
Type | Supported | Notes |
---|---|---|
JSON JSONB (opens in a new tab) | ✖️ |
Array types
Type | Supported | Notes |
---|---|---|
ARRAY (opens in a new tab) | ✔️ |
Composite data types
Type | Supported | Notes |
---|---|---|
CREATE TYPE <name> AS (opens in a new tab) | ✖️ |
Range types
Type | Supported | Notes |
---|---|---|
INT4RANGE INT8RANGE NUMRANGE TSRANGE TSTZRANGE DATERANGE (opens in a new tab) | ✖️ |
Domain types
Type | Supported | Notes |
---|---|---|
CREATE TABLE <table> (col <domain>) (opens in a new tab) | ✖️ |
Object identifier types
Type | Supported | Notes |
---|---|---|
OID REGCLASS REGCOLLATION REGCONFIG REGDICTIONARY REGNAMESPACE REGOPER REGOPERATOR REGPROC REGPROCEDURE REGROLE REGTYPE (opens in a new tab) | ✖️ |