Chinaunix首页 | 论坛 | 博客
  • 博客访问: 818700
  • 博文数量: 756
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:40
文章分类

全部博文(756)

文章存档

2011年(1)

2008年(755)

我的朋友

分类:

2008-10-13 16:11:16

2.0.6, 2005.09.28 (r1123)

o Fixed makemake.bat so it works on cmd.exe, not just 4NT.

o Documentation fixes.


2.0.5, 2005.09.13 (r1114)

o Visual C++ build now requires GNU make.  It is tested to work
  with either the Cygwin or the MinGW versions.  The previous
  version of MySQL++ used nmake.  This change enabled the
  following features:

o Debug and Release versions are both built into
  separate subdirectories.

o Dependency tracking for release version works
  correctly now.  (Previously dependencies worked
  only for debug version.)

o 'make clean' removes release version binaries
  in addition to debug versions.

o MinGW makemake support updated to support new release/debug
  subdirectory system. This is probationary support, since
  this code currently can't be built as a DLL. As a result,
  it is no more useful than the Cygwin version, for licensing
  reasons.

o Several fixes to allow building on Solaris 8.  These fixes may
  also help on other SVR4-derived systems.

o Removed Borland C++ makemake support, because this version
  of the library does not work completely, and there seems
  to be almost no user interest in fixing it.
 
o Clarified "Handling SQL Nulls" section of user manual's
  Tutorial chapter.


2.0.4, 2005.08.29 (r1076)

o Made mysql_shutdown() second parameter autoconf check less
  sensitive to compiler pedantry.

o VC++ library Makefile is now smart enough to re-create the
  import library, if it is deleted while leaving the DLL alone.

o Added libmysqlclient.def to tarball.

o Reworked most of the top-level README* files.

o Renamed LGPL file to LICENSE.


2.0.3, 2005.08.25 (r1060)

o Visual C++ makemake system updated to build both debug and
  release versions of library DLL.

o Fixed bug in simple1 example that caused crashes on Windows.

o Doing UTF-8 to ANSI text translation in simple examples now.

o Previous two releases built libmysqlpp with wrong soname on
  autotools-based systems.  Fixed.


2.0.2, 2005.08.18 (r1050)

o Fixes to makemake system for cmd.exe.

o Fixed the case where the system's C++ library includes an slist
  implementation in namespace std.


2.0.1, 2005.08.17 (r1046)

o Added new simple1 example, showing how to retrieve just one
  column from a table.  Old simple1 is now called simple2, and
  simple2 is likewise shifted to simple3.

o Added custom6 example, showing how to do the same thing with
  SSQLS.

o Updated user manual to cover new examples.

o Was accidentally shipping Subversion crap with tarball.  Fixed.


2.0.0, 2005.08.16 (r1031) The "Excess Hair Removal" release

THIS IS NOT A DROP-IN REPLACEMENT FOR MySQL++ v1.7!

At minimum, you will have to recompile your program against
this library.  You may also have to make code changes.
Please see the "Incompatible Library Changes" chapter of
the user manual for a guide to migrating your code to this
new version:



o The library's shared object file name (soname) scheme has
  changed.  (This mainly affects POSIX systems.)
 
  The soname for the last 1.7.x releases of MySQL++ was
  libmysqlpp.so.4, meaning the fourth version of the library's
  application binary interface (ABI).  (The first ABI version
  in this scheme was that provided by 1.7.9.)  MySQL++
  2.0.0's soname is libmysqlpp.so.2.0.0.  Since the dynamic
  linker setup on some systems will create a symlink to
  that file called libmysqlpp.so.2, it's possible that this
  library could be confused with that for MySQL++ 1.7.19
  through .21, which also used this number.  Do not install
  this library on a system which still has binaries linked
  against that version of the library!

  The new scheme is {ABI}.{feature}.{bug fix}.  That is,
  the first number changes whenever we break the library's
  binary interface; the second changes when adding features
  that do not break the ABI; and the last changes when the
  release contains only internal bug fixes.  This means
  that we will probably end up with MySQL++ 3.0 and 4.0 at
  some point, so there will be further soname conflicts.
  Hopefully we can put these ABI changes off long enough
  to avoid any real problems.

o autoconf now installs headers into $prefix/include/mysql++,
  instead of $prefix/include.  If you were using the
  --includedir configure script option to get this behavior
  before, you no longer need it.

o Linux binary RPMs will henceforth include only the
  libmysqlpp.so.X.Y.Z file, and create any short names
  required, to allow multiple versions to be installed at
  once.  Currently, you cannot install two MySQL++ library
  RPMs at once, because they both have /usr/lib/libmysqlpp.so.X,
  for instance.

