mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Namespaces | Macros | Functions | Variables
DataLayoutFactory.cpp File Reference
#include <mutable/storage/DataLayoutFactory.hpp>
#include <memory>
#include <mutable/catalog/Catalog.hpp>
#include <mutable/catalog/Type.hpp>
#include <numeric>
Include dependency graph for DataLayoutFactory.cpp:

Go to the source code of this file.

Namespaces

namespace  M_LCOV_EXCL_STOP
 
namespace  M_LCOV_EXCL_STOP::options
 

Macros

#define REGISTER_PAX_BYTES(NAME, BLOCK_SIZE, DESCRIPTION)    C.register_data_layout(C.pool(#NAME), std::make_unique<PAXLayoutFactory>(PAXLayoutFactory::NBytes, BLOCK_SIZE), DESCRIPTION)
 
#define REGISTER_PAX_TUPLES(NAME, BLOCK_SIZE, DESCRIPTION)    C.register_data_layout(C.pool(#NAME), std::make_unique<PAXLayoutFactory>(PAXLayoutFactory::NTuples, BLOCK_SIZE), DESCRIPTION)
 

Functions

 M_LCOV_EXCL_STOP::__attribute__ ((constructor(201))) static void add_storage_args()
 
std::unique_ptr< std::size_t[]> compute_attribute_order (const std::vector< const Type * > &types)
 Computes the order for attributes of types types and returns this permutation as array of indices.
 
 __attribute__ ((constructor(202))) static void register_data_layouts()
 

Variables

bool M_LCOV_EXCL_STOP::options::attribute_reordering = true
 Whether to reorder attributes when creating data layouts.
 
bool M_LCOV_EXCL_STOP::options::remove_null_bitmap = false
 Whether to remove the NULL bitmap in all created data layouts.
 
bool M_LCOV_EXCL_STOP::options::pax_pack_one_tuple_less = false
 Whether to pack one tuple less than theoretically possible in a created PAX data layout.
 

Macro Definition Documentation

◆ REGISTER_PAX_BYTES

#define REGISTER_PAX_BYTES (   NAME,
  BLOCK_SIZE,
  DESCRIPTION 
)     C.register_data_layout(C.pool(#NAME), std::make_unique<PAXLayoutFactory>(PAXLayoutFactory::NBytes, BLOCK_SIZE), DESCRIPTION)

◆ REGISTER_PAX_TUPLES

#define REGISTER_PAX_TUPLES (   NAME,
  BLOCK_SIZE,
  DESCRIPTION 
)     C.register_data_layout(C.pool(#NAME), std::make_unique<PAXLayoutFactory>(PAXLayoutFactory::NTuples, BLOCK_SIZE), DESCRIPTION)

Function Documentation

◆ __attribute__()

__attribute__ ( (constructor(202))  )

◆ compute_attribute_order()

std::unique_ptr< std::size_t[]> compute_attribute_order ( const std::vector< const Type * > &  types)

Computes the order for attributes of types types and returns this permutation as array of indices.

Attributes are reordered by their alignment requirement to minimize padding except the CLI option --no-attribute-reordering is set.

Definition at line 73 of file DataLayoutFactory.cpp.

Referenced by m::storage::RowLayoutFactory::make(), and m::storage::PAXLayoutFactory::make().