From c59eef17c96d98833c98341491ff9ca2da5a06b8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 27 May 2008 21:14:00 +0000 Subject: Back-patch the 8.3 fix that prohibits TRUNCATE, CLUSTER, and REINDEX when the current transaction has any open references to the target relation or index (implying it has an active query using the relation). Also back-patch the 8.2 fix that prohibits TRUNCATE and CLUSTER when there are pending AFTER-trigger events. Per suggestion from Heikki. --- src/include/commands/tablecmds.h | 5 ++++- src/include/commands/trigger.h | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/include/commands') diff --git a/src/include/commands/tablecmds.h b/src/include/commands/tablecmds.h index 793f3a6c799..4fb15de071c 100644 --- a/src/include/commands/tablecmds.h +++ b/src/include/commands/tablecmds.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: tablecmds.h,v 1.13 2003/08/04 02:40:13 momjian Exp $ + * $Id: tablecmds.h,v 1.13.4.1 2008/05/27 21:14:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -15,6 +15,7 @@ #define TABLECMDS_H #include "nodes/parsenodes.h" +#include "utils/rel.h" extern void AlterTableAddColumn(Oid myrelid, bool recurse, ColumnDef *colDef); @@ -55,6 +56,8 @@ extern Oid DefineRelation(CreateStmt *stmt, char relkind); extern void RemoveRelation(const RangeVar *relation, DropBehavior behavior); +extern void CheckTableNotInUse(Relation rel, const char *stmt); + extern void TruncateRelation(const RangeVar *relation); extern void renameatt(Oid myrelid, diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h index fe8f6af61d9..9a15bbdf04a 100644 --- a/src/include/commands/trigger.h +++ b/src/include/commands/trigger.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: trigger.h,v 1.44 2003/10/06 16:38:28 tgl Exp $ + * $Id: trigger.h,v 1.44.2.1 2008/05/27 21:14:00 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -192,6 +192,8 @@ extern void DeferredTriggerAbortXact(void); extern void DeferredTriggerSetState(ConstraintsSetStmt *stmt); +extern bool AfterTriggerPendingOnRel(Oid relid); + /* * in utils/adt/ri_triggers.c -- cgit v1.2.3