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

Move Item_func_like out of Item_bool_func2

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 10.0.6
    • Component/s: OTHER
    • Labels:
      None

      Description

      Item_func_like is erroneously inherited from Item_bool_func2.
      Unlike the other Item_bool_func2, Item_func_like:

      • does not need Arg_comparator
      • does not need abort_on_null, as we don't support LIKE for rows: (x1,y1,z1) LIKE (x2,y2,z2)

      Wrong inheritance needs excessive casts and functype() calls and potentially more buggy.

      See MDEV-8222 as an example of a bug introduced because of this wrong inheritance.

      Derive Item_func_like directly from Item_bool_func.

      Another option would be to move Arg_comparator from Item_bool_func2 to Item_bool_rowready_func2.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            bar Alexander Barkov added a comment -

            It turned out that the goal of this task was reached by a few of earlier 10.1 patches, using the second alternative.

            • Arg_comparator was moved from Item_bool_func2 to Item_bool_rowready_func2
            • abort_on_null was moved from Item_bool_func2 to Item_func_eq

            Now Item_func_like does not have unused members. No other coding is needed.

            Show
            bar Alexander Barkov added a comment - It turned out that the goal of this task was reached by a few of earlier 10.1 patches, using the second alternative. Arg_comparator was moved from Item_bool_func2 to Item_bool_rowready_func2 abort_on_null was moved from Item_bool_func2 to Item_func_eq Now Item_func_like does not have unused members. No other coding is needed.

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: