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.
When a wildcard database name is given the mysqlshow, but that wildcard
matches one database *exactly* (it contains the wildcard character), we
list the contents of that database instead of just listing the database
name as matching the wildcard. Probably the most common instance of users
encountering this behavior would be with "mysqlshow information_schema".
- Only handle return codes from 'pclose' greater than zero as errors.
- It appears pclose can return -1 with errno set to ECHILD although the executin
process completed successfully.
- Make mysql-test-run.pl restart a crashed/stopped process if it was expected it should crash.
- Added testcase for "crash_commit_before", which tests behaviour when server crashes just before commit.
* The testcase first write a small var/tmp/master0.expect file indicating expected crash
* Then sets "DEBUG" variable to for example "d,crash_commit_before" and then executes a commit.
* The server will crash and be brought back up by mysql-test-run.pl
* Test case will then wait for the process to come back online before continuing.
"I want to have the current delimiter in the prompt so that I can know at
a glance which is set."
Add a 'l' format specifier that represents the current statement delimiter.
mysqldump did not select the correct database before trying to dump
views from it. this resulted in an empty result set, which in turn
startled mysql-dump into a core-dump. this only happened for views,
not for tables, and was only visible with multiple databases that
weren't by sheer luck in the order mysqldump required, anyway. this
fixes by selecting the correct database before dumping views; it also
catches the empty set-condition if it should occur for other reasons.
mysqldump did not select the correct database before trying to dump
views from it. this resulted in an empty result set, which in turn
startled mysql-dump into a core-dump. this only happened for views,
not for tables, and was only visible with multiple databases that
weren't by sheer luck in the order mysqldump required, anyway. this
fixes by selecting the correct database before dumping views; it also
catches the empty set-condition if it should occur for other reasons.
Old option ordering in the help was confusing to some users. Changed
ordering of deprecated options to be consistent, and added mention to
entry for options with a "--no-option" variant mentioning the
"--disable-option" variant.
do not look for client-specific commands while inside a multi-line comment.
we will allow multi-comments pretty much anywhere within SQL-statements,
but client-specific commands (help, use, print, ...) must be the first token
in the input.
Using \U or \u in a prompt with the mysql command-line client could
crash when connecting to the instance manager, since it does not return
information about the user when asked by the client. This is fixed by
having the client use what it knowns about the user (or giving up and
saying "(unknown)").