mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +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`
|
||||
drop view v1;
|
||||
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.
|
||||
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;
|
||||
|
|
|
@ -748,12 +748,12 @@ drop view v1;
|
|||
#
|
||||
# VIEWs with national characters
|
||||
#
|
||||
create table tü (cü char);
|
||||
create view vü as select cü from tü;
|
||||
insert into vü values ('ü');
|
||||
select * from vü;
|
||||
drop view vü;
|
||||
drop table tü;
|
||||
create table tü (cü char);
|
||||
create view vü as select cü from tü;
|
||||
insert into vü values ('ü');
|
||||
select * from vü;
|
||||
drop view vü;
|
||||
drop table tü;
|
||||
|
||||
#
|
||||
# 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 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.
|
||||
|
||||
# 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++)
|
||||
{
|
||||
pos->field=0; pos->item=0;
|
||||
if (order->item[0]->type() == Item::FIELD_ITEM)
|
||||
pos->field= ((Item_field*) (*order->item))->field;
|
||||
else if (order->item[0]->type() == Item::SUM_FUNC_ITEM &&
|
||||
!order->item[0]->const_item())
|
||||
pos->field= ((Item_sum*) order->item[0])->get_tmp_table_field();
|
||||
else if (order->item[0]->type() == Item::COPY_STR_ITEM)
|
||||
Item *item= order->item[0]->real_item();
|
||||
pos->field= 0; pos->item= 0;
|
||||
if (item->type() == Item::FIELD_ITEM)
|
||||
pos->field= ((Item_field*) item)->field;
|
||||
else if (item->type() == Item::SUM_FUNC_ITEM && !item->const_item())
|
||||
pos->field= ((Item_sum*) item)->get_tmp_table_field();
|
||||
else if (item->type() == Item::COPY_STR_ITEM)
|
||||
{ // Blob patch
|
||||
pos->item= ((Item_copy_string*) (*order->item))->item;
|
||||
pos->item= ((Item_copy_string*) item)->item;
|
||||
}
|
||||
else
|
||||
pos->item= *order->item;
|
||||
|
|
Loading…
Reference in a new issue