On Mon, Jun 21, 2010 at 7:51 PM, gabrielle <gorthx@gmail.com> wrote:
> On Thu, 2010-06-17 at 14:50 -0400, Alvaro Herrera asked:
>> How does it play with ON_ERROR_STOP/ROLLBACK?
>
> With ON_ERROR_STOP=ON, psql issues an error when it encounters one,
> stops processing the file that contains the error, and then continues
> to process any remaining files.
>
> I'm still investigating ON_ERROR_ROLLBACK. I need to tinker with it
> some more before I say anything concrete.
>
> On Fri, Jun 18, 2010 at 1:48 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
>> Also, how does it play with --single-transaction.
> That was buried in our original report :) "BEGIN-COMMIT statements
> within the files cause warnings when the command is wrapped in a
> transaction with the -1 switch (as specified in the patch submission)"
>
> To expand upon that a bit: when psql encounters a file that contains
> a BEGIN statement, you get the expected "WARNING: there is already a
> transaction in progress" message. The COMMIT at the end of that file
> (assuming the user doesn't forget it) generates a COMMIT. Commands
> after that commit, or in any remaining files to be processed, are
> dealt with according to the user's autocommit settings:
> - if autocommit is ON, statements in the remaining files are processed
> & committed; the implicit COMMIT at the end of the whole thing then
> generates a "WARNING: there is no transaction in progress" message
> - if autocommit is OFF, statements in the remaining files generate
> "ERROR: current transaction is aborted, commands ignored until end of
> transaction block" messages.
So none of the above sounds like desired behavior to me... is that just me?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company