Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-16408

Remove tests for Item::type() in Item_basic_value::eq()

    Details

      Description

      This is a subtask for MDEV-14630, which can be done in a self-contained change.

      Item_basic_value has a number of methods:

      • is_basic_value(), which tests type() internally.
      • null_eq()
      • int_eq()
      • str_eq()
      • real_eq()

      It's descendants:

      • Item_param
      • Item_null
      • Item_int
      • Item_double
      • Item_float
      • Item_string
        use the mentioned methods in eq().

      Additionally, Item_param tests cmp_type(), which is bad for pluggable data types (because constants of different pluggable data types will be able to have the same cmp_type(), but they are not equal to each other).

      This task is to change the code to be based on Type_handler methods instead of Item::type() and Item::cmp_type() tests.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bar Alexander Barkov
                Reporter:
                bar Alexander Barkov
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: