PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "nodes/makefuncs.h"
#include "optimizer/joininfo.h"
#include "optimizer/pathnode.h"
#include "optimizer/paths.h"
#include "optimizer/planmain.h"
#include "optimizer/restrictinfo.h"
Go to the source code of this file.
Functions | |
bool | have_relevant_joinclause (PlannerInfo *root, RelOptInfo *rel1, RelOptInfo *rel2) |
void | add_join_clause_to_rels (PlannerInfo *root, RestrictInfo *restrictinfo, Relids join_relids) |
void | remove_join_clause_from_rels (PlannerInfo *root, RestrictInfo *restrictinfo, Relids join_relids) |
void add_join_clause_to_rels | ( | PlannerInfo * | root, |
RestrictInfo * | restrictinfo, | ||
Relids | join_relids | ||
) |
Definition at line 98 of file joininfo.c.
References bms_next_member(), find_base_rel_ignore_join(), RestrictInfo::has_clone, RestrictInfo::incompatible_relids, RestrictInfo::is_clone, RestrictInfo::is_pushed_down, RelOptInfo::joininfo, lappend(), make_restrictinfo(), makeBoolConst(), RestrictInfo::outer_relids, RestrictInfo::required_relids, restriction_is_always_false(), restriction_is_always_true(), RestrictInfo::rinfo_serial, and root.
Referenced by distribute_restrictinfo_to_rels().
bool have_relevant_joinclause | ( | PlannerInfo * | root, |
RelOptInfo * | rel1, | ||
RelOptInfo * | rel2 | ||
) |
Definition at line 39 of file joininfo.c.
References bms_overlap(), RelOptInfo::has_eclass_joins, have_relevant_eclass_joinclause(), RelOptInfo::joininfo, lfirst, list_length(), RelOptInfo::relids, RestrictInfo::required_relids, and root.
Referenced by desirable_join(), has_legal_joinclause(), join_search_one_level(), and make_rels_by_clause_joins().
void remove_join_clause_from_rels | ( | PlannerInfo * | root, |
RestrictInfo * | restrictinfo, | ||
Relids | join_relids | ||
) |
Definition at line 161 of file joininfo.c.
References Assert, bms_next_member(), find_base_rel_ignore_join(), RelOptInfo::joininfo, list_delete_ptr(), list_member_ptr(), and root.
Referenced by remove_rel_from_query().