PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "nodes/makefuncs.h"
#include "nodes/nodeFuncs.h"
#include "optimizer/optimizer.h"
#include "optimizer/orclauses.h"
#include "optimizer/paths.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 254 of file orclauses.c.
References RelOptInfo::baserestrict_min_security, RelOptInfo::baserestrictinfo, bms_difference(), clause_selectivity(), init_dummy_sjinfo(), JOIN_INNER, lappend(), make_restrictinfo(), Min, RelOptInfo::relids, root, and RestrictInfo::security_level.
Referenced by extract_restriction_or_clauses().
|
static |
Definition at line 156 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 75 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 root.
Referenced by query_planner().
|
static |
Definition at line 126 of file orclauses.c.
References bms_equal(), RestrictInfo::clause, contain_volatile_functions(), and RelOptInfo::relids.
Referenced by extract_or_clause().