From 69b813a901f2031fdd7fd6dfb7661c432e91934e Mon Sep 17 00:00:00 2001 From: "monty@mysql.com" <> Date: Wed, 27 Apr 2005 17:16:08 +0300 Subject: [PATCH] mysqladmin extended-status now displays global status Fixed problem with NULL in VARCHAR/BLOB keys for multi-part keys where VARCHAR/BLOB is first part --- client/mysqladmin.cc | 2 +- myisam/mi_key.c | 3 +++ sql/handler.cc | 7 ++++--- tests/mysql_client_test.c | 7 ++++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc index 24fe14b6675..c6274e499ab 100644 --- a/client/mysqladmin.cc +++ b/client/mysqladmin.cc @@ -727,7 +727,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv) void (*func) (MYSQL_RES*, MYSQL_ROW, uint); new_line = 1; - if (mysql_query(mysql, "show status") || + if (mysql_query(mysql, "show /*!50002 GLOBAL */ status") || !(res = mysql_store_result(mysql))) { my_printf_error(0, "unable to show status; error: '%s'", MYF(ME_BELL), diff --git a/myisam/mi_key.c b/myisam/mi_key.c index ab5ddd3a378..d7d10e116aa 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -242,7 +242,10 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, { k_length-=length; if (keyseg->flag & (HA_VAR_LENGTH_PART | HA_BLOB_PART)) + { k_length-=2; /* Skip length */ + old+= 2; + } continue; /* Found NULL */ } } diff --git a/sql/handler.cc b/sql/handler.cc index dc63b4b038f..50f82eb5753 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -175,9 +175,10 @@ enum db_type ha_checktype(enum db_type database_type) return ((enum db_type) thd->variables.table_type != DB_TYPE_UNKNOWN ? (enum db_type) thd->variables.table_type : - (enum db_type) global_system_variables.table_type != - DB_TYPE_UNKNOWN ? - (enum db_type) global_system_variables.table_type : DB_TYPE_MYISAM); + ((enum db_type) global_system_variables.table_type != + DB_TYPE_UNKNOWN ? + (enum db_type) global_system_variables.table_type : DB_TYPE_MYISAM) + ); } /* ha_checktype */ diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 2dd5fda6f05..ae000a4273d 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -7046,6 +7046,7 @@ static void test_set_option() bug #89 (reported by mark@mysql.com) */ +#ifndef EMBEDDED_LIBRARY static void test_prepare_grant() { int rc; @@ -7138,7 +7139,7 @@ static void test_prepare_grant() } } - +#endif /* Test a crash when invalid/corrupted .frm is used in the @@ -12598,7 +12599,7 @@ static void test_bug8330() const char *stmt_text; MYSQL_STMT *stmt[2]; int i, rc; - char *query= "select a,b from t1 where a=?"; + const char *query= "select a,b from t1 where a=?"; MYSQL_BIND bind[2]; long lval[2]; @@ -12789,7 +12790,7 @@ static void test_bug8722() } -MYSQL_STMT *open_cursor(char *query) +MYSQL_STMT *open_cursor(const char *query) { int rc; const ulong type= (ulong)CURSOR_TYPE_READ_ONLY;