-
Roy Lyseng authored
The problem here is when we have a materialized derived table that is determined to be superfluous, thus destroy_materialized() is called on it. Later, the function find_table_in_global_list() is called to search for duplicate table names for the table to be updated. When it finds the derived table, it is in an inconsistent state (table->table != NULL but table->table->s undefined). The solution is to let be the derived table's TABLE_LIST object remain in a consistent state after its materialized object is deleted, by setting its TABLE pointer to NULL.
Roy Lyseng authoredThe problem here is when we have a materialized derived table that is determined to be superfluous, thus destroy_materialized() is called on it. Later, the function find_table_in_global_list() is called to search for duplicate table names for the table to be updated. When it finds the derived table, it is in an inconsistent state (table->table != NULL but table->table->s undefined). The solution is to let be the derived table's TABLE_LIST object remain in a consistent state after its materialized object is deleted, by setting its TABLE pointer to NULL.
Loading