diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-09-06 18:10:38 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-09-06 18:10:38 +0000 |
commit | d55588ea7a8a0203d27779263b1098688ee85bb2 (patch) | |
tree | 1a4fbfb14dd6de0000763413c8a437718308d5ba /src/backend/executor/functions.c | |
parent | 23645f058231203d29f92162640a087003794137 (diff) | |
download | postgresql-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.c | 7 |
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; |