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 theenable_table_pg_typessetting
Questions and feedback
If you need help migrating from PostgreSQL compatibility, discuss your case in YDB Discord or open an issue on GitHub.