File Release Notes and Changelog

Release Name: libpqtypes v1.5.0

Release Notes

Major release including new API calls.  Removed and it is now just  
Biggest addition is full asynchronous type registration

Change Log

Apr 11, 2011 v1.5.0
- Bumped version to 1.5.0 due to many API removals and additions.
- Added -avoid-version and -no-undefined to
- Added PQinitTypes to replace PQtypesRegister.  The new function
  adds no new behavior, just a name change.
- Deprecated PQtypesRegister, use PQinitTypes in its place.
- PQclearTypes was added to allow one to clear all registered type handlers.
- Added an internal API pqt_cleartypes since clearing the type data
  is now called from PQclearTypes and pqt_eventproc.
- Added a PQclearSpecs function that allows clearing all prepared specifiers
  in a single call.  Currently, specs can be cleared one at a time by
  setting PQspecPrepare's 3rd 'format' argument to NULL.  This is useful
  but makes clearing all specs difficult because it is not always known
  what specs have been prepared by all modules of an application.
- Removed "automatic" re-registering of types during PQresetXXX.  This
  fails miserably during asynchronous resets.  Replaced with the
  folowing call sequence: PQresetXXX, PQclearTypes, PQregisterTypes.
  NOTE: It is not required to re-register type handlers after a PQresetXXX.
    It is only useful if there is concern that registered types may have
    gone stale.
  WARNING: If an application is reliant upon automatic re-registration of
    type handlers during a PQresetXXX, you will have to update your
    code to manually do a PQclearTypes followed by PQregisterTypes just
    after the reset call.
- Removed the orig_xxx members and regtype from PGtypeHandler structure.
  These members were used by the reset event which was yanked.
- Finally 86'd PQregisterTypeHandler, which has been deprecated since
  v1.4.0, around 18 months as of Apr 2011.
- Updated copyright date from 2009 to 2011, affected source code and
  man pages.
- Updated AUTHORS file to include a list of maintainers and some verbage.
- Deprecated PQregisterSubClasses, PQregisterComposites and
  PQregisterUserDefinedTypes in favor of PQregisterTypes.  This new
  function takes a 'which' argument that indicates if PQT_SUBCLASS,
  PQT_COMPOSITE or PQT_USERDEFINED types are being registered.  This
  function provides full support for asynchronous type registration via
  a simple 'async' boolean argument.  The typical PQconsumeInput, PQisBusy
  and PQgetResult should be used to obtain a result.  After a result is
  obtained, the new PQregisterResult function needs to be called
  to complete the registration.
- Added PQregisterResult which registers the types found within
  the result set.  Added to support asynchronous type registration and
  to avoid type lookups for every new connection by caching the PGresult
  type data for use with this function.
- Add PQregisterTypes.3 man page and added it to the make system install.
- Add PQregisterResult.3 man page and added it to the make system install.
- Removed referneces in documentation and code examples to PQregisterSubClasses,
  PQregisterComposites and PQregisterUserDefinedTypes.  Replaced with
  new PQregisterTypes call.
- Regression test now uses PQregisterTypes.  NOTE: no regression test
  for PQregisterResult or asynchronous type registration yet.
- Marked PQregisterSubClasses.3, PQregisterComposites.3 and
  PQregisterUserDefinedTypes.3 man pages as deprecated.  They are still
  installed with a `make install` and will be until removed.
- Added PQparamDup, which given a PGparam will make an exact duplicate.
  This is useful in cases where you want to queue qeuries to execute
  at a later time, like a connection pooler.  The problem is PGparamCreate
  requires a connection object, which may not be available when attempting
  to enqueue a query with its PGparam object.  Instead, a PGparam object
  can used for the sole purpose of creating duplicates while there are
  no available PGconn objects.
- Updated PGparamCreate man page to include documentation about PGparamDup.
Powered By FusionForge