Commit 4bc635e2 authored by unknown's avatar unknown

Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  magare.gmz:/home/kgeorge/mysql/autopush/B31562-5.0-opt


sql/item.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
parents 26ebe887 170ae2d2
...@@ -119,7 +119,7 @@ create table t1Aa (col1 int); ...@@ -119,7 +119,7 @@ create table t1Aa (col1 int);
create view v1Aa as select col1 from t1Aa as AaA; create view v1Aa as select col1 from t1Aa as AaA;
show create view v1AA; show create view v1AA;
View Create View View Create View
v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa`
drop view v1AA; drop view v1AA;
select Aaa.col1 from t1Aa as AaA; select Aaa.col1 from t1Aa as AaA;
col1 col1
...@@ -128,6 +128,23 @@ drop view v1AA; ...@@ -128,6 +128,23 @@ drop view v1AA;
create view v1Aa as select AaA.col1 from t1Aa as AaA; create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA; show create view v1AA;
View Create View View Create View
v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa`
drop view v1AA; drop view v1AA;
drop table t1Aa; drop table t1Aa;
CREATE TABLE t1 (a int, b int);
select X.a from t1 AS X group by X.b having (X.a = 1);
a
select X.a from t1 AS X group by X.b having (x.a = 1);
a
select X.a from t1 AS X group by X.b having (x.b = 1);
a
CREATE OR REPLACE VIEW v1 AS
select X.a from t1 AS X group by X.b having (X.a = 1);
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `x`.`a` AS `a` from `t1` `x` group by `x`.`b` having (`x`.`a` = 1)
SELECT * FROM v1;
a
DROP VIEW v1;
DROP TABLE t1;
End of 5.0 tests.
...@@ -138,3 +138,26 @@ create view v1Aa as select AaA.col1 from t1Aa as AaA; ...@@ -138,3 +138,26 @@ create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA; show create view v1AA;
drop view v1AA; drop view v1AA;
drop table t1Aa; drop table t1Aa;
#
# Bug #31562: HAVING and lower case
#
CREATE TABLE t1 (a int, b int);
select X.a from t1 AS X group by X.b having (X.a = 1);
select X.a from t1 AS X group by X.b having (x.a = 1);
select X.a from t1 AS X group by X.b having (x.b = 1);
CREATE OR REPLACE VIEW v1 AS
select X.a from t1 AS X group by X.b having (X.a = 1);
SHOW CREATE VIEW v1;
SELECT * FROM v1;
DROP VIEW v1;
DROP TABLE t1;
--echo End of 5.0 tests.
...@@ -3307,7 +3307,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list) ...@@ -3307,7 +3307,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
if (cur_field->table_name && table_name) if (cur_field->table_name && table_name)
{ {
/* If field_name is qualified by a table name. */ /* If field_name is qualified by a table name. */
if (strcmp(cur_field->table_name, table_name)) if (my_strcasecmp(table_alias_charset, cur_field->table_name, table_name))
/* Same field names, different tables. */ /* Same field names, different tables. */
return NULL; return NULL;
......
...@@ -4164,7 +4164,8 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter, ...@@ -4164,7 +4164,8 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
if (item_field->field_name && item_field->table_name && if (item_field->field_name && item_field->table_name &&
!my_strcasecmp(system_charset_info, item_field->field_name, !my_strcasecmp(system_charset_info, item_field->field_name,
field_name) && field_name) &&
!strcmp(item_field->table_name, table_name) && !my_strcasecmp(table_alias_charset, item_field->table_name,
table_name) &&
(!db_name || (item_field->db_name && (!db_name || (item_field->db_name &&
!strcmp(item_field->db_name, db_name)))) !strcmp(item_field->db_name, db_name))))
{ {
......
...@@ -15629,8 +15629,21 @@ void TABLE_LIST::print(THD *thd, String *str) ...@@ -15629,8 +15629,21 @@ void TABLE_LIST::print(THD *thd, String *str)
} }
if (my_strcasecmp(table_alias_charset, cmp_name, alias)) if (my_strcasecmp(table_alias_charset, cmp_name, alias))
{ {
char t_alias_buff[MAX_ALIAS_NAME];
const char *t_alias= alias;
str->append(' '); str->append(' ');
append_identifier(thd, str, alias, strlen(alias)); if (lower_case_table_names== 1)
{
if (alias && alias[0])
{
strmov(t_alias_buff, alias);
my_casedn_str(files_charset_info, t_alias_buff);
t_alias= t_alias_buff;
}
}
append_identifier(thd, str, t_alias, strlen(t_alias));
} }
if (use_index) if (use_index)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment