rocksdb/test_util
Yu Zhang d1ae7f6c41 Add support to strip / pad timestamp when writing / reading a block (#11472)
Summary:
This patch adds support in `BlockBuilder` to strip user-defined timestamp from the `key` added via `Add(key, value)` and its equivalent APIs. The stripping logic is different when the key is either a user key or an internal key, so the `BlockBuilder` is created with a flag to indicate that. This patch also add support on the read path to APIs `NewIndexIterator`, `NewDataIterator` to support pad a min timestamp.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/11472

Test Plan:
Three test modes are added to parameterize existing tests:
UserDefinedTimestampTestMode::kNone -> UDT feature is not enabled
UserDefinedTimestampTestMode::kNormal -> UDT feature enabled, write / read with min timestamp
UserDefinedTimestampTestMode::kStripUserDefinedTimestamps -> UDT feature enabled, write / read with min timestamp, set `persist_user_defined_timestamps` where it applies to false.
The tests read/write with min timestamp so that point read and range scan can correctly read values in all three test modes.

`block_test` are parameterized to run with above three test modes and some additional parameteriazation

```
make all check
./block_test --gtest_filter="P/BlockTest*"
./block_test --gtest_filter="P/IndexBlockTest*"
```

Reviewed By: ltamasi

Differential Revision: D46200539

Pulled By: jowlyzhang

fbshipit-source-id: 59f5d6b584639976b69c2943eba723bd47d9b3c0
2023-05-25 15:41:32 -07:00
..
mock_time_env.cc Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
mock_time_env.h Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
secondary_cache_test_util.cc HyperClockCache support for SecondaryCache, with refactoring (#11301) 2023-03-17 20:23:49 -07:00
secondary_cache_test_util.h Add hash_seed to Caches (#11391) 2023-05-09 22:24:26 -07:00
sync_point.cc clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
sync_point.h Document SyncPoint::LoadDependency (#11477) 2023-05-24 16:49:17 -07:00
sync_point_impl.cc clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
sync_point_impl.h clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
testharness.cc clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
testharness.h Changes and enhancements to compression stats, thresholds (#11388) 2023-04-21 21:57:40 -07:00
testutil.cc Add support to strip / pad timestamp when writing / reading a block (#11472) 2023-05-25 15:41:32 -07:00
testutil.h Add support to strip / pad timestamp when writing / reading a block (#11472) 2023-05-25 15:41:32 -07:00
testutil_test.cc More Makefile Cleanup (#7097) 2020-07-09 14:35:17 -07:00
transaction_test_util.cc Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
transaction_test_util.h Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00