mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse upon SELECT from a view reading from a versioned table
Lost restore_active_arena(). Using of Query_arena_stmt is suggested instead.
This commit is contained in:
committed by
Sergei Golubchik
parent
8b2fa0ab25
commit
ce2cf855bf
@ -332,5 +332,13 @@ select * from (select * from t1 for system_time all, t2 for system_time all) for
|
|||||||
ERROR HY000: Table `t` is not system-versioned
|
ERROR HY000: Table `t` is not system-versioned
|
||||||
select * from (t1 for system_time all join t2 for system_time all) for system_time all;
|
select * from (t1 for system_time all join t2 for system_time all) for system_time all;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
|
||||||
|
# MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse upon SELECT from a view reading from a versioned table
|
||||||
|
create or replace table t1 (a int) with system versioning;
|
||||||
|
create or replace view v1 as select * from t1;
|
||||||
|
prepare stmt from "select * from t1 where exp( '20010609211642053929' )";
|
||||||
|
execute stmt;
|
||||||
|
ERROR 22003: DOUBLE value is out of range in 'exp('20010609211642053929')'
|
||||||
|
select a from v1;
|
||||||
|
a
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
@ -202,6 +202,14 @@ select * from (select * from t1 for system_time all, t2 for system_time all) for
|
|||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
select * from (t1 for system_time all join t2 for system_time all) for system_time all;
|
select * from (t1 for system_time all join t2 for system_time all) for system_time all;
|
||||||
|
|
||||||
|
--echo # MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse upon SELECT from a view reading from a versioned table
|
||||||
|
create or replace table t1 (a int) with system versioning;
|
||||||
|
create or replace view v1 as select * from t1;
|
||||||
|
prepare stmt from "select * from t1 where exp( '20010609211642053929' )";
|
||||||
|
--error ER_DATA_OUT_OF_RANGE
|
||||||
|
execute stmt;
|
||||||
|
select a from v1;
|
||||||
|
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
@ -1602,10 +1602,12 @@ JOIN::optimize_inner()
|
|||||||
|
|
||||||
/* Convert all outer joins to inner joins if possible */
|
/* Convert all outer joins to inner joins if possible */
|
||||||
conds= simplify_joins(this, join_list, conds, TRUE, FALSE);
|
conds= simplify_joins(this, join_list, conds, TRUE, FALSE);
|
||||||
if (thd->is_error())
|
if (thd->is_error() || select_lex->save_leaf_tables(thd))
|
||||||
DBUG_RETURN(1);
|
{
|
||||||
if (select_lex->save_leaf_tables(thd))
|
if (arena)
|
||||||
|
thd->restore_active_arena(arena, &backup);
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
build_bitmap_for_nested_joins(join_list, 0);
|
build_bitmap_for_nested_joins(join_list, 0);
|
||||||
|
|
||||||
sel->prep_where= conds ? conds->copy_andor_structure(thd) : 0;
|
sel->prep_where= conds ? conds->copy_andor_structure(thd) : 0;
|
||||||
|
Reference in New Issue
Block a user