Releases: mongodb/mongo-c-driver
mongo-c-driver 1.3.3
It is my pleasure to announce MongoDB C Driver 1.3.3. This fixes a bug where
a slightly-oversized bulk write operation was not split into batches; instead,
it was sent whole to the server, which rejected it.
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.3.2
It is my pleasure to announce MongoDB C Driver 1.3.2. This is a bugfix release:
- A socket is properly discarded after a network error from a command.
- mongoc_database_get_collection now copies the database's read preferences,
read concern, and write concern, instead of copying the client's. - mongoc_cursor_t's private struct now allows a negative limit.
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Jeremy Mikola
- Hannes Magnusson
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.3.1
It is my pleasure to announce MongoDB C Driver 1.3.1. This is a bugfix release:
- mongoc_client_get_gridfs now copies the client's read preferences, read
concern, and write concern to the newly created mongoc_gridfs_t. Before
this fix, GridFS operations were always executed with the default config:
data was read from the primary, with the read concern level "local", and
written with write concern "acknowledged". Now, if you have configured any
of these options on the mongoc_client_t, they are respected by the
mongoc_gridfs_t. - CMakeLists.txt now includes and installs the pkg-config files.
Thanks to everyone who contributed to this release.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Christopher Wang
- Jean-Bernard Jansen
- Jeremy Mikola
- Jeroen Ooms
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.3.0
It is my pleasure to announce to you the release of the MongoDB C Driver 1.3.0.
Changes since the the release candidate 1.3.0-rc0:
- Fix a cursor bug introduced on big-endian platforms in 1.3.0-beta0.
- Improve documentation for mongoc_host_list_t.
- Move private mongoc_host_list_t functions from public header.
- Refactor the build system to declare library version in one place.
All new features and changes since the previous stable release, 1.2.1:
- If the driver is compiled without SSL support but a URI with "ssl=true"
is passed to mongoc_client_new, mongoc_client_new_from_uri, or
mongoc_client_pool_new, the function logs an error and returns NULL. Before,
the driver would attempt a non-SSL connection. - mongoc_collection_find_and_modify will now apply the mongoc_collection_t's
write_concern_t when talking to MongoDB 3.2. - Support for MongoDB 3.2's "readConcern" feature for queries, counts, and
aggregations. The option "readConcernLevel" is now accepted in the MongoDB
URI. New struct mongoc_read_concern_t, and functions operating on it:- mongoc_client_get_read_concern
- mongoc_client_set_read_concern
- mongoc_database_get_read_concern
- mongoc_database_set_read_concern
- mongoc_collection_get_read_concern
- mongoc_collection_set_read_concern
- mongoc_read_concern_copy
- mongoc_read_concern_destroy
- mongoc_read_concern_get_level
- mongoc_read_concern_new
- mongoc_read_concern_set_level
- mongoc_uri_get_read_concern
- Support for MongoDB 3.2's "bypassDocumentValidation" option for writes.
- New struct mongoc_bulk_write_flags_t and related functions:
- mongoc_bulk_operation_set_bypass_document_validation
- New struct mongoc_find_and_modify_opts_t and related functions:
- mongoc_find_and_modify_opts_new
- mongoc_find_and_modify_opts_destroy
- mongoc_find_and_modify_opts_set_sort
- mongoc_find_and_modify_opts_set_update
- mongoc_find_and_modify_opts_set_fields
- mongoc_find_and_modify_opts_set_flags
- mongoc_find_and_modify_opts_set_bypass_document_validation
- mongoc_collection_find_and_modify_with_opts
- New functions to copy database and collection handles:
- mongoc_collection_copy
- mongoc_database_copy
- Support for MongoDB 3.2 wire protocol: use commands in place of OP_QUERY,
OP_GETMORE, and OP_KILLCURSORS messages. - To explain a query plan with MongoDB 3.2, you must now call the "explain"
command, instead of including the "$explain" key in a mongoc_collection_find
query. See the mongoc_collection_find documentation page for details. - Configurable wait time on tailable cursors with MongoDB 3.2:
- mongoc_cursor_get_max_await_time_ms
- mongoc_cursor_set_max_await_time_ms
- Use electionId to detect a stale replica set primary during a network split.
- Disconnect from replica set members whose "me" field does not match the
connection address. - The client side matching feature, mongoc_matcher_t and related functions,
are deprecated and scheduled for removal in version 2.0. - New CMake options ENABLE_SSL, ENABLE_SASL, ENABLE_TESTS, and ENABLE_EXAMPLES.
- Use constant-time comparison when verifying credentials.
- Combine environment's CFLAGS with configure options when building.
- Improved man page output and "whatis" entries.
There are extensive bugfixes and improvements in GridFS since 1.2.1, including:
- Handle seeking, reading, and writing past the end of a GridFS file.
- If a GridFS chunk is missing, mongoc_gridfs_file_readv sets file->error to
domain MONGOC_ERROR_GRIDFS and a new code MONGOC_ERROR_GRIDFS_CHUNK_MISSING. - Optimization for long seeks forward with mongoc_gridfs_file_seek.
Other fixes since 1.2.1:
- Memory leaks in mongoc_database_has_collection and mongoc_cursor_next.
- Report writeConcern failures from findAndModify and from legacy writes.
- Memory leak in mongoc_database_find_collections.
- Set OP_QUERY's nToReturn from the provided limit.
- Fix compiler warnings and errors, especially with Visual Studio 2015,
GCC 4.8, and IBM XL C. - Bugs and typos in tutorial examples.
Thanks to everyone who contributed to this release candidate.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- Jose Sebastian Battig
- Matt Cotter
- Claudio Canella
- alexeyvo
- Christopher Wang
- Flavio Medeiros
- Iago Rubio
- Jeremy Mikola
- Victor Leschuk
- Jason Carey
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.3
This release fixes the CMake build, which I broke in the 1.2.2 release.
-- A. Jesse Jiryu Davis
mongo-c-driver 1.3.0-rc0
It is my pleasure to announce to you the first release candidate of MongoDB C
driver 1.3.0. It includes additive ABI changes and bugfixes, and support for
the upcoming MongoDB 3.2. It is compatible with MongoDB 2.4 and later.
New features and changes since 1.3.0-beta0:
- If the driver is compiled without SSL support but a URI with "ssl=true"
is passed to mongoc_client_new, mongoc_client_new_from_uri, or
mongoc_client_pool_new, the function logs an error and returns NULL. Before,
the driver would attempt a non-SSL connection. - New functions to copy database and collection handles:
- mongoc_collection_copy
- mongoc_database_copy
- If a GridFS chunk is missing, mongoc_gridfs_file_readv sets file->error to
domain MONGOC_ERROR_GRIDFS and a new code MONGOC_ERROR_GRIDFS_CHUNK_MISSING. - Use electionId to detect a stale replica set primary during a network split.
- Disconnect from replica set members whose "me" field does not match the
connection address. - The client side matching feature, mongoc_matcher_t and related functions,
are deprecated and scheduled for removal in version 2.0. - New CMake options ENABLE_SSL, ENABLE_SASL, ENABLE_TESTS, and ENABLE_EXAMPLES.
- The build system is refactored to declare the current version and latest
release in one place.
Other fixes:
- Memory leaks in mongoc_database_has_collection and mongoc_cursor_next.
- Report writeConcern failures from findAndModify and from legacy writes.
Thanks to everyone who contributed to this release candidate.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Matt Cotter
- Claudio Canella
- Victor Leschuk
- Flavio Medeiros
- Christopher Wang
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.2
It is my pleasure to announce to you the MongoDB C driver 1.2.2.
This release fixes a rare bug where the driver can direct reads to hidden
secondaries unintentionally. It also includes fixes and improvements to the
build system.
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.3.0-beta0
It is my pleasure to announce to you the beta of MongoDB C driver 1.3.0.
This beta includes additive ABI changes and bugfixes, and support for
the upcoming MongoDB 3.2. It is compatible with MongoDB 2.4 and later.
New features and changes:
- mongoc_collection_find_and_modify will now apply the mongoc_collection_t's
write_concern_t when talking to MongoDB 3.2. - Support for MongoDB 3.2's "readConcern" feature for queries, counts, and
aggregations. The option "readConcernLevel" is now accepted in the MongoDB
URI. New struct mongoc_read_concern_t, and functions operating on it:- mongoc_client_get_read_concern
- mongoc_client_set_read_concern
- mongoc_database_get_read_concern
- mongoc_database_set_read_concern
- mongoc_collection_get_read_concern
- mongoc_collection_set_read_concern
- mongoc_read_concern_copy
- mongoc_read_concern_destroy
- mongoc_read_concern_get_level
- mongoc_read_concern_new
- mongoc_read_concern_set_level
- mongoc_uri_get_read_concern
- Support for MongoDB 3.2's "bypassDocumentValidation" option for writes.
- New struct mongoc_bulk_write_flags_t and related functions:
- mongoc_bulk_operation_set_bypass_document_validation
- mongoc_bulk_operation_set_flags
- New struct mongoc_find_and_modify_opts_t and related functions:
- mongoc_find_and_modify_opts_new
- mongoc_find_and_modify_opts_destroy
- mongoc_find_and_modify_opts_set_sort
- mongoc_find_and_modify_opts_set_update
- mongoc_find_and_modify_opts_set_fields
- mongoc_find_and_modify_opts_set_flags
- mongoc_find_and_modify_opts_set_bypass_document_validation
- mongoc_collection_find_and_modify_with_opts
- Configurable wait time on tailable cursors with MongoDB 3.2:
- mongoc_cursor_get_max_await_time_ms
- mongoc_cursor_set_max_await_time_ms
- Support for MongoDB 3.2 wire protocol: use commands in place of OP_QUERY,
OP_GETMORE, and OP_KILLCURSORS messages. - To explain a query plan with MongoDB 3.2, you must now call the "explain"
command, instead of including the "$explain" key in a mongoc_collection_find
query. See the mongoc_collection_find documentation page for details. - Use constant-time comparision when verifying credentials
- Combine environment's CFLAGS with configure options when building.
- Improved man page output and "whatis" entries
Extensive bugfixes and improvements in GridFS, including:
- Handle seeking, reading, and writing past the end of a GridFS file.
- Better error reporting if a GridFS file has missing chunks.
- Optimization for long seeks forward with mongoc_gridfs_file_seek.
Other fixes:
- Memory leak in mongoc_database_find_collections.
- Set OP_QUERY's nToReturn from the provided limit.
- Fix compiler warnings and errors, especially with Visual Studio 2015,
GCC 4.8, and IBM XL C. - Include missing build script FindSASL2.cmake in distribution tarball
- Bugs and typos in tutorial examples
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- Jose Sebastian Battig
- Jeremy Mikola
- Iago Rubio
- Matt Cotter
- alexeyvo
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.1
It is my pleasure to announce to you the MongoDB C driver 1.2.1.
This release includes critical bugfixes for SSL connections with
mongoc_client_pool_t, and for Unix domain socket connections.
The documentation is updated for a change introduced in version 1.2.0:
mongoc_client_set_ssl_opts and mongoc_client_pool_set_ssl_opts now configure
the driver to require an SSL connection to the server, even if "ssl=true" is
omitted from the MongoDB URI. Before, SSL options were ignored unless
"ssl=true" was included in the URI.
The build instructions are improved, including the steps to build with OpenSSL
on OS X El Capitan. Build errors and warnings are fixed for clang in gnu99
mode and MinGW.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Tamas Nagy
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.2.0
It is my pleasure to announce to you the MongoDB C driver 1.2.0.
This is a stable release with additive ABI changes and bugfixes. It is
compatible with MongoDB version 2.4 and later.
The following notes summarize changes since the previous stable release,
1.1.11, including changes in the 1.2.0 betas and release candidate.
This version rewrites mongoc_client_t's internals to match two important new
specs for MongoDB drivers: the Server Discovery And Monitoring Spec and the
Server Selection Spec. The rewritten client has many advantages:
- All replica set members or mongos servers are discovered and periodically
checked in parallel. The driver's performance is dramatically better and
more predictable with multi-server deployments, or with a flaky network,
or when some servers are slow or down. - Clients from the same mongoc_client_pool_t share a background thread that
discovers and monitors all servers in parallel. - Unnecessary round trips for server checks and pings are eliminated.
- Behavior is documented in the specs, and consistent with other drivers,
even in complex or unusual scenarios. - The URI's "replicaSet" option is enforced: the driver now refuses to connect
to a server unless it is a member of a replica set with the correct setName. - Many race conditions related to changing deployment conditions are fixed.
To conform to the new specs, the client now accepts these options in the
MongoDB URI; see the mongoc_uri_t documentation for details:
- heartbeatFrequencyMS
- serverSelectionTimeoutMS
- serverSelectionTryOnce
- socketCheckIntervalMS
Other features:
- All timeouts that can be configured in the URI now interpret 0 to mean "use
the default value for this timeout". - The client's read preference can be configured in the URI with the new
options "readPreference" and "readPreferenceTags"; see the mongoc_uri_t
documentation. - The new mongoc_uri_get_read_prefs_t function retrieves both the read mode
and tags from a mongoc_uri_t. - New accessors mongoc_gridfs_file_get_id, mongoc_client_get_default_database,
and mongoc_bulk_operation_get_write_concern. - Debug tracing can be controlled at runtime with mongoc_log_trace_enable and
mongoc_log_trace_disable. - Set mongoc_client_pool_t's size with mongoc_client_pool_min_size()
and mongoc_client_pool_max_size().
Other changes:
- Enable runtime asserts in release build.
- The libbson submodule's URL now uses the recommended https://, not git://
- mongoc_client_kill_cursor is now deprecated and will be removed in 2.0.
- The write concern "w=-1" is documented as obsolete.
These notable bugs have been fixed since 1.1.11:
- The driver now uses the server's maxWireVersion to avoid an error and
extra round-trip when executing aggregations on MongoDB 2.4 and older. - Much improved reporting of network errors, unavailable servers, and
authentication failure - Off-by-one error in mongoc_gridfs_file_seek with mode SEEK_END
- The writeConcernErrors field of bulk results is properly formatted.
- A cursor with a server "hint" sets slaveOkay and / or $readPreference.
- Destroying an exhaust cursor must close its socket
- "wtimeoutms" was ignored for write concerns besides "majority".
- Bulk write operations might fail in mixed-version sharded clusters with
some pre-2.6 mongos servers. - A variety of bugs and incorrect results in mongoc_bulk_operation_execute.
- Numerous compiler warnings and build failures on various platforms.
- Copious refinements to the documentation.
Thanks to everyone who contributed to this version of libmongoc.
- Jason Carey
- Samantha Ritter
- A. Jesse Jiryu Davis
- Hannes Magnusson
- Kyle Suarez
- Jeremy Mikola
- Remi Collet
- Jose Sebastian Battig
- Derick Rethans
- Yuchen Xie
- Manuel Schoenlaub
- Sujan Dutta
- Lloyd Zhou
- rubicks
- Pawel Szczurko
- Yuval Hager
Peace,
A. Jesse Jiryu Davis