diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/commands/trigger.c | 11 | ||||
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 6 | ||||
-rw-r--r-- | src/backend/nodes/equalfuncs.c | 4 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 36 |
4 files changed, 15 insertions, 42 deletions
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 61a4eacbacc..e25b83b4556 100644 --- 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.104 2002/03/06 06:09:36 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.105 2002/03/08 04:37:14 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1781,6 +1781,7 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) foreach(l, stmt->constraints) { + char *cname = strVal(lfirst(l)); ScanKeyData skey; SysScanDesc tgscan; HeapTuple htup; @@ -1788,7 +1789,7 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) /* * Check that only named constraints are set explicitly */ - if (strcmp((char *) lfirst(l), "") == 0) + if (strlen(cname) == 0) elog(ERROR, "unnamed constraints cannot be set explicitly"); /* @@ -1798,7 +1799,7 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) (bits16) 0x0, (AttrNumber) Anum_pg_trigger_tgconstrname, (RegProcedure) F_NAMEEQ, - PointerGetDatum((char *) lfirst(l))); + PointerGetDatum(cname)); tgscan = systable_beginscan(tgrel, TriggerConstrNameIndex, true, SnapshotNow, 1, &skey); @@ -1822,7 +1823,7 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_UPD && pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_DEL) elog(ERROR, "Constraint '%s' is not deferrable", - (char *) lfirst(l)); + cname); constr_oid = htup->t_data->t_oid; loid = lappendi(loid, constr_oid); @@ -1835,7 +1836,7 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) * Not found ? */ if (!found) - elog(ERROR, "Constraint '%s' does not exist", (char *) lfirst(l)); + elog(ERROR, "Constraint '%s' does not exist", cname); } heap_close(tgrel, AccessShareLock); diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 234fd95ba26..ae9ac430456 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.167 2002/03/07 16:35:34 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.168 2002/03/08 04:37:16 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1898,7 +1898,7 @@ _copyGrantStmt(GrantStmt *from) newnode->is_grant = from->is_grant; newnode->objtype = from->objtype; Node_Copy(from, newnode, objects); - Node_Copy(from, newnode, privileges); + newnode->privileges = listCopy(from->privileges); Node_Copy(from, newnode, grantees); return newnode; @@ -1924,8 +1924,6 @@ _copyFuncWithArgs(FuncWithArgs *from) if (from->funcname) newnode->funcname = pstrdup(from->funcname); - else - newnode->funcname = NULL; Node_Copy(from, newnode, funcargs); return newnode; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 03ce9510ad7..b9269c5a834 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -20,7 +20,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.115 2002/03/07 16:35:34 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.116 2002/03/08 04:37:16 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -763,7 +763,7 @@ _equalGrantStmt(GrantStmt *a, GrantStmt *b) return false; if (!equal(a->objects, b->objects)) return false; - if (!equal(a->privileges, b->privileges)) + if (!equali(a->privileges, b->privileges)) return false; if (!equal(a->grantees, b->grantees)) return false; diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 2b1edd266ee..c166a744592 100644 --- 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.287 2002/03/07 16:35:35 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.288 2002/03/08 04:37:17 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -286,7 +286,6 @@ static void doNegateFloat(Value *v); ConstraintTimeSpec %type <list> constraints_set_list -%type <list> constraints_set_namelist %type <boolean> constraints_set_mode /* @@ -1034,37 +1033,12 @@ ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode } ; - -constraints_set_list: ALL - { - $$ = NIL; - } - | constraints_set_namelist - { - $$ = $1; - } +constraints_set_list: ALL { $$ = NIL; } + | name_list { $$ = $1; } ; - -constraints_set_namelist: ColId - { - $$ = makeList1($1); - } - | constraints_set_namelist ',' ColId - { - $$ = lappend($1, $3); - } - ; - - -constraints_set_mode: DEFERRED - { - $$ = TRUE; - } - | IMMEDIATE - { - $$ = FALSE; - } +constraints_set_mode: DEFERRED { $$ = TRUE; } + | IMMEDIATE { $$ = FALSE; } ; |