summaryrefslogtreecommitdiff
path: root/myisam/fulltext.h
diff options
context:
space:
mode:
authoringo@mysql.com <>2006-06-28 18:55:30 +0200
committeringo@mysql.com <>2006-06-28 18:55:30 +0200
commit99ad23ec7cde9db5f02ca7ac375b0050289d711f (patch)
treeb472a6c7fd5a989ba1fcb599bc6b8443ab059848 /myisam/fulltext.h
parente09910f91fb9487c805a0755c1187aca9fd724a1 (diff)
downloadmariadb-git-99ad23ec7cde9db5f02ca7ac375b0050289d711f.tar.gz
Bug#14400 - Query joins wrong rows from table which is subject of "concurrent insert"
It was possible that fetching a record by an exact key value (including the record pointer) could return a record with a different key value. This happened only if a concurrent insert added a record with the searched key value after the fetching statement locked the table for read. The search succeded on the key value, but the record was rejected as it was past the file length that was remembered at start of the fetching statement. With other words it was rejected as being a concurrently inserted record. The action to recover from this problem was to fetch the record that is pointed at by the next key of the index. This was repeated until a record below the file length was found. I do now avoid this loop if an exact match was searched. If this match is beyond the file length, it is now treated as "key not found". There cannot be another key with the same record pointer.
Diffstat (limited to 'myisam/fulltext.h')
0 files changed, 0 insertions, 0 deletions