Header And Logo

PostgreSQL
| The world's most advanced open source database.

placeholder.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * placeholder.h
00004  *    prototypes for optimizer/util/placeholder.c.
00005  *
00006  *
00007  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00008  * Portions Copyright (c) 1994, Regents of the University of California
00009  *
00010  * src/include/optimizer/placeholder.h
00011  *
00012  *-------------------------------------------------------------------------
00013  */
00014 #ifndef PLACEHOLDER_H
00015 #define PLACEHOLDER_H
00016 
00017 #include "nodes/relation.h"
00018 
00019 
00020 extern PlaceHolderVar *make_placeholder_expr(PlannerInfo *root, Expr *expr,
00021                       Relids phrels);
00022 extern PlaceHolderInfo *find_placeholder_info(PlannerInfo *root,
00023                       PlaceHolderVar *phv, bool create_new_ph);
00024 extern void find_placeholders_in_jointree(PlannerInfo *root);
00025 extern void mark_placeholder_maybe_needed(PlannerInfo *root,
00026                               PlaceHolderInfo *phinfo, Relids relids);
00027 extern void update_placeholder_eval_levels(PlannerInfo *root,
00028                                SpecialJoinInfo *new_sjinfo);
00029 extern void fix_placeholder_input_needed_levels(PlannerInfo *root);
00030 extern void add_placeholders_to_base_rels(PlannerInfo *root);
00031 extern void add_placeholders_to_joinrel(PlannerInfo *root,
00032                             RelOptInfo *joinrel);
00033 
00034 #endif   /* PLACEHOLDER_H */