• Alexander Barkov's avatar
    MDEV-11344 Split Arg_comparator::set_compare_func() into virtual methods in Type_handler · 26378280
    Alexander Barkov authored
    This patch:
    - Introduces a new virtuial method Type_handler::set_comparator_func
      and moves pieces of the code from the switch in
      Arg_comparator::set_compare_func into the corresponding
      Type_handler_xxx::set_comparator_func.
    - Adds Type_handler::get_handler_by_cmp_type()
    - Moves Type_handler_hybrid_field_type::get_handler_by_result_type() to
      a static method Type_handler::get_handler_by_result_type(),
      for symmetry with similar methods:
      * Type_handler::get_handler_by_field_type()
      * Type_handler::get_handler_by_real_type()
      * Type_handler::get_handler_by_cmp_type()
    - Introduces Type_handler_row, to unify the code for the scalar
      data types and the ROW data type (currently for comparison purposes only).
    - Adds public type_handler_row, as it's now needed in item_row.h
    - Makes type_handler_null public, as it's now needed in item_cmpfunc.h
      Note, other type_handler_xxx will become public as well later.
    - Removes the global variable Arg_comparator::comparator_matrix,
      as it's not needed any more.
    26378280
sql_type.h 26.8 KB