1 /*-------------------------------------------------------------------------
4 * Planning routines for subselects.
6 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
9 * src/include/optimizer/subselect.h
11 *-------------------------------------------------------------------------
16 #include "nodes/pathnodes.h"
17 #include "nodes/plannodes.h"
19 extern void SS_process_ctes(PlannerInfo
*root
);
20 extern JoinExpr
*convert_ANY_sublink_to_join(PlannerInfo
*root
,
22 Relids available_rels
);
23 extern JoinExpr
*convert_EXISTS_sublink_to_join(PlannerInfo
*root
,
26 Relids available_rels
);
27 extern Node
*SS_replace_correlation_vars(PlannerInfo
*root
, Node
*expr
);
28 extern Node
*SS_process_sublinks(PlannerInfo
*root
, Node
*expr
, bool isQual
);
29 extern void SS_identify_outer_params(PlannerInfo
*root
);
30 extern void SS_charge_for_initplans(PlannerInfo
*root
, RelOptInfo
*final_rel
);
31 extern void SS_attach_initplans(PlannerInfo
*root
, Plan
*plan
);
32 extern void SS_finalize_plan(PlannerInfo
*root
, Plan
*plan
);
33 extern Param
*SS_make_initplan_output_param(PlannerInfo
*root
,
34 Oid resulttype
, int32 resulttypmod
,
36 extern void SS_make_initplan_from_plan(PlannerInfo
*root
,
37 PlannerInfo
*subroot
, Plan
*plan
,
40 #endif /* SUBSELECT_H */