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

MySQL Compatibility for Parenthesised SELECT INTO Statements

    XMLWordPrintable

Details

    Description

      Currently, MySQL allows SELECT statements within stored procedures to be enclosed in parentheses even when using the INTO keyword. MariaDB's parser is more strict regarding the placement of the INTO clause when parentheses are present, often resulting in a syntax error (Error 1064).

      To improve compatibility for migrations, MariaDB should allow the same syntactic flexibility as MySQL for these procedural constructs.

      Example :
      MySQL Syntax

      CREATE PROCEDURE test_proc(IN in_var INT)
      BEGIN
      DECLARE ivar INT;
      IF in_var IS NOT NULL THEN
      (SELECT var INTO ivar
      FROM xyz
      WHERE var = in_var
      LIMIT 1);
      END IF;
      SELECT ivar AS result;
      END //
      DELIMITER ;
      

      MariaDB equivalent:

      DELIMITER //
      _~CREATE OR REPLACE PROCEDURE test_proc(IN in_var INT)
      BEGIN
          DECLARE ivar INT;
          
          IF in_var IS NOT NULL THEN
              -- Parentheses removed for compatibility
              SELECT var INTO ivar
              FROM xyz
              WHERE var = in_var
              LIMIT 1;
          END IF;
       
          SELECT ivar AS result;
      END //
      DELIMITER ;
      
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            manoj.vakeel Manoj
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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