Pgtcl is the name of the [Tcl] package that is made available when [libpgtcl] is built and installed. In the past, many people have loaded libpgtcl by using an explicit load... load ./libpgtcl.so.14 In the modern era, the libpgtcl shared library is built and installed and automatically loaded when the Pgtcl package is requested... package require Pgtcl Pgtcl 1.5 release (soon to be released) ---- With version 1.5, there are some new features added, that I will demonstrate by annotating an interactive tclsh session: schwarz@thor:~/code/cvs/libpgtcl> /usr/local/tcl8.5/bin/tclsh8.5 % load ./libpgtcl1.5.so % array set conninfo { host 192.168.123.180 port 5801 dbname template1 user postgres } % set conn(1) [pg::connect -connlist [array get conninfo]] pgsql3 % set conn(2) [pg::connect -connlist [array get conninfo] -connhandle myhan] myhan % set conn(3) [pg::connect -connlist [array get conninfo] -connhandle pgsql3] Connection to database failed handle already exists % namespace import ::pg::* % dbinfo connections myhan pgsql3 % set res(1) [$conn(1) exec "SELECT relname FROM Pg_class LIMIT 5"] pgsql3.0 % set res(2) [$conn(2) exec {SELECT * FROM Pg_class LIMIT $1} 4] myhan.0 % dbinfo results $conn(1) pgsql3.0 % dbinfo results $conn(2) myhan.0 % $res(1) -list views data_type_privileges element_types pg_toast_17173_index pg_toast_17173 % $res(2) -llist {views 17057 17219 1 0 17218 0 0 0 0 0 f f v 7 0 0 0 0 0 f f t f {{postgres=arwdRxt/postgres,=r/postgres}}} {data_type_privileges 17057 17222 1 0 17221 0 0 0 0 0 f f v 5 0 0 0 0 0 f f t f {{postgres=arwdRxt/postgres,=r/postgres}}} {element_types 17057 17226 1 0 17225 0 0 0 0 0 f f v 29 0 0 0 0 0 f f t f {{postgres=arwdRxt/postgres,=r/postgres}}} {pg_toast_17173_index 99 0 1 403 17177 0 1 0 0 0 f f i 2 0 0 0 0 0 f f f f {}} % set mydict [$res(2) -dict] 3 {relpages 1 relfkeys 0 relnatts 2 relhasoids f relhassubclass f relam 403 reltoastidxid 0 reltuples 0 relacl {} relhaspkey f reltriggers 0 relname pg_toast_17173_index relrefs 0 reltype 0 relukeys 0 relchecks 0 relisshared f reltablespace 0 reltoastrelid 0 relnamespace 99 relowner 1 relfilenode 17177 relkind i relhasrules f relhasindex f} 2 {relpages 0 relfkeys 0 relnatts 29 relhasoids f relhassubclass f relam 0 reltoastidxid 0 reltuples 0 relacl {{postgres=arwdRxt/postgres,=r/postgres}} relhaspkey f reltriggers 0 relname element_types relrefs 0 reltype 17226 relukeys 0 relchecks 0 relisshared f reltablespace 0 reltoastrelid 0 relnamespace 17057 relowner 1 relfilenode 17225 relkind v relhasrules t relhasindex f} 1 {relpages 0 relfkeys 0 relnatts 5 relhasoids f relhassubclass f relam 0 reltoastidxid 0 reltuples 0 relacl {{postgres=arwdRxt/postgres,=r/postgres}} relhaspkey f reltriggers 0 relname data_type_privileges relrefs 0 reltype 17222 relukeys 0 relchecks 0 relisshared f reltablespace 0 reltoastrelid 0 relnamespace 17057 relowner 1 relfilenode 17221 relkind v relhasrules t relhasindex f} 0 {relpages 0 relfkeys 0 relnatts 7 relhasoids f relhassubclass f relam 0 reltoastidxid 0 reltuples 0 relacl {{postgres=arwdRxt/postgres,=r/postgres}} relhaspkey f reltriggers 0 relname views relrefs 0 reltype 17219 relukeys 0 relchecks 0 relisshared f reltablespace 0 reltoastrelid 0 relnamespace 17057 relowner 1 relfilenode 17218 relkind v relhasrules t relhasindex f} % dict get $mydict 1 relpages 0 relfkeys 0 relnatts 5 relhasoids f relhassubclass f relam 0 reltoastidxid 0 reltuples 0 relacl {{postgres=arwdRxt/postgres,=r/postgres}} relhaspkey f reltriggers 0 relname data_type_privileges relrefs 0 reltype 17222 relukeys 0 relchecks 0 relisshared f reltablespace 0 reltoastrelid 0 relnamespace 17057 relowner 1 relfilenode 17221 relkind v relhasrules t relhasindex f % dict get $mydict 1 relname data_type_privileges % rename $res(2) {} % dbinfo results $conn(2) % dbinfo connections myhan pgsql3 % dbinfo results pgsql3 pgsql3.0 % foreach C [dbinfo connections] {$C disconnect} % dbinfo connections %