Bruce Momjian wrote
Zeugswetter Andreas SB SD wrote:
Improving on "not ideal" would be good, and would get even closer
to
full Oracle/SQLServer migration/compatibility. However, since
I've
never
looked at that section of code, I couldn't comment on any
particular
approach nor implement such a change, so I'll shut up and be
patient.
Imagine this:

BEGIN WORK;
LOCK oldtab;
CREATE_X TABLE newtab AS SELECT * FROM oldtab;
DELETE oldtab;
COMMIT

In this case, you would want the database to abort on a syntax
error,
right?
Yeah, but in other db's this is solved by the frontend. e.g. in
Informix
dbaccess has a mode that simply stops execution upon first error. So
I
don't
think this is a nogo argument, if we added such a feature to psql.
Stops execution on the first error? What does that mean? It means it
stops reading the rest of the command file? We might be able to do
that (invalidate the entire session), but is that desired?
I wouldn't want to stop execution on the first error. All of that
transaction stuff doesn't apply to batch execution of script files - the
script is being executed blind, so having a decision point mid-way thru
a transaction isn't that important. This thread wasn't originally about
psql behaviour, though if we divert in that direction....I could see a
use for:

\if error then quit "newtab create failed"
or something like that

or even:
\retry on (with default=off)
to automatically submit an SQL statement if it fails with a retryable
error

Regards, Simon Riggs

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

People

Translate

site design / logo © 2021 Grokbase