![]() |
mutable
A Database System for Research and Fast Prototyping
|
An internal node of the recursive data layout model. More...
#include <DataLayout.hpp>
Data Structures | |
| struct | child_t |
More... | |
| struct | const_iterator |
Public Member Functions | |
| size_type | num_tuples () const override |
| |
| size_type | num_children () const |
| Leaf & | add_leaf (const m::Type *type, size_type idx, uint64_t offset_in_bits, uint64_t stride_in_bits) |
Creates a Leaf and adds it as a child to this INode. | |
| INode & | add_inode (size_type num_tuples, uint64_t offset_in_bits, uint64_t stride_in_bits) |
Creates an INode and adds it as a child to this INode. | |
| const child_t & | operator[] (size_type idx) const |
| |
| const child_t & | at (size_type idx) const |
| |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| void | accept (ConstDataLayoutVisitor &v) const override |
| void | for_sibling_leaves (level_info_stack_t &level_info_stack, uint64_t inode_offset_in_bits, const callback_leaves_t &callback) const |
| void | print (std::ostream &out, unsigned indentation=0) const |
Private Member Functions | |
| INode (size_type num_tuples) | |
| INode (INode &&)=default | |
| INode & | operator= (INode &&)=default |
Private Attributes | |
| std::vector< child_t > | children_ |
| size_type | num_tuples_ |
| |
Friends | |
| struct | DataLayout |
An internal node of the recursive data layout model.
It holds one or more child Nodes and stores the offset and stride for each child. The offset and stride are relative within this INode.
Definition at line 98 of file DataLayout.hpp.
|
inlineprivate |
Definition at line 146 of file DataLayout.hpp.
|
privatedefault |
|
overridevirtual |
Implements m::storage::DataLayout::Node.
Definition at line 66 of file DataLayout.cpp.
| DataLayout::INode & DataLayout::INode::add_inode | ( | size_type | num_tuples, |
| uint64_t | offset_in_bits, | ||
| uint64_t | stride_in_bits | ||
| ) |
Creates an INode and adds it as a child to this INode.
The created INode represents num_tuples many tuples and will have the given, relative offset_in_bits and stride_in_bits.
Definition at line 47 of file DataLayout.cpp.
References M_insist, m::storage::DataLayout::num_tuples(), m::storage::DataLayout::INode::child_t::ptr, and m::storage::DataLayout::stride_in_bits().
| DataLayout::Leaf & DataLayout::INode::add_leaf | ( | const m::Type * | type, |
| size_type | idx, | ||
| uint64_t | offset_in_bits, | ||
| uint64_t | stride_in_bits | ||
| ) |
Creates a Leaf and adds it as a child to this INode.
The created Leaf will have the given, relative offset_in_bits and stride_in_bits within this INode.
Definition at line 29 of file DataLayout.cpp.
References m::Type::is_bitmap(), m::Type::is_boolean(), M_insist, m::storage::DataLayout::num_tuples(), m::storage::DataLayout::INode::child_t::ptr, and m::storage::DataLayout::stride_in_bits().
Referenced by m::storage::DataLayout::add_leaf(), m::storage::RowLayoutFactory::make(), and m::storage::PAXLayoutFactory::make().
returns a reference to the
idx-th child; throwsm::invalid_argumentifidxis out of bounds
Definition at line 170 of file DataLayout.hpp.
|
inline |
Definition at line 175 of file DataLayout.hpp.
|
inline |
Definition at line 177 of file DataLayout.hpp.
|
inline |
Definition at line 178 of file DataLayout.hpp.
|
inline |
Definition at line 176 of file DataLayout.hpp.
| void DataLayout::INode::for_sibling_leaves | ( | level_info_stack_t & | level_info_stack, |
| uint64_t | inode_offset_in_bits, | ||
| const callback_leaves_t & | callback | ||
| ) | const |
Definition at line 68 of file DataLayout.cpp.
References m::storage::DataLayout::child(), m::storage::DataLayout::leaf_info_t::leaf, m::storage::DataLayout::Node::num_tuples(), and m::storage::DataLayout::level_info_t::stride_in_bits.
Referenced by m::storage::DataLayout::for_sibling_leaves().
|
inline |
Definition at line 155 of file DataLayout.hpp.
Referenced by m::storage::DataLayout::add_inode(), m::storage::DataLayout::add_leaf(), m::storage::DataLayout::operator bool(), and m::storage::DataLayout::INode::const_iterator::operator++().
|
inlineoverridevirtual |
returns the number of tuples represented by an instance of this node
Implements m::storage::DataLayout::Node.
Definition at line 153 of file DataLayout.hpp.
Referenced by m::storage::DataLayout::add_inode(), m::storage::DataLayout::is_finite(), and m::storage::DataLayout::num_tuples().
returns a reference to the
idx-th child
Definition at line 165 of file DataLayout.hpp.
References M_insist.
| void DataLayout::INode::print | ( | std::ostream & | out, |
| unsigned | indentation = 0 |
||
| ) | const |
Definition at line 108 of file DataLayout.cpp.
References m::storage::DataLayout::child(), m::Numeric::DECIMAL_TO_BINARY_DIGITS, and M_insist.
|
friend |
Definition at line 100 of file DataLayout.hpp.
|
private |
|
private |
the number of tuples that fit into one instance of this
INode
Definition at line 144 of file DataLayout.hpp.