github mongodb/mongo-c-driver 1.5.0
mongo-c-driver 1.5.0

latest releases: debian/1.27.0-1, 1.27.0, debian/1.26.2-1...
7 years ago

It is my pleasure to announce the release of mongo-c-driver 1.5.0.

New features and bug fixes:

  • MongoDB 3.4 Support
    • New URI and read preference option, "maxStalenessSeconds"
    • Set MongoDB client handshake data with mongoc_client_set_appname or
      mongoc_client_pool_set_appname.
    • writeConcern and readConcern enhancements.
    • Collation allows users to specify language-specific rules for string
      comparison when sorting documents. See the code examples for
      mongoc_client_read_command_with_opts, mongoc_collection_count_with_opts,
      mongoc_collection_find_with_opts, and mongoc_index_opt_t, as well as the
      "Setting Collation Order" section of the "Bulk Write Operations" guide.
  • mongoc_collection_count_with_opts uses the collection's read preference if
    none is passed in
  • Improved TLS support
    • Fixed LibreSSL (libssl) support
    • Added LibreSSL (libtls) support
    • Fixed Secure Channel build on VS 2010
    • OpenSSL now supports SNI (all others already do)
  • Additional features for Application Performance Monitoring:
    • mongoc_topology_description_has_writable_server
    • mongoc_topology_description_has_readable_server
    • Notifications when a server or topology description changes, and when a
      monitoring heartbeat begins and succeeds or fails.
    • mongoc_client_set_apm_callbacks can be used repeatedly to change or clear
      the list of monitoring callbacks.
  • New functions accept flexible options as a BSON document:
    • mongoc_collection_find_with_opts
    • mongoc_client_read_command_with_opts
    • mongoc_client_write_command_with_opts
    • mongoc_client_read_write_command_with_opts
    • mongoc_database_read_command_with_opts
    • mongoc_database_write_command_with_opts
    • mongoc_database_read_write_command_with_opts
    • mongoc_collection_read_command_with_opts
    • mongoc_collection_write_command_with_opts
    • mongoc_collection_read_write_command_with_opts
    • mongoc_gridfs_find_with_opts
    • mongoc_gridfs_find_one_with_opts
    • mongoc_bulk_operation_remove_one_with_opts
    • mongoc_bulk_operation_remove_many_with_opts
    • mongoc_bulk_operation_replace_one_with_opts
    • mongoc_bulk_operation_update_one_with_opts
    • mongoc_bulk_operation_update_many_with_opts
  • mongoc_collection_find is now deprecated in favor of
    mongoc_collection_find_with_opts.
  • New helper function to include read concern in one of the above function's
    options parameter: mongoc_read_concern_append.
  • mongoc_client_command no longer applies the client's read preference and
    read concern by default. Same change for mongoc_database_command and
    mongoc_collection_command.
  • mongoc_collection_count_with_opts now applies the collection's read
    preference if no read preference is provided
  • mongoc_collection_create_index and mongoc_collection_drop_index now apply
    the collection's write concern.
  • mongoc_collection_create_index_with_opts now applies the collection's
    write concern if none is specified in "opts"
  • connectTimeoutMS timer now begins after DNS resolution, and resets
    for each interface attempted (e.g., if the driver first tries IPv6,
    then IPv4).
  • New error code MONGOC_ERROR_DUPLICATE_KEY.
  • mongoc_collection_find no longer treats the "filter" key specially in
    queries - querying for a document with a key named "filter" is the same
    now as any other key.
  • The server description parameter to the following functions is "const":
    • mongoc_server_description_host
    • mongoc_server_description_id
    • mongoc_server_description_ismaster
    • mongoc_server_description_round_trip_time
    • mongoc_server_description_type
  • Exported symbols are no longer declared in seperate export files.
    This could break ABI with applications using clang, which previously
    exported symbols from the internal private ABI.
  • mongoc no longer crashes when multi roundtrip bulk operation fails.
  • Added support for the new readConcernLevel "linearizable".
  • Clients now check for misformatted "readPreferenceTags" in URI.
  • New CMake option ENABLE_TRACING allows debug output, which before had only
    been available with "configure --enable-tracing".
  • Bugfix: "PossiblePrimary"-type replicas could be selected for reads
  • Bugfixes: The random number generator used to select servers is now properly
    seeded, and secondary queries are now properly distributed according to
    localThresholdMS, not just to the lowest-latency secondary. The latency
    estimate is reset after a connection error.
  • Fix crashes in mongoc_topology_invalidate_server and
    mongoc_client_kill_cursor.
  • mongoc_collection_insert, mongoc_collection_update, mongoc_collection_remove
    consistently use domain MONGOC_ERROR_BSON, code MONGOC_ERROR_BSON_INVALID
    if passed oversized BSON, and MONGOC_ERROR_COLLECTION for other errors.
    mongoc_bulk_operation_execute continues to use MONGOC_ERROR_COMMAND for
    all errors.
  • If mongoc_client_pool_t fails to start its scanner thread in the background,
    it logs and aborts instead of silently continuing, then failing to connect.
  • The driver now updates its view of the whole topology with information from
    each new connection handshake.
  • Improved error reporting when the driver fails to reach the server, and
    correctly distinguish "connection error" and "connection timeout".

Deprecations:

  • mongoc_collection_find is deprecated for mongoc_collection_find_with_opts.

Removed configure flags:

  • --enable-experimental has been removed. All previously experimental
    features are now always on.
  • The configure option "--enable-hardening" had had no effect. It is removed
    in favor of system-wide compiler configuration.

Thanks to everyone who contributed to the development of this release.

  • A. Jesse Jiryu Davis
  • Hannes Magnusson
  • Fiona Rowan
  • Ian Boros
  • Remi Collet
  • Brian McCarthy
  • Jeroen Ooms
  • J. Rassi
  • Christoph Schwarz
  • Alexey Vorobeyev

Peace,
-- A. Jesse Jiryu Davis

Don't miss a new mongo-c-driver release

NewReleases is sending notifications on new releases.