diff options
author | unknown <gluh@mysql.com/eagle.(none)> | 2007-08-09 20:41:26 +0500 |
---|---|---|
committer | unknown <gluh@mysql.com/eagle.(none)> | 2007-08-09 20:41:26 +0500 |
commit | d00642e9690c3e2f07b1def4ade08fbe224cbfdc (patch) | |
tree | 3614f7f6abe46214b10f94cd878d20c0c4939acc /mysql-test | |
parent | 3644fa87286511345c89270e3ccdedaa4d673e59 (diff) | |
download | mariadb-git-d00642e9690c3e2f07b1def4ade08fbe224cbfdc.tar.gz |
Bug#30310 wrong result on SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE ..
1. added check to fill_schema_schemata() func.
if we have db lookup value we should check that db exists
2. added check to get_all_tables() func
if we have lookup db name or tables name values we shoud check that
these values are not empty strings
3. fixed typo
mysql-test/r/information_schema.result:
test result
mysql-test/t/information_schema.test:
test case
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/information_schema.result | 22 | ||||
-rw-r--r-- | mysql-test/t/information_schema.test | 16 |
2 files changed, 38 insertions, 0 deletions
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index f81277b1ff9..b1c41ef45e8 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1463,4 +1463,26 @@ where a.table_name='t1' and a.table_schema='test' and b.table_name=a.table_name; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE a ALL NULL TABLE_SCHEMA,TABLE_NAME NULL NULL NULL Using where; Skip_open_table; Scanned 0 databases 1 SIMPLE b ALL NULL NULL NULL NULL NULL Using where; Open_frm_only; Scanned all databases; Using join buffer +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = 'mysqltest'; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = ''; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = 'test'; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL test latin1 latin1_swedish_ci NULL +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TABLE_NAME='nonexisting'; +count(*) +0 +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TABLE_NAME=''; +count(*) +0 +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME=''; +count(*) +0 +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='nonexisting'; +count(*) +0 End of 5.1 tests. diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index 774e75a79fa..1d06a155717 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -1120,4 +1120,20 @@ explain select b.table_name from information_schema.tables a, information_schema.columns b where a.table_name='t1' and a.table_schema='test' and b.table_name=a.table_name; +# +# Bug#30310 wrong result on SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE .. +# +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = 'mysqltest'; + +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = ''; + +SELECT * FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME = 'test'; + +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TABLE_NAME='nonexisting'; +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TABLE_NAME=''; +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME=''; +select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='nonexisting'; --echo End of 5.1 tests. |