|
PostgreSQL Source Code git master
|


Go to the source code of this file.
Data Structures | |
| struct | pgpa_trove_entry |
| struct | pgpa_trove_result |
Macros | |
| #define | PGPA_TE_MATCH_PARTIAL 0x0001 |
| #define | PGPA_TE_MATCH_FULL 0x0002 |
| #define | PGPA_TE_INAPPLICABLE 0x0004 |
| #define | PGPA_TE_CONFLICTING 0x0008 |
| #define | PGPA_TE_FAILED 0x0010 |
Typedefs | |
| typedef struct pgpa_trove | pgpa_trove |
| typedef struct pgpa_trove_entry | pgpa_trove_entry |
| typedef enum pgpa_trove_lookup_type | pgpa_trove_lookup_type |
| typedef struct pgpa_trove_result | pgpa_trove_result |
Enumerations | |
| enum | pgpa_trove_lookup_type { PGPA_TROVE_LOOKUP_JOIN , PGPA_TROVE_LOOKUP_REL , PGPA_TROVE_LOOKUP_SCAN } |
Functions | |
| pgpa_trove * | pgpa_build_trove (List *advice_items) |
| void | pgpa_trove_lookup (pgpa_trove *trove, pgpa_trove_lookup_type type, int nrids, pgpa_identifier *rids, pgpa_trove_result *result) |
| void | pgpa_trove_lookup_all (pgpa_trove *trove, pgpa_trove_lookup_type type, pgpa_trove_entry **entries, int *nentries) |
| char * | pgpa_cstring_trove_entry (pgpa_trove_entry *entry) |
| void | pgpa_trove_set_flags (pgpa_trove_entry *entries, Bitmapset *indexes, int flags) |
| void | pgpa_trove_append_flags (StringInfo buf, int flags) |
| #define PGPA_TE_CONFLICTING 0x0008 |
Definition at line 49 of file pgpa_trove.h.
| #define PGPA_TE_FAILED 0x0010 |
Definition at line 50 of file pgpa_trove.h.
| #define PGPA_TE_INAPPLICABLE 0x0004 |
Definition at line 48 of file pgpa_trove.h.
| #define PGPA_TE_MATCH_FULL 0x0002 |
Definition at line 47 of file pgpa_trove.h.
| #define PGPA_TE_MATCH_PARTIAL 0x0001 |
Definition at line 46 of file pgpa_trove.h.
| typedef struct pgpa_trove pgpa_trove |
Definition at line 20 of file pgpa_trove.h.
| Enumerator | |
|---|---|
| PGPA_TROVE_LOOKUP_JOIN | |
| PGPA_TROVE_LOOKUP_REL | |
| PGPA_TROVE_LOOKUP_SCAN | |
Definition at line 81 of file pgpa_trove.h.
|
extern |
Definition at line 132 of file pgpa_trove.c.
References Assert, pgpa_advice_target::children, fb(), foreach_ptr, pgpa_trove::join, palloc0_object, palloc_object, pgpa_init_trove_slice(), 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_trove_add_to_slice(), pgpa_trove::rel, pgpa_trove::scan, and pgpa_advice_target::ttype.
Referenced by pgpa_planner_setup().
|
extern |
Definition at line 295 of file pgpa_trove.c.
References appendStringInfo(), appendStringInfoChar(), Assert, buf, fb(), initStringInfo(), pgpa_advice_target::itarget, pgpa_cstring_advice_tag(), pgpa_format_advice_target(), pgpa_format_index_target(), PGPA_TAG_JOIN_ORDER, PGPA_TARGET_ORDERED_LIST, pgpa_trove_entry::tag, pgpa_trove_entry::target, and pgpa_advice_target::ttype.
Referenced by pgpa_planner_append_feedback().
|
extern |
Definition at line 343 of file pgpa_trove.c.
References appendStringInfo(), Assert, buf, PGPA_TE_CONFLICTING, PGPA_TE_FAILED, PGPA_TE_INAPPLICABLE, PGPA_TE_MATCH_FULL, and PGPA_TE_MATCH_PARTIAL.
Referenced by pg_plan_advice_explain_feedback(), and pgpa_planner_feedback_warning().
|
extern |
Definition at line 233 of file pgpa_trove.c.
References Assert, bms_union(), pgpa_trove_result::entries, fb(), i, pgpa_trove_result::indexes, pgpa_trove::join, PGPA_TROVE_LOOKUP_JOIN, PGPA_TROVE_LOOKUP_SCAN, pgpa_trove_slice_lookup(), pgpa_trove::rel, pgpa_trove::scan, strings_equal_or_both_null(), and type.
Referenced by pgpa_build_simple_rel(), and pgpa_get_join_state().
|
extern |
Definition at line 275 of file pgpa_trove.c.
References fb(), pgpa_trove::join, PGPA_TROVE_LOOKUP_JOIN, PGPA_TROVE_LOOKUP_SCAN, pgpa_trove::rel, pgpa_trove::scan, and type.
Referenced by pgpa_planner_append_feedback().
|
extern |
Definition at line 326 of file pgpa_trove.c.
References bms_next_member(), pgpa_trove_entry::flags, and i.
Referenced by pgpa_planner_apply_join_path_advice(), pgpa_planner_apply_joinrel_advice(), and pgpa_planner_apply_scan_advice().