mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/mysql-5.1-opt
This commit is contained in:
commit
a196ccafe6
3 changed files with 52 additions and 14 deletions
|
@ -3098,6 +3098,24 @@ Warnings:
|
||||||
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` order by `test`.`t1`.`f1`,`test`.`t1`.`f2`
|
Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2` from `test`.`t1` order by `test`.`t1`.`f1`,`test`.`t1`.`f2`
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int(11) NOT NULL PRIMARY KEY,
|
||||||
|
country varchar(32),
|
||||||
|
code int(11) default NULL
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(1,'ITALY',100),(2,'ITALY',200),(3,'FRANCE',100), (4,'ITALY',100);
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
SELECT code, COUNT(DISTINCT country) FROM t1 GROUP BY code ORDER BY MAX(id);
|
||||||
|
code COUNT(DISTINCT country)
|
||||||
|
200 1
|
||||||
|
100 2
|
||||||
|
SELECT code, COUNT(DISTINCT country) FROM v1 GROUP BY code ORDER BY MAX(id);
|
||||||
|
code COUNT(DISTINCT country)
|
||||||
|
200 1
|
||||||
|
100 2
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL);
|
CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, val INT UNSIGNED NOT NULL);
|
||||||
CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION;
|
CREATE VIEW v1 AS SELECT id, val FROM t1 WHERE val >= 1 AND val <= 5 WITH CHECK OPTION;
|
||||||
|
|
|
@ -748,12 +748,12 @@ drop view v1;
|
||||||
#
|
#
|
||||||
# VIEWs with national characters
|
# VIEWs with national characters
|
||||||
#
|
#
|
||||||
create table tü (cü char);
|
create table tü (cü char);
|
||||||
create view vü as select cü from tü;
|
create view vü as select cü from tü;
|
||||||
insert into vü values ('ü');
|
insert into vü values ('ü');
|
||||||
select * from vü;
|
select * from vü;
|
||||||
drop view vü;
|
drop view vü;
|
||||||
drop table tü;
|
drop table tü;
|
||||||
|
|
||||||
#
|
#
|
||||||
# problem with used_tables() of outer reference resolved in VIEW
|
# problem with used_tables() of outer reference resolved in VIEW
|
||||||
|
@ -3015,6 +3015,26 @@ explain extended select * from v1 order by f1;
|
||||||
drop view v1;
|
drop view v1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#26209: queries with GROUP BY and ORDER BY using views
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int(11) NOT NULL PRIMARY KEY,
|
||||||
|
country varchar(32),
|
||||||
|
code int(11) default NULL
|
||||||
|
);
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(1,'ITALY',100),(2,'ITALY',200),(3,'FRANCE',100), (4,'ITALY',100);
|
||||||
|
|
||||||
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||||
|
|
||||||
|
SELECT code, COUNT(DISTINCT country) FROM t1 GROUP BY code ORDER BY MAX(id);
|
||||||
|
SELECT code, COUNT(DISTINCT country) FROM v1 GROUP BY code ORDER BY MAX(id);
|
||||||
|
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests.
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
|
# Bug #16813 (WITH CHECK OPTION doesn't work with UPDATE)
|
||||||
|
|
|
@ -12993,15 +12993,15 @@ SORT_FIELD *make_unireg_sortorder(ORDER *order, uint *length,
|
||||||
|
|
||||||
for (;order;order=order->next,pos++)
|
for (;order;order=order->next,pos++)
|
||||||
{
|
{
|
||||||
pos->field=0; pos->item=0;
|
Item *item= order->item[0]->real_item();
|
||||||
if (order->item[0]->type() == Item::FIELD_ITEM)
|
pos->field= 0; pos->item= 0;
|
||||||
pos->field= ((Item_field*) (*order->item))->field;
|
if (item->type() == Item::FIELD_ITEM)
|
||||||
else if (order->item[0]->type() == Item::SUM_FUNC_ITEM &&
|
pos->field= ((Item_field*) item)->field;
|
||||||
!order->item[0]->const_item())
|
else if (item->type() == Item::SUM_FUNC_ITEM && !item->const_item())
|
||||||
pos->field= ((Item_sum*) order->item[0])->get_tmp_table_field();
|
pos->field= ((Item_sum*) item)->get_tmp_table_field();
|
||||||
else if (order->item[0]->type() == Item::COPY_STR_ITEM)
|
else if (item->type() == Item::COPY_STR_ITEM)
|
||||||
{ // Blob patch
|
{ // Blob patch
|
||||||
pos->item= ((Item_copy_string*) (*order->item))->item;
|
pos->item= ((Item_copy_string*) item)->item;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
pos->item= *order->item;
|
pos->item= *order->item;
|
||||||
|
|
Loading…
Reference in a new issue