Header And Logo

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

subselect.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * subselect.h
00004  *
00005  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00006  * Portions Copyright (c) 1994, Regents of the University of California
00007  *
00008  * src/include/optimizer/subselect.h
00009  *
00010  *-------------------------------------------------------------------------
00011  */
00012 #ifndef SUBSELECT_H
00013 #define SUBSELECT_H
00014 
00015 #include "nodes/plannodes.h"
00016 #include "nodes/relation.h"
00017 
00018 extern void SS_process_ctes(PlannerInfo *root);
00019 extern JoinExpr *convert_ANY_sublink_to_join(PlannerInfo *root,
00020                             SubLink *sublink,
00021                             Relids available_rels);
00022 extern JoinExpr *convert_EXISTS_sublink_to_join(PlannerInfo *root,
00023                                SubLink *sublink,
00024                                bool under_not,
00025                                Relids available_rels);
00026 extern Node *SS_replace_correlation_vars(PlannerInfo *root, Node *expr);
00027 extern Node *SS_process_sublinks(PlannerInfo *root, Node *expr, bool isQual);
00028 extern void SS_finalize_plan(PlannerInfo *root, Plan *plan,
00029                  bool attach_initplans);
00030 extern Param *SS_make_initplan_from_plan(PlannerInfo *root, Plan *plan,
00031                     Oid resulttype, int32 resulttypmod, Oid resultcollation);
00032 extern Param *assign_nestloop_param_var(PlannerInfo *root, Var *var);
00033 extern Param *assign_nestloop_param_placeholdervar(PlannerInfo *root,
00034                                      PlaceHolderVar *phv);
00035 extern int  SS_assign_special_param(PlannerInfo *root);
00036 
00037 #endif   /* SUBSELECT_H */