aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>1999-02-02 12:57:51 +0000
committerJan Wieck <JanWieck@Yahoo.com>1999-02-02 12:57:51 +0000
commit7ab88a16a111cb1c6c6ac67702c7772cf94bf1bf (patch)
tree5e8bb29dbef19f3d0d8508c8b3980e1aeae98997 /src
parent4390b0bfbe2641ff26a35372184880348a19919e (diff)
downloadpostgresql-7ab88a16a111cb1c6c6ac67702c7772cf94bf1bf.tar.gz
postgresql-7ab88a16a111cb1c6c6ac67702c7772cf94bf1bf.zip
Fixed failed assertion happening in multiple action rules
when parsestate in makeRangeTable() already contains an opened p_target_relation. Jan
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/parse_clause.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index 98ca2088810..8660e03f0f6 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.26 1998/09/25 13:36:03 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_clause.c,v 1.27 1999/02/02 12:57:51 wieck Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,8 +62,13 @@ makeRangeTable(ParseState *pstate, char *relname, List *frmList)
else
rte = refnameRangeTableEntry(pstate, relname);
+ /* This could only happen for multi-action rules */
+ if (pstate->p_target_relation != NULL)
+ {
+ heap_close(pstate->p_target_relation);
+ }
+
pstate->p_target_rangetblentry = rte;
- Assert(pstate->p_target_relation == NULL);
pstate->p_target_relation = heap_open(rte->relid);
/* will close relation later */
}