Re: BUG #13674: psql: \i from a script run through \e misparses SQL as \i arguments

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: "postgresql@zr40.nl" <postgresql@zr40.nl>
Cc: "pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>
Date: 2015-10-13T04:21:32Z
Lists: pgsql-bugs
On Monday, October 12, 2015, <postgresql@zr40.nl> wrote:

> The following bug has been logged on the website:
>
> Bug reference:      13674
> Logged by:          Matthijs van der Vleuten
> Email address:      postgresql@zr40.nl <javascript:;>
> PostgreSQL version: 9.4.5
> Operating system:   Mac OS X
> Description:
>
> Reproduction:
>
> 1. Create file a.sql with the following contents:
>
> BEGIN;
> \i b.sql
> ROLLBACK;
>
> 2. Create an empty file b.sql (smallest reproduction; bug also occurs with
> non-empty files)
> 3. In psql, execute: \e a.sql
> 4. In $EDITOR, save and exit
>
> Actual output:
>
> ~/test % psql -Xe
> psql (9.4.5)
> Type "help" for help.
>
> zr40=# \e foo2.sql
> BEGIN;
> BEGIN
> \i: extra argument "ROLLBACK;" ignored
> zr40=#
>
> Expected output:
>
> ~/test % psql -Xe
> psql (9.4.5)
> Type "help" for help.
>
> zr40=# \e foo2.sql
> BEGIN;
> BEGIN
> ROLLBACK;
> ROLLBACK
> zr40=#
>
>
Working as documented.   Namely the "...whole buffer as a single line."
part of \e.  Hence the warning about not making scripts with this command.

David J.