summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmysql/libmysql.c1
-rw-r--r--tests/mysql_client_test.c16
2 files changed, 17 insertions, 0 deletions
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 }