From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Alexey Klyukin <alexk(at)hintbits(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: psql \i command with a missing file name doesn't rollback the transaction |
Date: | 2013-10-02 14:15:13 |
Message-ID: | 20131002141513.GD21547@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Fri, Sep 20, 2013 at 11:15:01AM +0200, Alexey Klyukin wrote:
> Hi,
>
> We've discovered a surprising behavior of psql \i command. What we sometimes to
> add new tables to the database is:
>
> begin;
> \i /path/to/table/definitions/table1.sql
> \i /path/to/table/definitions/table2.sql
> ...
> \i /path/to/table/definitions/tableN.sql
> commit;
>
> What we discovered that some files in the /path/to/table/definitions were
> missing (say, table 2,3), but the table 1, 4... N appeared in the database
> after executing the transaction. This is quite a catch, since we cannot rely on
> transaction consistency when using an include directive.
>
> The test is simple:
>
> begin;
> \i whatever;
> select 1;
> commit;
>
> The expected behavior was that select 1 would lead to 'ERROR: current
> transaction is aborted'.
> The current behavior is that it is executed, although a message is emitted to a
> client:
> whatever: No such file or directory
>
> Would it be possible from the client side to generate the rollback to the
> server on an attempt to include a non-existing file (perhaps only when
> ON_ERROR_STOP is set to 1?).
The problem is how would we decide what psql actions should trigger a
rollback, and how would we show the user we did that.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2013-10-02 14:29:21 | Re: Installing/Upgrading PostgreSQL 9.1.6 to 9.3 known bugs? |
Previous Message | manindra.sarkar | 2013-10-02 11:57:05 | BUG #8496: psqlODBC driver does not work well via Excel |