PostgeSQL is a leading open-source SQL database server.
Most Popular In The Past Month
- Add key management system
Bruce Momjian: This adds a key management system that stores (currently) two data encryption keys of length 128, 192, or 256 bits.
- Allow decoding at prepare time in ReorderBuffer
Amit Kapila: This patch allows PREPARE-time decoding of two-phase transactions (if the output plugin supports this capability), in which case the transactions are replayed at PREPARE and then committed later when COMMIT PREPARED arrives.
Now that we decode the changes before the commit, the concurrent aborts may cause failures when the output plugin consults catalogs (both system and user-defined).
We detect such failures with a special sqlerrcode ERRCODE_TRANSACTION_ROLLBACK introduced by commit 7259736a6e and stop decoding the remaining changes.
- Add scripts for retrieving the cluster file encryption key
Bruce Momjian: Scripts are passphrase, direct, AWS, and two Yubikey ones.
- Avoid time-of-day-dependent failure in log rotation test
Tom Lane: Buildfarm members pogona and petalura have shown a failure when pg_ctl/t/004_logrotate.pl starts just before local midnight.
- Add pg_alterckey utility to change the cluster key
Bruce Momjian: This can change the key that encrypts the data encryption keys used for cluster file encryption.
- Use setenv() in preference to putenv().
Tom Lane: Since at least 2001 we've used putenv() and avoided setenv(), on the grounds that the latter was unportable and not in POSIX.
- Add support of multirange matching to the existing range GiST indexes
Alexander Korotkov: 6df7a9698b has introduced a set of operators between ranges and multiranges.
- Enhance nbtree index tuple deletion
Peter Geoghegan: Teach nbtree and heapam to cooperate in order to eagerly remove duplicate tuples representing dead MVCC versions.
- Add GUC to log long wait times on recovery conflicts
Fujii Masao: This commit adds GUC log_recovery_conflict_waits that controls whether a log message is produced when the startup process is waiting longer than deadlock_timeout for recovery conflicts.
- Extend the output plugin API to allow decoding of prepared xacts
Amit Kapila: This adds six methods to the output plugin API, adding support for streaming changes of two-phase transactions at prepare time.
Most of this is a simple extension of the existing methods, with the semantic difference that the transaction is not yet committed and maybe aborted later.
Until now two-phase transactions were translated into regular transactions on the subscriber, and the GID was not forwarded to it.