Update copyright for 2022
[pgsql.git] / src / include / optimizer / appendinfo.h
blobfc808dcd27650ec71590a7435302e42b52aec542
1 /*-------------------------------------------------------------------------
3 * appendinfo.h
4 * Routines for mapping expressions between append rel parent(s) and
5 * children
7 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
10 * src/include/optimizer/appendinfo.h
12 *-------------------------------------------------------------------------
14 #ifndef APPENDINFO_H
15 #define APPENDINFO_H
17 #include "nodes/pathnodes.h"
18 #include "utils/relcache.h"
20 extern AppendRelInfo *make_append_rel_info(Relation parentrel,
21 Relation childrel,
22 Index parentRTindex, Index childRTindex);
23 extern Node *adjust_appendrel_attrs(PlannerInfo *root, Node *node,
24 int nappinfos, AppendRelInfo **appinfos);
25 extern Node *adjust_appendrel_attrs_multilevel(PlannerInfo *root, Node *node,
26 Relids child_relids,
27 Relids top_parent_relids);
28 extern Relids adjust_child_relids(Relids relids, int nappinfos,
29 AppendRelInfo **appinfos);
30 extern Relids adjust_child_relids_multilevel(PlannerInfo *root, Relids relids,
31 Relids child_relids,
32 Relids top_parent_relids);
33 extern List *adjust_inherited_attnums(List *attnums, AppendRelInfo *context);
34 extern List *adjust_inherited_attnums_multilevel(PlannerInfo *root,
35 List *attnums,
36 Index child_relid,
37 Index top_parent_relid);
38 extern void get_translated_update_targetlist(PlannerInfo *root, Index relid,
39 List **processed_tlist,
40 List **update_colnos);
41 extern AppendRelInfo **find_appinfos_by_relids(PlannerInfo *root,
42 Relids relids, int *nappinfos);
43 extern void add_row_identity_var(PlannerInfo *root, Var *rowid_var,
44 Index rtindex, const char *rowid_name);
45 extern void add_row_identity_columns(PlannerInfo *root, Index rtindex,
46 RangeTblEntry *target_rte,
47 Relation target_relation);
48 extern void distribute_row_identity_vars(PlannerInfo *root);
50 #endif /* APPENDINFO_H */