mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Fix for bug #31742: delete from ... order by function call that causes
an error, asserts server In case of a fatal error during filesort in find_all_keys() the error was returned without the necessary handler uninitialization. Fixed by changing the code so that handler uninitialization is performed before returning the error. mysql-test/r/delete.result: Added a test case for bug #31742. mysql-test/t/delete.test: Added a test case for bug #31742. sql/filesort.cc: In case of a fatal error in find_all_keys() do not return before doing the necessary handler uninitialization steps.
This commit is contained in:
@@ -534,7 +534,7 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
|
||||
file->unlock_row();
|
||||
/* It does not make sense to read more keys in case of a fatal error */
|
||||
if (thd->net.report_error)
|
||||
DBUG_RETURN(HA_POS_ERROR);
|
||||
break;
|
||||
}
|
||||
if (quick_select)
|
||||
{
|
||||
@@ -551,6 +551,9 @@ static ha_rows find_all_keys(SORTPARAM *param, SQL_SELECT *select,
|
||||
file->ha_rnd_end();
|
||||
}
|
||||
|
||||
if (thd->net.report_error)
|
||||
DBUG_RETURN(HA_POS_ERROR);
|
||||
|
||||
DBUG_PRINT("test",("error: %d indexpos: %d",error,indexpos));
|
||||
if (error != HA_ERR_END_OF_FILE)
|
||||
{
|
||||
|
Reference in New Issue
Block a user