Skip to content
  • Dag Wanvik's avatar
    ce5800d5
    Bug#30242457 ASSERTION "!TABLE->CONST_TABLE" · ce5800d5
    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
    ce5800d5
    Bug#30242457 ASSERTION "!TABLE->CONST_TABLE"
    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
Loading