-**SSL/TLS negotiation** is implemented. Pass `SSLRequired(sslctx)` to `Session.create()` to enable. Design: [discussion #76](https://github.com/ponylang/postgres/discussions/76). **SCRAM-SHA-256 authentication** is implemented. It is the default PostgreSQL auth method since version 10. Design: [discussion #83](https://github.com/ponylang/postgres/discussions/83). **Transaction status tracking** is implemented. The `pg_transaction_status` callback on `SessionStatusNotify` fires on every `ReadyForQuery` with `TransactionIdle`, `TransactionInBlock`, or `TransactionFailed`. Design: [discussion #102](https://github.com/ponylang/postgres/discussions/102). **LISTEN/NOTIFY** is implemented. Notifications are parsed from `NotificationResponse` messages and delivered via `pg_notification` callback on `SessionStatusNotify`. Design: [discussion #103](https://github.com/ponylang/postgres/discussions/103). **COPY FROM STDIN** is implemented. `Session.copy_in()` initiates bulk data loading with a pull-based `CopyInReceiver` interface. The session calls `pg_copy_ready` after each `send_copy_data`, giving the client O(1) bounded memory flow control. Design: [discussion #104](https://github.com/ponylang/postgres/discussions/104). Full feature roadmap: [discussion #72](https://github.com/ponylang/postgres/discussions/72). CI uses stock `postgres:14.5` for the non-SSL container (no md5user, SCRAM-SHA-256 default) and `ghcr.io/ponylang/postgres-ci-pg-ssl:latest` for the SSL container (SSL + md5user init script for backward-compat tests); built via `build-ci-image.yml` workflow dispatch or locally via `.ci-dockerfiles/pg-ssl/build-and-push.bash`. MD5 integration tests connect to the SSL container (without using SSL) because only that container has the md5user.
0 commit comments