From 970aa54bd68ea425923248295be8d52f1f52b039 Mon Sep 17 00:00:00 2001 From: "jimw@mysql.com" <> Date: Wed, 1 Feb 2006 12:28:39 -0800 Subject: [PATCH 1/2] Fix mysqldump crash when encountering a VIEW (when used against a 5.0 or later server, obviously). (Bug #16389) --- client/mysqldump.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index 7ff9504607f..64629bcf608 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -2557,8 +2557,11 @@ static const char *check_if_ignore_table(const char *table_name) mysql_free_result(res); return 0; /* assume table is ok */ } - if (strcmp(row[1], (result= "MRG_MyISAM")) && - strcmp(row[1], (result= "MRG_ISAM"))) + /* Some forward-compatibility: don't dump data from a VIEW */ + if (!row[1]) + result= "VIEW"; + else if (strcmp(row[1], (result= "MRG_MyISAM")) && + strcmp(row[1], (result= "MRG_ISAM"))) result= 0; mysql_free_result(res); return result; From eb978186277614960d82c1924449b9806655768a Mon Sep 17 00:00:00 2001 From: "msvensson@devsrv-b.mysql.com" <> Date: Wed, 15 Feb 2006 13:45:03 +0100 Subject: [PATCH 2/2] Bug#16143 mysql_stmt_sqlstate returns an empty string instead of '00000' - Init sql_state in mysql_stmt_init --- libmysql/libmysql.c | 1 + tests/mysql_client_test.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 9825f1ecdfa..3ff4cfb4c50 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2008,6 +2008,7 @@ mysql_stmt_init(MYSQL *mysql) stmt->mysql= mysql; stmt->read_row_func= stmt_read_row_no_result_set; stmt->prefetch_rows= DEFAULT_PREFETCH_ROWS; + strmov(stmt->sqlstate, not_error_sqlstate); /* The rest of statement members was bzeroed inside malloc */ DBUG_RETURN(stmt); diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 666c60391da..241a994d07c 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -14729,6 +14729,21 @@ static void test_bug12744() client_connect(0); } +/* Bug #16143: mysql_stmt_sqlstate returns an empty string instead of '00000' */ + +static void test_bug16143() +{ + MYSQL_STMT *stmt; + myheader("test_bug16143"); + + stmt= mysql_stmt_init(mysql); + /* Check mysql_stmt_sqlstate return "no error" */ + DIE_UNLESS(strcmp(mysql_stmt_sqlstate(stmt), "00000") == 0); + + mysql_stmt_close(stmt); +} + + /* Bug #16144: mysql_stmt_attr_get type error */ static void test_bug16144() @@ -15073,6 +15088,7 @@ static struct my_tests_st my_tests[]= { { "test_bug15510", test_bug15510 }, { "test_opt_reconnect", test_opt_reconnect }, { "test_bug12744", test_bug12744 }, + { "test_bug16143", test_bug16143 }, { "test_bug16144", test_bug16144 }, { "test_bug15613", test_bug15613 }, { 0, 0 }