Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-10142 PL/SQL parser
  3. MDEV-15107

Add virtual Field::sp_prepare_and_store_item(), make sp_rcontext symmetric for scalar and ROW

    XMLWordPrintable

Details

    • Technical task
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 10.3.5
    • Stored routines
    • None
    • 10.2.2-3, 10.2.2-1, 10.2.2-2, 10.2.2-4, 10.1.18

    Description

      After MDEV-14212, the Virtual_tmp_table instance that stores a ROW variable elements is accessible from the underlying Field_row (rather than Item_field_row).

      Under terms of this task we'll do some further changes by moving the code from sp_instr_xxx, sp_rcontext, Item_xxx to Virtual_tmp_table and Field_xxx:

      • Move the data type specific code (scalar vs ROW) which stores a value to an SP variable into a new virtual method Field_xxx::sp_prepare_and_store_item().
      • Make the the code in sp_rcontext::set_variable() and sp_eval_expr() symmetric for scalar and ROW values.
      • Make the code in in sp_rcontext::set_variable_row_field(), sp_rcontext::set_variable_row_field(), sp_rcontext::set_variable_row() symmetric for ROW elements (i.e. scalar and ROW elements inside a ROW).

      Rationale:

      Prepare the code to implement these tasks soon easier:

      • MDEV-12252 ROW data type for stored function return values
      • MDEV-12307 ROW data type for built-in function return values
      • MDEV-6121 Data type: Array
      • MDEV-10593 sql_mode=ORACLE: TYPE .. AS OBJECT: basic functionality
      • ROW with ROW fields (no MDEV yet)

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.