What orioledb/orioledb shipped
Written by FoxPlug from public releases; not affiliated with Orioledb. An automatic summary of the public release, pull request and commit data of github.com/orioledb/orioledb. Orioledb did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- Beta18 released with DROP TABLESPACE replication, REPLICA IDENTITY FULL logical decoding with inline TOASTed attributes, and logical replication slot undo retention improvements. Release
- Fixed corruption in index-organized tables during repeated COPY operations where leaves held keys above their hikey and caused writers to spin in find_page(). Pull request #1226
- Fixed switchover divergence where promoting a standby as primary could leave the pair in an unrecoverable state when the primary had written unacknowledged WAL. Pull request #1216
- Fixed crash in evict_btree() and related assertions by keeping trees loaded while callers reach into shared state through cached descriptors. Pull request #1195
- Made orioledb.use_sparse_files a supported option to improve reusability of blocks freed by copy-on-write before checkpoint completion. Pull request #1205
- Added size validation for CIC undo stack items to prevent out-of-bounds reads that leaked backend memory into spool files. Pull request #1212
- Fixed recovery crashes by storing sys tree number instead of backend-local OSysCache pointers in undo records. Pull request #1213
- Enabled fastpath downlink search on 4-column keys and fixed compiler warnings at -O3 optimization level. Release
Why it matters
Beta18 brings replication and logical decoding improvements. Multiple fixes address data corruption during bulk operations, recovery divergence in replication scenarios, and memory safety issues in undo handling. These fixes increase stability for production use cases involving replication and checkpoint recovery.
Changelog entry
- Extension SQL version bumped to 1.10 with DROP TABLESPACE replication and REPLICA IDENTITY FULL logical decoding improvements Release
- Fixed B-tree corruption during repeated COPY into index-organized tables where leaves violated hikey invariants Pull request #1226
- Fixed switchover divergence when promoting standby and demoting primary with unacknowledged idle WAL Pull request #1216
- Fixed assertion failures by keeping trees loaded while shared state is accessed through cached descriptors Pull request #1195
- Made orioledb.use_sparse_files a supported configuration option Pull request #1205
- Added payload length validation to CIC undo stack items to prevent memory leaks Pull request #1212
- Fixed recovery crashes by storing stable
sys_tree_numinstead of backend-local pointers in syscache undo records Pull request #1213 - Enabled fastpath downlink search on 4-column keys and fixed -O3 compiler warnings Release
OrioleDB beta18 ships with DROP TABLESPACE replication and improved logical decoding. This week also fixed COPY corruption in index-organized tables, replication switchover divergence, and several recovery safety issues.
OrioleDB beta18 is out with DROP TABLESPACE replication support and enhanced logical decoding that carries TOASTed attributes inline. This week the team fixed critical issues: COPY corruption in index-organized tables that could leave B-trees inconsistent, replication switchover divergence that blocked recovery, memory safety problems in undo chain handling, and descriptor lifecycle issues causing crash assertions. These fixes target production reliability for replication and bulk load workloads.
Week of September 14, 2026
What shipped
- Fixed a bug where multi-insert batches would lose undo locations for all but the last row when a checkpoint landed between primary and secondary index writes. Pull request #1194
- Fixed tree enumeration wrapping around at the largest relnode value, which could cause the system to skip or mishandle trees at the boundary. Pull request #1192
- Stopped page writes from using meta pages that the tree no longer owns, which was causing spinlock panics in the background writer. Pull request #1172
- Fixed recovery crashes when the first WAL record for a table with a collated key was a DELETE or UPDATE by resolving collations before page access. Pull request #1181
- Made parallel sequential scans interruptible when page-slot waits occur, preventing queries from hanging and making the cluster unresponsive to shutdown. Pull request #1165
- Added a check to refuse transaction IDs during recovery that cannot be extended in the transaction ID map, preventing denial-of-service from wrapped OXids. Pull request #1166
- Added the postUndoRecorded hook to ON CONFLICT inserts to record pending secondary-index fix-ups, preventing checkpoint inconsistencies. Pull request #1158
- Fixed logical decoding of REPLICA IDENTITY FULL tables by logging the old tuple flattened instead of reporting unchanged-toast-datum for every TOASTed attribute. Pull request #1162
- Added validation for seven decoded quantities from disk, shared memory, and WAL records before use as sizes, indices, or loop bounds. Pull request #1173
- Added a Jepsen anomaly triage script for the Antithesis append workload to validate consistency of concurrent upsert and read transactions. Pull request #1116
Why it matters
This week addressed critical bugs in crash recovery, concurrent operations, and WAL replay that could cause data loss or cluster unavailability. Multiple fixes validate data from disk and WAL before use, improving robustness of recovery paths and multi-insert operations under checkpoint races.
Changelog entry
- Fixed multi-insert batches losing undo locations for all but the last row when checkpoints land between primary and secondary index writes Pull request #1194
- Fixed tree enumeration wrapping at largest relnode boundary Pull request #1192
- Fixed page writes using meta pages the tree no longer owns, preventing spinlock panics Pull request #1172
- Fixed recovery crashes when first WAL record for collated-key tables is DELETE or UPDATE Pull request #1181
- Made parallel sequential scans interruptible during page-slot waits Pull request #1165
- Added check to refuse transaction IDs recovery cannot extend in the map Pull request #1166
- Added postUndoRecorded hook to ON CONFLICT inserts for secondary-index fix-ups Pull request #1158
- Fixed logical decoding of REPLICA IDENTITY FULL tables to log old tuple flattened Pull request #1162
- Added validation for seven decoded quantities before use as sizes, indices, or loop bounds Pull request #1173
- Kept vacated counter balanced when bridge ctid is reused Pull request #1178
- Hash conflicting tuple before releasing its page in
modify_handle_conflictsPull request #1182 - Reject foreign metadata on relnode collision in O_TABLES fetch Pull request #1183
- Park only the process
merge_testis waiting for in concurrent merge Pull request #1163 - Raised
cpu_tuple_costin bitmap plan test to stabilize Valgrind CI flakes Pull request #1191
This week: fixed multi-insert undo tracking, parallel scan interruption, recovery collation handling, and seven validation gaps in WAL replay. Several addressed crash scenarios and data loss risks.
OrioleDB shipped fixes this week for critical issues in crash recovery and concurrent operations. Highlights include restoring undo tracking accuracy in multi-insert batches during checkpoints, making parallel scans properly interruptible, fixing recovery crashes with collated keys, and adding validation for seven quantities decoded from WAL before they're trusted as sizes or indices. Together these improve the robustness of recovery paths and prevent data loss scenarios.