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

Reply via email to