Index of /tcl/ftparchive/neosoft/neotcl/webtcl/OLD/pgsql6.0

      Name                   Last modified     Size  Description

[DIR] Parent Directory 29-Jan-99 12:28 - [   ] README 23-Oct-97 16:22 2k [DIR] libpgtcl/ 29-Jan-99 12:28 - [DIR] libpq/ 29-Jan-99 12:28 - [CMP] pgtcl.tar.gz 23-Oct-97 16:18 24k [   ] postgres.tcl 24-Nov-97 10:58 4k

This is the latest version of the libpgtcl distribution from NeoSoft, Inc.
It contains several enhancements over the normal code from Postgresql.
Some day I'll figure out how to use CVSup to upload this version to them.

10/23/97: This version contains further improvements to allow Tcl I/O 
(ie. gets, put, and read) to the connection handle.  See libpgtcl/README
for more information.

This is a src/libpgtcl and src/libpq from Postgresql 6.0.  It has been tested
with Postgresql6.0 using Tcl7.5, Tcl7.6.  Some support exists for Tcl8.
(Tcl8 once again changes the channel driver interface).  It should work
with later versions of Postgresql as well (I have no idea how many others
are working on the Tcl interface).

What is different about this driver is that the connection is implemented
via the channel driver mechanism, which makes for some interesting new
possibilities.  For example, I hope to produce a version soon (with minor
modifications to libpq) to allow a request to be transmitted and then
pick up the result asynchronously via a Tcl fileevent.  Another thing that
is immediately available because of the channel drivers is that you can
transfer and share postgres connections among slave interpreters (vital
to NeoSoft's purposes).  In fact, you can close a postgresql connection
handle just like any other socket or file, and it is identical to
executing a pg_disconnect.

Note that only database connections are channels, not result handles.

There are a few other fancy things not fully implemented, such as setting
a soft and hard limit to the number of result handles (to train beginners
to clear their result handles after they are finished with them), and
interfaces to change the soft limit.

This libpgtcl also supports the package facility, (ie. it executes
Tcl_PkgProvide() when it is loaded).

To install: go to your postgresql source directory and rm libpgtcl/*.[ch]
(or move them off to a safe place).  From src, untar pgtcl.tar.gz.
Note it does not contain a Makefile; I expect you'll want to use your own
Makefile vs. the various hacks I've made (ie. non-portable to generate
shared libraries).  Then "make" and "make install" as usual.

This is contributed software, and no warranty is given, expressed or implied.
These changes are contributed to the PostgreSQL community at no charge, and
as such, may be used under the standard PostgreSQL copyright.


Randy Kunkee
NeoSoft, Inc.