Skip to content

Commit 97b90ae

Browse files
committed
Fix regression #8948: Firebird 5.0.4 snapshot (build 1784) performance issue
1 parent 6f02f0a commit 97b90ae

2 files changed

Lines changed: 5 additions & 12 deletions

File tree

src/jrd/optimizer/Optimizer.cpp

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,6 +2435,9 @@ bool Optimizer::joinDependentStreams(StreamList& joinStreams, RiverList& rivers,
24352435

24362436
// Make rivers from the dependent streams
24372437
generateInnerJoin(dependentStreams, rivers, sort, rse->rse_plan);
2438+
2439+
for (const auto depStream : dependentStreams)
2440+
csb->csb_rpt[depStream].activate();
24382441
}
24392442
else
24402443
{
@@ -2787,7 +2790,7 @@ bool Optimizer::generateEquiJoin(RiverList& rivers, JoinType joinType)
27872790
// then form streams into rivers (combinations of streams)
27882791
//
27892792

2790-
void Optimizer::generateInnerJoin(StreamList& streams,
2793+
void Optimizer::generateInnerJoin(const StreamList& streams,
27912794
RiverList& rivers,
27922795
SortNode** sortClause,
27932796
const PlanNode* planClause)
@@ -2809,16 +2812,6 @@ void Optimizer::generateInnerJoin(StreamList& streams,
28092812
{
28102813
const auto river = innerJoin.formRiver();
28112814
rivers.add(river);
2812-
2813-
// Remove already consumed streams from the source stream list
2814-
for (const auto stream : river->getStreams())
2815-
{
2816-
FB_SIZE_T pos;
2817-
if (streams.find(stream, pos))
2818-
streams.remove(pos);
2819-
else
2820-
fb_assert(false);
2821-
}
28222815
}
28232816
}
28242817

src/jrd/optimizer/Optimizer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ class Optimizer : public Firebird::PermanentStorage
585585
SortNode** sortClause,
586586
const PlanNode* planClause);
587587
bool generateEquiJoin(RiverList& rivers, JoinType joinType = INNER_JOIN);
588-
void generateInnerJoin(StreamList& streams,
588+
void generateInnerJoin(const StreamList& streams,
589589
RiverList& rivers,
590590
SortNode** sortClause,
591591
const PlanNode* planClause);

0 commit comments

Comments
 (0)