PostgreSQL compatibility (removed)

Alert

This feature has been removed. Experimental PostgreSQL compatibility — the PostgreSQL wire protocol (pgwire), PostgreSQL SQL dialect (--!syntax_pg), and related tooling — is no longer available in YDB.

YDB previously provided an experimental PostgreSQL compatibility layer. It was never intended for production use and has been removed from the database server.

What was removed

The following capabilities are no longer supported:

Capability Description
PostgreSQL wire protocol (pgwire) Connecting with psql, pgAdmin, and PostgreSQL drivers (lib/pq, psycopg2, JDBC in PostgreSQL mode) on port 5432
PostgreSQL SQL dialect Queries with --!syntax_pg, ydb sql --syntax pg, and the enable_pg_syntax cluster setting
PostgreSQL-oriented tooling ydb tools pg-convert and workflows based on pg_dump import into the compatibility layer
PostgreSQL-style system views .sys/pg_tables, .sys/pg_class, and related pgwire catalog views

What to use instead

If you used Switch to
psql, pgAdmin, or PostgreSQL drivers YDB CLI, Embedded UI, YDB SDK, or the JDBC driver
PostgreSQL SQL syntax YQL — YDB's native SQL dialect
pg_dump + pg-convert import YDB tools dump/restore or data migration integrations
BI tools via pgwire (for example, FineBI) Native connectors: Superset, Grafana, or a driver supported by your tool

For a step-by-step overview of supported client options, see Getting started.

What is still available

Removing PostgreSQL compatibility does not affect these separate features:

  • Federated Query — run YQL queries against external PostgreSQL clusters
  • Pg:: UDFs — PostgreSQL-style functions and literals inside YQL
  • PostgreSQL column types (pgint4, pgtext, and others) — optional table column types in YQL, controlled by the enable_table_pg_types setting

Questions and feedback

If you need help migrating from PostgreSQL compatibility, discuss your case in YDB Discord or open an issue on GitHub.