Author: wyoung
Date: Thu May 13 22:20:00 2010
New Revision: 2632

URL: http://svn.gna.org/viewcvs/mysqlpp?rev=2632&view=rev
Log:
Reorganized and rewrote some of 3.1.0 section of ChangeLog for clarity.

Modified:
    trunk/ChangeLog

Modified: trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/mysqlpp/trunk/ChangeLog?rev=2632&r1=2631&r2=2632&view=diff
==============================================================================
--- trunk/ChangeLog (original)
+++ trunk/ChangeLog Thu May 13 22:20:00 2010
@@ -1,136 +1,92 @@
-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
+3.1.0, 2010.05.13 (r2632)
+
+    o Default MySQL version now 5.1, having entered GA since 3.0.9.
+
+    o Lots of platform updates tracked, lots of warnings from newer
+      compilers squished.  Most by me, some by Adrian Cornish.
+
+    o Added Query::insertfrom(), plus associated classes SQLStream,
+      NoTransactions, 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 Added comparison operators to tiny_int<T>.  Thanks for this patch
+      go to Edward Diener.
+
+    o Added SQLTypeAdapter::is_null().  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.
+      checks for null-ness; it will do the right thing now.
+
+    o Added -f flags to lib/*.pl header file generating scripts to
+      allow overriding the default limit of 25 fields for tqueries
+      and SSQLSes without having to edit the file, as in previous
+      versions of MySQL++.  Also added --with-field-limit option to
+      the configure script so you can give both -f options at once
+      during the build process.  This latter is especially useful
+      for automated binary package builders.
+
+    o The file lib/querydef.h (generated by lib/querydef.pl) now
+      defines the MYSQLPP_TQUERY_MAX_PARAMETERS macro, giving the
+      maximum number of parameters the functions in the generated file
+      allow for template queries.  Similarly, lib/ssqls.h (generated
+      by lib/ssqls.pl) defines MYSQLPP_SSQLS_MAX_MEMBERS.
+
+    o Added ConnectionPool::safe_grab(), which pings the grabbed
+      connection before returning it.  If the ping fails, we remove
+      the dead connection from the pool and try again.  This doesn't
+      eliminate the possibility of returning a dead connection;
+      there is no protection against race conditions.  It is merely
+      a best-effort attempt.
+
+    o Added ConnectionPool::remove(Connection*), which removes a
+      connection from the pool.
 
     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
+    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 Query::replace(iter, iter), on the model of existing
+      insert(iter, iter).  Thanks for this patch go to David Walthour.
+
+    o Query copy ctor and assignment operator now perform deeper
+      copies, so you can pass Query objects around in certain ways
+      that used to cause crashes.  Thanks for this patch go to Steven
+      Van Ingelgem.
+
+    o Defined *_null variants for every sql_* typedef, wrapping
+      all those earlier types in Null<>.  All example programs now use
+      these types instead of explicit Null<>-wrapped types.
+
+    o Created a C++ command line parsing mechanism for the examples
+      today, and for programs coming in the future.  It uses the
+      platform version of getopt() if available, substituting a
+      public-domain implementation that gets built into MySQL++
+      itself otherwise.  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 a few missing MYSQLPP_EXPORTs to operator<<()s for stream
+      manipulators, to allow their use when MySQL++ is built as a DLL.
+
+    o Added 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 Calling DBDriver::disconnect() twice no longer calls
+      mysql_close() twice.
 
     o Worked around a weakness on Windows that caused problems in code
       with a connect(), disconnect(), connect() call pattern, when
@@ -138,13 +94,62 @@
       has been a problem with this on other platforms or with other
       IPC mechanisms.)
 
+    o Initializing a SQLTypeAdapter with a floating-point value
+      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 that it can define sql_* equivalents for everything
+      else in MySQL++, which means all those other things need to be
+      #included by that point.
+
+    o The "find MySQL++" autoconf macro (config/mysql++.m4) now
+      searches for the library in lib64 subdirectories everywhere it
+      also looks in lib.  We did this for the C API finder macro way
+      back in MySQL++ 2.2.0, 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 Also improved the "find C API" macro (config/mysql_loc.m4)
+      so it, too, is more useful in third-party projects.
+
+    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 when installed from
+      the standard Ubuntu/Debian package repository.
+
+    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 Dropped custom.h backwards-compatibility header.  (Deprecated
+      over a year ago in MySQL++ 3.0.0.)
+
+    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 ReconnectOption behavior now knows about a fix in MySQL 5.1.6 and
+      newer that lets you set it either before the connection is up,
+      or after.  If you try to set this option when MySQL++ is built
+      against earlier versions of the MySQL C API, it will refuse to
+      set the option because it knows the option will be reset when
+      the connection comes up.
+
     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
@@ -152,42 +157,24 @@
       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.
+      This patch reportedly lets us have both things at once, and
+      improves handling of 1-parameter template queries in general.
+      Thanks for this patch 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
+      have been.  Aside from being just plain wrong, it caused a
+      conflict 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 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 Various enhancements to the test suite.
 


_______________________________________________
Mysqlpp-commits mailing list
[email protected]
https://mail.gna.org/listinfo/mysqlpp-commits

Reply via email to