Gavin Sherry <[EMAIL PROTECTED]> writes:

>               BEGIN;
>                       SAVEPOINT start;
>                       INSERT INTO users VALUES(user || suffix);
>                       EXIT;
>               EXCEPTION
>                       WHEN UNIQUE_VIOLATION THEN
>                               ROLLBACK TO start;
>                               suffix := suffix + 1;
>               END;

Right.  Essentially, our implementation is supplying the SAVEPOINT and
ROLLBACK TO commands implicitly as part of any block with an EXCEPTION
clause.  When we get around to updating the "Oracle porting" guide in
the plpgsql docs, this will need to be clearly explained.

Depending on how tense you want to be about Oracle compatibility, we
could make people actually write their blocks as above --- that is,
the SAVEPOINT and ROLLBACK commands would be a required part of the
exception-block syntax.  They wouldn't actually *do* anything, but
they would make the code look more like its Oracle equivalent.  I'm not
for this, but maybe someone wants to make the case for it?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to