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

        Issue Links

          Activity

            People

              alice Alice Sherepa
              manoj.vakeel Manoj
              Votes:
              0 Vote for this issue
              Watchers:
              8 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.