Repo Added
|
Files
513
|
Badge
Embed ▾
README BADGES
|
push
github
vinyl: fix index name in duplicate key error message The code setting ER_TUPLE_FOUND uses index_name_by_id() to find the index name, but it passes an index in the dense index map to it while the function expects an index in the sparse index map. Apparently, this doesn't work as expected after an index is removed from the middle of the index map. This bug was introduced by commit fc3834c01e9e6 ("vinyl: check key uniqueness before modifying tx write set"). Instead of just fixing the index passed to index_name_by_id(), we do a bit of refactoring. We stop passing index_name and space_name to vy_check_is_unique_*() functions and instead get them right before raising ER_TUPLE_FOUND. Note, to get the space name, we need to call space_by_id() but it should be fine because (a) the space is very likely to be cached as the last accessed one and (b) this is an error path so it isn't performance critical. We also drop index_name_by_id() and extract the index name from the LSM tree object. Closes #5975 NO_DOC=bug fix (cherry picked from commit 2cfba5eba)
67325 of 119821 branches covered (56.19%)
13 of 13 new or added lines in 1 file covered. (100.0%)
163 existing lines in 18 files now uncovered.100046 of 114947 relevant lines covered (87.04%)
2432098.58 hits per line
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
---|