mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into mysql.com:/home/gluh/MySQL/Merge/5.1-opt mysql-test/r/order_by.result: Auto merged mysql-test/t/order_by.test: Auto merged sql/item.cc: Auto merged sql/mysqld.cc: Auto merged sql/sql_base.cc: Auto merged mysql-test/r/join.result: manual merge mysql-test/t/join.test: manual merge
This commit is contained in:
@ -804,3 +804,19 @@ select '^^: The above should be ~= 20 + cost(select * from t1). Value less than
|
||||
Z
|
||||
^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (ID INTEGER, Name VARCHAR(50));
|
||||
CREATE TABLE t2 (Test_ID INTEGER);
|
||||
CREATE VIEW v1 (Test_ID, Description) AS SELECT ID, Name FROM t1;
|
||||
CREATE TABLE tv1 SELECT Description AS Name FROM v1 JOIN t2
|
||||
USING (Test_ID);
|
||||
DESCRIBE tv1;
|
||||
Field Type Null Key Default Extra
|
||||
Name varchar(50) YES NULL
|
||||
CREATE TABLE tv2 SELECT Description AS Name FROM v1 JOIN t2
|
||||
ON v1.Test_ID = t2.Test_ID;
|
||||
DESCRIBE tv2;
|
||||
Field Type Null Key Default Extra
|
||||
Name varchar(50) YES NULL
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,tv1,tv2;
|
||||
End of 5.0 tests.
|
||||
|
@ -29,14 +29,14 @@ INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif');
|
||||
INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif');
|
||||
INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif');
|
||||
INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif');
|
||||
INSERT INTO t2 VALUES (3,'Cr<EFBFBD>er une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
|
||||
INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
|
||||
INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif');
|
||||
INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif');
|
||||
INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif');
|
||||
select t1.id,t1.idservice,t2.ordre,t2.description from t1, t2 where t1.id = 2 and t1.idservice = t2.id order by t2.ordre;
|
||||
id idservice ordre description
|
||||
2 1 10 Emettre un appel d'offres
|
||||
2 3 40000 Cr<EFBFBD>er une fiche de client
|
||||
2 3 40000 Créer une fiche de client
|
||||
2 4 40010 Modifier des clients
|
||||
2 5 40020 Effacer des clients
|
||||
2 6 51050 Ajouter un service
|
||||
@ -874,6 +874,14 @@ num (select num + 2 FROM t1 LIMIT 1)
|
||||
SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a;
|
||||
ERROR 42S22: Unknown column 'num' in 'on clause'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a int);
|
||||
SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
|
||||
val val1
|
||||
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val;
|
||||
ERROR 23000: Column 'val' in order clause is ambiguous
|
||||
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1;
|
||||
ERROR 23000: Column 'val' in order clause is ambiguous
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int not null, b int not null, c int not null);
|
||||
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||
select a, b from t1 group by a, b order by sum(c);
|
||||
|
@ -631,3 +631,21 @@ select '^^: The above should be ~= 20 + cost(select * from t1). Value less than
|
||||
|
||||
|
||||
drop table t1, t2;
|
||||
# BUG#25106: A USING clause in combination with a VIEW results in column
|
||||
# aliases ignored
|
||||
#
|
||||
CREATE TABLE t1 (ID INTEGER, Name VARCHAR(50));
|
||||
CREATE TABLE t2 (Test_ID INTEGER);
|
||||
CREATE VIEW v1 (Test_ID, Description) AS SELECT ID, Name FROM t1;
|
||||
|
||||
CREATE TABLE tv1 SELECT Description AS Name FROM v1 JOIN t2
|
||||
USING (Test_ID);
|
||||
DESCRIBE tv1;
|
||||
CREATE TABLE tv2 SELECT Description AS Name FROM v1 JOIN t2
|
||||
ON v1.Test_ID = t2.Test_ID;
|
||||
DESCRIBE tv2;
|
||||
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,tv1,tv2;
|
||||
|
||||
--echo End of 5.0 tests.
|
||||
|
@ -44,7 +44,7 @@ INSERT INTO t2 VALUES (7,'Liste des t2','t2_liste_form.phtml',51060,'link.gif');
|
||||
INSERT INTO t2 VALUES (8,'Consulter les soumissions','consulter_soumissions.phtml',200,'link.gif');
|
||||
INSERT INTO t2 VALUES (9,'Ajouter un type de materiel','typeMateriel_ajoute_form.phtml',51000,'link.gif');
|
||||
INSERT INTO t2 VALUES (10,'Lister/modifier un type de materiel','typeMateriel_liste_form.phtml',51010,'link.gif');
|
||||
INSERT INTO t2 VALUES (3,'Cr<EFBFBD>er une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
|
||||
INSERT INTO t2 VALUES (3,'Créer une fiche de client','clients_ajoute_form.phtml',40000,'link.gif');
|
||||
INSERT INTO t2 VALUES (4,'Modifier des clients','en_construction.html',40010,'link.gif');
|
||||
INSERT INTO t2 VALUES (5,'Effacer des clients','en_construction.html',40020,'link.gif');
|
||||
INSERT INTO t2 VALUES (6,'Ajouter un service','t2_ajoute_form.phtml',51050,'link.gif');
|
||||
@ -588,6 +588,21 @@ SELECT a + 1 AS num, (select num + 2 FROM t1 LIMIT 1) FROM t1;
|
||||
SELECT a.a + 1 AS num FROM t1 a JOIN t1 b ON num = b.a;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #25427: crash when order by expression contains a name
|
||||
# that cannot be resolved unambiguously
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int);
|
||||
|
||||
SELECT p.a AS val, q.a AS val1 FROM t1 p, t1 q ORDER BY val > 1;
|
||||
--error 1052
|
||||
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val;
|
||||
--error 1052
|
||||
SELECT p.a AS val, q.a AS val FROM t1 p, t1 q ORDER BY val > 1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
create table t1 (a int not null, b int not null, c int not null);
|
||||
insert t1 values (1,1,1),(1,1,2),(1,2,1);
|
||||
|
@ -3732,6 +3732,8 @@ bool Item_field::fix_fields(THD *thd, Item **reference)
|
||||
Item** res= find_item_in_list(this, thd->lex->current_select->item_list,
|
||||
&counter, REPORT_EXCEPT_NOT_FOUND,
|
||||
¬_used);
|
||||
if (!res)
|
||||
return 1;
|
||||
if (res != (Item **)not_found_item)
|
||||
{
|
||||
if ((*res)->type() == Item::FIELD_ITEM)
|
||||
|
@ -3801,6 +3801,19 @@ find_field_in_natural_join(THD *thd, TABLE_LIST *table_ref, const char *name,
|
||||
column reference. See create_view_field() for details.
|
||||
*/
|
||||
item= nj_col->create_item(thd);
|
||||
/*
|
||||
*ref != NULL means that *ref contains the item that we need to
|
||||
replace. If the item was aliased by the user, set the alias to
|
||||
the replacing item.
|
||||
We need to set alias on both ref itself and on ref real item.
|
||||
*/
|
||||
if (*ref && !(*ref)->is_autogenerated_name)
|
||||
{
|
||||
item->set_name((*ref)->name, (*ref)->name_length,
|
||||
system_charset_info);
|
||||
item->real_item()->set_name((*ref)->name, (*ref)->name_length,
|
||||
system_charset_info);
|
||||
}
|
||||
if (register_tree_change && arena)
|
||||
thd->restore_active_arena(arena, &backup);
|
||||
|
||||
|
Reference in New Issue
Block a user