This is the pgtcl-ng Source Release NEWS file
Last updated for pgtclng-1.6.0 on 2007-01-15
The project home page is: http://pgfoundry.org/projects/pgtclng/
-----------------------------------------------------------------------------

* 2007-01-15    pgtcl-ng 1.6.0 Released

This release contains the new features described in "pgtcl-ng 1.6.0 Beta
version" below, plus the following:

New command: pg_sendquery_prepared
This executes a pre-prepared query (like pg_exec_prepared), but is
asynchronous like pg_sendquery.

New command: pg_sendquery_params
This executes a parameterized query (like pg_exec_params), but is
asynchronous like pg_sendquery. Note: pg_sendquery itself supports
parameterized queries, but only for untyped TEXT parameters.
pg_sendquery_params supports binary parameters and binary return type.


* 2006-12-13    pgtcl-ng 1.6.0 Beta version

This release contains two new features for asynchronous queries.

1. Asynchronous parameterized queries:

The command pg_sendquery now accepts optional arguments which are used
as parameter substitutions in the SQL query. For example:
     pg_sendquery $connection "SELECT * FROM mytable WHERE i=\$1" $var
The parameter value ($var) is sent to the PostgreSQL backend along with the
query as a parameterized query. This works like pg_exec with parameters,
but for asynchronous queries.  This idea was copied from the Pgtcl project,
by Brett Schwarz and Karl Lehenbauer.


2. Event-driven asynchronous query results:

A command can be registered to execute when a result is ready from an
asynchronous query. This provides event-driven asynchronous queries.
(Before this was added, the choice was to busy-wait or block.)

The command to register a result callback is:
     pg_result_callback $conn ?callbackCommand?
If the callback command is provided, a new result callback is established.
Only one result callback can be active at any time.
Synchronous query commands are not allowed when a result callback is in place.
A result callback will be removed if any of the following occurs:
  (a) The callback command executes because the result is ready.
  (b) pg_getresult is called (which blocks until a result is ready).
  (c) pg_cancelrequest is called (canceling the asynchronous query).
  (d) The connection is closed.
  (e) pg_result_callback is called. (Without a callbackCommand, to
      just remove the callback, or with a callbackCommand to replace the
      callback.)
To use event-driven asynchronous query results, first establish the
callback, then issue the query with pg_sendquery.

Suggested by Kyle Bateman (kyleb), with the initial implementation designed
and written by Miguel Sofer (msofer).


* 2006-08-30    pgtcl-ng 1.5.3 Released

This is the first release on pgfoundry. (Prior releases were on gborg.)
This release also contains the following changes:
   1. Bug fix for character set encoding during COPY FROM/TO
   2. Replaced build system using newer TEA 3.5. Other build fixes.


* 2004-11-07    pgtcl-ng 1.5.2 Released

This is a minor release. There are two new commands suggested by levanj:
   1.  New command pg_escape_bytea escapes a binary string for
       use in an SQL statement for a BYTEA type column.
   2.  New command pg_unescape_bytea un-escapes a BYTEA column value
       from a query result and returns a Tcl binary string.

For better compatibility with Gborg pgtcl, which implemented the -errorField
feature of pgtcl-ng/pgin.tcl in a different way:
   3.  The error code field name is now optional to pg_result -errorField,
       and can also be supplied to pg_result -error. This means the two
       subcommands are now identical. With no error code field name argument,
       they return the default message form. Also, extended the list of
       valid field code names to be case insensitive and include the
       different field code names used in Gborg pgtcl, 


* 2004-06-07    pgtcl-ng 1.5.1 Released

This is the second release of pgtcl-ng with these changes:
   1.  New command option: pg_result $res -cmdStatus
       Returns the command completion tag, e.g. "UPDATE 4".
       (Suggested by Jerry.Levan -at- EKU.EDU)
   2.  If EXTRA_LIBS is defined in the environment when "configure" runs,
       its value will be appended to the link line. This is for some systems
       where dependent libraries must be explictly specified.
       (Suggested by Jerry.Levan -at- EKU.EDU)
   3.  New command: pg_quote to return quoted escaped string. This was recently
       added to Gborg pgtcl CVS, replacing pg_escape_string, but pgtcl-ng
       will continue to support both.
   4.  Fix pg_execute error handling to allow arbitrary return
       codes from the script it executes, same as pg_select.
   5.  New command: pg_exec_params to execute parameterized query, binary safe.
   6.  pg_exec can take extra arguments which will substitute for
       placeholders in the SQL. This is not binary safe; use pg_exec_prepared
       or pg_exec_params for binary parameters or binary results.
       (Idea from Gborg pgtcl CVS - karl.)


* 2004-02-28    pgtcl-ng 1.5.0 Released

This is the first release of pgtcl-ng. (The version number is 1.5.0 for
continuity with previous implementations of this interface.) Highlights of
this release are:

  * From Gborg pgtcl project:
    1. Stand-alone Tcl Extension Architecture (TEA) build system
    2. New asynchronous query commands
    3. New: Get query results as lists
    4. New: pg_escape_string
  * New in Pgtcl-ng:
    5. Completed conversion to use Tcl-8 objects
    6. New: pg_transaction_status, check in-transaction status
    7. New: pg_parameter_status, get server parameter value
    8. New: pg_exec_prepared, execute prepared queries, binary-safe
    9. New: pg_notice_handler, change Notice and Warning handler
   10. New: Get extended error message field values
   11. New: Get extended column attribute information
   12. New: Test query result values for NULL
  * New reference manual
  * Windows binary release

There are also numerous fixes, include Large Object error handling, and a
rewritten COPY implementation which can now deal with records longer than
4096 bytes. (Bet you didn't know that limitation was there...) Please note:
Many of the new commands should be considered 'experimental' and possibly
subject to change.

More detailed changes can be found in the ChangeLog files. Please note,
however, that it is likely that not all changes between bundled PostgreSQL
libpgtcl, Gborg pgtcl, and Gborg pgtcl-ng have been recorded.

-----------------------------------------------------------------------------
