Author: wyoung
Date: Thu May 13 00:38:21 2010
New Revision: 2629
URL: http://svn.gna.org/viewcvs/mysqlpp?rev=2629&view=rev
Log:
Initial version of ChangeLog for 3.1.0. Not yet released.
Modified:
trunk/ChangeLog
Modified: trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/mysqlpp/trunk/ChangeLog?rev=2629&r1=2628&r2=2629&view=diff
==============================================================================
--- trunk/ChangeLog (original)
+++ trunk/ChangeLog Thu May 13 00:38:21 2010
@@ -1,3 +1,199 @@
+3.1.0, 2010.05.12 (r2629)
+
+ o Added Query::insertfrom(), plus associated classes
+ NoTransactions, SQLStream, and the InsertPolicy hierarchy.
+ Also adds examples/ssqls6.cpp, which shows how to use this
+ new feature. (Thanks for this feature go to Rick Gutleber,
+ except for RowCountInsertPolicy, by me.)
+
+ o Default MySQL version now 5.1, having become GA since 3.0.9.
+
+ o Added comparison operators to tiny_int<T>. Patch by Edward
+ Diener.
+
+ o Calling DBDriver::disconnect() twice no longer calls
+ mysql_close() twice.
+
+ o Abstracted the command line parsing mechanism used by the
+ examples today, and other MySQL++ programs in the future.
+ It is based on the platform version of getopt() if available,
+ or on a public-domain implementation of getopt() built into
+ MySQL++ itself otherwise. This new mechanism provides a nice
+ C++ interface to getopt(). It's documented in the refman --
+ see the CommandLineBase class -- but it's in the newly created
+ mysqlpp::internal namespace, which means we don't promise any
+ sort of ABI or API stability for it. You're welcome to use it
+ in your own programs, but expect it to change without warning.
+
+ o Added is_null() member to SQLTypeAdapter, which just provides
+ access to the method of the same name on the underlying
+ SQLBuffer. Among other things, this lets you retrieve a
+ nullable column from the DB, then re-insert a value from that
+ column back into the DB via a template query without explicit
+ checks for null-ness.
+
+ o Above allows inserting a potentially NULL MySQL++ field from
+ a result set back into a template query. It wasn't working
+ before even though SQLString carries the "is null" flag,
+ and it's being copied into the STA object for populating the
+ template query because Query::proc() wasn't checking the null
+ flag, because STA didn't provide access to it.
+
+ o querydef.pl and ssqls.pl now generate a #define constant
+ containing the value for the maximum number of parameters/data
+ members you can use with those mechanisms with the headers
+ as generated. More useful with template queries than SSQLS,
+ but did it to both just to be consistent.
+
+ o Skeletal support for SSQLS v2. Doesn't do anything useful
+ yet, it just got caught up in the need to release 3.1 as-is.
+
+ o Initializing a SQLTypeAdapter with an FP type equal to
+ infinity or NaN results in SQL null if the type is also nullable,
+ or 0 otherwise. Previously, we got an implementation-defined
+ string, which could give invalid SQL, or could give 0, a
+ different value from NaN, infinity, or SQL null. This does
+ collapse the notions of NaN and infinity, but the MySQL
+ reference manual doesn't say how you're supposed to preserve
+ these differences.
+
+ o Removed the dependency of stadapter.h on sql_types.h, just to get
+ sql_tinyint*. #including tinyint.h instead, and using equivalent
+ types to what sql_types.h defines. This is necessary because
+ sql_types.h should be one of the last things included from
+ mysql++.h, so it can define sql_* equivalents for everything
+ else in MySQL++, which means all those other things need to be
+ #included by that point.
+
+ o Defined *_null variants for every sql_* typedef, wrapping
+ all those earlier types in Null<>.
+
+ o Changed the examples to use these types instead of Null<>.
+ They're shorter and more closely match the corresponding
+ SQL code.
+
+ o Added ConnectionPool::safe_grab(), a wrapper around grab()
+ and the new (private) remove(it) method, pinging the connection
+ before returning it. If the ping fails, we remove it from the
+ pool and go back around again, giving the best possible chance
+ that the connection we return will be usable. Beware that this
+ mechanism provides no protection against race conditions!
+
+ o Added ConnectionPool::remove(), which takes a Connection*,
+ finds it in the pool, and passes the iterator pointing to it
+ to the just-added private remove() variant.
+
+ o Added ConnectionPool::exchange(), which wraps remove()
+ and grab().
+
+ o Added a few missing MYSQLPP_EXPORTs to operator<<()s for
+ manipulators, to allow use of them with VC++ in the DLL case,
+ and probably MinGW, too. Probably these functions were inline
+ at one point, then got moved into manip.cpp. Problem reported
+ and the fix diagnosed by Radim Dostál. Actual patch by me.
+
+ o Added a feature to Transaction, where it can send a SET
+ TRANSACTION ISOLATION LEVEL query before it starts the
+ transaction proper, affecting the isolation level and the scope
+ of that change.
+
+ o The "find MySQL++" autoconf macro now searches for the library in
+ lib64 subdirectories everywhere it also looks in lib. (We did
+ this for the C API finder macro many releases ago, and only
+ neglected to do it for this macro because it's not used by
+ MySQL++ itself, just provided as a courtesy to MySQL++ users
+ that also use autoconf.)
+
+ o Improved mysql_loc.m4 and mysql++.m4 macros to be more useful
+ in a third-party project. No net effect on MySQL++ itself.
+
+ o Adding backticks around table and column identifiers in all
+ code paths exercised by dtest. There are some others remaining,
+ particularly things like Row::field_list(). Thanks for this
+ patch go to Adrian Cornish.
+
+ o Fixed a bad pointer access crash in Connection::set_option()
+ triggered when the option set call fails. Thanks for this
+ patch go to Kevin Regan.
+
+ o Moved private FieldNames::str_to_lwr() method out into its
+ own module, in the new mysqlpp::internal namespace, so other
+ modules can use it. Also added an overload for this new global
+ method taking std::string instead of char*.
+
+ o userman build process can now find FOP on Ubuntu/Debian systems
+ where FOP was installed from the package repository instead of
+ by hand.
+
+ o Dropped custom.h backwards-compatibility header.
+
+ o ReconnectOption can now only be set after a connection is up
+ in versions 5.0.13 (where the option was added to the C API)
+ and 5.1.5, as the option is reset on connection establishment
+ before 5.1.6.
+
+ o Worked around a weakness on Windows that caused problems in code
+ with a connect(), disconnect(), connect() call pattern, when
+ also using a named pipe to connect to the DB. (There never
+ has been a problem with this on other platforms or with other
+ IPC mechanisms.)
+
+ o No longer trying to make the C API library read from a "my"
+ options file before connect. It does that by default, and
+ the file is supposed to be .my.cnf anyway.
+
+ o No longer generating refman.pdf. It's difficult to generate
+ properly on some platforms, and isn't all that useful anyway
+ compared to the HTML version, which builds properly everywhere.
+
+ o Reworked the load_jpeg example code for clarity, extracting
+ load_jpeg_file() routine as an implementation detail and
+ making that use the C++ stringstream "slurp into string" idiom
+ instead of allocating a C char buffer and copying that into
+ a std::string.
+
+ o Better handling of 1-parameter template queries
+
+ o Restored support for repeating query parameters. Apparently
+ you could say things like "stuff %0 morestuff %0" in v2.1,
+ but this was broken by initial 1-parameter fixes in v2.2.
+ This patch reportedly lets us have both things at once. Thanks
+ for this and previous item go to Martin Gallwey.
+
+ o Added examples/tquery4.cpp based on test code and feedback
+ from Martin.
+
+ o Query copy ctor and assignment operator now perform deeper
+ copies, so you can pass Query objects around in certain ways
+ that used to not be allowed. Thanks for this patch go to Steven
+ Van Ingelgem.
+
+ o Added ScopedConnection class. Initial version by Joel Fielder,
+ lots of changes by me. Using it instead of explicit safe_grab()
+ and release() calls on the pool in examples/cpool.cpp.
+
+ o Added -f N support to lib/*.pl to allow overriding the default
+ limit of 25 fields for tqueries and SSQLSes. Also added
+ --with-field-limit option to configure script so you can give
+ both -f options at once during the build process.
+
+ o Put Comparable class in namespace mysqlpp, where it should always
+ have been. Aside from being just plain wrong, it caused
+ problems with Boost if you used its Comparable class and hoist
+ them both into the global namespace. Thanks for this patch go
+ to Michael Radzewitz.
+
+ o Added Query::replace(iter, iter), on the model of existing
+ insert(iter, iter). Thanks for this patch go to David Walthour.
+
+ o Lots of warning squishers and platform update tracking
+ enhancements. Most by me, some by Adrian Cornish.
+
+ o Various enhancements to the test suite.
+
+ o Many, many documentation enhancements.
+
+
3.0.9, 2009.02.04 (r2442)
o It is now possible to use Null<T> objects in const context.
_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits