summaryrefslogtreecommitdiff
path: root/src/backend/commands/vacuum.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-04-15 23:39:42 +0000
committerBruce Momjian <bruce@momjian.us>2002-04-15 23:39:42 +0000
commit2036b3fc597e4e39b87a185a60e51b2467d50783 (patch)
tree665f173c60858138752a3fc7e0a05e9fedef61da /src/backend/commands/vacuum.c
parent5b92d004fa8226ea52b696e647d0867d5bb1f076 (diff)
downloadpostgresql-2036b3fc597e4e39b87a185a60e51b2467d50783.tar.gz
Disable VACUUM from being called from a function because function memory
would be cleared by vacuum; fix idea from Tom Lane.
Diffstat (limited to 'src/backend/commands/vacuum.c')
-rw-r--r--src/backend/commands/vacuum.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index 20a366d02a..eaee990c69 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.223 2002/04/12 20:38:25 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.224 2002/04/15 23:39:42 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -181,6 +181,10 @@ vacuum(VacuumStmt *vacstmt)
if (IsTransactionBlock())
elog(ERROR, "%s cannot run inside a BEGIN/END block", stmttype);
+ /* Running VACUUM from a function would free the function context */
+ if (!MemoryContextContains(QueryContext, vacstmt))
+ elog(ERROR, "%s cannot be executed from a function", stmttype);
+
/*
* Send info about dead objects to the statistics collector
*/