Reference
SQL Support
Supported Data Types

Supported Data Types

ReadySet takes an initial snapshot of tables from the upstream MySQL or Postgres database and then uses the database's replication stream to keep the snapshot 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 changes to the table via writes and schema changes.

Numeric types

TypeSupportedNotes
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.
FLOAT DOUBLE PRECISION REAL (opens in a new tab)✔️
SERIAL SMALLSERIAL BIGSERIAL (opens in a new tab)✔️

Monetary types

TypeSupportedNotes
MONEY (opens in a new tab)✖️

Character types

TypeSupportedNotes
CHAR VARCHAR TEXT (opens in a new tab)✔️
"CHAR" (opens in a new tab)✔️
CITEXT (opens in a new tab)✔️

Binary types

TypeSupportedNotes
BYTEA (opens in a new tab)✔️

Date and time types

TypeSupportedNotes
DATE TIME TIMETZ TIMESTAMP TIMESTAMPTZ (opens in a new tab)✔️
INTERVAL (opens in a new tab)✖️

Boolean typess

TypeSupportedNotes
BOOLEAN (opens in a new tab)✔️

Enumerated types

TypeSupportedNotes
ENUM (opens in a new tab)✔️

Geometric types

TypeSupportedNotes
POINT LINE LSEG BOX PATH POLYGON CIRCLE (opens in a new tab)✖️

Network address typess

TypeSupportedNotes
INET (opens in a new tab)✔️ReadySet represents this type internally as normalized string.
CIDR (opens in a new tab)✖️
MACADDR (opens in a new tab)✔️ReadySet represents this type internally as a normalized string. This can cause different behavior than in Postgres with respect to expressions or sorting.
MACADDR8 (opens in a new tab)✖️

Bit string types

TypeSupportedNotes
BITBIT VARYING (opens in a new tab)✔️ReadySet ignores the optional length field.

Text search types

TypeSupportedNotes
tsvector (opens in a new tab)✖️
tsquery (opens in a new tab)✖️

UUID types

TypeSupportedNotes
UUID (opens in a new tab)✔️ReadySet represents this type internally as a normalized string. This can cause different behavior than in Postgres with respect to expressions or sorting.

XML types

TypeSupportedNotes
XML (opens in a new tab)✖️

JSON types

TypeSupportedNotes
JSON JSONB (opens in a new tab)✔️ReadySet represents this type internally as a normalized string. This can cause different behavior than in Postgres with respect to expressions or sorting.

Array types

TypeSupportedNotes
ARRAY (opens in a new tab)✔️

Composite data types

TypeSupportedNotes
CREATE TYPE <name> AS (opens in a new tab)✖️

Range types

TypeSupportedNotes
INT4RANGE INT8RANGE NUMRANGE TSRANGE TSTZRANGE DATERANGE (opens in a new tab)✖️

Domain types

TypeSupportedNotes
CREATE TABLE <table> (col <domain>) (opens in a new tab)✖️

Object identifier types

TypeSupportedNotes
OID REGCLASS REGCOLLATION REGCONFIG REGDICTIONARY REGNAMESPACE REGOPER REGOPERATOR REGPROC REGPROCEDURE REGROLE REGTYPE (opens in a new tab)✖️