|
PostgreSQL Source Code git master
|


Go to the source code of this file.
Data Structures | |
| struct | pgpa_sj_unique_rel |
| struct | pgpa_query_feature |
| struct | pgpa_plan_walker_context |
Macros | |
| #define | NUM_PGPA_QF_TYPES ((int) PGPAQF_SEMIJOIN_UNIQUE + 1) |
Enumerations | |
| enum | pgpa_qf_type { PGPAQF_GATHER , PGPAQF_GATHER_MERGE , PGPAQF_SEMIJOIN_NON_UNIQUE , PGPAQF_SEMIJOIN_UNIQUE } |
Functions | |
| void | pgpa_plan_walker (pgpa_plan_walker_context *walker, PlannedStmt *pstmt, List *sj_unique_rels) |
| void | pgpa_add_future_feature (pgpa_plan_walker_context *walker, pgpa_qf_type type, Plan *plan) |
| ElidedNode * | pgpa_last_elided_node (PlannedStmt *pstmt, Plan *plan) |
| Bitmapset * | pgpa_relids (Plan *plan) |
| Index | pgpa_scanrelid (Plan *plan) |
| Bitmapset * | pgpa_filter_out_join_relids (Bitmapset *relids, List *rtable) |
| bool | pgpa_walker_would_advise (pgpa_plan_walker_context *walker, pgpa_identifier *rt_identifiers, pgpa_advice_tag_type tag, pgpa_advice_target *target) |
| #define NUM_PGPA_QF_TYPES ((int) PGPAQF_SEMIJOIN_UNIQUE + 1) |
Definition at line 70 of file pgpa_walker.h.
| Enumerator | |
|---|---|
| PGPAQF_GATHER | |
| PGPAQF_GATHER_MERGE | |
| PGPAQF_SEMIJOIN_NON_UNIQUE | |
| PGPAQF_SEMIJOIN_UNIQUE | |
Definition at line 61 of file pgpa_walker.h.
|
extern |
Definition at line 502 of file pgpa_walker.c.
References fb(), lappend(), pgpa_add_feature(), plan, and type.
Referenced by pgpa_decompose_join().
Definition at line 585 of file pgpa_walker.c.
References bms_add_member(), bms_next_member(), fb(), rt_fetch, and RTE_JOIN.
Referenced by pgpa_build_scan(), pgpa_qf_add_plan_rtis(), and pgpa_walk_recursively().
|
extern |
Definition at line 518 of file pgpa_walker.c.
References PlannedStmt::elidedNodes, fb(), foreach_node, and plan.
Referenced by pgpa_decompose_join(), and pgpa_descend_node().
|
extern |
Definition at line 71 of file pgpa_walker.c.
References Assert, bms_add_member(), bms_next_member(), buf, elog, ERROR, fb(), foreach_node, foreach_ptr, initStringInfo(), lappend(), lfirst, list_member(), NIL, NUM_PGPA_QF_TYPES, outBitmapset(), pgpa_walk_recursively(), PGPAQF_GATHER, PGPAQF_GATHER_MERGE, PGPAQF_SEMIJOIN_NON_UNIQUE, PGPAQF_SEMIJOIN_UNIQUE, plan, PlannedStmt::planTree, PlannedStmt::subplans, and PlannedStmt::subrtinfos.
Referenced by pgpa_planner_shutdown().
Definition at line 535 of file pgpa_walker.c.
References fb(), IsA, and plan.
Referenced by pgpa_build_scan(), and pgpa_qf_add_plan_rtis().
Definition at line 555 of file pgpa_walker.c.
References fb(), nodeTag, and plan.
Referenced by pgpa_build_scan(), and pgpa_qf_add_plan_rtis().
|
extern |
Definition at line 672 of file pgpa_walker.c.
References Assert, bms_add_member(), bms_make_singleton(), pgpa_advice_target::children, fb(), foreach_ptr, pgpa_advice_target::itarget, JSTRAT_HASH_JOIN, JSTRAT_MERGE_JOIN_MATERIALIZE, JSTRAT_MERGE_JOIN_PLAIN, JSTRAT_NESTED_LOOP_MATERIALIZE, JSTRAT_NESTED_LOOP_MEMOIZE, JSTRAT_NESTED_LOOP_PLAIN, list_length(), pg_unreachable, pgpa_compute_rti_from_identifier(), PGPA_SCAN_BITMAP_HEAP, PGPA_SCAN_FOREIGN, PGPA_SCAN_INDEX, PGPA_SCAN_INDEX_ONLY, PGPA_SCAN_PARTITIONWISE, PGPA_SCAN_SEQ, PGPA_SCAN_TID, PGPA_TAG_BITMAP_HEAP_SCAN, PGPA_TAG_FOREIGN_JOIN, PGPA_TAG_GATHER, PGPA_TAG_GATHER_MERGE, PGPA_TAG_HASH_JOIN, PGPA_TAG_INDEX_ONLY_SCAN, PGPA_TAG_INDEX_SCAN, PGPA_TAG_JOIN_ORDER, PGPA_TAG_MERGE_JOIN_MATERIALIZE, PGPA_TAG_MERGE_JOIN_PLAIN, PGPA_TAG_NESTED_LOOP_MATERIALIZE, PGPA_TAG_NESTED_LOOP_MEMOIZE, PGPA_TAG_NESTED_LOOP_PLAIN, PGPA_TAG_NO_GATHER, PGPA_TAG_PARTITIONWISE, PGPA_TAG_SEMIJOIN_NON_UNIQUE, PGPA_TAG_SEMIJOIN_UNIQUE, PGPA_TAG_SEQ_SCAN, PGPA_TAG_TID_SCAN, PGPA_TARGET_IDENTIFIER, PGPA_TARGET_ORDERED_LIST, pgpa_walker_contains_feature(), pgpa_walker_contains_join(), pgpa_walker_contains_no_gather(), pgpa_walker_find_scan(), pgpa_walker_index_target_matches_plan(), pgpa_walker_join_order_matches(), PGPAQF_GATHER, PGPAQF_GATHER_MERGE, PGPAQF_SEMIJOIN_NON_UNIQUE, PGPAQF_SEMIJOIN_UNIQUE, pgpa_scan::plan, pgpa_advice_target::rid, and pgpa_advice_target::ttype.
Referenced by pgpa_planner_append_feedback().