Cursor::index_read_idx_map() violates blobs memory rules
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Triaged
|
Low
|
Stewart Smith |
Bug Description
nt Cursor:
{
int error, error1;
error= doStartIndexSca
if (!error)
{
error= index_read_map(buf, key, keypart_map, find_flag);
error1= doEndIndexScan();
}
return error ? error : error1;
}
The doEndIndexScan() call tells the Engine that it can free the BLOB records.
this query from type_blob.test can show this (when run with an appropriate engine):
select replace(
Changed in drizzle: | |
status: | New → Confirmed |
tags: | added: storage-engine-api |
Changed in drizzle: | |
importance: | Undecided → Low |
Changed in drizzle: | |
assignee: | nobody → Stewart Smith (stewart) |
Changed in drizzle: | |
status: | Confirmed → In Progress |
I don't have a good solution to this yet. Spent a while looking, but the best way is to go for a more complete and better set of blob memory management rules, which is beyond the scope of this week at least.