mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
WL 1682: Bitvector for updated/read fields in handler interface
Fixed clear issues of bitvector and memory allocation issues sql/bitvector.cc: Made bitvector memroot class sql/bitvector.h: Made bitvector memroot class sql/handler.cc: Need to add updated fields to read set to ensure that they are updated since the update code doesn't update if records haven't changed Added DBUG printout's sql/handler.h: Moved clear of bitvector's to reset function Introduced ha_reset for this purpose to ensure that it isn't necessary to perform this clear in all handlers. sql/lock.cc: Removed clear that has been moved to ha_reset sql/opt_range.cc: Changed reset to ha_reset Added delete file sql/sql_base.cc: Removed clear and changed reset to ha_reset sql/sql_insert.cc: Removed clear and changed reset to ha_reset sql/sql_select.cc: Made sure delete file is done if needed sql/sql_table.cc: Added delete file in another place needed sql/sql_update.cc: Bug for multi-update fixed
This commit is contained in:
@ -778,9 +778,10 @@ QUICK_RANGE_SELECT::~QUICK_RANGE_SELECT()
|
||||
{
|
||||
DBUG_PRINT("info", ("Freeing separate handler %p (free=%d)", file,
|
||||
free_file));
|
||||
file->reset();
|
||||
file->ha_reset();
|
||||
file->external_lock(current_thd, F_UNLCK);
|
||||
file->close();
|
||||
delete file;
|
||||
}
|
||||
}
|
||||
delete_dynamic(&ranges); /* ranges are allocated in alloc */
|
||||
@ -956,6 +957,8 @@ int QUICK_RANGE_SELECT::init_ror_merged_scan(bool reuse_handler)
|
||||
DBUG_RETURN(0);
|
||||
|
||||
failure:
|
||||
if (file)
|
||||
delete file;
|
||||
file= save_file;
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user