# Change history for the MongoDB Perl driver:
v0.708.3.0 2015-07-14 15:42:16-04:00 America/New_York
[Bug fixes]
- PERL-543 fix serialization of undef in tied hashes
- PERL-553 fix duplicate _id bug with Tie::IxHash and array reference
documents with an existing _id
- Fix BSON tests on Perl with long doubled enabled
v0.708.2.0 2015-06-05 16:39:00-04:00 America/New_York
[Bug fixes]
- PERL-536 fix GridFS to stop throwing an error when a known empty file has
no chunks; errors will still be thrown if a non-empty file has no chunks.
- PERL-541 fixed remove() to respect MongoClient write concern
[Documentation]
- PERL-525 updated legacy author emails in docs and metadata
v0.708.1.0 2015-04-29 16:51:52-04:00 America/New_York
[Bug fixes]
- PERL-479 retrieving a GridFS file now throws an error if no chunks exist
instead of returning an empty string
[Removals]
- PERL-496 The $MongoDB::BSON::use_boolean never worked; BSON boolean values
were always deserialized as boolean.pm objects. Rather than
"fix" this and break people's code, the option has been removed
and documented as such.
v0.708.0.0 2015-01-20 16:57:11-05:00 America/New_York
[Additions]
- Added 'get_namespace' method (and 'ns' alias) to MongoDB::MongoClient
for getting a collection directly without an intermediate database object.
- Added 'db' and 'coll' aliases for 'get_database' and 'get_collection'
[Bug fixes]
- PERL-489 references to scalars with both number and string slots internally
would crash on BSON encoding, rather than encode the string part as a
binary.
[Diagnostics]
- Added parenthetical note to "can't get db response" errors to disambiguate
where they occur.
v0.707.2.0 2014-12-22 05:35:31-05:00 America/New_York
[Bug fixes]
- PERL-476 fixed getting lists of collections and indices for changes in
MongoDB 2.8-rc3 and later.
v0.707.1.0 2014-12-10 12:50:45-05:00 America/New_York
[Bug fixes]
- PERL-465 allowed arbitrary options on index creation
- Fixed t/database.t for change in error message for missing commands
- Fixed undef warning from get_indexes on older MongoDB versions
[Prerequisites]
- Removed Data::Types as a test dependency as it was barely used
and not necessary
v0.707.0.0 2014-11-12 15:04:46-05:00 America/New_York
[Additions]
- Supports MongoDB 2.8-RC0; in addition to prior feature support, this release
fixes tests that were broken against non-default storage engines
[Bug fixes]
- PERL-454 suppress warnings storing datetimes at the epoch
v0.706.0.0 2014-10-28 11:30:42-04:00 America/New_York
[*** Deprecations ***]
- PERL-425 the 'drop_dups' indexing option is deprecated because it is
ignored as of server version 2.7.5
[Additions]
- PERL-408 added support for SCRAM-SHA-1 (for MongoDB 2.7.8+)
[Bug fixes]
- PERL-409 fixed compilation on MSWin32 using the MinGW compiler
- Fixed compilation errors on MSWin32 using the MSVC compiler
- Fixed construction of Makefile LIBS argument for some platforms
- Fixed parallel scan and explain tests for changes in the MongoDB 2.7.x
development series
[Diagnostics]
- Passing the "ssl" parameter to MongoDB::MongoClient will now warn if SSL
support is not available.
[Documentation]
- Revised "run_command" documentation to explain that array references or
Tie::IxHash should be used.
[Prerequisites]
- Added dependency on Authen::SCRAM::Client 0.003
- Removed (test) dependency on File::Slurp
- Minimum required versions of configuration dependencies Path::Tiny and
Config::AutoConf are now enforced in the code, not just specified in
META.json
[~ Internal changes ~]
- PERL-433 uses the listCollections command if available (MongoDB 2.7.8+)
- PERL-434 uses the listIndexes command if available (MongoDB 2.7.8+)
- PERL-436 bumped supported maxWireProtocolVersion to 3 (MongoDB 2.7.8+)
v0.705.0.0 2014-09-09 10:04:59-04:00 America/New_York
[Additions]
- PERL-406 allow count() to use hints
[Prerequisites]
- Clarified that Test::Deep 0.111 is required rather than any version
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: