summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorMayank Prasad <mayank.prasad@oracle.com>2012-04-06 17:03:13 +0530
committerMayank Prasad <mayank.prasad@oracle.com>2012-04-06 17:03:13 +0530
commitfccf669818041d36a31c033c56a42c08423e32b3 (patch)
treed0edc0f2c4d41352d2fa8ca2a63888d7389dd3a4 /libmysqld
parent19c375c94c26b76d486c7755ada2dc748111f805 (diff)
downloadmariadb-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.cc2
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);
}