MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / generateInnerJoin

Method generateInnerJoin

src/jrd/optimizer/Optimizer.cpp:2793–2816  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2791//
2792
2793void Optimizer::generateInnerJoin(const StreamList& streams,
2794 RiverList& rivers,
2795 SortNode** sortClause,
2796 const PlanNode* planClause)
2797{
2798 if (streams.isEmpty())
2799 return;
2800
2801 if (planClause && streams.getCount() > 1)
2802 {
2803 // this routine expects a join/merge
2804 formRivers(streams, rivers, sortClause, planClause);
2805 return;
2806 }
2807
2808 InnerJoin innerJoin(tdbb, this, streams,
2809 sortClause, (planClause != nullptr));
2810
2811 while (innerJoin.findJoinOrder())
2812 {
2813 const auto river = innerJoin.formRiver();
2814 rivers.add(river);
2815 }
2816}
2817
2818
2819//

Callers

nothing calls this directly

Calls 5

findJoinOrderMethod · 0.80
formRiverMethod · 0.80
isEmptyMethod · 0.45
getCountMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected