-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Storage Engines
-
StorEng - Defined Pipeline
For FLCS, we expect search_near and search to behave the same way for implicit records. For example, if we have the following records:
1 <some_value> 2 <some_value> ... gap ... 10 <some_value>
Doing a search or search_near on a record that is part of the gap, we should find the key but return a value of 0 that shows the record is implicit / deleted.
The following diff exposes a bug:
diff --git a/test/suite/test_bug001.py b/test/suite/test_bug001.py index af43a5ee4..bb47ad079 100644 --- a/test/suite/test_bug001.py +++ b/test/suite/test_bug001.py @@ -57,9 +57,13 @@ class test_bug001(wttest.WiredTigerTestCase): for i in range(0, 5): self.assertEqual(cursor[60 + i], 0x00) + # The test passes after re-opening the connection. + # self.reopen_conn() + # cursor = self.session.open_cursor(uri, None) + # Check cursor next inside trailing implicit keys. cursor.set_key(60) - self.assertEqual(cursor.search(), 0) + self.assertEqual(cursor.search_near(), 0) for i in range(0, 5): self.assertEqual(cursor.get_key(), 60 + i) self.assertEqual(cursor.get_value(), 0x00)
The search_near returns 1 instead of 0 and positions itself on the next valid record. If the connection is re-opened and everything is written to disk, search_near does find the implicit record.
- is related to
-
WT-11373 Search should return any record below the greatest existing record in FLCS
- Closed