|
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_leftjoinrel_from_query(), and remove_self_join_rel().