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

Remove the use of STRING_ITEM from the parser

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.3.6
    • Component/s: Data types
    • Labels:
      None

      Description

      We'll be replacing data type specific constants STRING_ITEM, INT_ITEM, REAL_ITEM, DECIMAL_ITEM, DATE_ITEM to LITERAL_ITEM soon (see MDEV-14630).

      Under terms of this task we'll remove STRING_ITEM from:

      • The code creating concatenated string literals:

        Item *THD::make_string_literal_concat(Item *item, const LEX_CSTRING &str)
        

        Instead of testing item->type() for STRING_ITEM, we'll add a virtual method:

        virtual Item_basic_constant *Item_basic_constant::make_string_literal_concat(THD *thd, const LEX_CSTRING *)
        

        with implementations for Item_null and Item_string, and a default implementation for Item.

      • The rule in the bison grammar that parses ODBC style literals:

        | '{' ident expr '}'
        

        Instead of testing $3->type() for STRING_ITEM, we'll add a virtual method:

        virtual Item *Item::make_odbc_literal(THD *thd, const LEX_CSTRING *typestr);
        

        with an implementation for Item_string, and a default implementation for Item.

        Attachments

          Issue Links

            Activity

              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: