summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-04-17 20:56:36 +0400
committerunknown <sergefp@mysql.com>2005-04-17 20:56:36 +0400
commita604085182b2a51e76b71f9c09a1270bc158abad (patch)
treeac53150c2a8a45665166046c692e4386ec633124
parentb9474d86101c2f1d0160751e58cb96f9c00de624 (diff)
parente08b1b4c83c792bf4c913b128eeaf05a75aabb7d (diff)
downloadmariadb-git-a604085182b2a51e76b71f9c09a1270bc158abad.tar.gz
Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug9439
-rw-r--r--mysql-test/r/show_check.result21
-rw-r--r--mysql-test/t/show_check.test11
-rw-r--r--sql/sql_show.cc4
3 files changed, 34 insertions, 2 deletions
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index 0d580ae2505..4a9e28e9ea4 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -477,3 +477,24 @@ t1 CREATE TABLE `t1` (
KEY `i` TYPE BTREE (`i`)
) ENGINE=HEAP DEFAULT CHARSET=latin1
DROP TABLE t1;
+CREATE TABLE t1(
+field1 text NOT NULL,
+PRIMARY KEY(field1(1000))
+);
+show index from t1;
+Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
+def Table 253 64 2 N 129 31 63
+def Non_unique 1 1 1 N 32929 0 63
+def Key_name 253 64 7 N 129 31 63
+def Seq_in_index 1 2 1 N 32929 0 63
+def Column_name 253 64 6 N 129 31 63
+def Collation 253 1 1 Y 128 31 63
+def Cardinality 8 21 1 Y 32896 0 63
+def Sub_part 2 3 4 Y 32928 0 63
+def Packed 253 10 0 Y 128 31 63
+def Null 253 3 0 N 129 31 63
+def Index_type 253 16 5 N 129 31 63
+def Comment 253 255 0 N 129 31 63
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
+t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE
+drop table t1;
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index 0cf1476b24c..f80e720275a 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -357,3 +357,14 @@ SHOW CREATE TABLE t1;
ALTER TABLE t1 ENGINE=MEMORY;
SHOW CREATE TABLE t1;
DROP TABLE t1;
+
+# Test for BUG#9439 "Reporting wrong datatype for sub_part on show index"
+CREATE TABLE t1(
+ field1 text NOT NULL,
+ PRIMARY KEY(field1(1000))
+);
+--enable_metadata
+show index from t1;
+--disable_metadata
+drop table t1;
+
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index f979b3ca771..7e0ee0dab68 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -980,7 +980,7 @@ mysqld_show_keys(THD *thd, TABLE_LIST *table_list)
field_list.push_back(item=new Item_int("Cardinality",0,21));
item->maybe_null=1;
field_list.push_back(item=new Item_return_int("Sub_part",3,
- MYSQL_TYPE_TINY));
+ MYSQL_TYPE_SHORT));
item->maybe_null=1;
field_list.push_back(item=new Item_empty_string("Packed",10));
item->maybe_null=1;
@@ -1025,7 +1025,7 @@ mysqld_show_keys(THD *thd, TABLE_LIST *table_list)
/* Check if we have a key part that only uses part of the field */
if (!(key_info->flags & HA_FULLTEXT) && (!key_part->field ||
key_part->length != table->field[key_part->fieldnr-1]->key_length()))
- protocol->store_tiny((longlong) key_part->length /
+ protocol->store_short((longlong) key_part->length /
key_part->field->charset()->mbmaxlen);
else
protocol->store_null();