50 List **targets,
List **targets_contain_srfs);
53 #define create_pathtarget(root, tlist) \
54 set_pathtarget_cost_width(root, make_pathtarget_from_tlist(tlist))
bool tlist_same_collations(List *tlist, List *colCollations, bool junkOK)
bool tlist_same_exprs(List *tlist1, List *tlist2)
void apply_tlist_labeling(List *dest_tlist, List *src_tlist)
Oid * extract_grouping_collations(List *groupClause, List *tlist)
PathTarget * copy_pathtarget(PathTarget *src)
void apply_pathtarget_labeling_to_tlist(List *tlist, PathTarget *target)
List * get_tlist_exprs(List *tlist, bool includeJunk)
bool grouping_is_sortable(List *groupClause)
List * add_to_flat_tlist(List *tlist, List *exprs)
void add_new_columns_to_pathtarget(PathTarget *target, List *exprs)
PathTarget * create_empty_pathtarget(void)
Oid * extract_grouping_ops(List *groupClause)
AttrNumber * extract_grouping_cols(List *groupClause, List *tlist)
void add_new_column_to_pathtarget(PathTarget *target, Expr *expr)
List * make_tlist_from_pathtarget(PathTarget *target)
TargetEntry * tlist_member(Expr *node, List *targetlist)
void split_pathtarget_at_srfs(PlannerInfo *root, PathTarget *target, PathTarget *input_target, List **targets, List **targets_contain_srfs)
PathTarget * make_pathtarget_from_tlist(List *tlist)
bool grouping_is_hashable(List *groupClause)
void add_column_to_pathtarget(PathTarget *target, Expr *expr, Index sortgroupref)
bool tlist_same_datatypes(List *tlist, List *colTypes, bool junkOK)