Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
In maria-5.3-handler, HANDLER + Memory tables is broken. It also appears that the handler.heap.test was --record-ed improperly, so it does not catch this critical breakage.
To repeat:
create table t1 (f1 integer not null, key (f1)) engine=Memory;
insert into t1 values (1);
HANDLER t1 OPEN;
MariaDB [test]> HANDLER t1 READ f1 NEXT;
ERROR 1031 (HY000): Table storage engine for 't1' doesn't have this option
but should have returned 1 row
MariaDB [test]> HANDLER t1 READ f1 NEXT;
ERROR 1020 (HY000): Record has changed since last read in table 't1'
should have returned an empty row
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Re: HANDLER is broken with Memory tables
This is not really a bug, just a wrong error message for the second HANDLER read next call.
The issue is that for hash index, you can't scan the full index with NEXT. What you can is to do a key read and then scan all the duplicates for that index.
If you want to do key scan for memory tables, you need to declare your index with 'using btree'.
A fix for the error message will pushed shortly.