diff --git a/mysql-test/suite/handler/heap.result b/mysql-test/suite/handler/heap.result index 27d3f05b14e..b41f49091f1 100644 --- a/mysql-test/suite/handler/heap.result +++ b/mysql-test/suite/handler/heap.result @@ -772,4 +772,15 @@ HANDLER t1 READ NEXT LIMIT 2; ERROR HY000: Record has changed since last read in table 't1' HANDLER t1 CLOSE; DROP TABLE t1; -End of 5.1 tests +create table t1 (f1 integer not null, key (f1)) engine=Memory; +insert into t1 values (1); +HANDLER t1 OPEN; +HANDLER t1 READ f1 NEXT; +ERROR HY000: Table storage engine for 't1' doesn't have this option +HANDLER t1 READ f1 NEXT; +ERROR HY000: Table storage engine for 't1' doesn't have this option +HANDLER t1 READ f1 NEXT; +ERROR HY000: Table storage engine for 't1' doesn't have this option +HANDLER t1 CLOSE; +DROP TABLE t1; +End of 5.3 tests diff --git a/mysql-test/suite/handler/heap.test b/mysql-test/suite/handler/heap.test index 570ad59977c..e9e5c5fad44 100644 --- a/mysql-test/suite/handler/heap.test +++ b/mysql-test/suite/handler/heap.test @@ -70,4 +70,19 @@ HANDLER t1 CLOSE; DROP TABLE t1; disconnect con1; ---echo End of 5.1 tests +# +# LP#702786 Two handler read f1 next gives different errors +# +create table t1 (f1 integer not null, key (f1)) engine=Memory; +insert into t1 values (1); +HANDLER t1 OPEN; +--error 1031 +HANDLER t1 READ f1 NEXT; +--error 1031 +HANDLER t1 READ f1 NEXT; +--error 1031 +HANDLER t1 READ f1 NEXT; +HANDLER t1 CLOSE; +DROP TABLE t1; + +--echo End of 5.3 tests diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc index fad5eca057d..7e651a2b4e2 100644 --- a/sql/sql_handler.cc +++ b/sql/sql_handler.cc @@ -819,6 +819,7 @@ retry: "table '%s'", error, tables->table_name); table->file->print_error(error,MYF(0)); + table->file->ha_index_or_rnd_end(); goto err; } goto ok;