From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org> |
Subject: | VACUUM cannot be run in a transaction block |
Date: | 2013-09-02 11:31:20 |
Message-ID: | 52247708.9030100@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
Hi,
If you try to run VACUUM with SQLPrepare/SQLExecute, and auto-commit is
disabled, and UseServerSidePrepare=1 (which is now the default in git
master), you get an error:
ERROR: VACUUM cannot run inside a transaction block
There is some code in place to avoid this in UseServerSidePrepare=0
mode. The driver looks at the statement type (by looking at the first
word of the statement) and skips the implicit BEGIN if it's a VACUUM or
one of the other commands that cannot be run in a transaction block.
However, the extended query protocol code path didn't do that.
I just pushed a fix for that, but I thought this warranted to be
mentioned on the mailing list.
PS. Can we get 9.3 version packaged very soon? The server 9.3.0 server
version will be wrapped today, and will be announced on Monday Sep 9th.
We really should have a 9.3 labeled version of the driver available by then.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Clara | 2013-09-03 02:04:37 | Re: Postgres ODBC Windows 7 x64 SSL not working! |
Previous Message | Heikki Linnakangas | 2013-08-22 11:15:04 | Re: UseServerSidePrepare default |