PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
#include "optimizer/clauses.h"
#include "optimizer/cost.h"
#include "optimizer/optimizer.h"
#include "optimizer/orclauses.h"
#include "optimizer/restrictinfo.h"
Go to the source code of this file.
Functions | |
static bool | is_safe_restriction_clause_for (RestrictInfo *rinfo, RelOptInfo *rel) |
static Expr * | extract_or_clause (RestrictInfo *or_rinfo, RelOptInfo *rel) |
static void | consider_new_or_clause (PlannerInfo *root, RelOptInfo *rel, Expr *orclause, RestrictInfo *join_or_rinfo) |
void | extract_restriction_or_clauses (PlannerInfo *root) |
|
static |
Definition at line 255 of file orclauses.c.
References RelOptInfo::baserestrict_min_security, RelOptInfo::baserestrictinfo, bms_difference(), clause_selectivity(), SpecialJoinInfo::commute_above_l, SpecialJoinInfo::commute_above_r, SpecialJoinInfo::commute_below_l, SpecialJoinInfo::commute_below_r, JOIN_INNER, SpecialJoinInfo::jointype, lappend(), SpecialJoinInfo::lhs_strict, make_restrictinfo(), Min, SpecialJoinInfo::min_lefthand, SpecialJoinInfo::min_righthand, NIL, SpecialJoinInfo::ojrelid, RelOptInfo::relids, RestrictInfo::security_level, SpecialJoinInfo::semi_can_btree, SpecialJoinInfo::semi_can_hash, SpecialJoinInfo::semi_operators, SpecialJoinInfo::semi_rhs_exprs, SpecialJoinInfo::syn_lefthand, and SpecialJoinInfo::syn_righthand.
Referenced by extract_restriction_or_clauses().
|
static |
Definition at line 157 of file orclauses.c.
References Assert(), castNode, RestrictInfo::clause, is_andclause(), is_orclause(), is_safe_restriction_clause_for(), lappend(), lfirst, lfirst_node, list_concat(), make_ands_explicit(), make_orclause(), NIL, and restriction_is_or_clause().
Referenced by extract_restriction_or_clauses().
void extract_restriction_or_clauses | ( | PlannerInfo * | root | ) |
Definition at line 76 of file orclauses.c.
References Assert(), consider_new_or_clause(), extract_or_clause(), join_clause_is_movable_to(), RelOptInfo::joininfo, lfirst, RelOptInfo::relid, RELOPT_BASEREL, RelOptInfo::reloptkind, restriction_is_or_clause(), and PlannerInfo::simple_rel_array_size.
Referenced by query_planner().
|
static |
Definition at line 127 of file orclauses.c.
References bms_equal(), RestrictInfo::clause, contain_volatile_functions(), and RelOptInfo::relids.
Referenced by extract_or_clause().