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) | ✔️ | |
| DECIMAL NUMERIC(opens in a new tab) | ✔️ | |
| 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 | 
|---|---|---|
| PostGIS GEOMETRY(POINT)(opens in a new tab) | ✔️ | As of stable-250522. PostGIS GEOMETRYcolumns are replicated, but onlyPOINTvalues can be used, and onlyST_AsWKTis supported. | 
| POINT LINE LSEG BOX PATH POLYGON CIRCLE(opens in a new tab) | ✖️ | Native Postgres spatial types are not supported. | 
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) | ✔️ | JSON/JSONB data is replicated. Users can read the JSON/JSONB data as is. | 
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) | ✖️ |