types + sql support

DoltGres speaks PostgreSQL. Most of the type system and DDL you already know works — but it is still Beta, so some types and statements are partial or missing. This page is the honest map of what lands today.

Reaching for SERIAL? DoltGres does not support SERIAL / smallserial / bigserial yet — the first thing most Postgres users type. Use a sequence for auto-increment instead (see auto-increment without SERIAL below).

fully supported types

These behave as you'd expect from stock Postgres.

typenotes
int2 / int4 / int8signed integers (smallint, integer, bigint)
float4 / float8single- and double-precision floats
textvariable-length string, no length cap
varcharvariable-length string
booleantrue / false
uuid128-bit identifier
intervaltime span
array variantsall array types (e.g. int4[], text[])
oid / regclass / regproc / regtypeobject-identifier types

partially supported types

These work, but with one important caveat: declared precision is parsed but NOT enforced. You can write numeric(10,2) or timestamp(3) and it will be accepted, but DoltGres does not currently round or constrain values to that precision. Treat the precision as documentation, not a guarantee.

typenotes
numeric / decimalworks, but the precision/scale you declare is parsed and ignored
byteabinary data
charfixed-length string
jsonstored, queryable
jsonbstored, queryable
date / time / timestamptemporal values
timestamptz / timetztimezone-aware temporal values

not supported yet

These Postgres types are not implemented at Beta. The biggest surprise for most users is SERIAL — handled separately just below.

typenotes
SERIAL / smallserial / bigserialauto-increment shorthand — use a sequence instead (below)
range typesint4range, tsrange, etc.
geometricpoint, line, lseg, box, path, polygon, circle
networkinet, cidr, macaddr
tsvector / tsqueryfull-text search types
xmlXML document type
moneycurrency type

auto-increment without SERIAL

SERIALin Postgres is just shorthand for "create a sequence and default this column to its next value." DoltGres supports sequences and sequence functions, so you wire that up by hand:

CREATE SEQUENCE notes_id_seq;

CREATE TABLE notes (
  id    int8 NOT NULL DEFAULT nextval('notes_id_seq') PRIMARY KEY,
  body  text NOT NULL
);
One gotcha: ALTER SEQUENCE is not yet supported. Create the sequence with the start value and increment you want up front, because you can't retune it afterwards.

roles + grants

User and permission management is supported and — true to DoltGres — fully versioned alongside your data.

  • CREATE USER, CREATE ROLE
  • GRANT <roles> TO <users> [WITH ADMIN OPTION]
CREATE ROLE editor;
CREATE USER alice;
GRANT editor TO alice WITH ADMIN OPTION;

What's missingtoday: column-level privileges, granting on object types other than tables, and impersonation ("assume another user").

other confirmed support

Beyond the type system, these Postgres features are confirmed working at Beta:

  • ON CONFLICT (upserts)
  • INSERT … RETURNING
  • user-defined domain types
  • pg_catalog (with some gaps)
  • native extensions, including PostGIS and uuid-ossp (as of October 2025)
There's more not yet supported. CTEs, window functions, statement-level triggers and a handful of other features are still in progress. See beta + limitations for the full honest picture.