mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-24 07:23:03 +01:00
Fixed CORE-2822: Error "no current row for fetch operation" when subquery includes a non-trivial derived table.
This commit is contained in:
parent
4c4f0ae7c2
commit
ccac0eac72
@ -250,11 +250,9 @@ bool OPT_computable(CompilerScratch* csb, const jrd_nod* node, SSHORT stream,
|
|||||||
|
|
||||||
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end && result; ptr++)
|
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end && result; ptr++)
|
||||||
{
|
{
|
||||||
if ((*ptr)->nod_type != nod_rse)
|
if (!OPT_computable(csb, (*ptr), stream, idx_use, allowOnlyCurrentStream))
|
||||||
{
|
{
|
||||||
if (!OPT_computable(csb, (*ptr), stream, idx_use, allowOnlyCurrentStream)) {
|
result = false;
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1136,9 +1134,7 @@ void OptimizerRetrieval::findDependentFromStreams(const jrd_nod* node,
|
|||||||
const jrd_nod* const* end;
|
const jrd_nod* const* end;
|
||||||
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++)
|
for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++)
|
||||||
{
|
{
|
||||||
if ((*ptr)->nod_type != nod_rse) {
|
findDependentFromStreams(*ptr, streamList);
|
||||||
findDependentFromStreams(*ptr, streamList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check value expression, if any
|
// Check value expression, if any
|
||||||
|
Loading…
Reference in New Issue
Block a user