]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fixed failed assertion happening in multiple action rules
authorJan Wieck <JanWieck@Yahoo.com>
Tue, 2 Feb 1999 12:56:55 +0000 (12:56 +0000)
committerJan Wieck <JanWieck@Yahoo.com>
Tue, 2 Feb 1999 12:56:55 +0000 (12:56 +0000)
when parsestate in makeRangeTable() already contains an
opened p_target_relation.

Jan

src/backend/parser/parse_clause.c

index 98ca208881070c849544864797c53c3fbf775e18..af1a3d7089e9b27c6530663fe567393f2f10a8db 100644 (file)
@@ -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.26.2.1 1999/02/02 12:56:55 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 */
 }