opt.cpp (Firebird-3.0.2.32703-0.tar.bz2) | : | opt.cpp (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 2283 | skipping to change at line 2283 | |||
OptimizerRetrieval optimizerRetrieval(*tdbb->getDefaultPool(), op t, stream, | OptimizerRetrieval optimizerRetrieval(*tdbb->getDefaultPool(), op t, stream, | |||
outer_flag, inner_flag, | outer_flag, inner_flag, | |||
(sort_ptr ? *sort_ptr : NULL)); | (sort_ptr ? *sort_ptr : NULL)); | |||
AutoPtr<InversionCandidate> candidate(optimizerRetrieval.getInver sion()); | AutoPtr<InversionCandidate> candidate(optimizerRetrieval.getInver sion()); | |||
if (candidate) | if (candidate) | |||
{ | { | |||
inversion = candidate->inversion; | inversion = candidate->inversion; | |||
condition = candidate->condition; | condition = candidate->condition; | |||
// Just for safety sake, this condition must be already c | ||||
hecked | ||||
// inside OptimizerRetrieval::matchOnIndexes() | ||||
if (inversion && condition && | if (inversion && condition && | |||
(!condition->computable(csb, INVALID_STREAM, fals e) || | (!condition->computable(csb, INVALID_STREAM, fals e) || | |||
condition->findStream(stream))) | condition->findStream(stream))) | |||
{ | { | |||
fb_assert(false); | ||||
inversion = NULL; | inversion = NULL; | |||
condition = NULL; | condition = NULL; | |||
} | } | |||
} | } | |||
IndexTableScan* const nav_rsb = optimizerRetrieval.getNavigation( ); | IndexTableScan* const nav_rsb = optimizerRetrieval.getNavigation( ); | |||
if (nav_rsb) | if (nav_rsb) | |||
{ | { | |||
if (sort_ptr) | if (sort_ptr) | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 5 lines changed or added |