|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "access/sysattr.h"#include "catalog/pg_class.h"#include "foreign/fdwapi.h"#include "miscadmin.h"#include "nodes/extensible.h"#include "nodes/makefuncs.h"#include "nodes/nodeFuncs.h"#include "optimizer/clauses.h"#include "optimizer/cost.h"#include "optimizer/optimizer.h"#include "optimizer/paramassign.h"#include "optimizer/pathnode.h"#include "optimizer/paths.h"#include "optimizer/placeholder.h"#include "optimizer/plancat.h"#include "optimizer/planmain.h"#include "optimizer/prep.h"#include "optimizer/restrictinfo.h"#include "optimizer/subselect.h"#include "optimizer/tlist.h"#include "parser/parse_clause.h"#include "parser/parsetree.h"#include "partitioning/partprune.h"#include "tcop/tcopprot.h"#include "utils/lsyscache.h"
Go to the source code of this file.
Macros | |
| #define | CP_EXACT_TLIST 0x0001 /* Plan must return specified tlist */ |
| #define | CP_SMALL_TLIST 0x0002 /* Prefer narrower tlists */ |
| #define | CP_LABEL_TLIST 0x0004 /* tlist must contain sortgrouprefs */ |
| #define | CP_IGNORE_TLIST 0x0008 /* caller will replace tlist */ |
Definition at line 68 of file createplan.c.
Definition at line 71 of file createplan.c.
| #define CP_LABEL_TLIST 0x0004 /* tlist must contain sortgrouprefs */ |
Definition at line 70 of file createplan.c.
Definition at line 69 of file createplan.c.
Definition at line 5455 of file createplan.c.
References bitmap_subplan_mark_shared(), elog, ERROR, IsA, linitial, nodeTag, and plan.
Referenced by bitmap_subplan_mark_shared(), and create_bitmap_scan_plan().
|
static |
Definition at line 816 of file createplan.c.
References fb(), lappend(), lfirst, makeTargetEntry(), NIL, replace_nestloop_params(), and root.
Referenced by create_agg_plan(), create_append_plan(), create_gather_merge_plan(), create_gather_plan(), create_gating_plan(), create_group_plan(), create_group_result_plan(), create_groupingsets_plan(), create_hashjoin_plan(), create_merge_append_plan(), create_mergejoin_plan(), create_minmaxagg_plan(), create_nestloop_plan(), create_project_set_plan(), create_projection_plan(), create_recursiveunion_plan(), create_scan_plan(), create_setop_plan(), and create_windowagg_plan().
Definition at line 1989 of file createplan.c.
References fb(), inject_projection_plan(), is_projection_capable_plan(), Plan::parallel_safe, Plan::targetlist, and tlist_same_exprs().
Referenced by create_nestloop_plan(), and postgresGetForeignPlan().
Definition at line 5356 of file createplan.c.
References Path::disabled_nodes, Path::parallel_aware, Path::parallel_safe, Path::rows, Path::startup_cost, and Path::total_cost.
Referenced by create_agg_plan(), create_append_plan(), create_bitmap_scan_plan(), create_ctescan_plan(), create_customscan_plan(), create_foreignscan_plan(), create_functionscan_plan(), create_gather_merge_plan(), create_gather_plan(), create_group_plan(), create_group_result_plan(), create_groupingsets_plan(), create_hashjoin_plan(), create_incrementalsort_plan(), create_indexscan_plan(), create_limit_plan(), create_lockrows_plan(), create_material_plan(), create_memoize_plan(), create_merge_append_plan(), create_mergejoin_plan(), create_minmaxagg_plan(), create_modifytable_plan(), create_namedtuplestorescan_plan(), create_nestloop_plan(), create_project_set_plan(), create_projection_plan(), create_recursiveunion_plan(), create_resultscan_plan(), create_samplescan_plan(), create_seqscan_plan(), create_setop_plan(), create_sort_plan(), create_subqueryscan_plan(), create_tablefuncscan_plan(), create_tidrangescan_plan(), create_tidscan_plan(), create_unique_plan(), create_valuesscan_plan(), create_windowagg_plan(), and create_worktablescan_plan().
Definition at line 5372 of file createplan.c.
References Plan::disabled_nodes, Plan::parallel_safe, Plan::plan_rows, Plan::plan_width, Plan::startup_cost, and Plan::total_cost.
Referenced by create_gating_plan(), create_hashjoin_plan(), create_mergejoin_plan(), and inject_projection_plan().
|
static |
Definition at line 2153 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), CP_LABEL_TLIST, create_plan_recurse(), extract_grouping_collations(), extract_grouping_cols(), extract_grouping_ops(), fb(), list_length(), make_agg(), NIL, order_qual_clauses(), plan, root, and Plan::targetlist.
Referenced by create_plan_recurse().
|
static |
Definition at line 1207 of file createplan.c.
References Assert, Plan::async_capable, RelOptInfo::baserestrictinfo, build_path_tlist(), copy_generic_path_info(), CP_EXACT_TLIST, CP_SMALL_TLIST, create_plan_recurse(), elog, enable_async_append, enable_incremental_sort, enable_partition_pruning, ERROR, extract_actual_clauses(), fb(), inject_projection_plan(), label_incrementalsort_with_costsize(), label_sort_with_costsize(), lappend(), lfirst, list_concat(), list_copy_head(), list_length(), list_make1, make_incrementalsort(), make_one_row_result(), make_partition_pruneinfo(), make_sort(), makeBoolConst(), makeNode, mark_async_capable_plan(), NIL, pathkeys_count_contained_in(), plan, prepare_sort_from_pathkeys(), RelOptInfo::relids, replace_nestloop_params(), root, and subpath().
Referenced by create_plan_recurse().
|
static |
Definition at line 3036 of file createplan.c.
References Assert, bitmap_subplan_mark_shared(), RestrictInfo::clause, contain_mutable_functions(), copy_generic_path_info(), create_bitmap_subplan(), extract_actual_clauses(), fb(), lappend(), lfirst_node, list_difference_ptr(), list_make1, list_member(), list_member_ptr(), make_bitmap_heapscan(), NIL, order_qual_clauses(), predicate_implied_by(), replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_scan_plan().
|
static |
Definition at line 3166 of file createplan.c.
References Assert, castNode, clamp_row_est(), RestrictInfo::clause, create_bitmap_subplan(), create_indexscan_plan(), elog, ERROR, fb(), get_actual_clauses(), IndexScan::indexid, IndexScan::indexqual, IndexScan::indexqualorig, IsA, lappend(), lfirst, linitial, list_concat(), list_concat_unique(), list_length(), list_make1, make_ands_explicit(), make_bitmap_and(), make_bitmap_indexscan(), make_bitmap_or(), make_orclause(), NIL, nodeTag, plan, predicate_implied_by(), root, IndexScan::scan, and Scan::scanrelid.
Referenced by create_bitmap_scan_plan(), and create_bitmap_subplan().
|
static |
Definition at line 3725 of file createplan.c.
References Assert, copy_generic_path_info(), CommonTableExpr::ctename, elog, ERROR, extract_actual_clauses(), fb(), lfirst, linitial_int, list_length(), list_nth_int(), make_ctescan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_CTE.
Referenced by create_scan_plan().
|
static |
Definition at line 4112 of file createplan.c.
References castNode, copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), CustomScan::custom_exprs, CustomScan::custom_relids, fb(), lappend(), lfirst, CustomScan::methods, NIL, order_qual_clauses(), plan, replace_nestloop_params(), root, and CustomScan::scan.
Referenced by create_scan_plan().
|
static |
Definition at line 3957 of file createplan.c.
References Assert, RelOptInfo::baserestrictinfo, bms_difference(), bms_free(), bms_is_member(), RestrictInfo::clause, copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), PathTarget::exprs, fb(), FirstLowInvalidHeapAttributeNumber, i, InvalidOid, lfirst, order_qual_clauses(), planner_rt_fetch, pull_varattnos(), RelOptInfo::relid, RELOPT_UPPER_REL, RelOptInfo::reloptkind, RelOptInfo::reltarget, replace_nestloop_params(), root, RTE_RELATION, RelOptInfo::rtekind, RelOptInfo::serverid, RelOptInfo::userid, and RelOptInfo::useridiscurrent.
Referenced by create_scan_plan().
|
static |
Definition at line 3595 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), functions, make_functionscan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_FUNCTION.
Referenced by create_scan_plan().
|
static |
Definition at line 1800 of file createplan.c.
References Assert, assign_special_exec_param(), build_path_tlist(), copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), fb(), makeNode, NIL, pathkeys_contained_in(), prepare_sort_from_pathkeys(), and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1762 of file createplan.c.
References assign_special_exec_param(), build_path_tlist(), copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), fb(), make_gather(), NIL, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1013 of file createplan.c.
References Assert, build_path_tlist(), copy_plan_costsize(), fb(), IsA, Plan::lefttree, make_gating_result(), Path::parallel_safe, Plan::parallel_safe, Result::plan, plan, Result::relids, Result::result_type, and root.
Referenced by create_join_plan(), and create_scan_plan().
|
static |
Definition at line 2078 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), CP_LABEL_TLIST, create_plan_recurse(), extract_grouping_collations(), extract_grouping_cols(), extract_grouping_ops(), fb(), list_length(), make_group(), order_qual_clauses(), plan, root, and Plan::targetlist.
Referenced by create_plan_recurse().
|
static |
Definition at line 1629 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), fb(), make_one_row_result(), order_qual_clauses(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 2237 of file createplan.c.
References AGG_HASHED, AGG_PLAIN, AGG_SORTED, AGGSPLIT_SIMPLE, Assert, build_path_tlist(), copy_generic_path_info(), CP_LABEL_TLIST, create_plan_recurse(), extract_grouping_collations(), extract_grouping_ops(), fb(), for_each_from, get_sortgroupclause_tle(), lappend(), lfirst, linitial, list_length(), make_agg(), make_sort_from_groupcols(), NIL, palloc0(), plan, remap_groupColIdx(), root, Plan::targetlist, and SortGroupClause::tleSortGroupRef.
Referenced by create_plan_recurse().
|
static |
Definition at line 4689 of file createplan.c.
References OpExpr::args, Assert, build_path_tlist(), copy_generic_path_info(), copy_plan_costsize(), CP_SMALL_TLIST, create_plan_recurse(), extract_actual_clauses(), extract_actual_join_clauses(), fb(), get_actual_clauses(), get_switched_clauses(), InvalidAttrNumber, InvalidOid, is_opclause(), IS_OUTER_JOIN, IsA, lappend(), lappend_oid(), lfirst_node, linitial, list_difference(), list_length(), lsecond, make_hash(), make_hashjoin(), NIL, order_qual_clauses(), replace_nestloop_params(), root, RTE_RELATION, Var::varattno, and Var::varno.
Referenced by create_join_plan().
|
static |
Definition at line 2051 of file createplan.c.
References copy_generic_path_info(), CP_SMALL_TLIST, create_plan_recurse(), fb(), IS_OTHER_REL, make_incrementalsort_from_pathkeys(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 2840 of file createplan.c.
References Assert, BackwardScanDirection, RestrictInfo::clause, contain_mutable_functions(), copy_generic_path_info(), elog, ERROR, exprType(), extract_actual_clauses(), fb(), fix_indexorderby_references(), fix_indexqual_references(), forboth, ForwardScanDirection, get_opfamily_member_for_cmptype(), i, IndexOptInfo::indexoid, IndexOptInfo::indextlist, is_redundant_with_indexclauses(), lappend(), lappend_oid(), lfirst, lfirst_node, list_length(), list_make1, make_indexonlyscan(), make_indexscan(), NIL, OidIsValid, order_qual_clauses(), predicate_implied_by(), replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_bitmap_subplan(), and create_scan_plan().
|
static |
Definition at line 1072 of file createplan.c.
References create_gating_plan(), create_hashjoin_plan(), create_mergejoin_plan(), create_nestloop_plan(), elog, ERROR, fb(), get_actual_clauses(), get_gating_quals(), list_concat(), NIL, plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 2690 of file createplan.c.
References copy_generic_path_info(), create_plan_recurse(), exprCollation(), fb(), get_sortgroupclause_tle(), lfirst, LIMIT_OPTION_WITH_TIES, list_length(), make_limit(), palloc(), parse(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 2627 of file createplan.c.
References copy_generic_path_info(), create_plan_recurse(), fb(), make_lockrows(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1680 of file createplan.c.
References copy_generic_path_info(), CP_SMALL_TLIST, create_plan_recurse(), fb(), make_material(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1708 of file createplan.c.
References Assert, copy_generic_path_info(), CP_SMALL_TLIST, create_plan_recurse(), exprCollation(), fb(), forboth, i, lfirst, lfirst_oid, list_length(), make_memoize(), NIL, palloc(), plan, pull_paramids(), replace_nestloop_params(), and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1453 of file createplan.c.
References MergeAppend::apprelids, Assert, RelOptInfo::baserestrictinfo, build_path_tlist(), copy_generic_path_info(), CP_EXACT_TLIST, CP_SMALL_TLIST, create_plan_recurse(), elog, enable_incremental_sort, enable_partition_pruning, ERROR, extract_actual_clauses(), fb(), inject_projection_plan(), label_incrementalsort_with_costsize(), label_sort_with_costsize(), lappend(), lfirst, list_copy_head(), list_length(), make_incrementalsort(), make_partition_pruneinfo(), make_sort(), makeNode, MergeAppend::mergeplans, NIL, MergeAppend::numCols, MergeAppend::part_prune_index, pathkeys_count_contained_in(), MergeAppend::plan, plan, prepare_sort_from_pathkeys(), RelOptInfo::relids, root, and subpath().
Referenced by create_plan_recurse().
|
static |
Definition at line 4335 of file createplan.c.
References Assert, build_path_tlist(), COMPARE_GT, copy_generic_path_info(), copy_plan_costsize(), CP_SMALL_TLIST, cpu_operator_cost, create_plan_recurse(), elog, enable_incremental_sort, ERROR, extract_actual_clauses(), extract_actual_join_clauses(), fb(), get_actual_clauses(), get_switched_clauses(), i, IS_OUTER_JOIN, label_incrementalsort_with_costsize(), label_sort_with_costsize(), lfirst, lfirst_node, list_difference(), list_head(), list_length(), lnext(), make_incrementalsort_from_pathkeys(), make_material(), make_mergejoin(), make_sort_from_pathkeys(), NIL, order_qual_clauses(), palloc(), pathkeys_contained_in(), replace_nestloop_params(), root, sort(), and true.
Referenced by create_join_plan().
|
static |
Definition at line 2395 of file createplan.c.
References Assert, build_path_tlist(), copy_generic_path_info(), create_plan(), fb(), lfirst, make_limit(), make_one_row_result(), NIL, PlannerInfo::parse, plan, RESULT_TYPE_MINMAX, root, and SS_make_initplan_from_plan().
Referenced by create_plan_recurse().
|
static |
Definition at line 2650 of file createplan.c.
References apply_tlist_labeling(), copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), fb(), make_modifytable(), plan, root, subpath(), and Plan::targetlist.
Referenced by create_plan_recurse().
|
static |
Definition at line 3820 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_namedtuplestorescan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_NAMEDTUPLESTORE.
Referenced by create_scan_plan().
|
static |
Definition at line 4183 of file createplan.c.
References Assert, bms_free(), bms_union(), build_path_tlist(), castNode, change_plan_targetlist(), copy_generic_path_info(), copyObject, create_plan_recurse(), extract_actual_clauses(), extract_actual_join_clauses(), fb(), identify_current_nestloop_params(), IS_OUTER_JOIN, is_parallel_safe(), IsA, lappend(), lfirst, list_copy(), list_length(), make_nestloop(), makeTargetEntry(), NIL, order_qual_clauses(), Plan::parallel_safe, PATH_REQ_OUTER, reparameterize_path_by_child(), replace_nestloop_params(), root, Plan::targetlist, and tlist_member().
Referenced by create_join_plan().
| Plan * create_plan | ( | PlannerInfo * | root, |
| Path * | best_path | ||
| ) |
Definition at line 338 of file createplan.c.
References apply_tlist_labeling(), Assert, CP_EXACT_TLIST, create_plan_recurse(), elog, ERROR, fb(), IsA, NIL, plan, root, and SS_attach_initplans().
Referenced by create_minmaxagg_plan(), create_subqueryscan_plan(), make_subplan(), SS_process_ctes(), and standard_planner().
|
static |
Definition at line 389 of file createplan.c.
References Assert, check_stack_depth(), create_agg_plan(), create_append_plan(), create_gather_merge_plan(), create_gather_plan(), create_group_plan(), create_group_result_plan(), create_groupingsets_plan(), create_incrementalsort_plan(), create_join_plan(), create_limit_plan(), create_lockrows_plan(), create_material_plan(), create_memoize_plan(), create_merge_append_plan(), create_minmaxagg_plan(), create_modifytable_plan(), create_project_set_plan(), create_projection_plan(), create_recursiveunion_plan(), create_scan_plan(), create_setop_plan(), create_sort_plan(), create_unique_plan(), create_windowagg_plan(), elog, ERROR, fb(), IsA, plan, and root.
Referenced by create_agg_plan(), create_append_plan(), create_customscan_plan(), create_foreignscan_plan(), create_gather_merge_plan(), create_gather_plan(), create_group_plan(), create_groupingsets_plan(), create_hashjoin_plan(), create_incrementalsort_plan(), create_limit_plan(), create_lockrows_plan(), create_material_plan(), create_memoize_plan(), create_merge_append_plan(), create_mergejoin_plan(), create_modifytable_plan(), create_nestloop_plan(), create_plan(), create_project_set_plan(), create_projection_plan(), create_recursiveunion_plan(), create_setop_plan(), create_sort_plan(), create_unique_plan(), and create_windowagg_plan().
|
static |
Definition at line 1654 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), create_plan_recurse(), fb(), make_project_set(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 1856 of file createplan.c.
References apply_pathtarget_labeling_to_tlist(), Assert, build_path_tlist(), copy_generic_path_info(), CP_IGNORE_TLIST, CP_LABEL_TLIST, create_plan_recurse(), fb(), is_projection_capable_path(), is_projection_capable_plan(), make_gating_result(), plan, root, Plan::targetlist, tlist_same_exprs(), and use_physical_tlist().
Referenced by create_plan_recurse().
|
static |
Definition at line 2595 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), CP_EXACT_TLIST, create_plan_recurse(), fb(), make_recursive_union(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 3859 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_one_row_result(), order_qual_clauses(), PG_USED_FOR_ASSERTS_ONLY, planner_rt_fetch, replace_nestloop_params(), root, and RTE_RESULT.
Referenced by create_scan_plan().
|
static |
Definition at line 2789 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_samplescan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_scan_plan().
|
static |
Definition at line 550 of file createplan.c.
References apply_pathtarget_labeling_to_tlist(), Assert, RelOptInfo::baserestrictinfo, build_path_tlist(), build_physical_tlist(), castNode, copyObject, CP_IGNORE_TLIST, CP_LABEL_TLIST, create_bitmap_scan_plan(), create_ctescan_plan(), create_customscan_plan(), create_foreignscan_plan(), create_functionscan_plan(), create_gating_plan(), create_indexscan_plan(), create_namedtuplestorescan_plan(), create_resultscan_plan(), create_samplescan_plan(), create_seqscan_plan(), create_subqueryscan_plan(), create_tablefuncscan_plan(), create_tidrangescan_plan(), create_tidscan_plan(), create_valuesscan_plan(), create_worktablescan_plan(), elog, ERROR, fb(), get_gating_quals(), IS_JOIN_REL, list_concat_copy(), NIL, plan, root, and use_physical_tlist().
Referenced by create_plan_recurse().
|
static |
Definition at line 2751 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_seqscan(), order_qual_clauses(), replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_scan_plan().
|
static |
Definition at line 2559 of file createplan.c.
References build_path_tlist(), copy_generic_path_info(), CP_LABEL_TLIST, create_plan_recurse(), fb(), make_setop(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 2017 of file createplan.c.
References copy_generic_path_info(), CP_SMALL_TLIST, create_plan_recurse(), fb(), IS_OTHER_REL, make_sort_from_pathkeys(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 3536 of file createplan.c.
References Assert, copy_generic_path_info(), create_plan(), extract_actual_clauses(), fb(), make_subqueryscan(), order_qual_clauses(), process_subquery_nestloop_params(), RelOptInfo::relid, replace_nestloop_params(), root, RTE_SUBQUERY, RelOptInfo::rtekind, RelOptInfo::subplan_params, and RelOptInfo::subroot.
Referenced by create_scan_plan().
|
static |
Definition at line 3638 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_tablefuncscan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_TABLEFUNC.
Referenced by create_scan_plan().
|
static |
Definition at line 3471 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), lappend(), lfirst_node, list_member_ptr(), make_tidrangescan(), NIL, order_qual_clauses(), replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_scan_plan().
|
static |
Definition at line 3374 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), is_redundant_derived_clause(), lappend(), lfirst_node, list_difference(), list_length(), list_make1, list_member_ptr(), make_orclause(), make_tidscan(), NIL, order_qual_clauses(), replace_nestloop_params(), root, and RTE_RELATION.
Referenced by create_scan_plan().
|
static |
Definition at line 2117 of file createplan.c.
References copy_generic_path_info(), CP_LABEL_TLIST, create_plan_recurse(), fb(), IS_OTHER_REL, make_unique_from_pathkeys(), plan, and root.
Referenced by create_plan_recurse().
|
static |
Definition at line 3681 of file createplan.c.
References Assert, copy_generic_path_info(), extract_actual_clauses(), fb(), make_valuesscan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_VALUES.
Referenced by create_scan_plan().
|
static |
Definition at line 2464 of file createplan.c.
References Assert, build_path_tlist(), copy_generic_path_info(), CP_LABEL_TLIST, CP_SMALL_TLIST, create_plan_recurse(), exprCollation(), fb(), get_sortgroupclause_tle(), lfirst, list_length(), make_windowagg(), OidIsValid, WindowClause::orderClause, palloc_array, WindowClause::partitionClause, plan, root, and Plan::targetlist.
Referenced by create_plan_recurse().
|
static |
Definition at line 3897 of file createplan.c.
References Assert, copy_generic_path_info(), elog, ERROR, extract_actual_clauses(), fb(), make_worktablescan(), order_qual_clauses(), planner_rt_fetch, replace_nestloop_params(), root, and RTE_CTE.
Referenced by create_scan_plan().
|
static |
Definition at line 5004 of file createplan.c.
References fb(), fix_indexqual_clause(), forboth, lappend(), lfirst, lfirst_int, NIL, and root.
Referenced by create_indexscan_plan().
|
static |
Definition at line 5033 of file createplan.c.
References OpExpr::args, ScalarArrayOpExpr::args, Assert, elog, ERROR, fb(), fix_indexqual_operand(), forboth, IsA, RowCompareExpr::largs, lca(), lfirst, lfirst_int, linitial, list_length(), nodeTag, replace_nestloop_params(), and root.
Referenced by fix_indexorderby_references(), and fix_indexqual_references().
|
static |
Definition at line 5105 of file createplan.c.
References arg, Assert, copyObject, elog, equal(), ERROR, exprCollation(), exprType(), fb(), INDEX_VAR, IsA, lfirst, list_head(), lnext(), makeVar(), strip_phvs_in_index_operand(), Var::varattno, and Var::varno.
Referenced by fix_indexqual_clause().
|
static |
Definition at line 4963 of file createplan.c.
References RestrictInfo::clause, fb(), fix_indexqual_clause(), lappend(), lfirst_node, NIL, and root.
Referenced by create_indexscan_plan().
|
static |
Definition at line 993 of file createplan.c.
References extract_actual_clauses(), NIL, order_qual_clauses(), and root.
Referenced by create_join_plan(), and create_scan_plan().
Definition at line 5185 of file createplan.c.
References OpExpr::args, Assert, bms_is_subset(), CommuteOpExpr(), fb(), InvalidOid, is_opclause(), lappend(), lfirst, list_copy(), OpExpr::location, makeNode, NIL, and OpExpr::opno.
Referenced by create_hashjoin_plan(), and create_mergejoin_plan().
Definition at line 1957 of file createplan.c.
References copy_plan_costsize(), fb(), make_gating_result(), and plan.
Referenced by change_plan_targetlist(), create_append_plan(), create_merge_append_plan(), and prepare_sort_from_pathkeys().
Definition at line 7226 of file createplan.c.
References castNode, CUSTOMPATH_SUPPORT_PROJECTION, fb(), IS_DUMMY_APPEND, and Path::pathtype.
Referenced by add_paths_with_pathkeys_for_rel(), apply_projection_to_path(), create_projection_path(), and create_projection_plan().
Definition at line 7276 of file createplan.c.
References CUSTOMPATH_SUPPORT_PROJECTION, fb(), nodeTag, and plan.
Referenced by change_plan_targetlist(), create_projection_plan(), and prepare_sort_from_pathkeys().
|
static |
Definition at line 5423 of file createplan.c.
References Assert, cost_incremental_sort(), fb(), IsA, Plan::lefttree, Plan::parallel_safe, plan, Plan::plan_rows, Plan::plan_width, root, Plan::startup_cost, Plan::total_cost, and work_mem.
Referenced by create_append_plan(), create_merge_append_plan(), and create_mergejoin_plan().
|
static |
Definition at line 5395 of file createplan.c.
References Assert, cost_sort(), fb(), IsA, Plan::lefttree, NIL, Plan::parallel_safe, plan, Plan::plan_rows, Plan::plan_width, root, Plan::total_cost, and work_mem.
Referenced by create_append_plan(), create_merge_append_plan(), and create_mergejoin_plan().
| Agg * make_agg | ( | List * | tlist, |
| List * | qual, | ||
| AggStrategy | aggstrategy, | ||
| AggSplit | aggsplit, | ||
| int | numGroupCols, | ||
| AttrNumber * | grpColIdx, | ||
| Oid * | grpOperators, | ||
| Oid * | grpCollations, | ||
| List * | groupingSets, | ||
| List * | chain, | ||
| Cardinality | numGroups, | ||
| Size | transitionSpace, | ||
| Plan * | lefttree | ||
| ) |
Definition at line 6583 of file createplan.c.
References Agg::aggParams, Agg::aggsplit, Agg::aggstrategy, Agg::chain, fb(), Agg::groupingSets, makeNode, Agg::numCols, Agg::numGroups, Agg::plan, plan, Plan::righttree, and Agg::transitionSpace.
Referenced by create_agg_plan(), and create_groupingsets_plan().
Definition at line 5895 of file createplan.c.
References BitmapAnd::bitmapplans, fb(), makeNode, NIL, BitmapAnd::plan, plan, and Plan::targetlist.
Referenced by create_bitmap_subplan().
|
static |
Definition at line 5602 of file createplan.c.
References BitmapHeapScan::bitmapqualorig, fb(), makeNode, plan, Plan::righttree, BitmapHeapScan::scan, and Scan::scanrelid.
Referenced by create_bitmap_scan_plan().
|
static |
Definition at line 5581 of file createplan.c.
References fb(), BitmapIndexScan::indexid, BitmapIndexScan::indexqual, BitmapIndexScan::indexqualorig, makeNode, NIL, plan, BitmapIndexScan::scan, and Scan::scanrelid.
Referenced by create_bitmap_subplan().
Definition at line 5910 of file createplan.c.
References BitmapOr::bitmapplans, fb(), makeNode, NIL, BitmapOr::plan, plan, and Plan::targetlist.
Referenced by create_bitmap_subplan().
|
static |
Definition at line 5739 of file createplan.c.
References CteScan::cteParam, CteScan::ctePlanId, fb(), makeNode, plan, CteScan::scan, and Scan::scanrelid.
Referenced by create_ctescan_plan().
| ForeignScan * make_foreignscan | ( | List * | qptlist, |
| List * | qpqual, | ||
| Index | scanrelid, | ||
| List * | fdw_exprs, | ||
| List * | fdw_private, | ||
| List * | fdw_scan_tlist, | ||
| List * | fdw_recheck_quals, | ||
| Plan * | outer_plan | ||
| ) |
Definition at line 5799 of file createplan.c.
References ForeignScan::checkAsUser, CMD_SELECT, fb(), ForeignScan::fdw_exprs, ForeignScan::fdw_private, ForeignScan::fdw_recheck_quals, ForeignScan::fdw_scan_tlist, ForeignScan::fs_base_relids, ForeignScan::fs_relids, ForeignScan::fs_server, ForeignScan::fsSystemCol, InvalidOid, makeNode, ForeignScan::operation, plan, ForeignScan::resultRelation, Plan::righttree, ForeignScan::scan, and Scan::scanrelid.
Referenced by fileGetForeignPlan(), and postgresGetForeignPlan().
|
static |
Definition at line 5680 of file createplan.c.
References fb(), FunctionScan::funcordinality, functions, FunctionScan::functions, makeNode, plan, FunctionScan::scan, and Scan::scanrelid.
Referenced by create_functionscan_plan().
|
static |
Definition at line 6791 of file createplan.c.
References fb(), Gather::initParam, Gather::invisible, makeNode, Gather::num_workers, Gather::plan, plan, Gather::rescan_param, Plan::righttree, Gather::single_copy, and Plan::targetlist.
Referenced by create_gather_plan().
Definition at line 6931 of file createplan.c.
References Assert, fb(), makeNode, NIL, Result::plan, plan, Result::relids, Result::resconstantqual, Result::result_type, RESULT_TYPE_GATING, and Plan::righttree.
Referenced by create_gating_plan(), create_projection_plan(), and inject_projection_plan().
|
static |
Definition at line 6653 of file createplan.c.
References fb(), makeNode, Group::numCols, Group::plan, plan, and Plan::righttree.
Referenced by create_group_plan().
|
static |
Definition at line 5981 of file createplan.c.
References fb(), Hash::hashkeys, makeNode, NIL, Hash::plan, plan, Plan::righttree, Hash::skewColumn, Hash::skewInherit, Hash::skewTable, and Plan::targetlist.
Referenced by create_hashjoin_plan().
|
static |
Definition at line 5950 of file createplan.c.
References fb(), HashJoin::hashclauses, HashJoin::hashcollations, HashJoin::hashkeys, HashJoin::hashoperators, Join::inner_unique, HashJoin::join, Join::joinqual, Join::jointype, makeNode, plan, and Plan::righttree.
Referenced by create_hashjoin_plan().
|
static |
Definition at line 6076 of file createplan.c.
References fb(), makeNode, NIL, IncrementalSort::nPresortedCols, Sort::numCols, Sort::plan, plan, Plan::righttree, IncrementalSort::sort, and Plan::targetlist.
Referenced by create_append_plan(), create_merge_append_plan(), and make_incrementalsort_from_pathkeys().
|
static |
Definition at line 6359 of file createplan.c.
References fb(), make_incrementalsort(), and prepare_sort_from_pathkeys().
Referenced by create_incrementalsort_plan(), and create_mergejoin_plan().
|
static |
Definition at line 5552 of file createplan.c.
References fb(), IndexOnlyScan::indexid, IndexOnlyScan::indexorderby, IndexOnlyScan::indexorderdir, IndexOnlyScan::indexqual, IndexOnlyScan::indextlist, makeNode, plan, IndexOnlyScan::recheckqual, IndexOnlyScan::scan, and Scan::scanrelid.
Referenced by create_indexscan_plan().
|
static |
Definition at line 5521 of file createplan.c.
References fb(), IndexScan::indexid, IndexScan::indexorderby, IndexScan::indexorderbyops, IndexScan::indexorderbyorig, IndexScan::indexorderdir, IndexScan::indexqual, IndexScan::indexqualorig, makeNode, plan, IndexScan::scan, and Scan::scanrelid.
Referenced by create_indexscan_plan().
| Limit * make_limit | ( | Plan * | lefttree, |
| Node * | limitOffset, | ||
| Node * | limitCount, | ||
| LimitOption | limitOption, | ||
| int | uniqNumCols, | ||
| AttrNumber * | uniqColIdx, | ||
| Oid * | uniqOperators, | ||
| Oid * | uniqCollations | ||
| ) |
Definition at line 6902 of file createplan.c.
References fb(), Limit::limitCount, Limit::limitOffset, Limit::limitOption, makeNode, NIL, Limit::plan, plan, Plan::righttree, Plan::targetlist, and Limit::uniqNumCols.
Referenced by create_limit_plan(), and create_minmaxagg_plan().
Definition at line 6881 of file createplan.c.
References LockRows::epqParam, fb(), makeNode, NIL, LockRows::plan, plan, Plan::righttree, LockRows::rowMarks, and Plan::targetlist.
Referenced by create_lockrows_plan().
Definition at line 6483 of file createplan.c.
References fb(), makeNode, NIL, Material::plan, plan, Plan::righttree, and Plan::targetlist.
Referenced by create_material_plan(), create_mergejoin_plan(), and materialize_finished_plan().
|
static |
Definition at line 6553 of file createplan.c.
References Memoize::binary_mode, Memoize::est_calls, Memoize::est_entries, Memoize::est_hit_ratio, Memoize::est_unique_keys, fb(), Memoize::keyparamids, list_length(), makeNode, NIL, Memoize::numKeys, Memoize::param_exprs, Memoize::plan, plan, Plan::righttree, Memoize::singlerow, and Plan::targetlist.
Referenced by create_memoize_plan().
|
static |
Definition at line 6004 of file createplan.c.
References fb(), Join::inner_unique, MergeJoin::join, Join::joinqual, Join::jointype, makeNode, MergeJoin::mergeclauses, plan, Plan::righttree, and MergeJoin::skip_mark_restore.
Referenced by create_mergejoin_plan().
|
static |
Definition at line 7005 of file createplan.c.
References OnConflictExpr::action, ModifyTable::arbiterIndexes, Assert, FdwRoutine::BeginDirectModify, bms_add_member(), ModifyTable::canSetTag, CMD_MERGE, CMD_UPDATE, contain_vars_returning_old_or_new(), FdwRoutine::EndDirectModify, ModifyTable::epqParam, ereport, errcode(), errdetail_relkind_not_supported(), errmsg(), ERROR, OnConflictExpr::exclRelIndex, ModifyTable::exclRelRTI, ModifyTable::exclRelTlist, OnConflictExpr::exclRelTlist, extract_update_targetlist_colnos(), fb(), ModifyTable::fdwDirectModifyPlans, ModifyTable::fdwPrivLists, FirstNormalObjectId, get_rel_name(), GetFdwRoutineByRelId(), has_row_triggers(), has_stored_generated_columns(), has_transition_tables(), i, infer_arbiter_indexes(), FdwRoutine::IterateDirectModify, lappend(), Plan::lefttree, lfirst_int, list_length(), makeNode, ModifyTable::mergeActionLists, ModifyTable::mergeJoinConditions, NIL, ModifyTable::nominalRelation, ONCONFLICT_NONE, ModifyTable::onConflictAction, ModifyTable::onConflictCols, ModifyTable::onConflictSet, OnConflictExpr::onConflictSet, ModifyTable::onConflictWhere, OnConflictExpr::onConflictWhere, ModifyTable::operation, ModifyTable::plan, FdwRoutine::PlanDirectModify, FdwRoutine::PlanForeignModify, planner_rt_fetch, Plan::qual, restrict_nonsystem_relation_kind, RESTRICT_RELKIND_FOREIGN_TABLE, ModifyTable::resultRelations, ModifyTable::returningLists, ModifyTable::returningNewAlias, ModifyTable::returningOldAlias, Plan::righttree, root, ModifyTable::rootRelation, ModifyTable::rowMarks, RTE_RELATION, Plan::targetlist, unlikely, ModifyTable::updateColnosLists, and ModifyTable::withCheckOptionLists.
Referenced by create_modifytable_plan().
|
static |
Definition at line 5760 of file createplan.c.
References NamedTuplestoreScan::enrname, fb(), makeNode, plan, NamedTuplestoreScan::scan, and Scan::scanrelid.
Referenced by create_namedtuplestorescan_plan().
|
static |
Definition at line 5925 of file createplan.c.
References fb(), Join::inner_unique, NestLoop::join, Join::joinqual, Join::jointype, makeNode, NestLoop::nestParams, plan, and Plan::righttree.
Referenced by create_nestloop_plan().
|
static |
Definition at line 6962 of file createplan.c.
References fb(), IS_JOIN_REL, IS_UPPER_REL, makeNode, NIL, Result::plan, plan, RelOptInfo::relids, Result::relids, Result::resconstantqual, Result::result_type, RESULT_TYPE_JOIN, RESULT_TYPE_SCAN, RESULT_TYPE_UPPER, and Plan::targetlist.
Referenced by create_append_plan(), create_group_result_plan(), create_minmaxagg_plan(), and create_resultscan_plan().
|
static |
Definition at line 6986 of file createplan.c.
References fb(), makeNode, NIL, ProjectSet::plan, plan, Plan::righttree, and Plan::targetlist.
Referenced by create_project_set_plan().
|
static |
Definition at line 5839 of file createplan.c.
References Assert, exprCollation(), fb(), get_sortgroupclause_tle(), lfirst, list_length(), makeNode, NIL, RecursiveUnion::numCols, RecursiveUnion::numGroups, OidIsValid, palloc_array, RecursiveUnion::plan, plan, Plan::righttree, and RecursiveUnion::wtParam.
Referenced by create_recursiveunion_plan().
|
static |
Definition at line 5502 of file createplan.c.
References fb(), makeNode, plan, SampleScan::scan, Scan::scanrelid, and SampleScan::tablesample.
Referenced by create_samplescan_plan().
Definition at line 5485 of file createplan.c.
References fb(), makeNode, plan, SeqScan::scan, and Scan::scanrelid.
Referenced by create_seqscan_plan().
|
static |
Definition at line 6820 of file createplan.c.
References Assert, SetOp::cmd, exprCollation(), fb(), get_sortgroupclause_tle(), lfirst, list_length(), makeNode, NIL, SetOp::numCols, SetOp::numGroups, OidIsValid, palloc_array, SetOp::plan, plan, Plan::righttree, SETOP_HASHED, and SetOp::strategy.
Referenced by create_setop_plan().
|
static |
Definition at line 6045 of file createplan.c.
References Plan::disabled_nodes, enable_sort, fb(), makeNode, NIL, Sort::numCols, Sort::plan, plan, Plan::righttree, and Plan::targetlist.
Referenced by create_append_plan(), create_merge_append_plan(), make_sort_from_groupcols(), make_sort_from_pathkeys(), and make_sort_from_sortclauses().
|
static |
Definition at line 6442 of file createplan.c.
References elog, ERROR, exprCollation(), fb(), get_tle_by_resno(), lfirst, list_length(), make_sort(), palloc(), and Plan::targetlist.
Referenced by create_groupingsets_plan().
Definition at line 6324 of file createplan.c.
References fb(), make_sort(), and prepare_sort_from_pathkeys().
Referenced by create_mergejoin_plan(), and create_sort_plan().
Definition at line 6393 of file createplan.c.
References exprCollation(), fb(), get_sortgroupclause_tle(), lfirst, list_length(), make_sort(), palloc(), and Plan::targetlist.
|
static |
Definition at line 5660 of file createplan.c.
References fb(), makeNode, plan, SubqueryScan::scan, Scan::scanrelid, SubqueryScan::scanstatus, SubqueryScan::subplan, and SUBQUERY_SCAN_UNKNOWN.
Referenced by create_subqueryscan_plan().
|
static |
Definition at line 5701 of file createplan.c.
References fb(), makeNode, plan, TableFuncScan::scan, Scan::scanrelid, and TableFuncScan::tablefunc.
Referenced by create_tablefuncscan_plan().
|
static |
Definition at line 5641 of file createplan.c.
References fb(), makeNode, plan, TidRangeScan::scan, Scan::scanrelid, and TidRangeScan::tidrangequals.
Referenced by create_tidrangescan_plan().
|
static |
Definition at line 5622 of file createplan.c.
References fb(), makeNode, plan, TidScan::scan, Scan::scanrelid, and TidScan::tidquals.
Referenced by create_tidscan_plan().
|
static |
Definition at line 6684 of file createplan.c.
References Assert, COMPARE_EQ, EquivalenceClass::ec_collation, EquivalenceClass::ec_has_volatile, EquivalenceClass::ec_members, EquivalenceClass::ec_sortref, elog, ERROR, fb(), find_ec_member_matching_expr(), get_opfamily_member_for_cmptype(), get_sortgroupref_tle(), InvalidOid, j, lfirst, linitial, list_length(), makeNode, NIL, Unique::numCols, OidIsValid, palloc_array, Unique::plan, plan, Plan::righttree, and Plan::targetlist.
Referenced by create_unique_plan().
|
static |
Definition at line 5720 of file createplan.c.
References fb(), makeNode, plan, ValuesScan::scan, Scan::scanrelid, and ValuesScan::values_lists.
Referenced by create_valuesscan_plan().
|
static |
Definition at line 6613 of file createplan.c.
References WindowAgg::endInRangeFunc, WindowClause::endOffset, WindowAgg::endOffset, fb(), WindowClause::frameOptions, WindowAgg::frameOptions, WindowAgg::inRangeAsc, WindowAgg::inRangeColl, WindowAgg::inRangeNullsFirst, makeNode, WindowAgg::ordNumCols, WindowAgg::partNumCols, WindowAgg::plan, plan, Plan::qual, Plan::righttree, WindowAgg::runCondition, WindowAgg::runConditionOrig, WindowAgg::startInRangeFunc, WindowClause::startOffset, WindowAgg::startOffset, WindowAgg::topWindow, WindowAgg::winname, WindowClause::winref, and WindowAgg::winref.
Referenced by create_windowagg_plan().
|
static |
Definition at line 5780 of file createplan.c.
References fb(), makeNode, plan, WorkTableScan::scan, Scan::scanrelid, and WorkTableScan::wtParam.
Referenced by create_worktablescan_plan().
Definition at line 1131 of file createplan.c.
References Assert, fb(), IsA, FdwRoutine::IsForeignPathAsyncCapable, mark_async_capable_plan(), nodeTag, plan, subpath(), and trivial_subqueryscan().
Referenced by create_append_plan(), and mark_async_capable_plan().
Definition at line 6505 of file createplan.c.
References cost_material(), Plan::disabled_nodes, enable_material, fb(), Plan::initPlan, make_material(), NIL, Plan::parallel_safe, Plan::plan_rows, Plan::plan_width, SS_compute_initplan_cost(), Plan::startup_cost, and Plan::total_cost.
Referenced by build_subplan(), and standard_planner().
|
static |
Definition at line 5262 of file createplan.c.
References cost_qual_eval_node(), cpu_operator_cost, fb(), i, IsA, items, j, lappend(), lfirst, list_length(), NIL, nitems, palloc(), root, and RestrictInfo::security_level.
Referenced by create_agg_plan(), create_bitmap_scan_plan(), create_ctescan_plan(), create_customscan_plan(), create_foreignscan_plan(), create_functionscan_plan(), create_group_plan(), create_group_result_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_mergejoin_plan(), create_namedtuplestorescan_plan(), create_nestloop_plan(), create_resultscan_plan(), create_samplescan_plan(), create_seqscan_plan(), create_subqueryscan_plan(), create_tablefuncscan_plan(), create_tidrangescan_plan(), create_tidscan_plan(), create_valuesscan_plan(), create_worktablescan_plan(), and get_gating_quals().
|
static |
Definition at line 6142 of file createplan.c.
References Assert, copyObject, EquivalenceClass::ec_collation, EquivalenceClass::ec_has_volatile, EquivalenceClass::ec_members, EquivalenceClass::ec_sortref, elog, ERROR, fb(), find_computable_ec_member(), find_ec_member_matching_expr(), get_opfamily_member_for_cmptype(), get_sortgroupref_tle(), get_tle_by_resno(), i, inject_projection_plan(), InvalidOid, is_projection_capable_plan(), j, lappend(), lfirst, linitial, list_length(), makeTargetEntry(), OidIsValid, palloc(), Plan::parallel_safe, and Plan::targetlist.
Referenced by create_append_plan(), create_gather_merge_plan(), create_merge_append_plan(), make_incrementalsort_from_pathkeys(), and make_sort_from_pathkeys().
|
static |
Definition at line 2199 of file createplan.c.
References Assert, fb(), i, lfirst, list_length(), palloc0_array, root, and SortGroupClause::tleSortGroupRef.
Referenced by create_groupingsets_plan().
|
static |
Definition at line 4878 of file createplan.c.
References replace_nestloop_params_mutator(), and root.
Referenced by build_path_tlist(), create_append_plan(), create_bitmap_scan_plan(), create_ctescan_plan(), create_customscan_plan(), create_foreignscan_plan(), create_functionscan_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_memoize_plan(), create_mergejoin_plan(), create_namedtuplestorescan_plan(), create_nestloop_plan(), create_resultscan_plan(), create_samplescan_plan(), create_seqscan_plan(), create_subqueryscan_plan(), create_tablefuncscan_plan(), create_tidrangescan_plan(), create_tidscan_plan(), create_valuesscan_plan(), create_worktablescan_plan(), and fix_indexqual_clause().
|
static |
Definition at line 4885 of file createplan.c.
References Assert, bms_is_member(), bms_is_subset(), expression_tree_mutator, fb(), find_placeholder_info(), IS_SPECIAL_VARNO, IsA, makeNode, replace_nestloop_param_placeholdervar(), replace_nestloop_param_var(), replace_nestloop_params_mutator(), root, Var::varlevelsup, and Var::varno.
Referenced by replace_nestloop_params(), and replace_nestloop_params_mutator().
|
static |
Definition at line 856 of file createplan.c.
References bms_add_member(), bms_is_empty, bms_is_member(), bms_is_subset(), bms_nonempty_difference(), CP_EXACT_TLIST, CP_LABEL_TLIST, CP_SMALL_TLIST, fb(), FirstLowInvalidHeapAttributeNumber, i, IsA, lfirst, RelOptInfo::min_attr, IndexOptInfo::ncolumns, NIL, Path::pathtype, RelOptInfo::relids, RELOPT_BASEREL, RelOptInfo::reloptkind, root, RTE_CTE, RTE_FUNCTION, RTE_RELATION, RTE_SUBQUERY, RTE_TABLEFUNC, RTE_VALUES, and RelOptInfo::rtekind.
Referenced by create_projection_plan(), and create_scan_plan().