diff options
Diffstat (limited to 'src/backend/catalog/dependency.c')
| -rw-r--r-- | src/backend/catalog/dependency.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 491c402a03..aeffbf4d74 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.96 2010/02/26 02:00:36 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.97 2010/08/07 02:44:06 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1594,7 +1594,7 @@ find_expr_references_walker(Node *node, { /* Recurse into RTE subquery or not-yet-planned sublink subquery */ Query *query = (Query *) node; - ListCell *rtable; + ListCell *lc; bool result; /* @@ -1604,9 +1604,9 @@ find_expr_references_walker(Node *node, * of recursing into RTE_FUNCTION RTEs, subqueries, etc, so no need to * do that here. But keep it from looking at join alias lists.) */ - foreach(rtable, query->rtable) + foreach(lc, query->rtable) { - RangeTblEntry *rte = (RangeTblEntry *) lfirst(rtable); + RangeTblEntry *rte = (RangeTblEntry *) lfirst(lc); ListCell *ct; switch (rte->rtekind) @@ -1627,6 +1627,15 @@ find_expr_references_walker(Node *node, } } + /* + * Add dependencies on constraints listed in query's constraintDeps + */ + foreach(lc, query->constraintDeps) + { + add_object_address(OCLASS_CONSTRAINT, lfirst_oid(lc), 0, + context->addrs); + } + /* query_tree_walker ignores ORDER BY etc, but we need those opers */ find_expr_references_walker((Node *) query->sortClause, context); find_expr_references_walker((Node *) query->groupClause, context); |
