mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
fixed bugs 442/443 (reduced subselect in ORDER/GROUP clauses)
mysql-test/r/subselect.result: test of reduced subselects in ORDER/GROUP mysql-test/t/subselect.test: test of reduced subselects in ORDER/GROUP sql/sql_select.cc: added reassigning temporary variable
This commit is contained in:
@ -1126,3 +1126,20 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ref salary salary 5 const 1 Using where
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
drop table t1;
|
||||
(SELECT 1 as a) UNION (SELECT 1) ORDER BY (SELECT a+0);
|
||||
a
|
||||
1
|
||||
CREATE TABLE `t1` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`pseudo` varchar(35) NOT NULL default '',
|
||||
`email` varchar(60) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `email` (`email`),
|
||||
UNIQUE KEY `pseudo` (`pseudo`),
|
||||
) TYPE=MyISAM CHARSET=latin1 PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1');
|
||||
SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1);
|
||||
a b
|
||||
test test
|
||||
test1 test1
|
||||
drop table if exists t1;
|
||||
|
@ -714,3 +714,20 @@ create table t1 (id int not null auto_increment primary key, salary int, key(sal
|
||||
insert into t1 (salary) values (100),(1000),(10000),(10),(500),(5000),(50000);
|
||||
explain SELECT id FROM t1 where salary = (SELECT MAX(salary) FROM t1);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# reduced subselect in ORDER BY & GROUP BY clauses
|
||||
#
|
||||
(SELECT 1 as a) UNION (SELECT 1) ORDER BY (SELECT a+0);
|
||||
|
||||
CREATE TABLE `t1` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`pseudo` varchar(35) NOT NULL default '',
|
||||
`email` varchar(60) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `email` (`email`),
|
||||
UNIQUE KEY `pseudo` (`pseudo`),
|
||||
) TYPE=MyISAM CHARSET=latin1 PACK_KEYS=1 ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO t1 (id,pseudo,email) VALUES (1,'test','test'),(2,'test1','test1');
|
||||
SELECT pseudo as a, pseudo as b FROM t1 GROUP BY (SELECT a) ORDER BY (SELECT id*1);
|
||||
drop table if exists t1;
|
||||
|
Reference in New Issue
Block a user