Bug #31098 | HANDLER names 5.0.45. | ||
---|---|---|---|
Submitted: | 19 Sep 2007 14:23 | Modified: | 1 Oct 2007 10:26 |
Reporter: | Peter Johansson | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S2 (Serious) |
Version: | 5.0.45 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | handler, regression |
[19 Sep 2007 14:23]
Peter Johansson
[19 Sep 2007 14:35]
Paul DuBois
http://dev.mysql.com/doc/refman/5.0/en/handler.html says: "HANDLER is a somewhat low-level statement. For example, it does not provide consistency. That is, HANDLER ... OPEN does not take a snapshot of the table, and does not lock the table. This means that after a HANDLER ... OPEN statement is issued, table data can be modified (by the current thread or other threads) and these modifications might be only partially visible to HANDLER ... NEXT or HANDLER ... PREV scans."
[20 Sep 2007 10:55]
Peter Johansson
The code1 should be this. sorry. HANDLER TESTH OPEN HANDLER TESTH READ INDEX_1 = (203) // pos record 2 HANDLER TESTH READ INDEX_1 NEXT // pos record 3 HANDLER TESTH READ INDEX_1 NEXT // pos record 4 // make an update on record at positon 4. UPDATE `TESTH` SET dim1 = 203,charge = 20 WHERE RECID = 4 HANDLER TESTH READ INDEX_1 NEXT // pos record 1 The handler is not traversing the index after the update if the handlers name is the same as the table name and even if the records effected is 0 and only one thread. When a Ex. “HANDLER NAME read index_1 next” is executed after an update you get the first record in that index. Tested on a 4.1 server and it is working OK. Tested on a 5.0.19 server and it is working OK. On 5.0.45 community server this function differs.
[21 Sep 2007 8:25]
Peter Johansson
Now I have tested this on windows XP. Version 5.0.20a OK. Version 5.0.27 OK Version 5.0.37 The error/bug or change appears. The bug seem to appear in version 5.0.37.
[23 Sep 2007 10:24]
Valeriy Kravchuk
Verified just as described. Indeed, explicitely named handler works differently.