[MDEV-3115] LP:702786 - HANDLER is broken with Memory tables Created: 2011-01-14  Updated: 2015-02-02  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Philip Stoev (Inactive) Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug702786.xml    

 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



 Comments   
Comment by Michael Widenius [ 2011-01-14 ]

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.

Comment by Rasmus Johansson (Inactive) [ 2011-05-10 ]

Launchpad bug id: 702786

Generated at Thu Feb 08 06:46:25 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.