pgintcl: Project History

This page documents the history of the pgintcl 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 PostgreSQL.

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 pgaccess 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 version 1.3.9 on Gborg (the first incarnation of a PostgreSQL project hosting site) in Feb 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-9.x). In 2005, a new version with support for non-ASCII character encoding (Unicode) in the database was released as pgintcl-3.0.0.

In 2006, the project moved from gborg to as gborg was shutting down. The first releases on pgfoundry were the final pre-Unicode version 2.2.1, and a minor update 3.0.1. The last release on pgfoundry was in Mar 2011, version 3.3.0.

In 2011, with the increasing spam attacks on and apparent lack of support, the project was moved to its current home on All releases from pgfoundry were copied to the SourceForge project.

Back to Pgintcl home page

Pgintcl project page Logo.

Updated: 2011-03-26