]> granicus.if.org Git - postgresql/commitdiff
Un-break triggers declared for INSERT OR DELETE OR UPDATE. This worked
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 25 Nov 2002 03:36:50 +0000 (03:36 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 25 Nov 2002 03:36:50 +0000 (03:36 +0000)
okay in 7.3, so I think it must have been busted in the recent triggers
patch.

src/backend/commands/trigger.c
src/backend/parser/gram.y
src/include/nodes/parsenodes.h

index c9e2d87ff9e1b1ea2acd8d1761b2158510fdf2e1..921a11f84c6a9e6f3c890734a07797bf704f41c0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.140 2002/11/23 03:59:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.141 2002/11/25 03:36:50 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -199,7 +199,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
        if (stmt->row)
                TRIGGER_SETT_ROW(tgtype);
 
-       for (i = 0; i < 2 && stmt->actions[i]; i++)
+       for (i = 0; stmt->actions[i]; i++)
        {
                switch (stmt->actions[i])
                {
index 29cba53f9fc968dbfe3cee6ced94b562c360d23b..df09e0177cc3d3933374e28b102c7a827de83374 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.381 2002/11/23 03:59:08 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.382 2002/11/25 03:36:50 tgl Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -2027,7 +2027,7 @@ CreateTrigStmt:
                                        n->args = $13;
                                        n->before = $4;
                                        n->row = $8;
-                                       memcpy (n->actions, $5, 4);
+                                       memcpy(n->actions, $5, 4);
                                        n->isconstraint  = FALSE;
                                        n->deferrable    = FALSE;
                                        n->initdeferred  = FALSE;
@@ -2047,7 +2047,7 @@ CreateTrigStmt:
                                        n->args = $18;
                                        n->before = FALSE;
                                        n->row = TRUE;
-                                       memcpy (n->actions, $6, 4);
+                                       memcpy(n->actions, $6, 4);
                                        n->isconstraint  = TRUE;
                                        n->deferrable = ($10 & 1) != 0;
                                        n->initdeferred = ($10 & 2) != 0;
@@ -2066,17 +2066,19 @@ TriggerEvents:
                        TriggerOneEvent
                                {
                                        char *e = palloc(4);
-                                       e[0] = $1; e[1] = 0; $$ = e;
+                                       e[0] = $1; e[1] = '\0';
+                                       $$ = e;
                                }
                        | TriggerOneEvent OR TriggerOneEvent
                                {
                                        char *e = palloc(4);
-                                       e[0] = $1; e[1] = $3; e[2] = 0; $$ = e;
+                                       e[0] = $1; e[1] = $3; e[2] = '\0';
+                                       $$ = e;
                                }
                        | TriggerOneEvent OR TriggerOneEvent OR TriggerOneEvent
                                {
                                        char *e = palloc(4);
-                                       e[0] = $1; e[1] = $3; e[2] = $5; e[3] = 0;
+                                       e[0] = $1; e[1] = $3; e[2] = $5; e[3] = '\0';
                                        $$ = e;
                                }
                ;
index 0d33b56d1fe7c94ebc3f98b9fddea4d3030c306e..7ca79b3520fe7a60f7c77e7b182c09c839d85dce 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.217 2002/11/23 03:59:09 momjian Exp $
+ * $Id: parsenodes.h,v 1.218 2002/11/25 03:36:50 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1048,7 +1048,7 @@ typedef struct CreateTrigStmt
        List       *args;                       /* list of (T_String) Values or NIL */
        bool            before;                 /* BEFORE/AFTER */
        bool            row;                    /* ROW/STATEMENT */
-       char            actions[3];             /* Insert, Update, Delete */
+       char            actions[4];             /* 1 to 3 of 'i', 'u', 'd', + trailing \0 */
 
        /* The following are used for referential */
        /* integrity constraint triggers */