diff options
author | Tor Didriksen <tor.didriksen@oracle.com> | 2012-03-14 12:28:41 +0100 |
---|---|---|
committer | Tor Didriksen <tor.didriksen@oracle.com> | 2012-03-14 12:28:41 +0100 |
commit | cfea7c7dfc00821b1c39a9f8024d60fb337b7ab3 (patch) | |
tree | 11d95f49b95896464dc0e1bd0b0fcc0ac06a4b9d /unittest | |
parent | 7a4e8d9959ad3fcc2396e0290b5d20e56b8b693f (diff) | |
download | mariadb-git-cfea7c7dfc00821b1c39a9f8024d60fb337b7ab3.tar.gz |
Bug#13832772 ASSERTION `THD->IS_ERROR() || KILL_ERRNO'
We are trying to sort a lot of text/blob fields,
so the buffer is indeed too small.
Memory available = thd->variables.sortbuff_size = 262144
min_sort_memory = param.sort_length*MERGEBUFF2 = 292245
So the decision to abort the query is correct.
filesort() calls my_error(), the error is reported.
But, since we have DELETE IGNORE ... the error is converted to a warning by
THD::raise_condition
filesort currently expects an error to be recorded in the THD diagnostics
area.
If we lift this restriction (remove the assert) we end up in the familiar
void Protocol::end_statement()
default:
DBUG_ASSERT(0);
The solution seems to be to call my_error(ME_FATALERROR) in filesort,
so that the error is propagated as an error rather than a warning.
Diffstat (limited to 'unittest')
0 files changed, 0 insertions, 0 deletions