|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "pgpa_ast.h"#include "funcapi.h"#include "utils/array.h"#include "utils/builtins.h"
Go to the source code of this file.
Functions | |
| static bool | pgpa_identifiers_cover_target (int nrids, pgpa_identifier *rids, pgpa_advice_target *target, bool *rids_used) |
| char * | pgpa_cstring_advice_tag (pgpa_advice_tag_type advice_tag) |
| pgpa_advice_tag_type | pgpa_parse_advice_tag (const char *tag, bool *fail) |
| void | pgpa_format_advice_target (StringInfo str, pgpa_advice_target *target) |
| void | pgpa_format_index_target (StringInfo str, pgpa_index_target *itarget) |
| bool | pgpa_index_targets_equal (pgpa_index_target *i1, pgpa_index_target *i2) |
| bool | pgpa_identifier_matches_target (pgpa_identifier *rid, pgpa_advice_target *target) |
| pgpa_itm_type | pgpa_identifiers_match_target (int nrids, pgpa_identifier *rids, pgpa_advice_target *target) |
| char * pgpa_cstring_advice_tag | ( | pgpa_advice_tag_type | advice_tag | ) |
Definition at line 29 of file pgpa_ast.c.
References fb(), pg_unreachable, 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, and PGPA_TAG_TID_SCAN.
Referenced by pgpa_cstring_trove_entry().
| void pgpa_format_advice_target | ( | StringInfo | str, |
| pgpa_advice_target * | target | ||
| ) |
Definition at line 164 of file pgpa_ast.c.
References appendStringInfoChar(), appendStringInfoString(), pgpa_advice_target::children, fb(), foreach_ptr, pgpa_format_advice_target(), pgpa_identifier_string(), PGPA_TARGET_IDENTIFIER, PGPA_TARGET_UNORDERED_LIST, pgpa_advice_target::rid, str, and pgpa_advice_target::ttype.
Referenced by pgpa_cstring_trove_entry(), and pgpa_format_advice_target().
| void pgpa_format_index_target | ( | StringInfo | str, |
| pgpa_index_target * | itarget | ||
| ) |
Definition at line 200 of file pgpa_ast.c.
References appendStringInfo(), appendStringInfoString(), fb(), pgpa_index_target::indname, pgpa_index_target::indnamespace, quote_identifier(), and str.
Referenced by pgpa_cstring_trove_entry().
| bool pgpa_identifier_matches_target | ( | pgpa_identifier * | rid, |
| pgpa_advice_target * | target | ||
| ) |
Definition at line 229 of file pgpa_ast.c.
References pgpa_identifier::alias_name, Assert, pgpa_advice_target::children, fb(), foreach_ptr, pgpa_identifier::occurrence, pgpa_identifier::partnsp, pgpa_identifier::partrel, pgpa_identifier_matches_target(), PGPA_TARGET_IDENTIFIER, pgpa_identifier::plan_name, pgpa_advice_target::rid, strings_equal_or_both_null(), and pgpa_advice_target::ttype.
Referenced by pgpa_identifier_matches_target(), pgpa_identifiers_cover_target(), and pgpa_trove_slice_lookup().
|
static |
Definition at line 322 of file pgpa_ast.c.
References pgpa_advice_target::children, fb(), foreach_ptr, i, pgpa_identifier_matches_target(), pgpa_identifiers_cover_target(), PGPA_TARGET_IDENTIFIER, and pgpa_advice_target::ttype.
Referenced by pgpa_identifiers_cover_target(), and pgpa_identifiers_match_target().
| pgpa_itm_type pgpa_identifiers_match_target | ( | int | nrids, |
| pgpa_identifier * | rids, | ||
| pgpa_advice_target * | target | ||
| ) |
Definition at line 277 of file pgpa_ast.c.
References fb(), i, palloc0_array, pgpa_identifiers_cover_target(), PGPA_ITM_DISJOINT, PGPA_ITM_EQUAL, PGPA_ITM_INTERSECTING, PGPA_ITM_KEYS_ARE_SUBSET, and PGPA_ITM_TARGETS_ARE_SUBSET.
Referenced by pgpa_join_method_permits_join(), pgpa_join_order_permits_join(), pgpa_opaque_join_permits_join(), pgpa_planner_apply_join_path_advice(), pgpa_planner_apply_joinrel_advice(), and pgpa_semijoin_permits_join().
| bool pgpa_index_targets_equal | ( | pgpa_index_target * | i1, |
| pgpa_index_target * | i2 | ||
| ) |
Definition at line 212 of file pgpa_ast.c.
References fb(), pgpa_index_target::indname, and pgpa_index_target::indnamespace.
Referenced by pgpa_planner_apply_scan_advice().
| pgpa_advice_tag_type pgpa_parse_advice_tag | ( | const char * | tag, |
| bool * | fail | ||
| ) |
Definition at line 85 of file pgpa_ast.c.
References fb(), 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, and PGPA_TAG_TID_SCAN.