|
PostgreSQL Source Code git master
|
#include "postgres.h"#include "nodes/makefuncs.h"#include "nodes/nodeFuncs.h"#include "optimizer/clauses.h"#include "optimizer/optimizer.h"#include "optimizer/restrictinfo.h"
Go to the source code of this file.
| RestrictInfo * commute_restrictinfo | ( | RestrictInfo * | rinfo, |
| Oid | comm_op | ||
| ) |
Definition at line 350 of file restrictinfo.c.
References OpExpr::args, Assert, castNode, RestrictInfo::clause, fb(), InvalidOid, linitial, list_length(), list_make2, lsecond, makeNode, NIL, and OpExpr::opno.
Referenced by match_opclause_to_indexcol().
Definition at line 485 of file restrictinfo.c.
References RestrictInfo::clause, fb(), lappend(), lfirst_node, NIL, and rinfo_is_constant_true().
Referenced by create_append_plan(), create_bitmap_scan_plan(), create_ctescan_plan(), create_functionscan_plan(), create_hashjoin_plan(), create_indexscan_plan(), create_merge_append_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(), fileGetForeignPlan(), get_gating_quals(), and postgresGetForeignPlan().
| void extract_actual_join_clauses | ( | List * | restrictinfo_list, |
| Relids | joinrelids, | ||
| List ** | joinquals, | ||
| List ** | otherquals | ||
| ) |
Definition at line 513 of file restrictinfo.c.
References Assert, RestrictInfo::clause, fb(), lappend(), lfirst_node, NIL, rinfo_is_constant_true(), and RINFO_IS_PUSHED_DOWN.
Referenced by create_hashjoin_plan(), create_mergejoin_plan(), and create_nestloop_plan().
Definition at line 460 of file restrictinfo.c.
References Assert, RestrictInfo::clause, fb(), lappend(), lfirst_node, NIL, and rinfo_is_constant_true().
Referenced by create_bitmap_subplan(), create_hashjoin_plan(), create_join_plan(), and create_mergejoin_plan().
| bool join_clause_is_movable_into | ( | RestrictInfo * | rinfo, |
| Relids | currentrelids, | ||
| Relids | current_and_outer | ||
| ) |
Definition at line 661 of file restrictinfo.c.
References bms_is_subset(), bms_overlap(), fb(), and RestrictInfo::outer_relids.
Referenced by get_baserel_parampathinfo(), get_joinrel_parampathinfo(), and has_indexed_join_quals().
| bool join_clause_is_movable_to | ( | RestrictInfo * | rinfo, |
| RelOptInfo * | baserel | ||
| ) |
Definition at line 575 of file restrictinfo.c.
References bms_is_member(), bms_overlap(), fb(), RestrictInfo::is_clone, and RestrictInfo::outer_relids.
Referenced by BuildParameterizedTidPaths(), check_index_predicates(), extract_restriction_or_clauses(), match_join_clauses_to_index(), and postgresGetForeignPaths().
| RestrictInfo * make_plain_restrictinfo | ( | PlannerInfo * | root, |
| Expr * | clause, | ||
| Expr * | orclause, | ||
| bool | is_pushed_down, | ||
| bool | has_clone, | ||
| bool | is_clone, | ||
| bool | pseudoconstant, | ||
| Index | security_level, | ||
| Relids | required_relids, | ||
| Relids | incompatible_relids, | ||
| Relids | outer_relids | ||
| ) |
Definition at line 103 of file restrictinfo.c.
References Assert, bms_difference(), bms_free(), bms_is_empty, bms_num_members(), bms_overlap(), bms_union(), contain_leaked_vars(), fb(), get_leftop(), get_rightop(), InvalidOid, is_opclause(), list_length(), makeNode, NIL, pull_varnos(), root, and VOLATILITY_UNKNOWN.
Referenced by group_similar_or_args(), make_restrictinfo(), and make_sub_restrictinfos().
| RestrictInfo * make_restrictinfo | ( | PlannerInfo * | root, |
| Expr * | clause, | ||
| bool | is_pushed_down, | ||
| bool | has_clone, | ||
| bool | is_clone, | ||
| bool | pseudoconstant, | ||
| Index | security_level, | ||
| Relids | required_relids, | ||
| Relids | incompatible_relids, | ||
| Relids | outer_relids | ||
| ) |
Definition at line 52 of file restrictinfo.c.
References Assert, fb(), is_andclause(), is_orclause(), make_plain_restrictinfo(), make_sub_restrictinfos(), and root.
Referenced by add_base_clause_to_rel(), add_join_clause_to_rels(), apply_child_basequals(), build_implied_join_equality(), consider_new_or_clause(), distribute_qual_to_rels(), foreign_grouping_ok(), process_equivalence(), process_implied_equality(), and reconsider_outer_join_clauses().
|
static |
Definition at line 262 of file restrictinfo.c.
References fb(), is_andclause(), is_orclause(), lappend(), lfirst, make_andclause(), make_orclause(), make_plain_restrictinfo(), make_sub_restrictinfos(), NIL, and root.
Referenced by make_restrictinfo(), and make_sub_restrictinfos().
| bool restriction_is_or_clause | ( | RestrictInfo * | restrictinfo | ) |
Definition at line 407 of file restrictinfo.c.
References fb().
Referenced by extract_or_clause(), extract_restriction_or_clauses(), generate_bitmap_or_paths(), match_clause_to_indexcol(), match_join_clauses_to_index(), remove_rel_from_restrictinfo(), restriction_is_always_false(), restriction_is_always_true(), and TidQualFromRestrictInfoList().
| bool restriction_is_securely_promotable | ( | RestrictInfo * | restrictinfo, |
| RelOptInfo * | rel | ||
| ) |
Definition at line 422 of file restrictinfo.c.
References RelOptInfo::baserestrict_min_security, and fb().
Referenced by BuildParameterizedTidPaths(), match_clause_to_index(), and RestrictInfoIsTidQual().
|
inlinestatic |
Definition at line 444 of file restrictinfo.c.
References RestrictInfo::clause, DatumGetBool(), and IsA.
Referenced by extract_actual_clauses(), extract_actual_join_clauses(), and get_actual_clauses().