"Embedded server requires mysql.plugin"
Embedded builds should not print any error when the mysql.plugin
table does not exist. This is achieved by checking for the existance
of the mysql.plugin table before attempting to open it and proceed
silently if it does not exist.
the reported test failure is fixed by the patch to 28333,
but there's a bit more to fix in the test itself - to
drop tables created in this test at the test's beginning.
protocol
Fixed duplicated code, same as last commit.
One could send a malformed packet that caused the server to SEGV. In
recent versions of the password protocol, the client tells the server
what length the ciphertext is (almost always 20). If that length was
large enough to overflow a signed char, then the number would jump to
very large after being casted to unsigned int.
Instead, cast the *passwd char to uchar.
On many architectures, e.g. 68000, x86, the double registers have higher precision
than the IEEE standard prescribes. When compiled with flags -O and higher, some double's
go into registers and therefore have higher precision. In one test case the cost
information of the best and second-best key were close enough to be influenced by this
effect, causing a failed test in distribution builds.
Fixed by removing some rows from the table in question so that cost information is not
influenced by decimals beyond standard definition of double.
- fixed wrong test case for bug 20903
- closed the dangling connections in trigger.test
- GET_LOCK() and RELEASE_LOCK() now produce more detailed log
- fixed an omission in GET_LOCK() : assign the thread_id when
acquiring the lock.
Sometimes a parameter slot may not get a value because of the protocol
data being plain wrong.
Such cases should be detected and handled by returning an error.
Fixed by checking data stream constraints where possible (like maximum
length) and reacting to the case where a value cannot be constructed.
When the INSERT .. ON DUPLICATE KEY UPDATE has to update a matched row but
the new data is the same as in the record then it returns as if
no rows were inserted or updated. Nevertheless the row is silently
updated. This leads to a situation when zero updated rows are reported
in the case when data has actually been changed.
Now the write_record function updates a row only if new data differs from
that in the record.
protocol
Update for function moved to new file in 5.1.
One could send a malformed packet that caused the server to SEGV. In
recent versions of the password protocol, the client tells the server
what length the ciphertext is (almost always 20). If that length was
large enough to overflow a signed char, then the number would jump to
very large after being casted to unsigned int.
Instead, cast the *passwd char to uchar.