Skip to content

align python ffi with db.h abi, fix struct overflow bugs, bump to 0.11.1#57

Merged
guycipher merged 1 commit into
masterfrom
tdb936
Jun 9, 2026
Merged

align python ffi with db.h abi, fix struct overflow bugs, bump to 0.11.1#57
guycipher merged 1 commit into
masterfrom
tdb936

Conversation

@guycipher

Copy link
Copy Markdown
Member

fix dbstats struct missing eight trailing write amplification fields which caused tidesdb get db stats to write past the python allocated buffer and corrupt the heap on every call. fix config struct missing finish compactions on close which made tidesdb open read past the buffer. add the seven trailing write amplification counters to the cf stats struct. all six structs now match the c library sizeof byte for byte.

add missing bindings, init, finalize, raise open file limit, compression available, cancel background work, objstore s3 create and objstore s3 create config. the s3 creators are bound lazily so import still works on builds without s3 support and raise a clear error instead of crashing.

add finish compactions on close config field across the dataclass, init, open and default config. add the new write amplification fields to stats and db stats with parsing. add tdb err busy error code and message. free txn get values and column family name lists through tidesdb free instead of libc free so a custom allocator stays correct.

fix pre existing test that asserted max concurrent flushes default was non zero when the library now reports zero meaning use the library default.

add sixteen tests covering the new surface, all one hundred thirty pass. extend the python reference docs with init and process limits, fast shutdown, the s3 connector, compression available, finish compactions on close, the write amplification fields and a full error code table.

fix dbstats struct missing eight trailing write amplification fields which
caused tidesdb get db stats to write past the python allocated buffer and
corrupt the heap on every call. fix config struct missing finish compactions
on close which made tidesdb open read past the buffer. add the seven trailing
write amplification counters to the cf stats struct. all six structs now match
the c library sizeof byte for byte.

add missing bindings, init, finalize, raise open file limit, compression
available, cancel background work, objstore s3 create and objstore s3 create
config. the s3 creators are bound lazily so import still works on builds
without s3 support and raise a clear error instead of crashing.

add finish compactions on close config field across the dataclass, init, open
and default config. add the new write amplification fields to stats and db
stats with parsing. add tdb err busy error code and message. free txn get
values and column family name lists through tidesdb free instead of libc free
so a custom allocator stays correct.

fix pre existing test that asserted max concurrent flushes default was non zero
when the library now reports zero meaning use the library default.

add sixteen tests covering the new surface, all one hundred thirty pass. extend
the python reference docs with init and process limits, fast shutdown, the s3
connector, compression available, finish compactions on close, the write
amplification fields and a full error code table.
@guycipher guycipher self-assigned this Jun 9, 2026
@guycipher
guycipher merged commit a80c682 into master Jun 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant