38 uint32_t
offset(uint32_t idx)
const {
46 throw std::logic_error(
"row store exceeds capacity");
58 void dump(std::ostream &out)
const override;
std::size_t id
the internal identifier of the attribute, unique within its table
This class implements a generic PAX store.
uint32_t block_size_
the size of a PAX block, in bytes; includes padding
std::size_t num_rows_per_block() const
static constexpr std::size_t ALLOCATION_SIZE
1 GiB
void compute_block_offsets()
Computes the offsets of the columns within a PAX block, the rows size, the number of rows that fit in...
const memory::Memory & memory() const override
Returns the memory of the store.
uint32_t block_size() const
memory::Memory data_
the underlying memory containing the data
virtual std::size_t num_rows() const override
Return the number of rows in this store.
std::size_t num_rows_per_block_
the number of rows within a PAX block
std::size_t num_rows_
the number of rows in use
uint32_t offset(uint32_t idx) const
memory::LinearAllocator allocator_
the memory allocator
static constexpr uint32_t BLOCK_SIZE
4 KiB
void drop() override
Drop the most recently appended row.
void append() override
Append a row to the store.
std::size_t capacity_
the number of available rows
uint32_t offset(const Attribute &attr) const
uint32_t * offsets_
the offsets of each column within a PAX block, in bits
Defines a generic store interface.
const Table & table() const
A table is a sorted set of attributes.
This is the simplest kind of allocator.
Represents a mapping created by a memory::Allocator.