mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 21:23:04 +01:00
One more bugfix for full outer joins.
This commit is contained in:
parent
116d28e3ab
commit
040650b750
@ -2161,10 +2161,12 @@ static RecordSource* gen_outer(thread_db* tdbb, OptimizerBlk* opt, RseNode* rse,
|
||||
if (!hasOuterRsb)
|
||||
csb->csb_rpt[stream_o.stream_num].deactivate();
|
||||
|
||||
boolean = NULL;
|
||||
|
||||
if (!hasInnerRsb)
|
||||
{
|
||||
stream_i.stream_rsb =
|
||||
gen_retrieval(tdbb, opt, stream_i.stream_num, NULL, false, false, NULL);
|
||||
gen_retrieval(tdbb, opt, stream_i.stream_num, NULL, true, false, &boolean);
|
||||
}
|
||||
|
||||
if (!hasOuterRsb)
|
||||
@ -2176,7 +2178,7 @@ static RecordSource* gen_outer(thread_db* tdbb, OptimizerBlk* opt, RseNode* rse,
|
||||
RecordSource* const outerRsb = gen_residual_boolean(tdbb, opt, stream_o.stream_rsb);
|
||||
|
||||
RecordSource* const rsb2 = FB_NEW(*tdbb->getDefaultPool())
|
||||
NestedLoopJoin(csb, stream_i.stream_rsb, outerRsb, NULL, false, true);
|
||||
NestedLoopJoin(csb, stream_i.stream_rsb, outerRsb, boolean, false, true);
|
||||
|
||||
return FB_NEW(*tdbb->getDefaultPool()) FullOuterJoin(csb, rsb1, rsb2);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user