I'm writing an application using PostgreSQL-6.3.2, Tcl/Tk 8.0 using
pgsql.tcl as an interface. This approach allows to run code completely
unmodified on Unix, Windows and the Mac.
I found a bug processing a simple join like
SELECT s1.b,s2.b FROM pgsqlbug1 s1, pgsqlbug2 s2 WHERE s1.a = s2.c;
This bug only occurs whern using pgsql.tcl.
Here is the full story:
====== create script ============
-- Trigger a bug in the pgsql Tcl interface
--
CREATE TABLE pgsqlbug1 (
a int2,
b char(12),
primary key(a)
);
CREATE TABLE pgsqlbug2 (
a int2,
b char(12),
c int2,
primary key(a)
);
INSERT INTO pgsqlbug1 (a,b) VALUES (0,'from table 1');
INSERT INTO pgsqlbug2 (a,b,c) VALUES (0,'from table 2',0);
====== end of create script ============
Using psql I get the following (correct) output:
====== psql session ==========
meyer=> select * from pgsqlbug1;
a|b
-+------------
0|from table 1
(1 row)
meyer=> select * from pgsqlbug2;
a|b |c
-+------------+-
0|from table 2|0
(1 row)
meyer=> SELECT s1.b,s2.b FROM pgsqlbug1 s1, pgsqlbug2 s2 WHERE s1.a = s2.c;
b |b
------------+------------
from table 1|from table 2
(1 row)
====== pend of sql session ==========
Using pgsql.tcl from Tcl however I get:
meyer> SELECT s1.b,s2.b FROM pgsqlbug1 s1, pgsqlbug2 s2 WHERE s1.a = s2.c;
attributes: b b
lAttributes: {b 1042 -1} {b 1042 -1}
Tuple 0: {from table 2} {from table 2}
... what is wrong, obviously.
(Version info: timestamp of pgsql.tcl is "May 21 15:25" on
ftp://ftp.flex.ro/pub/pgaccess).
BTW: What's the address of the developer of pgsql.tcl. I couldn't find
it in the code....
Thanks,
sebastian
--
__o Sebastian Meyer Tel: (0421)218-7702 | "A weird imagination
_ \<,_ meyer@mevis.de http://www.mevis.de | is most useful to gain
(_)/ (_) MeVis an der Universität Bremen | full advantage of all the
~~~~~~~~~~~ Universitätsallee 29, D-28359 Bremen | features." (amd(8))