summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <gluh@mysql.com>2006-06-14 10:54:56 +0500
committerunknown <gluh@mysql.com>2006-06-14 10:54:56 +0500
commite30a2aea7486156e0da13ea6db2ff54882ae4fcc (patch)
tree0514d0f3949422f7745fa055599bcf1f1b015c42
parent2ecd916de6f0daebb22f79cd6f0ad09f581c2aec (diff)
parent57e7bc551300b224404b3ce1a5498917f9ead689 (diff)
downloadmariadb-git-e30a2aea7486156e0da13ea6db2ff54882ae4fcc.tar.gz
post-merge fix
mysql-test/r/information_schema.result: Auto merged mysql-test/r/lowercase_table2.result: Auto merged sql/item_strfunc.h: Auto merged sql/sql_show.cc: Auto merged mysql-test/t/information_schema.test: manual merge
-rw-r--r--mysql-test/r/information_schema.result45
-rw-r--r--mysql-test/r/lowercase_table2.result9
-rw-r--r--mysql-test/t/information_schema.test83
-rw-r--r--mysql-test/t/lowercase_table2.test11
-rw-r--r--sql/item_strfunc.h1
-rw-r--r--sql/sql_show.cc8
6 files changed, 103 insertions, 54 deletions
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index 603b7815d5b..7bd8fefbdde 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -912,58 +912,62 @@ grant select (f1) on mysqltest.t1 to user1@localhost;
grant select on mysqltest.t2 to user2@localhost;
grant select on mysqltest.* to user3@localhost;
grant select on *.* to user4@localhost;
-select * from information_schema.column_privileges;
+select * from information_schema.column_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
'user1'@'localhost' NULL mysqltest t1 f1 SELECT NO
-select * from information_schema.table_privileges;
+select * from information_schema.table_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.schema_privileges;
+select * from information_schema.schema_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.user_privileges;
+select * from information_schema.user_privileges order by grantee;
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user1'@'localhost' NULL USAGE NO
show grants;
Grants for user1@localhost
GRANT USAGE ON *.* TO 'user1'@'localhost'
GRANT SELECT (f1) ON `mysqltest`.`t1` TO 'user1'@'localhost'
-select * from information_schema.column_privileges;
+select * from information_schema.column_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.table_privileges;
+select * from information_schema.table_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'user2'@'localhost' NULL mysqltest t2 SELECT NO
-select * from information_schema.schema_privileges;
+select * from information_schema.schema_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.user_privileges;
+select * from information_schema.user_privileges order by grantee;
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user2'@'localhost' NULL USAGE NO
show grants;
Grants for user2@localhost
GRANT USAGE ON *.* TO 'user2'@'localhost'
GRANT SELECT ON `mysqltest`.`t2` TO 'user2'@'localhost'
-select * from information_schema.column_privileges;
+select * from information_schema.column_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.table_privileges;
+select * from information_schema.table_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
-select * from information_schema.schema_privileges;
+select * from information_schema.schema_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
'user3'@'localhost' NULL mysqltest SELECT NO
-select * from information_schema.user_privileges;
+select * from information_schema.user_privileges order by grantee;
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user3'@'localhost' NULL USAGE NO
show grants;
Grants for user3@localhost
GRANT USAGE ON *.* TO 'user3'@'localhost'
GRANT SELECT ON `mysqltest`.* TO 'user3'@'localhost'
-select * from information_schema.column_privileges where grantee like '%user%';
+select * from information_schema.column_privileges where grantee like '%user%'
+order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
'user1'@'localhost' NULL mysqltest t1 f1 SELECT NO
-select * from information_schema.table_privileges where grantee like '%user%';
+select * from information_schema.table_privileges where grantee like '%user%'
+order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'user2'@'localhost' NULL mysqltest t2 SELECT NO
-select * from information_schema.schema_privileges where grantee like '%user%';
+select * from information_schema.schema_privileges where grantee like '%user%'
+order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
'user3'@'localhost' NULL mysqltest SELECT NO
-select * from information_schema.user_privileges where grantee like '%user%';
+select * from information_schema.user_privileges where grantee like '%user%'
+order by grantee;
GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user1'@'localhost' NULL USAGE NO
'user2'@'localhost' NULL USAGE NO
@@ -1175,3 +1179,12 @@ NULL test v2 select 1 AS `1` NONE NO mysqltest_1@localhost DEFINER
drop view v1, v2;
drop table t1;
drop user mysqltest_1@localhost;
+set @a:= '.';
+create table t1(f1 char(5));
+create table t2(f1 char(5));
+select concat(@a, table_name), @a, table_name
+from information_schema.tables where table_schema = 'test';
+concat(@a, table_name) @a table_name
+.t1 . t1
+.t2 . t2
+drop table t1,t2;
diff --git a/mysql-test/r/lowercase_table2.result b/mysql-test/r/lowercase_table2.result
index a55ebaf7766..51c2ac0faf5 100644
--- a/mysql-test/r/lowercase_table2.result
+++ b/mysql-test/r/lowercase_table2.result
@@ -165,3 +165,12 @@ create table t1Aa (col1 int);
select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
col1
drop table t2aA, t1Aa;
+create database mysqltest_LC2;
+use mysqltest_LC2;
+create table myUC (i int);
+select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
+where TABLE_SCHEMA ='mysqltest_LC2';
+TABLE_SCHEMA TABLE_NAME
+mysqltest_LC2 myUC
+use test;
+drop database mysqltest_LC2;
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index acb877e1e74..19e3ef97f1e 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -580,28 +580,32 @@ connect (con2,localhost,user2,,mysqltest);
connect (con3,localhost,user3,,mysqltest);
connect (con4,localhost,user4,,);
connection con1;
-select * from information_schema.column_privileges;
-select * from information_schema.table_privileges;
-select * from information_schema.schema_privileges;
-select * from information_schema.user_privileges;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
show grants;
connection con2;
-select * from information_schema.column_privileges;
-select * from information_schema.table_privileges;
-select * from information_schema.schema_privileges;
-select * from information_schema.user_privileges;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
show grants;
connection con3;
-select * from information_schema.column_privileges;
-select * from information_schema.table_privileges;
-select * from information_schema.schema_privileges;
-select * from information_schema.user_privileges;
+select * from information_schema.column_privileges order by grantee;
+select * from information_schema.table_privileges order by grantee;
+select * from information_schema.schema_privileges order by grantee;
+select * from information_schema.user_privileges order by grantee;
show grants;
connection con4;
-select * from information_schema.column_privileges where grantee like '%user%';
-select * from information_schema.table_privileges where grantee like '%user%';
-select * from information_schema.schema_privileges where grantee like '%user%';
-select * from information_schema.user_privileges where grantee like '%user%';
+select * from information_schema.column_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.table_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.schema_privileges where grantee like '%user%'
+order by grantee;
+select * from information_schema.user_privileges where grantee like '%user%'
+order by grantee;
show grants;
connection default;
drop user user1@localhost, user2@localhost, user3@localhost, user4@localhost;
@@ -825,25 +829,6 @@ delete from proc where name='';
use test;
#
-# End of 5.0 tests.
-#
-# Show engines
-#
-
-select * from information_schema.engines WHERE ENGINE="MyISAM";
-
-#
-# INFORMATION_SCHEMA.PROCESSLIST
-#
-
-grant select on *.* to user3148@localhost;
-connect (con3148,localhost,user3148,,test);
-connection con3148;
-select user,db from information_schema.processlist;
-connection default;
-drop user user3148@localhost;
-
-#
# Bug#16681 information_schema shows forbidden VIEW details
#
grant select on test.* to mysqltest_1@localhost;
@@ -862,3 +847,31 @@ drop view v1, v2;
drop table t1;
drop user mysqltest_1@localhost;
+#
+# Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
+#
+set @a:= '.';
+create table t1(f1 char(5));
+create table t2(f1 char(5));
+select concat(@a, table_name), @a, table_name
+from information_schema.tables where table_schema = 'test';
+drop table t1,t2;
+
+# End of 5.0 tests.
+#
+# Show engines
+#
+
+select * from information_schema.engines WHERE ENGINE="MyISAM";
+
+#
+# INFORMATION_SCHEMA.PROCESSLIST
+#
+
+grant select on *.* to user3148@localhost;
+connect (con3148,localhost,user3148,,test);
+connection con3148;
+select user,db from information_schema.processlist;
+connection default;
+drop user user3148@localhost;
+
diff --git a/mysql-test/t/lowercase_table2.test b/mysql-test/t/lowercase_table2.test
index c02ae8f5073..521df01cc9b 100644
--- a/mysql-test/t/lowercase_table2.test
+++ b/mysql-test/t/lowercase_table2.test
@@ -139,3 +139,14 @@ select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
drop table t2aA, t1Aa;
# End of 4.1 tests
+
+#
+# Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
+#
+create database mysqltest_LC2;
+use mysqltest_LC2;
+create table myUC (i int);
+select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES
+where TABLE_SCHEMA ='mysqltest_LC2';
+use test;
+drop database mysqltest_LC2;
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index 35d8ac1873b..b2e63deed92 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -691,6 +691,7 @@ public:
str->charset(), conv_charset, &errors))
null_value= 1;
use_cached_value= 1;
+ str_value.mark_as_const();
safe= (errors == 0);
}
else
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index f500e3bf481..750eae3ad82 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2394,7 +2394,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
ST_SCHEMA_TABLE *schema_table= tables->schema_table;
SELECT_LEX sel;
INDEX_FIELD_VALUES idx_field_vals;
- char path[FN_REFLEN], *end, *base_name, *file_name;
+ char path[FN_REFLEN], *end, *base_name, *orig_base_name, *file_name;
uint len;
bool with_i_schema;
enum enum_schema_tables schema_table_idx;
@@ -2474,7 +2474,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
partial_cond= make_cond_for_info_schema(cond, tables);
it.rewind(); /* To get access to new elements in basis list */
- while ((base_name= it++) ||
+ while ((orig_base_name= base_name= it++) ||
/*
generate error for non existing database.
(to save old behaviour for SHOW TABLES FROM db)
@@ -2505,6 +2505,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
if (mysql_find_files(thd, &files, base_name,
path, idx_field_vals.table_value, 0))
goto err;
+ if (lower_case_table_names)
+ orig_base_name= thd->strdup(base_name);
}
List_iterator_fast<char> it_files(files);
@@ -2573,7 +2575,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
in this case.
*/
res= schema_table->process_table(thd, show_table_list, table,
- res, base_name,
+ res, orig_base_name,
show_table_list->alias);
close_tables_for_reopen(thd, &show_table_list);
DBUG_ASSERT(!lex->query_tables_own_last);