VACUUM cannot be run in a transaction block - Mailing list pgsql-odbc

From Heikki Linnakangas
Subject VACUUM cannot be run in a transaction block
Date
Msg-id 52247708.9030100@vmware.com
Whole thread Raw
List 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


pgsql-odbc by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: UseServerSidePrepare default
Next
From: "Mike C."
Date:
Subject: Postgres ODBC Windows 7 x64 SSL not working!