Consolidated Fabien's TAP test additions with v7, in case anyone else wants
to be reviewing.
Patch applies (with "patch"), make check ok, psql tap test ok.
I did some more tests. I found a subtlety that I missed before: when
running under ON_ERROR_STOP, messages are not fully consistent:
sh> cat test.sql
\set ON_ERROR_STOP on
\if error
\echo NO
\endif
\echo NO
sh> ./psql < test.sql
SET
# ok
unrecognized value "error" for "\if <expr>": boolean expected
# ok
new \if is invalid, ignoring commands until next \endif
# hmmm... but it does not, it is really stopping immediately...
found EOF before closing \endif(s)
# no, it has just stopped before EOF because of the error...
Also I'm not quite sure why psql decided that it is in interactive mode
above, its stdin is a file, but why not.
The issue is made more explicit with -f:
sh> ./psql -f test.sql
SET
psql:test.sql:2: unrecognized value "error" for "\if <expr>": boolean expected
psql:test.sql:2: new \if is invalid, ignoring commands until next \endif
psql:test.sql:2: found EOF before closing \endif(s)
It stopped on line 2, which is expected, but it was not on EOF.
I think that the message when stopping should be ", stopping as required
by ON_ERROR_STOP" or something like that instead of ", ignoring...", and
the EOF message should not be printed at all in this case.
--
Fabien.
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers