Commit eea70871 authored by gkodinov/kgeorge@magare.gmz's avatar gkodinov/kgeorge@magare.gmz
Browse files

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

into  magare.gmz:/home/kgeorge/mysql/autopush/B31562-5.0-opt
parents bf2a90f1 3384d3e9
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ create table t1Aa (col1 int);
create view v1Aa as select col1 from t1Aa as AaA;
show create view v1AA;
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;
select Aaa.col1 from t1Aa as AaA;
col1
@@ -128,6 +128,23 @@ drop view v1AA;
create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA;
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 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.
+23 −0
Original line number Diff line number Diff line
@@ -138,3 +138,26 @@ create view v1Aa as select AaA.col1 from t1Aa as AaA;
show create view v1AA;
drop view v1AA;
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.
+1 −1
Original line number Diff line number Diff line
@@ -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 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. */
          return NULL;

+2 −1
Original line number Diff line number Diff line
@@ -4164,7 +4164,8 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
        if (item_field->field_name && item_field->table_name &&
	    !my_strcasecmp(system_charset_info, item_field->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 &&
                          !strcmp(item_field->db_name, db_name))))
        {
+14 −1
Original line number Diff line number Diff line
@@ -15629,8 +15629,21 @@ void TABLE_LIST::print(THD *thd, String *str)
    }
    if (my_strcasecmp(table_alias_charset, cmp_name, alias))
    {
      char t_alias_buff[MAX_ALIAS_NAME];
      const char *t_alias= alias;

      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)