Marcelo C. de Freitas
marcelo@kow.com.br

Warren W. Gay VE3WWG
ve3wwg@cogeco.ca


With valuable contributions from:

Daniel Norte de Moraes
danielcheagle@gmail.com



APQ REVISION HISTORY:
=====================


APQ 3.2
  - Build system revisited again and unified with the rest of the framework


APQ 3.1
  - Build system revisited




APQ 3.0
  - Project maintainer is Marcelo C. de Freitas now.
  - Modular design, which allows compilation of independent parts.
  - Code clean up.
  - APQ_Boolean is now always treated as INTEGER ( 0 = FALSE, 1 = TRUE )
  - FreeTDS compatibility
  - A more generic ct_lib support (works for SQL Server and should for Sybase too)
  - Error messages has been organized.


APQ 2.2
  - Added Sybase support.
  - Exceptions provide informative messages
  - Documented Set_Port for UNIX (local) connections
  - Begin_Work, Commit_Work, Rollback_Work now implicitly
    call Clear on the Query_Type object, before and after.
  - Set_DB_Name when called when connected, now
    changes the currently used database.   
  - Instance and Set_Instance primitives for databases like
    Sybase, that choose parameter sets.
  - Case policy support for universal SQL code.
  - Value function returning string now always trims
    trailing blanks.
  - Sybase Support Introduces:
      - Cursor support is now included in APQ for databases
        capable of supporting it in the client library (Sybase)
  - PostgresSQL changes:
      - Defaults to Set_Port(C,5432)
  - MySQL changes:
      - Now raises Use_Error if database selection fails
        (used to raise Failed).
      - Bug fix for Reset of connection.
      - Fixed MySQL support of BIT type
      - Accomodated MySQL date format change

APQ 2.1
  - This was the win32 port. A number of changes
    were made to the build scripts to make this
    possible.
  - Now under UNIX/Linux and Win32, it is no
    longer to specify linker library arguments,
    such as -lapq -lpq etc. This is now handled
    by the GNAT pragma Linker_Options() directive.
  - win32_test.adb program was added. This also
    happens to work fine under UNIX/Linux, but
    was created as a simple test for win32.

APQ 2.0
  - This was an extensive release and included many
    changes. The primary change was to include the
    support for the MySQL database in addition to
    PostgreSQL. Now APQ is structured so that one or
    the other, or both may be supported depending
    upon the user's own situation. For example, it
    is now possible to build APQ for MySQL only
    support.

  - Generic database support is now available.
    Through careful use of the APQ top level package
    and functions, it is now possible to write
    database code that does not care which database
    engine is being used. See the chapter "Generic
    Database Programming" in the APQ manual for more
    about this.

  - Many other smaller changes were made that are
    documented in the manual. One major change was
    the renaming of types from PG_Boolean to
    APQ_Boolean (for example). Also PG_Oid has now
    been renamed Row_ID_Type. Package APQ.PostgreSQL
    still maintains subtype definitions of the
    original type names, but the application
    designer is encouraged to change to the new
    names as soon as practical. The support for the
    PG_ names will be dropped in a future release.

APQ 1.93
  - Changed the package hierarchy to place all 
    PostgreSQL packages under the new top level
    package APQ. This is to pave the way for 
    future support of other databases, such as
    MySQL.

APQ 1.92
  - Fixed bug for floating point and fixed point types
    (was rounding the value to the nearest integer,
    due to the fact that the Ada.Text_IO.Float_IO.Put
    call was receiving the argument Aft => 0).
    Omitting the Aft parameter causes the value to be
    formatted as required for the SQL floating/fixed
    point type. The bug was reported by Charles Darcy
    <charlie@mullum.com.au>.

APQ 1.91
--------
  - Connect now issues a SET DATESTYLE TO ISO command
    automatically to assure override of the PGDATESTYLE
    environment variable, that may choose a different
    format. APQ applications must however use ISO
    date formats in order for the APQ date support
    to function correctly.

  - ADA_INCLUDE_PATH=. ADA_OBJECTS_PATH=. is now
    in the make file prior to gnatmake to cause the
    build to ignore any possible prior installed
    version of APQ.

  - Added ./win32 subdirectory, to allow building APQ
    in a win32 environment.

APQ 1.9
-------
  - Fixes a compile error that occurs with the newer
    versions of gcc like gcc (GCC) 3.1.1, and probably
    > gnat 3.12 versions of GNAT.  The problem occurs
    when Ada.Text_IO.Integer_IO is instantiated within
    functions/procedures with the same name (like INTIO),
    provoking duplicate symbol errors in the assembler.
    A work-around has been provided by giving the
    instantiations unique names.

APQ 1.8
-------
  - Added info functions Host_Name, Port, User,
    Password, and Options for database connections.
  - Added a new Connect primitive to allow cloning
    an existing connection.

APQ 1.7
-------
  - Added Open_DB_Trace and Close_DB_Trace procedures
    4 levels of trace :
    - Trace_None
    - Trace_libpq (libpq trace information only)
    - Trace_APQ   (SQL query trace information only)
    - Trace_Full  (both Trace_libpq and Trace_APQ)
  - Trace_APQ output can be fed to psql as straight
    SQL for testing purposes

APQ 1.6
-------
  - Added Set_Rollback_On_Finalize control primitive to
    the Connection_Type object.
  - Added Will_Rollback_On_Finalize query primitive to
    the Connection_Type object.
  - Expanded troubleshooting chapter about transactions
    when programs terminate.

APQ 1.5
-------
  - Fixed Append_Date, Append_Time, and Append_Timestamp
    to put surrounding quotes (') around the value.
  - Added troubleshooting info about failed time values.

APQ 1.4
-------
  - Added Generic_Command_Oid for strong type use of PG_Oid
  - Added Generic_Blob_Open for strong type use of PG_Oid
  - Added Generic_Blob_Oid for strong type use of PG_Oid
  - Added Generic_Blob_Unlink for strong type use of PG_Oid
  - Added Generic_Blob_Import for strong type use of PG_Oid
  - Added Generic_Blob_Export for strong type use of PG_Oid

APQ 1.3
-------
  - Removed two debugging Put_Line calls that should not have
    been part of the final release.
  - Added a few pragma Inline statements to the spec.

APQ 1.2
-------
  - Buffered I/O for blobs giving a major performance boost
  - Blob_Flush procedure added
  - End_of_Blob function added
  - Fixed error recovery in Blob_Create
  - Manual enhancements, including expanded troubleshooting section.

$Source: /cvsroot/apq/apq/HISTORY,v $
