Skip to content

Commit 979c0d7

Browse files
committed
Backport #7916: Query issue conversion error from string
1 parent 5f4829d commit 979c0d7

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/jrd/optimizer/Optimizer.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2877,6 +2877,29 @@ RecordSource* Optimizer::generateOuterJoin(RiverList& rivers,
28772877
stream_o.stream_rsb =
28782878
generateRetrieval(stream_o.stream_num, sortClause, true, false, &boolean);
28792879
}
2880+
else
2881+
{
2882+
// Ensure the inner streams are inactive
2883+
StreamList streams;
2884+
2885+
if (stream_i.stream_rsb)
2886+
stream_i.stream_rsb->findUsedStreams(streams);
2887+
2888+
StreamStateHolder stateHolder(csb, streams);
2889+
stateHolder.deactivate();
2890+
2891+
// Collect booleans computable for the outer sub-stream, it must be active now
2892+
for (auto iter = getBaseConjuncts(); iter.hasData(); ++iter)
2893+
{
2894+
if (!(iter & CONJUNCT_USED) &&
2895+
!(iter->nodFlags & ExprNode::FLAG_RESIDUAL) &&
2896+
iter->computable(csb, INVALID_STREAM, false))
2897+
{
2898+
compose(getPool(), &boolean, iter);
2899+
iter |= CONJUNCT_USED;
2900+
}
2901+
}
2902+
}
28802903

28812904
if (!stream_i.stream_rsb)
28822905
{

0 commit comments

Comments
 (0)