o Replaced the Visual C++ and Borland C++ project files with
  a new "makemake" system, which creates Makefiles specific
  to a particular toolchain.  This new mechanism also supports
  MinGW and generic GCC-on-*ix.  This was done partly to reduce
  the number of places we have to change when changing the
  file names in MySQL++ or adding new ones, and partly so we're
  not tied to one particular version of each of these tools.

o VC++ Makefiles create a DLL version of the library only
  now, so there's no excuse for LGPL violations now.
  This same mechanism should make DLL builds under other
  Windows compilers easy.

o Added Connection::enable_ssl(), which enables encrypted
  connections to the database server using SSL.

o Connection::create_db() and drop_db() now return true on
  success, not false.

o Connection::create_db() and drop_db() use Query::exec()
  now, for efficiency, rather than Query::execute().

o Removed Connection::infoo().  Apparently just there to
  save you from a typo when calling the info() method, since
  it was a mere alias.

o Renamed Connection::real_connect() to connect(), gave
  several more of its parameters defaults, and removed old
  connect() function.  Then changed user manual and examples
  to use new APIs.

o Replaced Connection::read_option() with new set_option()
  mechanism.  The name change matches the method's purpose
  better.  Functional changes are that it returns true on
  success instead of 0, it supports a broader set of options
  than read_option() did, and it enforces the correct option
  argument type.

o You can now call Connection::set_option() before the
  connection is established, which will simply queue the option
  request up until the connection comes up.  If you use this
  feature, you should use exceptions, because that's the only
  way an option setting failure can be signalled in this case.

o Removed query-building functions (exec*(), store*(),
  use()) from class Connection, and moved all the implementation
  code to class Query.  Query no longer delegates the final
  step of sending the query to the database server to
  Connection().

o Added Connection::enable_ssl(), for turning on SSL support on
  a connection.

o Extracted exception disabling mechanism out of the many
  classes that had the feature into a new OptionalExceptions
  base class, which all classes having this feature now
  derive from.  Also, removed all per-method exception
  handling flags.  Finally, added NoExceptions class.  With
  all of these changes, there is now a common way to disable
  exceptions with fine granularity on all objects that
  support the feature.

o All custom MySQL++ exceptions now derive from the new
  Exceptions class.  This regularizes the exception interface
  and allows you to use a single catch() block if you want.

o The "throw exceptions" flag is passed from parent to child
  in all situations now.  (Or if not, please report it as
  a bug.) This fulfills a promise made in the v1.7.9 user
  manual, with the cost being that some programs will see
  new exceptions thrown that they're not expecting.

o Added a bunch of new exception types: BadOption,
  ConnectionFailed, DBSelectionFailed, EndOfResults,
  EndOfResultSets, LockFailed, and ObjectNotInitialized.
  Some of these replace the use of BadQuery, which in v1.7.x
  was a kind of generic exception, thrown when something more
  specific wasn't available.  Beware, this means that programs
  may start crashing after recompiling them under v2.0 due to
  uncaught exceptions, if they were only trying to catch BadQuery.

  There are additional instances where the library will
  throw new exceptions.  One is when calling a method that
  forces the internals to use an out-of-bounds index on a
  vector; previously, this would just make the program
  likely to crash.  Another is that the library uses the
  BadFieldName exception -- created in v1.7.30 -- in more
  apropos situations.

o Renamed SQLQueryNEParms to BadParamCount, to match naming
  style of other concrete exception types.

o Extracted lock()/unlock() functions from Connection and
  Query classes into a new Lockable interface class.  Locking
  is implemented in terms of a different class hierarchy, Lock,
  which allows multiple locking strategies with a single ABI.

o Removed ResUse::eof().  It's based on a deprecated MySQL
  C API feature, and it isn't needed anyway.

o Removed arrow operator (->) for iterator returned by Fields,
  Result and Row containers.  It was inherently buggy, because
  a correct arrow operator must return the address of an
  object, but the underlying element access functions in these
  classes (e.g. at()) return objects by value, of necessity.
  Therefore, this operator could only return the address of
  a temporary, which cannot be safely dereferenced.

o Returned Row subscripting to something more like the
  v1.7.9 scheme: there are two operator[] overloads, one for an
  integer (field by index) and another for const char* (field
  by name).  lookup_by_name() has been removed.  Because row[0]
  is ambiguous again, added Row::at() (by analogy with STL
  sequence containers), which always works.

o Collapsed two of the Row::value_list*() overloads into
  two other similar functions using default parameters.
  This changes the API, but the removed functions aren't
  used within the library, and I doubt they are used outside,
  either.

o Merged RowTemplate into Row.

o Merged SQLQuery class into Query class.

