Blog
Updates, design notes, and deep dives from the SecantusDB project.
-
secantus-pg 0.1.0-beta.14: a faster build, and a benchmark that was unfair to PostgreSQL
Summary: secantus-pg 0.1.0-beta.14 answers the same as 0.1.0-beta.13 and is built differently: with link-time optimisation, and for the released binaries a profile. Eight clients selecting by primary key get 34,288 statements a second from 0.1.0-beta.13 and 41,038 from this …
-
secantus-mdb 0.5.3-beta.188 makes $merge store what mongod stores
Summary: secantus-mdb 0.5.3-beta.188 fixes $merge, which merged nested documents field by field and stored a different document from mongod, and stops $out and $merge running inside $facet, $lookup and $unionWith.
Upgrade if you run
secantusd-rsand your pipelines end in$merge. Its default mode stored a different … -
secantus-mdb 0.5.3-beta.187 refuses a duplicate document _id and keeps a document a $merge could not replace
Summary: secantus-mdb 0.5.3-beta.187 fixes two bugs that left the wrong documents in a collection: a duplicate _id written as a different number type, and a $merge replacement that deleted the document it could not replace.
Upgrade if you run
secantusd-rs. This release fixes two bugs that left … -
secantus-pg 0.1.0-beta.13: every built-in function, checked against PostgreSQL
Summary: secantus-pg 0.1.0-beta.13 fixes wrong answers that no test had asked for. A new probe calls every built-in function in PostgreSQL 15's catalog on PostgreSQL and on the Rust PostgreSQL server. Of the 1,935 functions it can call, 619 answered the same before this release and …
-
secantus-mdb 0.5.3-beta.186 stops an update rewriting sub-documents shaped like extended JSON
Summary: secantus-mdb 0.5.3-beta.186 fixes an update that rewrote stored sub-documents shaped like extended JSON, stores new fields in mongod's order, and corrects which array element the positional operator writes.
Upgrade if you run
secantusd-rs. This release fixes an update that changed a field it did not name … -
secantus-mdb 0.5.3-beta.185 refuses the database names and DDL arguments mongod refuses
Summary: secantus-mdb 0.5.3-beta.185 refuses invalid database names, makes dropDatabase take only 1, stops a collMod dry run from applying its change, and gives dbStats, collStats and listDatabases mongod's fields.
If your tests create and drop databases or collections on
secantusd-rs, upgrade. Several things in this release could … -
secantus-mdb 0.5.3-beta.184 makes explain follow mongod's planner
Summary: secantus-mdb 0.5.3-beta.184 reports the plan mongod reports from explain, with index bounds and the stages of count, distinct and the write commands, and refuses an unknown query operator on an empty collection.
If your tests run a query against an empty collection on
secantusd-rs, upgrade. One … -
secantus-mdb 0.5.3-beta.183 holds change streams to mongod's rules
Summary: secantus-mdb 0.5.3-beta.183 checks what $changeStream is given, refuses a resume token it cannot find, names the transaction on a transaction's events, and reports an implicit create, after a comparison of the change-stream commands with mongod.
If your tests resume change streams on
secantusd-rs, upgrade. Two things … -
secantus-mdb 0.5.3-beta.182 gives time-series collections their buckets and makes _id respect the collation
Summary: secantus-mdb 0.5.3-beta.182 shows a time-series collection's buckets, makes _id unique by the collection's default collation, stops a failed $out from destroying its target, and adds convertToCapped, cloneCollectionAsCapped, compact and reIndex.
Two things in this release could leave a test passing on wrong data.
- A failed
$out …
- A failed
-
secantus-pg 0.1.0-beta.12: pg_hba.conf, revocation lists and a reload
Summary: secantus-pg 0.1.0-beta.12 reads a
pg_hba.conf, so the Rust PostgreSQL server can hold each user, database and address to its own login rule. It also refuses a revoked client certificate, maps a certificate to roles through apg_ident.conf, and re-reads all of these files without …