git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 2eafcf6)
Un-break triggers declared for INSERT OR DELETE OR UPDATE. This worked
2002年11月25日 03:36:50 +0000 (03:36 +0000)
2002年11月25日 03:36:50 +0000 (03:36 +0000)
okay in 7.3, so I think it must have been busted in the recent triggers
patch.


diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index c9e2d87ff9e1b1ea2acd8d1761b2158510fdf2e1..921a11f84c6a9e6f3c890734a07797bf704f41c0 100644 (file)
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -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])
{
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 29cba53f9fc968dbfe3cee6ced94b562c360d23b..df09e0177cc3d3933374e28b102c7a827de83374 100644 (file)
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -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;
}
;
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 0d33b56d1fe7c94ebc3f98b9fddea4d3030c306e..7ca79b3520fe7a60f7c77e7b182c09c839d85dce 100644 (file)
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -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 */
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /