[Pgpool-general] Transactions not working properly from ODBC
Tatsuo Ishii
ishii at sraoss.co.jp
Thu Mar 12 00:23:11 UTC 2009
Thanks for the report.
The difference between psql and ODBC is the protocol version
number. Namely psql speaks version 3 which is standard protocol since
PostgreSQL 7.4, while your ODBC driver speaks version 2, which is
pretty old.
Unfortunately pgpool-II 2.2 seems to have a problem with insert_lock
handling used with version 2 protocol.
Can you try to turn off insert_lock diective when using ODBC?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
> Hi,
>
> I have a very particular problem here. I have two odbc configurations to
> access PostgreSQL through pgpool and directly to PostgreSQL. Bottomline
> is that INSERTs within a transaction block using ODBC to pgpool, does
> not work.
>
> Here's what I have:
>
> Pgpool 2.2beta1
> PostgreSQL 8.2.1
> unixODBC 2.2.11
>
> The SQL statement is simple:
> BEGIN;
> INSERT INTO test VALUES (1);
> COMMIT;
>
> >From isql (odbc interface, it's analogous to psql):
> [root at coyote ~]# isql testdb
> +---------------------------------------+
> | Connected! |
> | |
> | sql-statement |
> | help [tablename] |
> | quit |
> | |
> +---------------------------------------+
> SQL> begin;
> SQLRowCount returns -1
> SQL> insert into test values (6);
> [ISQL]ERROR: Could not SQLExecute
> SQL> quit
>
> The related logged error in pgpool is:
>
>
> >From psql:
> [root at coyote ~]# psql -U postgres -d testdb -p 9999
> Welcome to psql 8.2.1, the PostgreSQL interactive terminal.
>
> Type: \copyright for distribution terms
> \h for help with SQL commands
> \? for help with psql commands
> \g or terminate with semicolon to execute query
> \q to quit
>
> testdb=# begin;
> BEGIN
> testdb=# insert into test values (5);
> INSERT 0 1
> testdb=# commit;
> COMMIT
> testdb=# \q
>
> The problem seems to be in ODBC, but it seems to happen ONLY when pgpool
> is the connection interface to PostgreSQL. Any clue? Attached are the
> log files.
>
> Thanks,
> Daniel
More information about the Pgpool-general
mailing list