diff options
author | unknown <gluh@gluh.mysql.r18.ru> | 2004-11-24 19:32:10 +0300 |
---|---|---|
committer | unknown <gluh@gluh.mysql.r18.ru> | 2004-11-24 19:32:10 +0300 |
commit | 3392e3178a9dbf656cc8dceda760f08a73542704 (patch) | |
tree | e2b25b1c1f320a46878d0814faa142846bdd8569 | |
parent | 85593e9079926a09ad42ec4572a691092db0033b (diff) | |
download | mariadb-git-3392e3178a9dbf656cc8dceda760f08a73542704.tar.gz |
Fixed bug related to lower case table names on Power Mac
'information_schema' test is splitted because of innodb
mysql-test/r/information_schema.result:
Test is splitted because of innodb
mysql-test/t/information_schema.test:
Test is splitted because of innodb
sql/sql_show.cc:
Fixed bug related to lower case table names on Power Mac
sql/table.h:
Fixed bug related to lower case table names on Power Mac
tests/client_test.c:
Don't check field length for blob filed
-rw-r--r-- | mysql-test/r/information_schema.result | 25 | ||||
-rw-r--r-- | mysql-test/r/information_schema_inno.result | 19 | ||||
-rw-r--r-- | mysql-test/t/information_schema.test | 10 | ||||
-rw-r--r-- | mysql-test/t/information_schema_inno.test | 16 | ||||
-rw-r--r-- | sql/sql_show.cc | 11 | ||||
-rw-r--r-- | sql/table.h | 2 | ||||
-rw-r--r-- | tests/client_test.c | 5 |
7 files changed, 45 insertions, 43 deletions
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index cdbed168df2..8f5ac88b7d0 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -363,40 +363,17 @@ NULL test PRIMARY NULL test t1 a 1 NULL NULL NULL NULL test constraint_1 NULL test t1 a 1 NULL NULL NULL NULL test key_1 NULL test t1 a 1 NULL NULL NULL NULL test key_2 NULL test t1 a 1 NULL NULL NULL -drop table t1; -CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; -CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), -FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, -FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; -select * from information_schema.TABLE_CONSTRAINTS where -TABLE_SCHEMA= "test"; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_METHOD -NULL test PRIMARY test t1 PRIMARY KEY NULL -NULL test PRIMARY test t2 PRIMARY KEY NULL -NULL test t2_ibfk_1 test t2 FOREIGN KEY ON DELETE CASCADE -NULL test t2_ibfk_2 test t2 FOREIGN KEY ON UPDATE CASCADE -select * from information_schema.KEY_COLUMN_USAGE where -TABLE_SCHEMA= "test"; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL test PRIMARY NULL test t1 id 1 NULL NULL NULL -NULL test PRIMARY NULL test t2 id 1 NULL NULL NULL -NULL test t2_ibfk_1 NULL test t2 t1_id 1 NULL id -NULL test t2_ibfk_2 NULL test t2 t1_id 1 NULL id select table_name from information_schema.TABLES where table_schema like "test%"; table_name t1 -t2 select table_name,column_name from information_schema.COLUMNS where table_schema like "test%"; table_name column_name -t1 id -t2 id -t2 t1_id +t1 a select ROUTINE_NAME from information_schema.ROUTINES; ROUTINE_NAME sel2 sub1 delete from mysql.user where user='mysqltest_1'; -drop table t2; drop table t1; drop procedure sel2; drop function sub1; diff --git a/mysql-test/r/information_schema_inno.result b/mysql-test/r/information_schema_inno.result new file mode 100644 index 00000000000..e6dcda2c15d --- /dev/null +++ b/mysql-test/r/information_schema_inno.result @@ -0,0 +1,19 @@ +CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; +CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), +FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, +FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; +select * from information_schema.TABLE_CONSTRAINTS where +TABLE_SCHEMA= "test"; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE CONSTRAINT_METHOD +NULL test PRIMARY test t1 PRIMARY KEY NULL +NULL test PRIMARY test t2 PRIMARY KEY NULL +NULL test t2_ibfk_1 test t2 FOREIGN KEY ON DELETE CASCADE +NULL test t2_ibfk_2 test t2 FOREIGN KEY ON UPDATE CASCADE +select * from information_schema.KEY_COLUMN_USAGE where +TABLE_SCHEMA= "test"; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME +NULL test PRIMARY NULL test t1 id 1 NULL NULL NULL +NULL test PRIMARY NULL test t2 id 1 NULL NULL NULL +NULL test t2_ibfk_1 NULL test t2 t1_id 1 NULL id +NULL test t2_ibfk_2 NULL test t2 t1_id 1 NULL id +drop table t2, t1; diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index b52a3c2edec..411301445a3 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -162,16 +162,7 @@ select * from information_schema.TABLE_CONSTRAINTS where TABLE_SCHEMA= "test"; select * from information_schema.KEY_COLUMN_USAGE where TABLE_SCHEMA= "test"; -drop table t1; -CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; -CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), -FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, -FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; -select * from information_schema.TABLE_CONSTRAINTS where -TABLE_SCHEMA= "test"; -select * from information_schema.KEY_COLUMN_USAGE where -TABLE_SCHEMA= "test"; connect (user1,localhost,mysqltest_1,,); connection user1; @@ -181,7 +172,6 @@ select ROUTINE_NAME from information_schema.ROUTINES; disconnect user1; connection default; delete from mysql.user where user='mysqltest_1'; -drop table t2; drop table t1; drop procedure sel2; drop function sub1; diff --git a/mysql-test/t/information_schema_inno.test b/mysql-test/t/information_schema_inno.test new file mode 100644 index 00000000000..15643ebe90c --- /dev/null +++ b/mysql-test/t/information_schema_inno.test @@ -0,0 +1,16 @@ +-- source include/have_innodb.inc + +# +# Test for KEY_COLUMN_USAGE & TABLE_CONSTRAINTS tables +# + +CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; +CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), +FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE, +FOREIGN KEY (t1_id) REFERENCES t1(id) ON UPDATE CASCADE) ENGINE=INNODB; +select * from information_schema.TABLE_CONSTRAINTS where +TABLE_SCHEMA= "test"; +select * from information_schema.KEY_COLUMN_USAGE where +TABLE_SCHEMA= "test"; + +drop table t2, t1; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index f41eab1ba14..55c38ff37c9 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2909,12 +2909,13 @@ ST_SCHEMA_TABLE *get_schema_table(enum enum_schema_tables schema_table_idx) 0 Can't create table */ -TABLE *create_schema_table(THD *thd, ST_SCHEMA_TABLE *schema_table) +TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list) { int field_count= 0; Item *item; TABLE *table; List<Item> field_list; + ST_SCHEMA_TABLE *schema_table= table_list->schema_table; ST_FIELD_INFO *fields_info= schema_table->fields_info; CHARSET_INFO *cs= system_charset_info; DBUG_ENTER("create_schema_table"); @@ -2959,8 +2960,7 @@ TABLE *create_schema_table(THD *thd, ST_SCHEMA_TABLE *schema_table) field_list, (ORDER*) 0, 0, 0, (select_lex->options | thd->options | TMP_TABLE_ALL_COLUMNS), - HA_POS_ERROR, - (char *) schema_table->table_name))) + HA_POS_ERROR, table_list->real_name))) DBUG_RETURN(0); DBUG_RETURN(table); } @@ -3130,8 +3130,7 @@ int mysql_schema_table(THD *thd, LEX *lex, TABLE_LIST *table_list) { TABLE *table; DBUG_ENTER("mysql_schema_table"); - if (!(table= table_list->schema_table-> - create_table(thd, table_list->schema_table))) + if (!(table= table_list->schema_table->create_table(thd, table_list))) { DBUG_RETURN(1); } @@ -3292,7 +3291,7 @@ ST_FIELD_INFO columns_fields_info[]= {"ORDINAL_POSITION", 21 , MYSQL_TYPE_LONG, 0, 0, 0}, {"COLUMN_DEFAULT", NAME_LEN, MYSQL_TYPE_STRING, 0, 1, "Default"}, {"IS_NULLABLE", 3, MYSQL_TYPE_STRING, 0, 0, "Null"}, - {"DATA_TYPE", 65535, MYSQL_TYPE_STRING, 0, 0, 0}, + {"DATA_TYPE", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, 0}, {"CHARACTER_MAXIMUM_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 0, 0}, {"CHARACTER_OCTET_LENGTH", 21 , MYSQL_TYPE_LONG, 0, 0, 0}, {"NUMERIC_PRECISION", 21 , MYSQL_TYPE_LONG, 0, 1, 0}, diff --git a/sql/table.h b/sql/table.h index 09c7719980b..235a7d9add7 100644 --- a/sql/table.h +++ b/sql/table.h @@ -243,7 +243,7 @@ typedef struct st_schema_table const char* table_name; ST_FIELD_INFO *fields_info; /* Create information_schema table */ - TABLE *(*create_table) (THD *thd, struct st_schema_table *schema_table); + TABLE *(*create_table) (THD *thd, struct st_table_list *table_list); /* Fill table with data */ int (*fill_table) (THD *thd, struct st_table_list *tables, COND *cond); /* Handle fileds for old SHOW */ diff --git a/tests/client_test.c b/tests/client_test.c index 4f76600aa2e..8bc945eac2c 100644 --- a/tests/client_test.c +++ b/tests/client_test.c @@ -694,7 +694,8 @@ static void verify_prepare_field(MYSQL_RES *result, as utf8. Field length is calculated as number of characters * maximum number of bytes a character can occupy. */ - DIE_UNLESS(field->length == length * cs->mbmaxlen); + if (length) + DIE_UNLESS(field->length == length * cs->mbmaxlen); if (def) DIE_UNLESS(strcmp(field->def, def) == 0); } @@ -7280,7 +7281,7 @@ static void test_explain_bug() MYSQL_TYPE_STRING, 0, 0, "", 192, 0); verify_prepare_field(result, 1, "Type", "COLUMN_TYPE", - MYSQL_TYPE_BLOB, 0, 0, "", 193203, 0); + MYSQL_TYPE_BLOB, 0, 0, "", 0, 0); verify_prepare_field(result, 2, "Null", "IS_NULLABLE", MYSQL_TYPE_STRING, 0, 0, "", 9, 0); |