v1.12.1
What's Changed
New PostgreSQL backend
The new PostgreSQL backend is ready for testing. Enable it with --postgresql-new
flag or FERRETDB_POSTGRESQL_NEW=true
environment variable. The next FerretDB version will enable it by default.
Docker images changes
Production Docker images use scratch
as a base Docker image. The only file present in the image is a FerretDB binary (with root TLS certificates embedded).
arm64
binaries
In addition to linux/arm64
Docker images, we now provide linux/arm64
binaries and .deb
/ .rpm
packages.
New Features π
- Build
arm64
binaries and packages by @AlekSi in #3477 - Implement metrics collection by @Mihai22125 in #3430
- Implement
RenameCollection
by @AlekSi in #3440 - Implement
InsertAll
by @chilagrow in #3419 - Implement
DeleteAll
by @chilagrow in #3441 - Implement
DropDatabase
andStatus
by @chilagrow in #3451 - Implement
UpdateAll
by @chilagrow in #3449 - Implement
ListCollections
,CreateCollection
andDropCollection
by @chilagrow in #3444 - Implement
explain
by @noisersup in #3465 - Implement
database.Stats
by @chilagrow in #3464 - Implement
collection.Stats
by @chilagrow in #3478 - Implement
CreateIndexes
,DropIndexes
,ListIndexes
by @rumyantseva in #3468 - Implement filter pushdown by @noisersup in #3482
- Add info about indexes to
dbStats
response by @rumyantseva in #3534
Fixed Bugs π
- Verify that client metadata not being mutated by @kropidlowsky in #3194
- Relax restrictions when _id is not the first field in projection by @princejha95 in #3491
- Fix
_id
restriction in aggregation$project
stage by @chilagrow in #3508
Enhancements π
- Implement validation for
createIndexes
anddropIndexes
commands for SQLite by @rumyantseva in #3373 - Use
Ping
for checking connection by @AlekSi in #3519
Documentation π
- Update Writing Guide by @Fashander in #3424
- Add blog post on Using MajorM as MongoDB GUI for FerretDB by @Fashander in #3387
- Add release blog post for FerretDB v1.11.0 by @Fashander in #3439
- Fix RSS feed issue with images by @Fashander in #3417
- Republish Hacktobest blog post by @Fashander in #3429
- Add blog post on Enmeshed by @Fashander in #3448
- Add
$project
and$unset
to aggregation stages section by @Akhaled19 in #3450 - Add operation mode definition to Glossary by @rohitkbc in #3472
- Improve definitions for aggregation stages by @Fashander in #3499
- Add TODOs for capped collections by @AlekSi in #3461
- Fix blog post formatting by @Fashander in #3515
- Fix typo in contributing documentation by @jrmanes in #3507
- Add mermaid diagrams by @AlekSi in #3524
- Update documentation by @AlekSi in #3530
Other Changes π€
- Add CI configurations by @AlekSi in #3423
- Fix CI configuration and add TODOs by @AlekSi in #3436
- Add SAP HANA backend stub by @AlekSi in #3433
- Bump deps by @AlekSi in #3437
- Remove extra function by @AlekSi in #3447
- Fix fluky
TestRenameCollectionCompat
tests by @chilagrow in #3438 - Mark pushdown results based on tested backend by @noisersup in #3446
- Run tests with
envtool tests run
by @AlekSi in #3453 - Remove unused expected failures by @AlekSi in #3455
- Tweak SQLite backend tests by @AlekSi in #3460
- Add tests for backends contract by @AlekSi in #3456
- Speed-up Docker image building by @AlekSi in #3470
- Fix running a subset of tests by @AlekSi in #3479
- Add a workaround for Docker build failures by @AlekSi in #3480
- Add stubs for
Collection.Compact
by @AlekSi in #3485 - Process collection name param using
collection
tag by @adetunjii in #3476 - Revive logic of lower cased key for collection name by @chilagrow in #3494
- Add
RecordID
totypes.Document
by @AlekSi in #3495 - Extract
ReservedPrefix
constant by @AlekSi in #3497 - Fix stress tests by @AlekSi in #3502
- Fix concurrent Docker builds by @AlekSi in #3503
- Store indexes metadata by @rumyantseva in #3434
- Tweak tests timeouts by @AlekSi in #3514
- Bump Go version by @AlekSi in #3510
- Disallow importing handlers code from backends by @AlekSi in #3512
- Disable
auto_vacuum
for SQLite by @AlekSi in #3496 - Fix index name generation by @rumyantseva in #3511
- Fix unit tests for indexes by @rumyantseva in #3531
- Make new PostgreSQL backend tests pass by @rumyantseva in #3522
New Contributors
- @Mihai22125 made their first contribution in #3430
- @Akhaled19 made their first contribution in #3450
- @rohitkbc made their first contribution in #3472
- @princejha95 made their first contribution in #3491
- @jrmanes made their first contribution in #3507