Commit b54a4b76 authored by unknown's avatar unknown

5.3 -> 5.5 Merge

parents 10be9160 fee78df3
...@@ -338,3 +338,15 @@ select * from t1; ...@@ -338,3 +338,15 @@ select * from t1;
a b a b
2010-01-02 03:04:05.000000 2010-01-02 03:04:05 2010-01-02 03:04:05.000000 2010-01-02 03:04:05
drop table t1; drop table t1;
#
# MDEV-4651 Crash in my_decimal2decimal in a ORDER BY query
#
SET @@time_zone='+00:00';
CREATE TABLE t1 (a DATETIME(4) NOT NULL);
INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2000-00-00 00:00:00');
SELECT UNIX_TIMESTAMP(a) FROM t1 ORDER BY 1;
UNIX_TIMESTAMP(a)
NULL
978307200.0000
DROP TABLE t1;
SET @@time_zone=DEFAULT;
...@@ -4863,6 +4863,18 @@ a ...@@ -4863,6 +4863,18 @@ a
1 1
drop view v1; drop view v1;
drop table t1,t2; drop table t1,t2;
#
# MDEV-4593: p_s: crash in simplify_joins with delete using subselect
# from view
#
create table `t1`(`a` int);
create table `t2`(`a` int);
create or replace view `v1` as select `a` from `t1`;
prepare s from "delete from `t2` order by (select 1 from `v1`)";
execute s;
deallocate prepare s;
drop view v1;
drop tables t1,t2;
# ----------------------------------------------------------------- # -----------------------------------------------------------------
# -- End of 5.3 tests. # -- End of 5.3 tests.
# ----------------------------------------------------------------- # -----------------------------------------------------------------
......
...@@ -69,3 +69,12 @@ alter table t1 modify b datetime, modify a datetime(6); ...@@ -69,3 +69,12 @@ alter table t1 modify b datetime, modify a datetime(6);
select * from t1; select * from t1;
drop table t1; drop table t1;
--echo #
--echo # MDEV-4651 Crash in my_decimal2decimal in a ORDER BY query
--echo #
SET @@time_zone='+00:00';
CREATE TABLE t1 (a DATETIME(4) NOT NULL);
INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2000-00-00 00:00:00');
SELECT UNIX_TIMESTAMP(a) FROM t1 ORDER BY 1;
DROP TABLE t1;
SET @@time_zone=DEFAULT;
...@@ -4794,6 +4794,20 @@ WHERE a = alias.a ); ...@@ -4794,6 +4794,20 @@ WHERE a = alias.a );
drop view v1; drop view v1;
drop table t1,t2; drop table t1,t2;
--echo #
--echo # MDEV-4593: p_s: crash in simplify_joins with delete using subselect
--echo # from view
--echo #
create table `t1`(`a` int);
create table `t2`(`a` int);
create or replace view `v1` as select `a` from `t1`;
prepare s from "delete from `t2` order by (select 1 from `v1`)";
execute s;
deallocate prepare s;
drop view v1;
drop tables t1,t2;
--echo # ----------------------------------------------------------------- --echo # -----------------------------------------------------------------
--echo # -- End of 5.3 tests. --echo # -- End of 5.3 tests.
--echo # ----------------------------------------------------------------- --echo # -----------------------------------------------------------------
......
...@@ -87,7 +87,16 @@ mysql_handle_derived(LEX *lex, uint phases) ...@@ -87,7 +87,16 @@ mysql_handle_derived(LEX *lex, uint phases)
sl && !res; sl && !res;
sl= sl->next_select_in_list()) sl= sl->next_select_in_list())
{ {
for (TABLE_LIST *cursor= sl->get_table_list(); TABLE_LIST *cursor= sl->get_table_list();
/*
DT_MERGE_FOR_INSERT is not needed for views/derived tables inside
subqueries. Views and derived tables of subqueries should be
processed normally.
*/
if (phases == DT_MERGE_FOR_INSERT &&
cursor && cursor->top_table()->select_lex != &lex->select_lex)
continue;
for (;
cursor && !res; cursor && !res;
cursor= cursor->next_local) cursor= cursor->next_local)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment