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

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

    XMLWordPrintable

    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: