From 097597578ecca98ef461a4387612a3bf0dead26c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 6 Sep 2004 18:23:09 +0000 Subject: [PATCH] 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... --- src/backend/executor/functions.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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; }