diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-03-16 03:23:18 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-03-16 03:23:18 +0000 |
| commit | e64a331179607fece8cfaef4f2a3ffb6a481f4f2 (patch) | |
| tree | 2ae8c01838944d14215fa2655c3609dbd64ae320 /src/include/rewrite | |
| parent | 4a3a1e2cf15bdb4c0cad08043bec3111cd700113 (diff) | |
| download | postgresql-e64a331179607fece8cfaef4f2a3ffb6a481f4f2.tar.gz | |
Fix some (more) problems with subselects in rules. Rewriter failed to
mark query as having subselects if a subselect was added from a rule
WHERE condition (as opposed to a rule action). Also, fix adjustment
of varlevelsup so that it actually has some prospect of working when
inserting an expression containing a subselect into a subquery.
Diffstat (limited to 'src/include/rewrite')
| -rw-r--r-- | src/include/rewrite/rewriteManip.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/include/rewrite/rewriteManip.h b/src/include/rewrite/rewriteManip.h index 35997e5878..33ea824cf2 100644 --- a/src/include/rewrite/rewriteManip.h +++ b/src/include/rewrite/rewriteManip.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: rewriteManip.h,v 1.19 2000/01/26 05:58:30 momjian Exp $ + * $Id: rewriteManip.h,v 1.20 2000/03/16 03:23:17 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -20,11 +20,16 @@ extern void OffsetVarNodes(Node *node, int offset, int sublevels_up); extern void ChangeVarNodes(Node *node, int old_varno, int new_varno, int sublevels_up); +extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, + int min_sublevels_up); extern void AddQual(Query *parsetree, Node *qual); extern void AddHavingQual(Query *parsetree, Node *havingQual); extern void AddNotQual(Query *parsetree, Node *qual); extern void AddGroupClause(Query *parsetree, List *group_by, List *tlist); +extern bool checkExprHasAggs(Node *node); +extern bool checkExprHasSubLink(Node *node); + extern void FixNew(RewriteInfo *info, Query *parsetree); extern void HandleRIRAttributeRule(Query *parsetree, List *rtable, |
