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