v0.14.0 - Performance with updated BSON shard
This release brings updates to the driver implementation with the recent and more efficient BSON v0.8.0/v0.8.1
What changed
- bson: Command bodies use one
BSON.appendfor options and session fields. Receive reads documents withBSON.viewover the OP_MSG buffer.copy_withis one builder pass. - hello:
lastWriteis a typed document.lastWriteDateisBSON::DateTimeon the wire and becomesTimefor max-staleness. - apm:
safe_payloadbuilds a new document. It does not mutate the live reply (BSON.new(BSON)is a no-op). - utf: Date match accepts both canonical
$numberLongand relaxed ISO$date. - insert:
inserted_idsis ignored on BSON decode. The server does not send this field. - bson.cr:
Serializable/Array/Hashcan deserializeBSON::Valueafter 0.8.0 (no duplicatewhen BSON::DateTime). This reflected in an update toalumna/bson.cr, released as v0.8.1.
What was fixed
- Replica-set hello no longer raises
TypeCastErroronlastWriteDate. - Removed the unused
UNACKNOWLEDGED_WRITE_PROHIBITED_OPTIONSconstant. Unack writes still omitlsidand still sendhint/collation/arrayFilters(UTF wants that).