14 uint64_t max_attr_size = 0;
21 auto size = attr->type->
size();
23 max_attr_size = std::max(max_attr_size, size);
27 uint64_t null_bitmap_size = 1 ? ((num_attrs + 7) / 8) * 8 : num_attrs;
28 max_attr_size = std::max(max_attr_size, null_bitmap_size);
39 <<
" rows, " <<
row_size_ <<
" bits per row" << std::endl;
44static
void register_store()
__attribute__((constructor(202))) static void register_interpreter()
The catalog contains all Databases and keeps track of all meta information of the database system.
ThreadSafePooledString pool(const char *str) const
Creates an internalized copy of the string str by adding it to the internal StringPool.
static Catalog & Get()
Return a reference to the single Catalog instance.
void register_store(ThreadSafePooledString name, const char *description=nullptr)
Registers a new Store with the given name.
This class implements a column store.
static constexpr std::size_t ALLOCATION_SIZE
1 GiB
ColumnStore(const Table &table)
memory::LinearAllocator allocator_
the memory allocator
Defines a generic store interface.
const Table & table() const
A table is a sorted set of attributes.
virtual all_iterator begin_all() const =0
virtual const ThreadSafePooledString & name() const =0
Returns the name of the Table.
virtual all_iterator end_all() const =0
virtual std::size_t num_attrs() const =0
Returns the number of attributes in this table.
Memory allocate(std::size_t size) override
Creates a new memory object with size bytes of freshly allocated memory.
std::size_t size() const
Returns the size in bytes of this allocation.