-
Dag Wanvik authored
We hit an ASSERT in debug mode in optimize_aggregated_query when optimizing a MAX/MIN aggregate in an IN subquery iff the aggregate references an outer field AND the field is part of a row in a single row in-memory table. In this case, the row will have been read and the table closed again before the optimization of the subquery. The ASSERT that failed didn't anticipate this case (that the table referenced could be a constant table). This was not an issue before WL11935, because earlier, such a field would be marked as an outer reference. WL11935 causes us to call update_used_tables again after the in-memory table row has been read causing OUTER_REF_TABLE_BIT to be no longer set. This gives a changed code path in optimize_aggregated_query. Change-Id: I115a0a10699c75985dc841b82cc133841af30946
Dag Wanvik authoredWe hit an ASSERT in debug mode in optimize_aggregated_query when optimizing a MAX/MIN aggregate in an IN subquery iff the aggregate references an outer field AND the field is part of a row in a single row in-memory table. In this case, the row will have been read and the table closed again before the optimization of the subquery. The ASSERT that failed didn't anticipate this case (that the table referenced could be a constant table). This was not an issue before WL11935, because earlier, such a field would be marked as an outer reference. WL11935 causes us to call update_used_tables again after the in-memory table row has been read causing OUTER_REF_TABLE_BIT to be no longer set. This gives a changed code path in optimize_aggregated_query. Change-Id: I115a0a10699c75985dc841b82cc133841af30946
Loading