codekingpro/portable-devtools
116k
1/*-------------------------------------------------------------------------2 *3 * appendinfo.h4 * Routines for mapping expressions between append rel parent(s) and5 * children6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/optimizer/appendinfo.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef APPENDINFO_H15#define APPENDINFO_H16 17#include "nodes/pathnodes.h"18#include "utils/relcache.h"19 20extern AppendRelInfo *make_append_rel_info(Relation parentrel,21 Relation childrel,22 Index parentRTindex, Index childRTindex);23extern Node *adjust_appendrel_attrs(PlannerInfo *root, Node *node,24 int nappinfos, AppendRelInfo **appinfos);25extern Node *adjust_appendrel_attrs_multilevel(PlannerInfo *root, Node *node,26 RelOptInfo *childrel,27 RelOptInfo *parentrel);28extern Relids adjust_child_relids(Relids relids, int nappinfos,29 AppendRelInfo **appinfos);30extern Relids adjust_child_relids_multilevel(PlannerInfo *root, Relids relids,31 RelOptInfo *childrel,32 RelOptInfo *parentrel);33extern List *adjust_inherited_attnums(List *attnums, AppendRelInfo *context);34extern List *adjust_inherited_attnums_multilevel(PlannerInfo *root,35 List *attnums,36 Index child_relid,37 Index top_parent_relid);38extern void get_translated_update_targetlist(PlannerInfo *root, Index relid,39 List **processed_tlist,40 List **update_colnos);41extern AppendRelInfo **find_appinfos_by_relids(PlannerInfo *root,42 Relids relids, int *nappinfos);43extern void add_row_identity_var(PlannerInfo *root, Var *orig_var,44 Index rtindex, const char *rowid_name);45extern void add_row_identity_columns(PlannerInfo *root, Index rtindex,46 RangeTblEntry *target_rte,47 Relation target_relation);48extern void distribute_row_identity_vars(PlannerInfo *root);49 50#endif /* APPENDINFO_H */51 