diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2020-07-21 10:31:10 +0200 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2020-07-21 10:31:10 +0200 |
commit | ec20992e1ecd928be5dee65c272e54de369c0c48 (patch) | |
tree | d608082bcea5bbd087ad5d548659d9b770491ed7 /mysql-test/main/parser.result | |
parent | c4d5b6b157b06fe22fd7e01967d7a0194c3686a2 (diff) | |
download | mariadb-git-bb-10.4-MDEV-21997.tar.gz |
MDEV-21997 Server crashes in LEX::create_item_ident_sp upon use of unknown identifierbb-10.4-MDEV-21997
If there is no current_select and variable is not found among SP variables it can be only an error.
Diffstat (limited to 'mysql-test/main/parser.result')
-rw-r--r-- | mysql-test/main/parser.result | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mysql-test/main/parser.result b/mysql-test/main/parser.result index 42fdc01617b..ad22cd886f7 100644 --- a/mysql-test/main/parser.result +++ b/mysql-test/main/parser.result @@ -1838,4 +1838,59 @@ ERROR 42S02: Table 'test.t1' doesn't exist SET STATEMENT max_statement_time=180 FOR BACKUP LOCK test.t1; SET STATEMENT max_statement_time=180 FOR BACKUP UNLOCK; set SQL_MODE=@save_sql_mode; +# +# MDEV-21997: Server crashes in LEX::create_item_ident_sp +# upon use of unknown identifier +# +/*! IF 1 IN ( SELECT 2 ) OR foo = 3 THEN */ SELECT 4; +ERROR 42000: Undeclared variable: foo +BEGIN NOT ATOMIC +IF (SELECT 2) OR foo = 3 THEN +SELECT 4; +END IF ; +END; +$$ +ERROR 42000: Undeclared variable: foo +# ... but if declare it then it still work +BEGIN NOT ATOMIC +DECLARE foo int; +IF (SELECT 2) OR foo = 3 THEN +SELECT 4; +END IF ; +END; +$$ +4 +4 +CASE (SELECT 2) OR foo +WHEN 1 THEN +SET @x=10; +$$ +ERROR 42000: Undeclared variable: foo +/*! WHILE (SELECT 2) OR foo */ +SET @x=10; +END WHILE; +$$ +ERROR 42000: Undeclared variable: foo +REPEAT +SET @x=10; +UNTIL (SELECT 2) OR foo +END REPEAT; +$$ +ERROR 42000: Undeclared variable: foo +FOR i IN 1..(SELECT 2) OR foo +DO +SET @x=10; +END FOR; +$$ +ERROR 42000: Undeclared variable: foo +# ... but automatic FOR variable still work +FOR i IN 1..2 +DO +SELECT i; +END FOR; +$$ +i +1 +i +2 # End of 10.4 tests |