diff options
author | kostja@bodhi.local <> | 2006-07-24 14:56:53 +0400 |
---|---|---|
committer | kostja@bodhi.local <> | 2006-07-24 14:56:53 +0400 |
commit | 2ce1a07c89f449e734a76853a03333e59e304976 (patch) | |
tree | 9e665cae0cf874da93929345fdbe6d3d6d97debb /include/mysql_com.h | |
parent | afb31714c513e40834cdf991420a6867047abb01 (diff) | |
download | mariadb-git-2ce1a07c89f449e734a76853a03333e59e304976.tar.gz |
A fix and a test case for Bug#15752 "Lost connection to MySQL server
when calling a SP from C API"
The bug was caused by lack of checks for misuse in mysql_real_query.
A stored procedure always returns at least one result, which is the
status of execution of the procedure itself.
This result, or so-called OK packet, is similar to a result
returned by INSERT/UPDATE/CREATE operations: it contains the overall
status of execution, the number of affected rows and the number of
warnings. The client test program attached to the bug did not read this
result and ivnoked the next query. In turn, libmysql had no check for
such scenario and mysql_real_query was simply trying to send that query
without reading the pending response, thus messing up the communication
protocol.
The fix is to return an error from mysql_real_query when it's called
prior to retrieval of all pending results.
Diffstat (limited to 'include/mysql_com.h')
-rw-r--r-- | include/mysql_com.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/mysql_com.h b/include/mysql_com.h index ec1c133799f..60e726396cb 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -140,7 +140,6 @@ enum enum_server_command #define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ #define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ -#define SERVER_STATUS_MORE_RESULTS 4 /* More results on server */ #define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ #define SERVER_QUERY_NO_GOOD_INDEX_USED 16 #define SERVER_QUERY_NO_INDEX_USED 32 |