o Query is now derived from std::ostream instead of
  std::stringstream, and we manage our own internal string
  buffer.

o Moved SQLParseElement and SQLQueryParms into their own
  module, qparms.

o Added multiple result set handling to Query. MySQL 4.1
  and higher allow you to give multiple SQL statements in a
  single "store" call, which requires extensions to MySQL++
  so you can iterate through the multiple result sets. Also,
  stored procedures in MySQL 5.0 reportedly return multiple
  result sets. Thanks for the initial patch go to Arnon Jalon;
  I reworked it quite a bit.

o Query::storein*() now supports more varieties of the
  nonstandard slist comtainer. (Singly-linked version of
  STL std::list.)

o Template query mechanism and user manual had several
  mismatches.  Made manual match actual behavior, or
  made library match documented behavior, as apropriate.
  Initial patch by J眉rgen MF Gleiss, with corrections and
  enhancements by Warren Young.

o Collapsed mysql_* date and time base classes' methods and
  data into the subclasses.  Also, DateTime no longer derives
  from Date and Time; you could get away with that in the
  old hierarchy, but now it creates an inheritance diamond,
  and allows unsupported concepts like comparing a Time to
  a DateTime.

o Removed "field name" form of Row::field_list().  It was
  pretty much redundant -- if you have the field names, why
  do you need a list of field names?

o ColData can convert itself to bool now.  Thanks for this
  patch go to Byrial Jensen.

o Removed simp_list_b type; wasn't being used, and doesn't
  look to be useful for end-user code.

o Several methods that used to take objects by value now
  do so by const reference, for efficiency.

o Several variable and function renamings so that MySQL++
  isn't needlessly tied to MySQL.  Even if we never make
  the library work with other database servers, there's
  little point in tying this library to MySQL blindly.

o Renamed all private data members of MySQL++ classes to
  have trailing underscores.

o 'private' section follows 'public' section in all classes
  now.

o Removed mysql++.hh and sqlplus.hh backwards-compatibility
  headers.

o Added copy ctors to Date/Time classes so that they will
  work in SSQLS under GCC 4.0.0.  Without these, the compiler
  couldn't make the conversion from raw MySQL row data.

o Fixed a bunch of GCC 4.0 pedantic warnings: added virtual
  dtors to all base classes, calling base class ctors from leaf
  classes, etc.

o All warnings fixed under VC++ at warning level 3.  (Mostly
  harmless signedness and integer conversion stuff.)

o Updated LGPL license/copyright comments at the top of
  several files to use FSF's new physical address.

o Relicensed user manual under a close variant of the Linux
  Documentation Project License, as it's designed for
  documentation, which the LGPL is not.  Permission for this
  received from Kevin Atkinson and MySQL AB.

o Added ABI and API breakages chapter to user manual.  It
  is basically a subset of this ChangeLog, with only the
  information an end-user must know when migrating between
  versions.

o Reworked user manual's DocBook code quite a bit after
  reading Bob Stayton's book "DocBook XSL" 3/e.  Better handling
  of stylesheets, taking advantage of some superior DocBook
  features, prettier output (especially the HTML version), etc.

o Rewrote doc/userman/README to make it clearer how to get
  started contributing to the user manual.  It's essentially a
  "getting started with DocBook" guide now!

o Lots of small text improvements to user and reference
  manuals.  Aside from the obvious tracking of library changes,
  made a bunch of minor style and clarity improvements.

o Added CSS stylesheets for userman and refman to
  make the HTML versions of each a) not ugly; and b) match
  tangentsoft.net.  (Yes, some may say that these are incompatible
  goals....)

o Standardized exception handling code in the examples that
  use it.

o Fixed a potential memory leak due to exceptions thrown from
  ResUse.  Thanks for this patch go to Chris Frey.

o Using new "no exceptions" feature of library in simple1
  example, so it is now truly simple.

o simple1 example no longer depends as much on util module, so
  that all of the important code is in one place.  Makes
  learning MySQL++ a little less intimidating.

o Added new simple2 and usequery examples, to demonstrate
  the proper way to handle a "use" query, with exceptions
  disabled, and not, respectively.  Added them to the user
  manual, in the appropriate place.

o Refactored the "print stock table" example functions
  again, to make code using them clearer.

o UTF-8 to UCS-2 handling in examples is now automatic on
  Windows.

o Removed debug code from Windows Unicode output examples
  that slipped into previous release.

o resetdb example is now clearer, and more robust in the
  face of database errors.

o Simplified connect_to_db() in examples' util module.

o Added sample autoconf macro for finding MySQL++ libraries, for
  people to use in their own autotools-based projects.

o Lots and lots of minor cleanups not worth mentioning
  individually...

--------------------next---------------------

阅读(640) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~