PostgreSQL 17 Compatibility Matrix
Comprehensive compatibility reference for HeliosDB’s PostgreSQL 17 implementation.
Overall Compatibility
| Category | Coverage | Status |
|---|
| Wire Protocol v3.0 | 100% | Complete |
| SQL Standard | 95%+ | Complete |
| PostgreSQL 17 Features | 95%+ | Complete |
| Client Compatibility | 100% | Complete |
Wire Protocol
Message Types
| Message | Direction | Status | Notes |
|---|
| StartupMessage | C->S | Supported | Protocol v3.0 |
| SSLRequest | C->S | Supported | SSL negotiation |
| GSSENCRequest | C->S | Supported | GSSAPI encryption |
| CancelRequest | C->S | Supported | Query cancellation |
| Authentication* | S->C | Supported | All methods |
| ParameterStatus | S->C | Supported | Session parameters |
| BackendKeyData | S->C | Supported | Cancel key |
| ReadyForQuery | S->C | Supported | Transaction status |
| Query | C->S | Supported | Simple query |
| Parse | C->S | Supported | Extended query |
| Bind | C->S | Supported | Parameter binding |
| Describe | C->S | Supported | Statement/portal info |
| Execute | C->S | Supported | Portal execution |
| Sync | C->S | Supported | Sync point |
| Flush | C->S | Supported | Flush output |
| Close | C->S | Supported | Close statement/portal |
| CopyData | Both | Supported | COPY data transfer |
| CopyDone | Both | Supported | COPY completion |
| CopyFail | C->S | Supported | COPY failure |
Authentication Methods
| Method | Status | Notes |
|---|
| Trust | Supported | No authentication |
| Password (cleartext) | Supported | Basic auth |
| MD5 | Supported | MD5 hash |
| SCRAM-SHA-256 | Supported | Recommended |
| SCRAM-SHA-256-PLUS | Supported | Channel binding |
| Certificate | Supported | SSL cert auth |
| GSSAPI | Supported | Kerberos |
| SSPI | Partial | Windows auth |
| LDAP | Supported | Directory auth |
| RADIUS | Supported | Remote auth |
| PAM | Supported | Pluggable auth |
SQL Features
Data Definition Language (DDL)
| Feature | Status | Notes |
|---|
| CREATE TABLE | Supported | All column types |
| CREATE TABLE AS | Supported | Query-based |
| CREATE INDEX | Supported | B-tree, Hash, GIN, GiST |
| CREATE VIEW | Supported | Including materialized |
| CREATE FUNCTION | Supported | SQL, PL/pgSQL |
| CREATE PROCEDURE | Supported | Stored procedures |
| CREATE TRIGGER | Supported | Row/statement triggers |
| CREATE SEQUENCE | Supported | Serial/identity |
| CREATE TYPE | Supported | Composite, enum |
| CREATE SCHEMA | Supported | Schema management |
| ALTER TABLE | Supported | All alterations |
| DROP * | Supported | All object types |
| TRUNCATE | Supported | Fast delete |
| COMMENT | Supported | Object comments |
Data Manipulation Language (DML)
| Feature | Status | Notes |
|---|
| INSERT | Supported | All variants |
| INSERT ON CONFLICT | Supported | UPSERT |
| UPDATE | Supported | All variants |
| UPDATE FROM | Supported | Join update |
| DELETE | Supported | All variants |
| DELETE USING | Supported | Join delete |
| MERGE | Supported | PG17 RETURNING |
| COPY | Supported | PG17 ON_ERROR |
| SELECT | Supported | Full support |
| VALUES | Supported | Value lists |
Query Features
| Feature | Status | Notes |
|---|
| JOINs (all types) | Supported | INNER, LEFT, RIGHT, FULL, CROSS |
| Subqueries | Supported | Scalar, row, table |
| CTEs | Supported | Recursive CTEs |
| Window Functions | Supported | All window functions |
| Aggregate Functions | Supported | Standard and custom |
| GROUP BY | Supported | CUBE, ROLLUP, GROUPING SETS |
| HAVING | Supported | Filter groups |
| ORDER BY | Supported | NULLS FIRST/LAST |
| LIMIT/OFFSET | Supported | Pagination |
| FETCH FIRST | Supported | SQL standard |
| UNION/INTERSECT/EXCEPT | Supported | Set operations |
| DISTINCT | Supported | Including ON |
PostgreSQL 17 Specific
| Feature | Status | Notes |
|---|
| JSON_TABLE | Supported | Full SQL/JSON |
| MERGE RETURNING | Supported | $action pseudo-column |
| COPY ON_ERROR | Supported | stop/ignore modes |
| Incremental Backup | Supported | Block-level |
| Slot Failover | Supported | Logical replication HA |
| Vacuum 20x Memory | Supported | Optimized |
| WAL 2x Throughput | Supported | Enhanced |
| MAINTAIN Privilege | Supported | Maintenance operations |
Data Types
| Type | Status | Notes |
|---|
| integer/bigint/smallint | Supported | Standard integers |
| decimal/numeric | Supported | Arbitrary precision |
| real/double precision | Supported | Floating point |
| serial/bigserial | Supported | Auto-increment |
| boolean | Supported | true/false |
| char/varchar/text | Supported | Character types |
| bytea | Supported | Binary data |
| date/time/timestamp | Supported | With/without timezone |
| interval | Supported | Time intervals |
| uuid | Supported | UUIDs |
| json/jsonb | Supported | JSON types |
| array | Supported | Array types |
| hstore | Supported | Key-value |
| geometric | Supported | Point, line, etc. |
| network | Supported | inet, cidr, macaddr |
| range | Supported | Range types |
| enum | Supported | Enumerated types |
| composite | Supported | User-defined |
Functions
| Category | Coverage | Notes |
|---|
| Mathematical | 100% | All math functions |
| String | 100% | All string functions |
| Date/Time | 100% | All datetime functions |
| Aggregate | 100% | Standard aggregates |
| Window | 100% | All window functions |
| JSON | 100% | Including PG17 |
| Array | 100% | Array operations |
| System | 95% | Core system functions |
| Trigger | 100% | Trigger functions |
Indexes
| Type | Status | Notes |
|---|
| B-tree | Supported | Default index |
| Hash | Supported | Equality only |
| GiST | Supported | Generalized search |
| GIN | Supported | Inverted index |
| BRIN | Supported | Block range |
| SP-GiST | Supported | Space partitioned |
| Partial | Supported | WHERE clause |
| Expression | Supported | Function indexes |
| Covering | Supported | INCLUDE clause |
| Unique | Supported | Uniqueness constraint |
Transaction Features
| Feature | Status | Notes |
|---|
| BEGIN/COMMIT/ROLLBACK | Supported | Standard control |
| SAVEPOINT | Supported | Nested transactions |
| Transaction Isolation | Supported | All levels |
| Two-Phase Commit | Supported | Distributed |
| Advisory Locks | Supported | Application locks |
| Row-Level Locking | Supported | FOR UPDATE, etc. |
| MVCC | Supported | Full implementation |
Isolation Levels
| Level | Status |
|---|
| Read Uncommitted | Supported (as Read Committed) |
| Read Committed | Supported |
| Repeatable Read | Supported |
| Serializable | Supported |
Replication
| Feature | Status | Notes |
|---|
| Streaming Replication | Supported | Physical |
| Logical Replication | Supported | Publication/Subscription |
| Replication Slots | Supported | With failover (PG17) |
| WAL Archiving | Supported | Archive command |
| Point-in-Time Recovery | Supported | WAL replay |
| Synchronous Replication | Supported | Configurable |
System Catalogs
| Catalog | Status | Notes |
|---|
| pg_database | Supported | Database list |
| pg_namespace | Supported | Schemas |
| pg_class | Supported | Relations |
| pg_attribute | Supported | Columns |
| pg_type | Supported | Data types |
| pg_index | Supported | Indexes |
| pg_constraint | Supported | Constraints |
| pg_proc | Supported | Functions |
| pg_trigger | Supported | Triggers |
| pg_stat_activity | Supported | Sessions |
| pg_stat_user_tables | Supported | Table stats |
| pg_locks | Supported | Lock info |
| information_schema.* | Supported | Standard schema |
Client Drivers
| Driver | Tested | Notes |
|---|
| libpq (C) | Yes | Reference implementation |
| psycopg2 (Python) | Yes | Full compatibility |
| psycopg3 (Python) | Yes | Full compatibility |
| node-postgres (Node.js) | Yes | Full compatibility |
| pg (Go) | Yes | Full compatibility |
| JDBC (Java) | Yes | Full compatibility |
| npgsql (.NET) | Yes | Full compatibility |
| rust-postgres (Rust) | Yes | Full compatibility |
Known Limitations
Not Supported
| Feature | Reason |
|---|
| Procedural languages (except PL/pgSQL) | Not applicable |
| Foreign data wrappers (write) | Read-only supported |
| Large Objects (lo_*) | Use bytea instead |
| XML functions (limited) | Basic support only |
| PostGIS extensions | Planned |
Behavioral Differences
- Vacuum: Uses HeliosDB’s compaction instead of PostgreSQL vacuum
- TOAST: Handled by HeliosDB’s storage layer
- Tablespaces: Mapped to HeliosDB storage tiers
- Extensions: Core extensions only
Compatibility Testing
PostgreSQL Regression Suite
- Total Tests: 200+
- Passing: 190+ (95%+)
- Skipped: Extension-specific tests
Client Compatibility Tests
- psql: 100% compatible
- pgAdmin: 100% compatible
- ORMs: 95%+ compatible
Related: README.md | CONFIGURATION.md | EXAMPLES.md
Last Updated: December 2025