From: Tom Lane Date: Mon, 6 Sep 2004 18:23:09 +0000 (+0000) Subject: Back-patch fix to disallow BEGIN/COMMIT/ROLLBACK inside SQL functions. X-Git-Tag: REL7_4_6~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=097597578ecca98ef461a4387612a3bf0dead26c;p=thirdparty%2Fpostgresql.git Back-patch fix to disallow BEGIN/COMMIT/ROLLBACK inside SQL functions. Not sure why this isn't causing serious problems in some simple tests, but it definitely isn't going to do anything desirable... --- diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 048a2609d71..6346d1abc76 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.75 2003/09/25 18:58:35 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.75.2.1 2004/09/06 18:23:09 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -303,6 +303,11 @@ postquel_getnext(execution_state *es) if (es->qd->operation == CMD_UTILITY) { + /* Can't handle starting or committing a transaction */ + if (IsA(es->qd->parsetree->utilityStmt, TransactionStmt)) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot begin/end transactions in SQL functions"))); ProcessUtility(es->qd->parsetree->utilityStmt, es->qd->dest, NULL); return (TupleTableSlot *) NULL; }