aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/functions.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-09-06 18:10:38 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-09-06 18:10:38 +0000
commitd55588ea7a8a0203d27779263b1098688ee85bb2 (patch)
tree1a4fbfb14dd6de0000763413c8a437718308d5ba /src/backend/executor/functions.c
parent23645f058231203d29f92162640a087003794137 (diff)
downloadpostgresql-d55588ea7a8a0203d27779263b1098688ee85bb2.tar.gz
postgresql-d55588ea7a8a0203d27779263b1098688ee85bb2.zip
Guard against transaction control statements in SQL functions. This
never worked, but it particularly doesn't work now.
Diffstat (limited to 'src/backend/executor/functions.c')
-rw-r--r--src/backend/executor/functions.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c
index ea3b12be5f6..2a9e5d88a9e 100644
--- a/src/backend/executor/functions.c
+++ b/src/backend/executor/functions.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.86 2004/08/29 05:06:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.87 2004/09/06 18:10:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -285,6 +285,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->params,
es->qd->dest, NULL);
return NULL;