LevelDB storage engine
(MDEV-3841)
|
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Technical task | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | leveldb | ||
| Issue Links: |
|
||||
| Description |
|
With INSERT IGNORE 3 results are wrong. The first SELECT returns the right number of rows, but it should have been the one with a = 157. The other also two return duplicate rows. With REPLACE, the results are the same, so the first is correct, and the other two are wrong.
Test case:
bzr version-info
|
| Comments |
| Comment by Sergei Petrunia [ 2013-01-28 ] |
|
This is a consequence of CANT-SEE-OWN-CHANGES property. We run the query: INSERT IGNORE INTO t1 VALUES (1, 157, 0), (2, 1898, -504403), (1, -14659, 0); the problem is, when we're writing 3rd record (which is a duplicate), we don't see unapplied changes from the 1st record. Secondary indexes hold {secondary_key_value, pk}tuples. This way both (157, 1) and (-14659,1) records are written to the secondary index. Possible ways out:
|
| Comment by Elena Stepanova [ 2013-02-06 ] |
|
Reproducible on |