diff options
| author | Tom Lane | 2003-01-17 02:01:21 +0000 |
|---|---|---|
| committer | Tom Lane | 2003-01-17 02:01:21 +0000 |
| commit | a4d82dd4b4725c12a64d87967719f7690a054cbd (patch) | |
| tree | 6f190e80d6fe8e4ced2593ab53407a852f4deb83 /src/include/optimizer | |
| parent | 227a404cf4badc5b245a17c674658605d8aa9397 (diff) | |
Adjust API of expression_tree_mutator and query_tree_mutator to
simplify callers. It turns out the common case is that the caller
does want to recurse into sub-queries, so push support for that into
these subroutines.
Diffstat (limited to 'src/include/optimizer')
| -rw-r--r-- | src/include/optimizer/clauses.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h index 4ed022b15e7..024c1599a4c 100644 --- a/src/include/optimizer/clauses.h +++ b/src/include/optimizer/clauses.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: clauses.h,v 1.59 2003/01/15 19:35:47 tgl Exp $ + * $Id: clauses.h,v 1.60 2003/01/17 02:01:21 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -75,12 +75,18 @@ extern Node *expression_tree_mutator(Node *node, Node *(*mutator) (), void *context); /* flags bits for query_tree_walker and query_tree_mutator */ -#define QTW_IGNORE_SUBQUERIES 0x01 /* subqueries in rtable */ -#define QTW_IGNORE_JOINALIASES 0x02 /* JOIN alias var lists */ +#define QTW_IGNORE_RT_SUBQUERIES 0x01 /* subqueries in rtable */ +#define QTW_IGNORE_JOINALIASES 0x02 /* JOIN alias var lists */ +#define QTW_DONT_COPY_QUERY 0x04 /* do not copy top Query */ extern bool query_tree_walker(Query *query, bool (*walker) (), void *context, int flags); -extern void query_tree_mutator(Query *query, Node *(*mutator) (), - void *context, int flags); +extern Query *query_tree_mutator(Query *query, Node *(*mutator) (), + void *context, int flags); + +extern bool query_or_expression_tree_walker(Node *node, bool (*walker) (), + void *context, int flags); +extern Node *query_or_expression_tree_mutator(Node *node, Node *(*mutator) (), + void *context, int flags); #endif /* CLAUSES_H */ |
