mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Un-break triggers declared for INSERT OR DELETE OR UPDATE. This worked
okay in 7.3, so I think it must have been busted in the recent triggers patch.
This commit is contained in:
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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)
|
if (stmt->row)
|
||||||
TRIGGER_SETT_ROW(tgtype);
|
TRIGGER_SETT_ROW(tgtype);
|
||||||
|
|
||||||
for (i = 0; i < 2 && stmt->actions[i]; i++)
|
for (i = 0; stmt->actions[i]; i++)
|
||||||
{
|
{
|
||||||
switch (stmt->actions[i])
|
switch (stmt->actions[i])
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* HISTORY
|
||||||
* AUTHOR DATE MAJOR EVENT
|
* AUTHOR DATE MAJOR EVENT
|
||||||
@ -2066,17 +2066,19 @@ TriggerEvents:
|
|||||||
TriggerOneEvent
|
TriggerOneEvent
|
||||||
{
|
{
|
||||||
char *e = palloc(4);
|
char *e = palloc(4);
|
||||||
e[0] = $1; e[1] = 0; $$ = e;
|
e[0] = $1; e[1] = '\0';
|
||||||
|
$$ = e;
|
||||||
}
|
}
|
||||||
| TriggerOneEvent OR TriggerOneEvent
|
| TriggerOneEvent OR TriggerOneEvent
|
||||||
{
|
{
|
||||||
char *e = palloc(4);
|
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
|
| TriggerOneEvent OR TriggerOneEvent OR TriggerOneEvent
|
||||||
{
|
{
|
||||||
char *e = palloc(4);
|
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;
|
$$ = e;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* 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 */
|
List *args; /* list of (T_String) Values or NIL */
|
||||||
bool before; /* BEFORE/AFTER */
|
bool before; /* BEFORE/AFTER */
|
||||||
bool row; /* ROW/STATEMENT */
|
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 */
|
/* The following are used for referential */
|
||||||
/* integrity constraint triggers */
|
/* integrity constraint triggers */
|
||||||
|
Reference in New Issue
Block a user