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

Dead code in Item_cond::fix_fields() and Item_func_between::fix_fields()

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.1, 10.0
    • Fix Version/s: 10.1.6
    • Component/s: Optimizer
    • Labels:
      None

      Description

      Item_cond::fix_fields() and Item_func_between::fix_fields() update these optimizer related SELECT_LEX members:

      thd->lex->current_select->cond_count and
      thd->lex->current_select->between_count
      

      The purpose of these members is to allocate optimizer related buffers in:

      • update_ref_and_keys() in sql_select.cc and
      • check_func_dependency() in opt_table_elimination,cc
        and it seems they have no any other purposes..

      This looks like a dead code and the collected values are never used:

      • cond_count and_between_count are later always initialized to 0 before the walk(count_sargable_conds) call in update_ref_and_keys().
      • moreover, using the values collected during fix_fields() would not be correct to allocate optimized related buffers, because the code in fix_fields() does not distinguish between different query parts, so the items can be just a part of the SELECT list rather than a part of WHERE/HAVING/ON.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            bar Alexander Barkov added a comment -

            Monty approved the patch by email.

            Show
            bar Alexander Barkov added a comment - Monty approved the patch by email.

              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: