-
Martin Hansson authored
MALFORMED PACKET Problem: The procedure that creates a temporary table (create_tmp_table()) expects a flat list of expressions that can be mapped to columns in the temporary table. But in case of row constructor expressions, the list is not flat. Solution: Remove row expressions in the contextualization phase of equalities and non-equalities. The factory function for equality Items gets its public interface broadened to include conjunctions/disjunctions. The problem also manifests itself for the operators >=, <=, < and >. In this case the problem lies in the functions split_sum_func() and split_sum_func2(). These functions are supposed to recursively replace set functions with Item_aggregate_ref objects (no splitting at all to be seen.) The functions should obviously keep recursing over rows, so this has been added (in item.cc). (cherry picked from commit 45261d5bd12a90b9c409e0efb398d199ad1541b9)
Martin Hansson authoredMALFORMED PACKET Problem: The procedure that creates a temporary table (create_tmp_table()) expects a flat list of expressions that can be mapped to columns in the temporary table. But in case of row constructor expressions, the list is not flat. Solution: Remove row expressions in the contextualization phase of equalities and non-equalities. The factory function for equality Items gets its public interface broadened to include conjunctions/disjunctions. The problem also manifests itself for the operators >=, <=, < and >. In this case the problem lies in the functions split_sum_func() and split_sum_func2(). These functions are supposed to recursively replace set functions with Item_aggregate_ref objects (no splitting at all to be seen.) The functions should obviously keep recursing over rows, so this has been added (in item.cc). (cherry picked from commit 45261d5bd12a90b9c409e0efb398d199ad1541b9)
Loading