diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/nodes/parsenodes.h | 4 | ||||
-rw-r--r-- | src/include/nodes/primnodes.h | 4 | ||||
-rw-r--r-- | src/include/nodes/relation.h | 3 | ||||
-rw-r--r-- | src/include/optimizer/planmain.h | 6 | ||||
-rw-r--r-- | src/include/rewrite/rewriteManip.h | 3 |
5 files changed, 13 insertions, 7 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index c55a8cf93b6..fed516ccfb8 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.71 1999/02/23 07:55:24 thomas Exp $ + * $Id: parsenodes.h,v 1.72 1999/05/12 15:02:04 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -960,8 +960,8 @@ typedef struct SortClause typedef struct GroupClause { NodeTag type; - TargetEntry *entry; /* attributes to group on */ Oid grpOpoid; /* the sort operator to use */ + Index tleGroupref; /* reference into targetlist */ } GroupClause; #define ROW_MARK_FOR_UPDATE (1 << 0) diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index 981bd61f32c..93eafbe72c7 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: primnodes.h,v 1.25 1999/02/13 23:21:40 momjian Exp $ + * $Id: primnodes.h,v 1.26 1999/05/12 15:02:07 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -30,6 +30,7 @@ * resname - name of the resdom (could be NULL) * reskey - order of key in a sort (for those > 0) * reskeyop - sort operator Oid + * resgroupref - set to nonzero if referenced from a group by clause * resjunk - set to nonzero to eliminate the attribute * from final target list e.g., ctid for replace * and delete @@ -45,6 +46,7 @@ typedef struct Resdom char *resname; Index reskey; Oid reskeyop; + Index resgroupref; int resjunk; } Resdom; diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index d52960903e2..2d47243c405 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: relation.h,v 1.29 1999/02/22 19:55:44 momjian Exp $ + * $Id: relation.h,v 1.30 1999/05/12 15:02:08 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -103,6 +103,7 @@ typedef struct RelOptInfo } RelOptInfo; extern Var *get_expr(TargetEntry *foo); +extern Var *get_groupclause_expr(GroupClause *groupClause, List *targetList); typedef struct MergeOrder { diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index 002238571c0..e3848330dbc 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: planmain.h,v 1.24 1999/05/03 00:38:42 tgl Exp $ + * $Id: planmain.h,v 1.25 1999/05/12 15:02:22 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -62,7 +62,9 @@ extern void replace_vars_with_subplan_refs(Node *clause, List *subplanTargetList); extern bool set_agg_tlist_references(Agg *aggNode); extern void del_agg_tlist_references(List *tlist); -extern void check_having_for_ungrouped_vars(Node *clause, List *groupClause); +extern void check_having_for_ungrouped_vars(Node *clause, + List *groupClause, + List *targetList); extern void transformKeySetQuery(Query *origNode); #endif /* PLANMAIN_H */ diff --git a/src/include/rewrite/rewriteManip.h b/src/include/rewrite/rewriteManip.h index 317dae8ea0d..e41a2267083 100644 --- a/src/include/rewrite/rewriteManip.h +++ b/src/include/rewrite/rewriteManip.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: rewriteManip.h,v 1.13 1999/02/13 23:22:00 momjian Exp $ + * $Id: rewriteManip.h,v 1.14 1999/05/12 15:02:28 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -26,6 +26,7 @@ void AddHavingQual(Query *parsetree, Node *havingQual); void AddNotQual(Query *parsetree, Node *qual); void AddNotHavingQual(Query *parsetree, Node *havingQual); +void AddGroupClause(Query *parsetree, List *group_by, List *tlist); void FixNew(RewriteInfo *info, Query *parsetree); |