From fd841e416881cc0392e61ec312c1870f3a0004bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Tue, 2 Dec 2014 10:06:21 +0100 Subject: Initial import of libmongo-client version 0.1.8-2 --- NEWS | 341 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 NEWS (limited to 'NEWS') diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..14e7ca6 --- /dev/null +++ b/NEWS @@ -0,0 +1,341 @@ +#+STARTUP: indent showall -*- org -*- + +* 0.1.8 - <2014-05-22 Thu> + +** Feature: Connection recovery cache + +This new feature makes the replica set support easier to use, and more +robust. New functions include: `mongo_sync_conn_recovery_cache_new`, +`mongo_sync_conn_recovery_cache_free`, +`mongo_sync_conn_recovery_cache_discard`, +`mongo_sync_conn_recovery_cache_seed_add`, and +`mongo_sync_connect_recovery_cache`. + +** New function: mongo_sync_cmd_get_last_error_full + +The new `mongo_sync_cmd_get_last_error_full` function can be used to +retrieve the last server-side error as a full BSON object, not just +the textual error message. + +** New function: mongo_sync_conn_get_last_error + +Returns the last cached error message. + +** Portability: Test suite improvements + +The test suite was improved to work properly on even more platforms. + +** Bugfix: Support reconnecting to Unix domain sockets + +When a replica-set is set up using unix domain sockets, reconnecting +failed. This has been corrected in this version. + +** Bugfix: Fix random reconnect failures + +When reconnecting, only close the old connection if it differs from +the new one. + +** Bugfix: Memory leak in an error-case + +When sending a packet to MongoDB, while enforcing being connected to a +master node, if ensuring that connection failed, memory was leaked. +The hole has been plugged. + +* 0.1.7.1 - <2014-03-12 Wed> + +** Portability: Support HP-UX + +Compatibility code was added to make libmongo-client portable to HP-UX. + +** Portability: prove made optional + +On platforms where the `prove' utility is not readily available, a +custom test runner can be used by setting the PROVE environment +variable when running `make check'. + +** Bugfix: Safe-mode robustness improvement + +When safe mode is turned on, the code now verifies not only that +getLastError() doesn't return an error, but also verifies that the +command succeeds, too. + +* 0.1.7 - <2013-12-10 Tue> + +** Feature: Automatic re-authentication + +This release adds support for automatically re-authenticating when +reconnecting, by storing the credentials used for the last +authentication in a safe, memory-locked area. + +** New function: mongo_sync_cmd_user_add_with_roles() + +A new function was added to create users with their roles already set +at the same time. + +** Bugfix: Enable subdir-objects for automake + +Since we have sources that reside in a subdirectory, to avoid +conflicts and a lot of automake warnings, enable the subdir-objects +automake option. + +* 0.1.6.3 - <2013-08-27 Tue> + +Another bugfix release with a couple of important bugfixes, and a few +minor improvements here and there. + +** Improvement: configure.ac updated to modern autotools + +The configure.ac script was updated to not use obsolete macros, and to +work with automake 1.13+ (where the aforementioned macros were +removed). + +** Bugfix: Fix chunked GridFS file retrieval + +When retrieving files via the chunked GridFS API, order the chunks by +their number, so reassembling them will succeed. + +** Bugfix: Stop crashing in case verification fails + +When safe-mode is enabled, but getLastError() fails, the library +crashed due to an uninitialised pointer. This has been fixed in this +release. + +* 0.1.6.2 - <2012-12-21 Fri> + +Another bugfix release with mostly minor improvements and +documentation updates. + +** Feature: Support for the Binary subtype in GridFS + +The GridFS support in the library only supported the "Generic" +subtype until now, but with this release, the (obsolete) "Binary" +subtype is supported aswell. + +** Bugfix: Plugged a memory leak in the GridFS code + +The GridFS code (the chunked file constructor, in particular) leaked +the generated ObjectId. This has been corrected. + +** Documentation: New tutorials + +New tutorials were written for showing how to handle indexes, and how +to run custom commands. + +* 0.1.6.1 - <2012-10-14 Sun> + +This is a quick bugfix release, that restores ABI compatibility with +versions prior to 0.1.6, and cleans up a few other minor issues. + +* 0.1.6 - <2012-10-14 Sun> + +With this release, thanks to Conrad Hoffmann , it is +now possible to connect to mongodb via unix sockets. + +See the documentation and the updated mongo-dump example for details. + +* 0.1.5 - <2012-04-13 Fri> + +This is a bugfix release, without any new functionality. It is +expected that this will be the last release before a complete overhaul +of the library. + +** Bugfix: Restore glib 2.12 compatibility + +The examples used features not available in glib 2.12, they were +changed to not do that, and work with this old version too. + +** Bugfix: Do not accept invalid index specifications + +When creating an index, the library now bails out early with an error +in case the index specification is not acceptable. + +** Bugfix: Fix glib sanity check when glib is on a non-standard path + +In case glib was installed to a path that is not on the compiler's +default search path, the sanity check at configure time failed. This +has been corrected. + +** Bugfix: bson_cursor_find() & co. must match the whole key + +Due to a silly matching logic in bson_cursor_find(), and anything that +built on it (bson_find() included) was able to match keys of which the +sought name was a prefix of. + +This is now fixed, and the find functions will correctly match the +whole key. + +** Bugfix: Fixed OID generation on 64-bit big-endian machines + +Due to a rounding error, OID generation on certain 64-bit big-endian +platforms resulted in the timestamp part always being zeroed out, +which made OIDs generated on such platforms useless. + +The rounding error was eliminated. + +* 0.1.4 - <2011-08-27 Sat> + +This release is a minor update, with neither new functionality, nor +any bugfixes, except in the packaging. + +It does come with slightly more documentation, however. + +* 0.1.3 - <2011-07-19 Tue> + +** New feature: GridFS support. +This version introduces a set of GridFS APIs, to ease working with +GridFS, be that retrieving files chunk by chunk, listing and removing +files, or offering a file-like streaming API. + +** New function: mongo_sync_cmd_create() +A new helper function was introduced to aid us in creating capped and +pre-allocated collections. + +** New function: mongo_sync_cmd_exists() +Another new helper function to aid in retrieving information about a +collection - whether it exists, and if so, with what parameters. + +** New function: mongo_util_oid_as_string() +When one needs to print the value of an ObjectId in human-readable +hexadecimal format, this new function is the one to turn to. + +** New index options: background & sparse. +It is now possible to create sparse indexes, and create them in the +background, using two new option flags: MONGO_INDEX_BACKGROUND and +MONGO_INDEX_SPARSE. + +* 0.1.2 - <2011-07-01 Fri> + +** Bugfix: mongo_packet_recv() waits for all data. +Previously, mongo_packet_recv() did not wait for all data to arrive, +and returned whatever already arrived at the time of reading. + +This has been corrected, mongo_packet_recv() correctly blocks now. + +** Implemented support for passive secondaries. +Support was added for passive secondaries, they're now automatically +discovered too. + +** New feature: Index handling functions +Implemented some helper functions to create and delete indexes. + +** New function: bson_cursor_find() +Combining the powers of bson_find() and bson_cursor_find_next(), this +new function can find a key anywhere in a BSON object, yet, maintains +the ability to continue a previous scan. + +** New function: mongo_connection_set_timeout() +On systems that support it (most modern systems should), sets a +timeout for send and receive operations. Setting the timeout to zero +clears the timeout, and these calls will block forever. + +The timeout is not preserved accross reconnects, if using the Sync +API, however. + +** Removed dependency on OpenSSL +Instead of using OpenSSL's MD5 functions, use the checksum +capabilities of glib 2.16 and newer. This halves the dependencies of +the library! + +* 0.1.1 - <2011-06-16 Thu> + +** Cursor-based query iterator API +The new cursor-based query iterator API makes it possible to grab the +results of a mongo_sync_cmd_query(), and conveniently iterate over the +results, hiding the get_more() calls underneath. + +The implementation is clever enough to only query the database when it +needs to, and when it does, query in bulk (asking for the same amount +of documents that the last query returned). + +Thanks to Federico Rodriguez for the suggestion. + +** New function: bson_validate_key() +With this new function, one can validate BSON keys: whether they can +contain dots (allowed when using dot-notation, forbidden otherwise), +or whether they start with a '$' sign. + +It is up to the application developer to decide when to validate a +key, and what restrictions make sense in the given context. + +The function does NOT do UTF-8 validation, that is completely left up +to the application developer. + +** New function: bson_cursor_find_next() +When we know that key G always comes after key A, but we do not care +how far apart they may be, and we do not want to use a separate cursor +(due to, for example, performance reasons), this new function can +help: unlike bson_find(), this will start scanning from the current +cursor position. + +** New function: bson_stream_doc_size() +A little helper function to help determine the size of a BSON document +when it's only available as a bytestream. This is mostly for use with +bson_new_from_data(). + +** Symbol versioning +The symbols of the library can now be versioned, if configured with +the --with-versioned-symbols configure flag (not enabled by default). + +* 0.1.0 - <2011-05-25 Wed> + +** Shared library +The configure script now defaults to enabling shared library building +by default (along with a static library). + +** Bug fixes +The pkg-config file was setting an incorrect include directory in it's +Cflags. This is now fixed. + +** C++ Compatibility +The public headers are now guarded by extern "C" {} wrappers, so that +they can be included in C++ projects. + +** Performance enhancements +A minor performance issue was corrected in the BSON code, that had the +possibility of forcing unneccessary memory allocations. The library +now allocates the proper amount of memory at the soonest time +possible, so it doesn't have to grow it later on unnecessarily. + +Anoter performance issue was corrected in the BSON library: +bson_find() was comparing key names in BSON objects with the sought +for key using strcmp(), which was unacceptably slow when dealing with +BSON objects that have a lot of keys. We now use memcmp(), which means +we don't have to traverse the sought for key all the time. + +* 0.0.2 - <2011-05-07 Sat> + +** Replica set seeding support +It is now possible to add seeds to a connection, so that the library +can try connecting to those in case automatic discovery fails (or if +the seeds are hidden). + +** Failover redesign +Instead of preemptively pinging & checking for a master before each +and every command, the library does so only upon errors. This way, +when everything's working as expected, there is no extra +overhead. Yet, if things go wrong, failover will still work. + +By design, automatic failover only occurs when an error is detected +during a write operation. When an error occurs during read, it will be +propagated back to the application. + +Automatic failover is disabled by default, and can be turned on via +the mongo_sync_conn_set_auto_reconnect() function. + +** safe-mode support +With safe mode enabled, extra care will be taken to ensure that data +gets to the server, and that the library does everything within its +power to maintain a connection. + +This means that after insert and update operations, the library will +issue a getLastError command, and only return successfully if that +command did not signal an error. + +Safe-mode also enables the previously default preemptive connection +checks (along with the post-mortem failover). + +Safe-mode is off by default. + +* 0.0.1 - <2011-04-10 Sun> + +Initial public release. -- cgit v1.2.3