# Change history for the MongoDB Perl driver: v0.704.5.0 2014-08-19 14:17:00-04:00 America/New_York [Bug fixes] - PERL-407 fixed request_id race condition under threads - PERL-410 dies on BSON encoding/decoding if invalid UTF-8 is detected v0.704.4.0 2014-07-30 05:43:11-04:00 America/New_York [Testing] - Restores behavior of skipping tests if no mongod is available for testing v0.704.3.0 2014-07-28 17:02:13-04:00 America/New_York [Additions] - PERL-130 improved support for connection string URI; added support for options: ssl, connectTimeoutMS, w, wtimeoutMS, and journal [Bug fixes] - PERL-130 fixed parsing of connection string to allow for usernames containing : and passwords containing @ if they are percent encoded (RFC 3986) - PERL-166 fixed tailable cursors with no initial results - PERL-290 when find_master is 0, the driver now consistently picks the first server in the list - PERL-387 made database_names() retry up to three times if the server returns a lock error v0.704.2.0 2014-07-08 12:04:02-04:00 America/New_York [Bug fixes] - PERL-376 fixed fatal error loading the MongoDB::MongoClient module before loading the top-level MongoDB module - Fixed cursor to catch query or timeout errors that occur after the initial query batch is received - Fixed primary server selection to retry for 60 seconds instead of immediately failing with an error - Changed bulk insert to shallow copy inserted documents before adding an '_id' field (if it didn't exist) to avoid modifying the original [Testing] - Fixed t/database.t for old versions of mongos - PERL-355 Added support for parallel testing - Finished converting from Test::Exception to the more robust Test::Fatal - Improved test coverage v0.704.1.0 2014-06-17 21:55:18-04:00 America/New_York [Bug fixes] - PERL-336 fixed unknown command exception with index creation on 2.2 and older servers; we now correctly fall back to legacy index creation - PERL-349 fixed request ID misordering when reconnecting to a server; this fixes the known issue regarding test failures with threads under find_master - PERL-368 changed all query docs to be coerced to Tie::IxHash; this ensures that command queries are properly ordered and fixes a crashing bug when using command helpers in concert with read preference - PERL-369 fixed segfaults deserializing 64-bit integers from BSON on pure 32-bit perls - PERL-370 fixed bulk update results for upserts with non OID _id on servers prior to 2.6 - Fixed stale detection of write command support for bulk operations - Fixed wire version checks and max BSON size inspection for replica sets with multiple hosts in the connection URI [Documentation] - PERL-366 documented bulk write initializers in Collection docs - Updated Example.pod docs for field projection (Johann Rolschewski) [Testing] - PERL-348 tests report MongoDB version in test diagnostics - PERL-351 fixed test failures if the local database has auth enabled; tests will skip instead of fail - PERL-356 enabled additional tests if the test database is a replica set or sharded cluster - Added test for field projection (Johann Rolschewski) - Fixed various tests to run against a sharded cluster - Moved unused orchestration tests out of the main test suite [~ Internal changes ~] - PERL-357 added developer tools for testing different cluster configuration v0.704.0.0 2014-05-27 13:54:01-04:00 America/New_York [!!! Incompatible Changes !!!] - PERL-108 removed previously-deprecated AUTOLOAD functions [*** Deprecations ***] - PERL-320 low-level protocol functions in MongoDB.pm are deprecated [Additions] - PERL-221 added MongoDB::Regex class to represent stored regexes - PERL-251 implemented support for aggregation command cursors - PERL-252 added 'max_time_ms' method to cursors - PERL-258 added support for '$out' aggregation pipeline operator - PERL-262 read preference implementation - PERL-278 added explain support for aggregation queries - PERL-298 implement parallel_scan method for collections - PERL-299 implemented new bulk write API - Added nolock support to eval in MongoDB::Database (Ashley Willis) [Bug Fixes] - PERL-233 Fix find_and_modify error handling - PERL-260 ensure_index no longer ignores weights, default_language, and language_override options - PERL-267 memory leak fixes (Casey Rojas) - PERL-307 fix drop_dups option for ensure_index - PERL-315 require DateTime 0.78 or later - PERL-318 fix compiler warnings - PERL-319 fix compilation failures on some platforms - PERL-322 change return value and document low-level recv - PERL-323 fixed possible socket leaks on communication errors - PERL-336 fixed index creation legacy fallback against older mongos - Cached client constructor arguments for replica set connections - Cleaned Moose class namespaces of imported methods - Ensured internal run_command exceptions include correct error string - Fixed a bug that would serialize an index direction as a string on some older Perls - Fixed clock race in OID unit test - Fixed exception handling for internal run_command calls - Fixed fatal error in DESTROY with find_master and down server - Fixed gridfs test for unique keys - Fixed hint tests for MongoDB >= 2.5.4 - Fixed index creation and drop on MongoDB 2.6 - Fixed memory corruption error on Perl 5.19.1+ - Fixed several compiler warnings on Perl 5.8 - Fixed use of re::regexp_pattern for 5.10.0 - Made t/dbref.t use fresh test database - Prevented GridFS MD5 calculation when 'safe' is not set (mapbuh) - Provided backwards compatible HeUTF8 macro for Perl v5.10 and v5.8.8 and earlier - Removed hard-coded compiler flags for Darwin - Updated ppport.h to version 3.22 [Documentation] - PERL-217 improved documentation of GridFS::get - PERL-287 updated "j" and "fsync" option docs for MongoDB 2.6 - PERL-311 fix legacy docs authentication link - PERL-317 Clarified support for threads - PERL-341 Added install documentation including use of non-standard C library paths - Added abstract to MongoDB::BSON::Regexp documentation - Revised main MongoDB module and MongoDB::MongoClient docs - Updated Changes file with changes since 0.701 [Prerequisites] - Added namespace::clean - Added Test::Deep - Added Test::Fatal - Added Throwable - Added Syntax::Keyword::Junction - Changed Test::More requirement to 0.96 - Removed Devel::Size [~ Internal changes ~] - PERL-261 use setVersion field in isMaster for replica set discovery (David Storch) - PERL-264 test for closing connection when MongoClient object leaves scope. (Ashley Willis) - PERL-269 test libraries for replica set and sharded cluster testing - PERL-285 added wire protocol check - PERL-296 implemented new index creation command for MongoDB 2.6 - PERL-312 default GridFS chunk size changed from 1mb -> 255kb - Switched BSON implementation to libbson and bundled patched libbson 0.6.4 to avoid external library dependency [~ Known Issues ~] - PERL-233 SSL certificate validation not yet implemented - PERL-349 changes to the testing framework revealed a bug when threads are used with 'find_master' on the client; the offending test is marked TODO and the bug will be addressed in the next stable release. - Some platforms may not compile, including Windows and some Solaris and OpenBSD systems; these issues will be addressed in a future release v0.703.5 2014-05-23 06:26:46-04:00 America/New_York (TRIAL RELEASE) v0.703.4 2014-04-07 20:12:27-04:00 America/New_York (TRIAL RELEASE) v0.703.3 2014-04-01 10:32:49-04:00 America/New_York (TRIAL RELEASE) 0.703_2 (TRIAL RELEASE) 0.702.2 [Bug Fixes] - Fix double-from-buffer alignment issue on ARM platform (Robin Lee) - Set BSON_MINKEY to 255 if char is unsigned (Robin Lee) - Fix test plans in connection.t and delegation.t (Robin Lee) [Internal] - Copyright update s/10gen/MongoDB/ due to company name change 0.702.1 [Bug Fixes] - Query Fields accept Tie::IxHash and Hashref.. (Colin Cyr) - Fix for gridfs and creation of indexes (mapbuh) 0.702.0 [Enhancements] - SASL PLAIN suport added - Makefile.PL can enable SSL/SASL builds via environment variables [Bug Fixes] - PERL-162 set_timeout fix - PERL-245 fix fractional seconds in BSON datetime deserialization - Fix specifying index keys as an array ref (D. Ilmari Mannsåker) - Prevent legacy auth when in SASL mode - Drop all created collections in dbref.t (D. Ilmari Mannsåker) [Documentation] - Deprecated AUTOLOAD functions removed from documenation - Various module docs revised and updated [Internal] - Refactored boilerplate test code to a separate testing module 0.701 [Enhancements] - Support for Kerberos authentication on Linux (EXPERIMENTAL) - Add a get_collection method to MongoDB::Collection (@sanbeg, pull #52) - Optimizations on inserts and fetch (@ilmari, pull #66, PERL-129) - Hash ordering fixes (@ilmari, pull #64) - Double and int type helpers (@kenahoo, pull #65, PERL-227) - TTL index support (@drtz, pull #60, PERL-222) - Restored support for Perl 5.8. - Support for native DBRefs. [Bug Fixes] - UTF-8 fixes (@ilmari, pull #67, #68) - DateTime fixes (@kenahoo, pull #65) - Don't do aggregation tests when running against MongoDB < 2.2. 0.47 - 0.503.4 [Enhancements] - Ordered hash support for MongoDB::Cursor::hint() (Colin Syr) - timegm() implementation for Windows (Stevie-O) - aggregate() helper method - find_and_modify helper - Connection URI support enhancements (Tianon Gravi) - MongoClient new top-level object - Removing AUTOLOAD method examples from documentation - Replacing $conn examples with $client in docs. - Deprecation warning for MongoDB::Connection - Removed dependence on Any::Moose - Support for fsyncLock/unlock (Casey Rojas) - Support for dt_type param, DateTime::Tiny and raw epoch times - Support for UTF8 hash keys (Roman Yerin) - Support for 'j' param to turn on journaling (Casey Rojas) [Bug Fixes] - Miscellaneous documentation fixes (Andrey Khozov, others) - Fixed socket timeout bug (nightlord) - Fixed broken regex test for Perls < 5.14. - More accurate isUTF8 function (Jan Anderssen) - Proper serialization of regex flags via re::regexp_pattern 0.46 [Enhancements] - Added SSL support (Casey Rojas). See new documentation on MongoDB::Connection's ssl attribute. - Added MongoDB::BSON::Binary type and MongoDB::BSON::use_binary option. See the Data Types documentation on using the Binary type instead of string refs for binary data. - Change default binary type from 2 to 0. See MongoDB::BSON::Binary for more information about the implications of this change. [Bug Fixes] - Fix auth connection issues (Olly Stephens) - Fix driver creating duplicate connections when port isn't specified (Olly Stephens) - Fix authentication check on some versions of Perl (Olly Stephens) 0.45 - September 7, 2011 This is a recommended upgrade. There are no backwards-breaking changes, only bug fixes and enhancements. [Enhancements] - Perl 5.8.4 and higher is now officially supported (5.8.7 was the previous minimum version). - Improved the way that connecting handles an interrupt signal. The driver now continues to attempt connection for the remaining duration of the timeout, instead of erroring out immediately. [Bug Fixes] - Fixed MaxKey and MinKey deserialization. Deserializing these types would seg fault if they hadn't been serialized previously. - Fixed Windows compilation (Taro Nishino) - Fixed MakeMaker arguments which were causing build problems on 5.14. 0.44 - July 26, 2011 This is a recommended upgrade. There are no backwards-breaking changes, only bug-fixes and enhancements. [Enhancements] - Added MongoDB::BSON::looks_like_number flag. The Perl driver has always been coy about turning strings into numbers. If you would like aggressive number parsing (if it looks like a number, send it to the DB as a number), you can set MongoDB::BSON::looks_like_number to 1 (defaults to 0, the previous behavior). See the MongoDB::DataTypes pod for more info. - Tests should now clean up after themselves, leaving no test databases behind. [Bug Fixes] - Setting a sort in the arguments to MongoDB::Collection::find is now passed through correctly to the cursor. - Fixed segmentation fault in array serialization: caused by specifying an _id field on insert and using an array (not a hash or Tie::IxHash). - Fixed segmentation fault in threading: if Mouse was used instead of Moose, version 0.43 of the driver would segfault if multiple threads were used. - MongoDB::Cursor now inherits the $Mongo::Cursor::slave_okay global setting, as well as checking if slave_okay is set on the cursor instance. - Fix GridFS functions to only ensure GridFS indexes on writes, allowing GridFS API usage on slaves. 0.43 - May 31, 2011 This is a recommended upgrade. There are no backwards-breaking changes, only bug-fixes and enhancements. [Enhancements] - Auto-detects max BSON size for inserts, which means documents larger than 4MB can now be inserted. See L<MongoDB::Connection/max_bson_size> for details. - Added the L<MongoDB::Cursor/info> method, which returns meta information about the results being returned. [Bug Fixes] - When high UTF-8 values as hash keys, the driver now croaks instead of segfaulting. - Added 'use IO::File' before IO::File is used (Michael Langner) - Fixed Perl 5.14 compile (Chip Salzenberg) 0.42 - Fixes for Sparc architecture - Fixed PVIV misinterpretations 0.41 - Re-discover master on "not master" errors - Make driver thread safe (Florian Ragwitz) - POD fix (Ronald Kimball) - Fix GridFS warning (Graham Barr) - Allow auto_connect => 0 for replica sets (Graham Barr) 0.40 - DateTime floating timezones now warn on serialization - Attempting to serialize unrecognized object types now croaks - MongoDB::Cursor::explain now resets cursor properly - Added BSON::encode_bson and BSON::decode_bson (Jason Toffaletti) - Safe writes return a hash of information instead of 1 (on success) - Improved last_error/safe docs - Fixed doc spelling errors (Stefan Hornburg) 0.39 - Fixed memory leak 0.38 - Fixed indexing subdocuments (x.y.z) - Fixed GridFS to accept non-fs prefixes (Olly Stephens) - Fixed compile for old C compilers (Taro Nishino) - Added MongoDB::read_documents for handling db replies (Graham Barr) 0.37 - Fixed cursor not found error condition - Fixed compile for old C compilers - Fixed weird file behavoir on some machines 0.36 - Replica set support - Deserialize booleans as booleans (instead of ints) (Andrew Page) - Fixed OS X build (Todd Caine) - Added background option for index creation (Graham Barr) - Fixed slurp tests (Josh Rabinowitz) - Added MongoDB::Timestamp type 0.35 - 02 July 2010 - Added MongoDB::BSON::utf8_flag_on (Pan Fan) - Added MongoDB::GridFS::File::slurp (Pan Fan) - Fixed memory leak 0.34 - 17 June 2010 - $conn->foo->bar->baz now gets the bar.baz collection in the foo database - Slight speed improvements on inserts - Added $conn->query_timeout option to control timeout lengths for all queries done over a given connection - MongoDB::Cursor::tailable and MongoDB::Cursor::immortal - Added TO_JSON function to MongoDB::OID - Fixed safe save (Othello Maurer) - BACKWARD-BREAKING: removed old indexing syntax (if you started using the driver less than a year ago, this shouldn't affect you. If you're an old- timer, make sure you're not using the syntax that has been deprecated for a year). 0.33 26 April 2010 - Fixed tests 0.32 21 April 2010 - BACKWARD COMPATIBILITY BREAK: croak on failed safe update/insert/remove/ensure_index (Eric Wilhelm) - w and wtimeout (see MongoDB::Connection::w) - die correctly on MongoCollection::count errors (help from Josh Rabinowitz) - Added MongoDB::Collection::find (same as query) - Added get, put, and delete methods to MongoDB::GridFS - Perl 5.12 compatibility 0.31 05 April 2010 - C89 fix (Taro Nishino) - Added MongoDB::Code type - Use connection format: mongodb://host1,host2:port2,host3... - Arbitrary number of hosts supported - Auto-reauthentication on dropped connection - ensure_index name option 0.30 10 March 2010 - Support BigInt - On 64-bit machines, support 64-bit nums w/out BigInt (Ryan Olson) - Added connection timeout option (Othello Maurer) - Added clarifying docs on fields (Josh Rabinowitz) 0.29 01 March 2010 - Added safe options for remove, update, and ensure_index - Added save method - Fixed bug in UTF8 checking - Fixed serialization of "tie %hash, 'Tie:IxHash'" 0.28 28 Jan 2010 - Fixed undef values (Andrew Bryan) - Added GridFS multi-chunk test using File::Temp (Josh Rabinowitz) - Allow tie(%h, 'Tie::IxHash') to be used as well as Tie::IxHash->new - Fixed GridFS indexes and added chunkSize and uploadDate to metadata - Fixed batch_insert doc (Eric Wilhelm) - Fixed big endian build 0.27 22 Dec 2009 - Indexes: Improved ensure_index syntax, added drop_dups option - Inserts: Added safe insert, checks object is < 4 MB before inserting - Fixed socket closing bug - Big-endian support - $ can be replaced by any character using MongoDB::BSON::char - MongoDB::OIDs: Fixed undefined behavior in serialization (Peter Edwards), added OID::get_time - 5.8.7-compatible memory allocation (Peter Edwards) - Added MongoDB::MaxKey and MongoDB::MinKey support 0.26 09 Nov 2009 - Don't force i386 arch (Needed to compile on OS X with x86_64) (Graham Barr) - Include inc/ dir for CPAN - Memory leak fixes - Added tutorial 0.24 15 Oct 2009 - Fix for uninitialized array values (David Morrison) - Boolean support - Connection memory leak fix - Added MongoDB::Cursor::count 0.23 25 Sept 2009 Changes in this version by Ask Bjørn Hansen, Florian Ragwitz, Orlando Vazquez, Kristina Chodorow, and Eric Wilhelm: - Make inserting double's (floats/NV's), undefined/null, Tie::IxHash values - Query sorting, snapshot, explain, and hint - Added non-unique ensure_index - Added GridFS - Added regex support - find_one takes optional fields parameter - DateTime used for dates - No C++ driver dependency 0.01 06 May 2009 - Initial release. # vim: ts=2 sts=2 sw=2 et: