15 return (seq << 8) | t;
25 snprintf(buf,
sizeof(buf),
"' @ %llu : %d",
28 std::string result =
"'";
47 return "leveldb.InternalKeyComparator";
61 }
else if (anum < bnum) {
70 const Slice& limit)
const {
74 std::string tmp(user_start.
data(), user_start.
size());
75 user_comparator_->FindShortestSeparator(&tmp, user_limit);
76 if (tmp.size() < user_start.
size() &&
77 user_comparator_->Compare(user_start, tmp) < 0) {
81 assert(this->Compare(*start, tmp) < 0);
82 assert(this->Compare(tmp, limit) < 0);
89 std::string tmp(user_key.
data(), user_key.
size());
90 user_comparator_->FindShortSuccessor(&tmp);
91 if (tmp.size() < user_key.
size() &&
92 user_comparator_->Compare(user_key, tmp) < 0) {
96 assert(this->Compare(*key, tmp) < 0);
102 return user_policy_->Name();
106 std::string* dst)
const {
110 for (
int i = 0; i < n; i++) {
114 user_policy_->CreateFilter(keys, n, dst);
122 size_t usize = user_key.
size();
123 size_t needed = usize + 13;
125 if (needed <=
sizeof(space_)) {
128 dst =
new char[needed];
133 memcpy(dst, user_key.
data(), usize);
virtual const char * Name() const
virtual int Compare(const Slice &a, const Slice &b) const
static const SequenceNumber kMaxSequenceNumber
uint64_t DecodeFixed64(const char *ptr)
virtual void FindShortSuccessor(std::string *key) const
std::string ToString() const
std::string DebugString() const
char * EncodeVarint32(char *dst, uint32_t v)
bool ParseInternalKey(const Slice &internal_key, ParsedInternalKey *result)
void AppendInternalKey(std::string *result, const ParsedInternalKey &key)
void EncodeFixed64(char *buf, uint64_t value)
static const ValueType kValueTypeForSeek
void PutFixed64(std::string *dst, uint64_t value)
LookupKey(const Slice &user_key, SequenceNumber sequence)
virtual const char * Name() const
std::string EscapeString(const Slice &value)
virtual void FindShortestSeparator(std::string *start, const Slice &limit) const
virtual void CreateFilter(const Slice *keys, int n, std::string *dst) const
Slice ExtractUserKey(const Slice &internal_key)
const char * data() const
std::string DebugString() const
virtual bool KeyMayMatch(const Slice &key, const Slice &filter) const
static uint64_t PackSequenceAndType(uint64_t seq, ValueType t)