diff options
author | Mayank Prasad <mayank.prasad@oracle.com> | 2012-04-06 17:03:13 +0530 |
---|---|---|
committer | Mayank Prasad <mayank.prasad@oracle.com> | 2012-04-06 17:03:13 +0530 |
commit | fccf669818041d36a31c033c56a42c08423e32b3 (patch) | |
tree | d0edc0f2c4d41352d2fa8ca2a63888d7389dd3a4 /libmysqld | |
parent | 19c375c94c26b76d486c7755ada2dc748111f805 (diff) | |
download | mariadb-git-fccf669818041d36a31c033c56a42c08423e32b3.tar.gz |
BUG#13738989 : 62136 : FAILED TO FETCH SELECT RESULT USING EMBEDDED MYSQLD
Background :
In mysql-5.1, in a fix for bug#47485, code has been changed for
mysql client (libmysql/libmysql.c) but corresponding code was not
changed for embedded mysql. In that code change, after execution
of a statement, mysql_stmt_store_result() checks for mysql->state
to be MYSQL_STATUS_STATEMENT_GET_RESULT, instead of
MYSQL_STATUS_GET_RESULT (earlier).
Reason:
In embedded mysql code, after execution, mysql->state was not
set to MYSQL_STATUS_STATEMENT_GET_RESULT, so it was throwing
OUT_OF_SYNC error.
Fix:
Fixed the code in libmysqld/lib_sql.cc to have mysql->state
to be set to MYSQL_STATUS_STATEMENT_GET_RESULT after execution.
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/lib_sql.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index b6da6172039..4afe02efbdb 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -343,6 +343,8 @@ static int emb_stmt_execute(MYSQL_STMT *stmt) set_stmt_errmsg(stmt, net); DBUG_RETURN(1); } + else if (stmt->mysql->status == MYSQL_STATUS_GET_RESULT) + stmt->mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT; DBUG_RETURN(0); } |