[pgfoundry logo]

pgintcl Project History


This page documents the history of the pgin.tcl pure-Tcl interface to PostgreSQL.

I wrote the first version of pgintcl in the summer of 1998. It used the Tcl binary string commands to talk the PostgreSQL Version 1 front-end/back-end protocol. The server was PostgreSQL-6.3.x. The development occurred on two systems: an i486-100MHz PC running Linux (Slackware 3.5, I think), and an HP/Apollo Domain/OS workstation with something like a M68030 25MHz processor. I was developing a Tcl/Tk database application at the time. The target platform was Windows 3.x and NT, and the development would mostly happen on the Domain workstation. Since I couldn't get a compiled libpq for either of these platforms, I needed another way to talk to my PostgreSQL database. Pgintcl provided a platform-independent low-level interface to PostgeSQL.

One drawback of implementing the low level protocol is what happens when the protocol changes. PostgreSQL-6.4 introduced protocol level 2, and around December 1998 I rewrote pgintcl to talk this version. Also in December 1998, the pgaccess project released a compiled version of libpq for Windows, so I no longer really needed pgintcl on the Windows platform. However, the pgacess libpgtcl releases were dependent on specific releases of both Tcl/Tk and PostgreSQL, and it wasn't always possible to get the right matched-up versions.

I continued to work on pgintcl over the years, but it was still unreleased. It was more of a hobby project. In October 2000, I added a limited form of listen/notify. In May 2001, I added large object support. In September 2002, using a self-coded MD5 implementation in Tcl, I added PostgreSQL MD5 challenge/response authentication. Until then, only clear-text password-on-the-wire authentication worked, which wasn't ideal at all. By the end of 2002, pgintcl was about 1050 lines of Tcl, of which about 20% was MD5 code and 20% large object code.

The first released version of pgintcl was on Gborg early in 2003. This still spoke protocol version 2, for PostgreSQL-7.3 and lower. Later in 2003, pgintcl-2.0.0 was released which spoke protocol version 3, for PostgreSQL-7.4 and up (including PostgreSQL-8.1.x). In 2005, a new version with support for non-ASCII character encoding in the database was released as pgintcl-3.0.0.

Back to Pgintcl home page

Pgintcl project page


Powered By GForge Collaborative Development Environment