6 #include <absl/strings/str_format.h>
7 #include <absl/strings/string_view.h>
47 static_assert(
sizeof(RecordId) == 8);
149 template<>
struct hash<
taco::RecordId> {
152 return std::hash<uint64_t>()(((uint64_t)x.
pid << 32) + x.
sid);
FieldOffset m_buflen
Definition: Record.h:142
const char * m_buffer
Definition: Record.h:141
void Clear()
Definition: Record.h:120
bool IsValid() const
Definition: Record.h:126
FieldOffset & GetLength()
Definition: Record.h:110
const char * GetData() const
Definition: Record.h:105
const char *& GetData()
Definition: Record.h:100
RecordId m_rid
Definition: Record.h:143
const RecordId & GetRecordId() const
Definition: Record.h:136
Record & operator=(const Record &other)=default
RecordId & GetRecordId()
Definition: Record.h:131
Record(const Record &other)=default
Record(const maxaligned_char_buf &buf)
Definition: Record.h:93
FieldOffset GetLength() const
Definition: Record.h:115
Record(const char *buf, FieldOffset buflen)
Definition: Record.h:91
Record()
Definition: Record.h:89
constexpr bool operator==(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:50
std::ostream & operator<<(std::ostream &out, const RecordId &rid)
Definition: Record.h:82
uint16_t SlotId
Definition: tdb_base.h:222
constexpr SlotId INVALID_SID
The invalid slot ID.
Definition: tdb_base.h:254
int16_t FieldOffset
Definition: tdb_base.h:211
constexpr bool operator!=(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:55
constexpr bool operator<=(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:65
uint32_t PageNumber
Definition: tdb_base.h:213
constexpr bool operator>(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:71
constexpr bool operator<(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:60
constexpr bool operator>=(const RecordId &rid1, const RecordId &rid2)
Definition: Record.h:76
constexpr PageNumber INVALID_PID
The invalid page number.
Definition: tdb_base.h:235
size_t operator()(const taco::RecordId &x) const
Definition: Record.h:151
The record ID of a record on a page is a pair of ‘(PageNumber, SlotId)’.
Definition: Record.h:17
SlotId sid
Definition: Record.h:23
RecordId(PageNumber pid)
Definition: Record.h:19
PageNumber pid
Definition: Record.h:22
constexpr bool IsValid() const
Definition: Record.h:35
RecordId()
Definition: Record.h:18
void SetInvalid()
Definition: Record.h:29
RecordId(PageNumber pid, SlotId sid)
Definition: Record.h:20
std::string ToString() const
Definition: Record.h:40
uint16_t reserved
2-byte padding for alignment, but it's currently unused.
Definition: Record.h:26
std::vector< char, AlignedAllocImpl::aligned_allocator< 8, char > > maxaligned_char_buf
Definition: tdb_base.h:155
#define PAGENUMBER_FORMAT
Definition: tdb_base.h:272
#define SLOTID_FORMAT
Definition: tdb_base.h:273