1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-13527 Crash when EXPLAIN SELECT .. INTO row_sp_variable.field

This commit is contained in:
Alexander Barkov
2017-08-15 09:55:09 +04:00
parent 6179a8efdc
commit 22c9663d85
6 changed files with 49 additions and 2 deletions

View File

@ -2246,3 +2246,13 @@ b
10 10
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-13527 Crash when EXPLAIN SELECT .. INTO row_sp_variable.field
#
BEGIN NOT ATOMIC
DECLARE a ROW(a INT);
EXPLAIN SELECT 1 INTO a.a;
END;
$$
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used

View File

@ -3070,3 +3070,14 @@ b
10 10
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-13527 Crash when EXPLAIN SELECT .. INTO row_sp_variable.field
#
DECLARE
a ROW(a INT);
BEGIN
EXPLAIN SELECT 1 INTO a.a;
END;
$$
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used

View File

@ -2375,3 +2375,16 @@ DELIMITER ;$$
CALL p1; CALL p1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-13527 Crash when EXPLAIN SELECT .. INTO row_sp_variable.field
--echo #
DELIMITER $$;
DECLARE
a ROW(a INT);
BEGIN
EXPLAIN SELECT 1 INTO a.a;
END;
$$
DELIMITER ;$$

View File

@ -1471,3 +1471,16 @@ DELIMITER ;$$
CALL p1; CALL p1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-13527 Crash when EXPLAIN SELECT .. INTO row_sp_variable.field
--echo #
DELIMITER $$;
BEGIN NOT ATOMIC
DECLARE a ROW(a INT);
EXPLAIN SELECT 1 INTO a.a;
END;
$$
DELIMITER ;$$

View File

@ -12155,7 +12155,7 @@ select_outvar:
} }
| ident '.' ident | ident '.' ident
{ {
if (!($$= Lex->create_outvar(thd, &$1, &$3))) if (!($$= Lex->create_outvar(thd, &$1, &$3)) && Lex->result)
MYSQL_YYABORT; MYSQL_YYABORT;
} }
; ;

View File

@ -12218,7 +12218,7 @@ select_outvar:
} }
| ident '.' ident | ident '.' ident
{ {
if (!($$= Lex->create_outvar(thd, &$1, &$3))) if (!($$= Lex->create_outvar(thd, &$1, &$3)) && Lex->result)
MYSQL_YYABORT; MYSQL_YYABORT;
} }
; ;