mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
MDEV-12819 order by ordering expression changed to empty string when creatin view with union
prepare of "fake_select" for union made in JOIN::prepare only if we do not execute it then before reset, i.e it was for PS prepare and now required for CREATE VIEW to make global ORDER BY which belongs to "fake_select" prepared.
This commit is contained in:
@@ -6065,5 +6065,23 @@ three COUNT(*)
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-12819: order by ordering expression changed to empty string
|
||||
# when creatin view with union
|
||||
#
|
||||
create table t1 (t1col1 int, t1col2 int,t1col3 int );
|
||||
create table t2 (t2col1 int, t2col2 int, t2col3 int);
|
||||
create view v1 as
|
||||
select t1col1,t1col2,t1col3 from t1
|
||||
union all
|
||||
select t2col1,t2col2,t2col3 from t2
|
||||
order by 2,3;
|
||||
show create view v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`t1col1` AS `t1col1`,`t1`.`t1col2` AS `t1col2`,`t1`.`t1col3` AS `t1col3` from `t1` union all select `t2`.`t2col1` AS `t2col1`,`t2`.`t2col2` AS `t2col2`,`t2`.`t2col3` AS `t2col3` from `t2` order by 2,3 latin1 latin1_swedish_ci
|
||||
select * from v1;
|
||||
t1col1 t1col2 t1col3
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# End of 10.1 tests
|
||||
#
|
||||
|
||||
@@ -5900,6 +5900,27 @@ SELECT * FROM v1;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-12819: order by ordering expression changed to empty string
|
||||
--echo # when creatin view with union
|
||||
--echo #
|
||||
|
||||
create table t1 (t1col1 int, t1col2 int,t1col3 int );
|
||||
create table t2 (t2col1 int, t2col2 int, t2col3 int);
|
||||
|
||||
create view v1 as
|
||||
select t1col1,t1col2,t1col3 from t1
|
||||
union all
|
||||
select t2col1,t2col2,t2col3 from t2
|
||||
order by 2,3;
|
||||
|
||||
show create view v1;
|
||||
|
||||
select * from v1;
|
||||
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.1 tests
|
||||
--echo #
|
||||
|
||||
@@ -618,7 +618,9 @@ bool st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result,
|
||||
if (saved_error)
|
||||
goto err;
|
||||
|
||||
if (fake_select_lex != NULL && thd->stmt_arena->is_stmt_prepare())
|
||||
if (fake_select_lex != NULL &&
|
||||
(thd->stmt_arena->is_stmt_prepare() ||
|
||||
(thd->lex->context_analysis_only & CONTEXT_ANALYSIS_ONLY_VIEW)))
|
||||
{
|
||||
/* Validate the global parameters of this union */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user