Simon Riggs <> wrote:
> Joachim Wieland <> wrote:
>> '000003A1-1');
> I don't see the need to change the BEGIN command, which is SQL
> Standard.
No, it's not standard.
To quote from our docs at:
| BEGIN is a PostgreSQL language extension. It is equivalent to the
| SQL-standard command START TRANSACTION, whose reference page
| contains additional compatibility information.
| Incidentally, the BEGIN key word is used for a different purpose
| in embedded SQL. You are advised to be careful about the
| transaction semantics when porting database applications. 
In checking the most recent standards draft I have available, it
appears that besides embedded SQL, this keyword is also used in the
standard trigger declaration syntax.  Using BEGIN to start a
transaction is a PostgreSQL extension to the standard.  That said,
if we support a feature on the nonstandard BEGIN statement, we
typically add it as an extension to the standard START TRANSACTION
and SET TRANSACTION statements.  Through 9.0 that consisted of
having a non-standard default for isolation level and the ability to
omit commas required by the standard.  In 9.1 we added another
optional transaction property which defaults to standard behavior:
If we're talking about a property of a transaction, like the
transaction snapshot, it seems to me to be best to support it using
the same statements we use for other transaction properties.

Sent via pgsql-hackers mailing list (
To make changes to your subscription:

Reply via email to