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. -----------------------------------------------------------------------------