Back to Yugabyte Db

PostgreSQL compatibility

docs/content/v2.20/explore/ysql-language-features/postgresql-compatibility.md

2025.2.3.0-b633.1 KB
Original Source

YugabyteDB is a PostgreSQL-compatible distributed database that supports the majority of PostgreSQL syntax. This means that existing applications built on PostgreSQL can often be migrated to YugabyteDB without changing application code.

Because YugabyteDB is PostgreSQL compatible, it works with the majority of PostgreSQL database tools such as various language drivers, ORM tools, schema migration tools, and many more third-party database tools.

Because YugabyteDB is a distributed database, supporting all PostgreSQL features easily in a distributed system is not always feasible. This page documents the known list of differences between PostgreSQL and YugabyteDB. You need to consider these differences while porting an existing application to YugabyteDB.

Unsupported PostgreSQL features

The following PostgreSQL features are not supported in YugabyteDB:

Unsupported PostgreSQL featureTrack feature request GitHub issue
LOCK TABLE to obtain a table-level lock5384
Table inheritance5956
Exclusion constraints3944
Deferrable constraints1709
GiST indexes1337
Events (Listen/Notify)1872
XML Functions1043
XA syntax11084
ALTER TYPE1893
CREATE CONVERSION10866
Primary/Foreign key constraints on foreign tables10698, 10699
GENERATED ALWAYS AS STORED columns10695
Multicolumn GIN indexes10652
CREATE ACCESS METHOD10693
DESC/HASH on GIN indexes (ASC supported)10653
CREATE SCHEMA with elements10865
Index on citext column9698
ABSTIME type15637
transaction ids (xid)
YugabyteDB uses Hybrid logical clocks instead of transaction ids.15638
DDL operations within transaction1404
Some ALTER TABLE variants1124