Blog
Updates, design notes, and deep dives from the SecantusDB project.
-
secantus-mdb 0.5.3-beta.196 plans queries as mongod does
Summary: secantus-mdb 0.5.3-beta.196 runs mongod's trial of candidate plans, so explain and the order documents come back in follow mongod's choice of index; numbers compare by their exact value; and the server gains a profiler, wire compression and real serverStatus counters.
Upgrade if your tests depend on …
-
secantus-pg 0.1.0-beta.17: privileges a cursor skipped, parameters read as numbers, and the login rules PostgreSQL has
Summary: secantus-pg 0.1.0-beta.17 fixes answers that were wrong without an error: a cursor or a TABLESAMPLE that read a table the role had no privilege on, a GRANT inside a transaction that took no effect until COMMIT, and string parameters in a VALUES list read as numbers …
-
secantus-mdb 0.5.3-beta.194 checks what a user may run as mongod does
Summary: secantus-mdb 0.5.3-beta.194 replaces its own permission check under --auth with mongod's: a privilege on a collection covers that collection, and every command needs the privileges mongod asks for.
Upgrade if you run
secantusd-rswith--auth, and your tests check that a user is refused something.Before …
-
secantus-pg 0.1.0-beta.16: an UPDATE that changed nothing, and functions that disagreed with PostgreSQL
Summary: secantus-pg 0.1.0-beta.16 fixes answers that were wrong without an error. A table whose composite primary key had a column named like "$date" or "$regex" could report an UPDATE as done and change nothing, return NULL for the key, or fail every read. It also fixes pg_lsn …
-
The Python servers trim their log, and a partial TTL index keeps what it does not hold
Summary: The Python servers checkpoint while they run, so their log is trimmed, and a partial TTL index no longer deletes documents outside its filter (v0.7.0b3).
This release changes two things in the Python servers, and one of them was deleting data.
A partial TTL index deleted documents …
-
secantus-mdb 0.5.3-beta.193 checks a collection in validate, and answers user and role commands as mongod does
Summary: secantus-mdb 0.5.3-beta.193 makes validate read the collection and its indexes, removes a dropped role from the users that held it, and answers the user and role management commands as mongod does.
Upgrade if you run
secantusd-rsand your tests create users or roles, or callvalidate … -
Both Rust servers now trim their log while they run
Summary: secantus-mdb 0.5.3-beta.191 and secantus-pg 0.1.0-beta.15 checkpoint every 60 seconds. Before them a running server kept every log file it had written and replayed all of them after a crash. After 14 minutes of updates, secantusd-rs took 81 s to restart after a kill …
-
secantus-mdb 0.5.3-beta.192 answers the handshake and diagnostic commands as mongod does
Summary: secantus-mdb 0.5.3-beta.192 fixes dataSize over a key range, the sizes in $collStats and the counters in serverStatus, and checks the fields every command takes, as mongod does.
Upgrade if you run
secantusd-rsand your tests read what the server says about itself, or rely on it … -
secantus-mdb 0.5.3-beta.190 answers geo queries as mongod does
Summary: secantus-mdb 0.5.3-beta.190 tests GeoJSON shapes on the sphere, returns $near results nearest first, and refuses what a geo index cannot hold, as mongod does.
Upgrade if you run
secantusd-rsand your tests use geo queries. Several of them returned different documents frommongod.- GeoJSON shapes were …
-
secantus-mdb 0.5.3-beta.189 returns documents in the order mongod does
Summary: secantus-mdb 0.5.3-beta.189 returns documents in the order mongod reads them, so a delete or update of one document changes the document mongod would, and fixes a range query over an array index that left a document out.
Upgrade if you run
secantusd-rs. This release fixes a …