mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
m::Catalog Struct Reference

The catalog contains all Databases and keeps track of all meta information of the database system. More...

#include <Catalog.hpp>

Collaboration diagram for m::Catalog:
[legend]

Public Member Functions

 ~Catalog ()
 
m::ArgParserarg_parser ()
 
std::size_t num_databases () const
 Returns the number of Databases.
 
ThreadSafeStringPoolget_pool ()
 Returns a reference to the StringPool.
 
const ThreadSafeStringPoolget_pool () const
 Returns a reference to the StringPool.
 
Timertimer ()
 Returns the global Timer instance.
 
const Timertimer () const
 Returns the global Timer instance.
 
memory::Allocatorallocator ()
 Returns a reference to the memory::Allocator.
 
const memory::Allocatorallocator () const
 Returns a reference to the memory::Allocator.
 
ThreadSafePooledString pool (const char *str) const
 Creates an internalized copy of the string str by adding it to the internal StringPool.
 
ThreadSafePooledString pool (std::string_view str) const
 Creates an internalized copy of the string str by adding it to the internal StringPool.
 
Databaseadd_database (ThreadSafePooledString name)
 Creates a new Database with the given name.
 
Databaseget_database (const ThreadSafePooledString &name) const
 Returns the Database with the given name.
 
bool has_database (const ThreadSafePooledString &name) const
 Returns true iff a Database with the given name exists.
 
void drop_database (const ThreadSafePooledString &name)
 Drops the Database with the name.
 
void drop_database (const Database &db)
 Drops the Database db.
 
bool has_database_in_use () const
 Returns true if any Database is currently in use.
 
Databaseget_database_in_use ()
 Returns a reference to the Database that is currently in use, if any.
 
const Databaseget_database_in_use () const
 Returns a reference to the Database that is currently in use, if any.
 
void set_database_in_use (Database &db)
 Sets the Database db as the Database that is currently in use.
 
void unset_database_in_use ()
 Unsets the Database that is currenly in use.
 
const Functionget_function (const ThreadSafePooledString &name) const
 Returns a reference to the Function with the given name.
 
template<typename T >
requires std::derived_from<T, m::Store>
void register_store (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new Store with the given name.
 
void default_store (const ThreadSafePooledString &name)
 Sets the default Store to use.
 
bool has_default_store () const
 Returns true iff the Catalog has a default Store.
 
std::unique_ptr< Storecreate_store (const Table &tbl) const
 Creates a new Store for the given Table tbl.
 
std::unique_ptr< Storecreate_store (const ThreadSafePooledString &name, const Table &tbl) const
 Creates a new Store of name name for the given Table tbl.
 
const ThreadSafePooledStringdefault_store_name () const
 Returns the name of the default Store.
 
auto stores_begin ()
 
auto stores_end ()
 
auto stores_begin () const
 
auto stores_end () const
 
auto stores_cbegin () const
 
auto stores_cend () const
 
void register_data_layout (ThreadSafePooledString name, std::unique_ptr< storage::DataLayoutFactory > data_layout, const char *description=nullptr)
 Registers a new DataLayoutFactory with the given name.
 
void default_data_layout (const ThreadSafePooledString &name)
 Sets the default DataLayoutFactory to use.
 
bool has_default_data_layout () const
 Returns true iff the Catalog has a default DataLayoutFactory.
 
storage::DataLayoutFactorydata_layout () const
 Returns a reference to the default DataLayoutFactory.
 
storage::DataLayoutFactorydata_layout (const ThreadSafePooledString &name) const
 Returns a reference to the DataLayoutFactory with the given name.
 
const m::ThreadSafePooledStringdefault_data_layout_name () const
 Returns the name of the default DataLayoutFactory.
 
auto data_layouts_begin ()
 
auto data_layouts_end ()
 
auto data_layouts_begin () const
 
auto data_layouts_end () const
 
auto data_layouts_cbegin () const
 
auto data_layouts_cend () const
 
template<typename T >
requires std::derived_from<T, m::CardinalityEstimator>
void register_cardinality_estimator (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new CardinalityEstimator with the given name.
 
void default_cardinality_estimator (const ThreadSafePooledString &name)
 Sets the default CardinalityEstimator to use.
 
bool has_default_cardinality_estimator () const
 Returns true iff the Catalog has a default CardinalityEstimator.
 
std::unique_ptr< CardinalityEstimatorcreate_cardinality_estimator (ThreadSafePooledString database) const
 Creates a new CardinalityEstimator.
 
std::unique_ptr< CardinalityEstimatorcreate_cardinality_estimator (const ThreadSafePooledString &name, ThreadSafePooledString database) const
 Creates a new CardinalityEstimator of name name.
 
const ThreadSafePooledStringdefault_cardinality_estimator_name () const
 Returns the name of the default CardinalityEstimator.
 
auto cardinality_estimators_begin ()
 
auto cardinality_estimators_end ()
 
auto cardinality_estimators_begin () const
 
auto cardinality_estimators_end () const
 
auto cardinality_estimators_cbegin () const
 
auto cardinality_estimators_cend () const
 
void register_plan_enumerator (ThreadSafePooledString name, std::unique_ptr< pe::PlanEnumerator > PE, const char *description=nullptr)
 Registers a new PlanEnumerator with the given name.
 
void default_plan_enumerator (const ThreadSafePooledString &name)
 Sets the default PlanEnumerator to use.
 
bool has_default_plan_enumerator () const
 Returns true iff the Catalog has a default PlanEnumerator.
 
pe::PlanEnumeratorplan_enumerator () const
 Returns a reference to the default PlanEnumerator.
 
pe::PlanEnumeratorplan_enumerator (const ThreadSafePooledString &name) const
 Returns a reference to the PlanEnumerator with the given name.
 
const ThreadSafePooledStringdefault_plan_enumerator_name () const
 Returns the name of the default PlanEnumerator.
 
auto plan_enumerators_begin ()
 
auto plan_enumerators_end ()
 
auto plan_enumerators_begin () const
 
auto plan_enumerators_end () const
 
auto plan_enumerators_cbegin () const
 
auto plan_enumerators_cend () const
 
template<typename T >
requires std::derived_from<T, m::Backend>
void register_backend (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new Backend with the given name.
 
template<typename T >
requires std::derived_from<T, m::WasmEngine>
void register_wasm_backend (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new WasmBackend using the given WasmEngine with the given name.
 
void default_backend (const ThreadSafePooledString &name)
 Sets the default Backend to use.
 
bool has_default_backend () const
 Returns true iff the Catalog has a default Backend.
 
std::unique_ptr< Backendcreate_backend () const
 Returns a new Backend.
 
std::unique_ptr< Backendcreate_backend (const ThreadSafePooledString &name) const
 Returns a new Backend of name name.
 
const ThreadSafePooledStringdefault_backend_name () const
 Returns the name of the default Backend.
 
auto backends_begin ()
 
auto backends_end ()
 
auto backends_begin () const
 
auto backends_end () const
 
auto backends_cbegin () const
 
auto backends_cend () const
 
void register_cost_function (ThreadSafePooledString name, std::unique_ptr< CostFunction > CF, const char *description=nullptr)
 Registers a new CostFunction with the given name.
 
void default_cost_function (const ThreadSafePooledString &name)
 Sets the default CostFunction to use.
 
bool has_default_cost_function () const
 Returns true iff the Catalog has a default CostFunction.
 
CostFunctioncost_function () const
 Returns a reference to the default CostFunction.
 
CostFunctioncost_function (const ThreadSafePooledString &name) const
 Returns a reference to the CostFunction with the given name.
 
const ThreadSafePooledStringdefault_cost_function_name () const
 Returns the name of the default CostFunction.
 
auto cost_functions_begin ()
 
auto cost_functions_end ()
 
auto cost_functions_begin () const
 
auto cost_functions_end () const
 
auto cost_functions_cbegin () const
 
auto cost_functions_cend () const
 
template<typename T >
requires std::derived_from<T, m::DatabaseInstruction>
void register_instruction (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new DatabaseInstruction with the given name.
 
std::unique_ptr< DatabaseInstructioncreate_instruction (const ThreadSafePooledString &name, const std::vector< std::string > &args) const
 Returns a reference to the DatabaseInstruction with the given name.
 
auto instructions_begin ()
 
auto instructions_end ()
 
auto instructions_begin () const
 
auto instructions_end () const
 
auto instructions_cbegin () const
 
auto instructions_cend () const
 
void register_scheduler (ThreadSafePooledString name, std::unique_ptr< Scheduler > scheduler, const char *description=nullptr)
 Registers a new Scheduler with the given name.
 
void default_scheduler (const ThreadSafePooledString &name)
 Sets the default Scheduler to use.
 
bool has_default_scheduler () const
 Returns true iff the Catalog has a default Scheduler.
 
Schedulerscheduler () const
 Returns a reference to the default Scheduler.
 
Schedulerscheduler (const ThreadSafePooledString &name) const
 Returns a reference to the Scheduler with the given name.
 
const ThreadSafePooledStringdefault_scheduler_name () const
 Returns the name of the default Scheduler.
 
auto schedulers_begin ()
 
auto schedulers_end ()
 
auto schedulers_begin () const
 
auto schedulers_end () const
 
auto schedulers_cbegin () const
 
auto schedulers_cend () const
 
std::unique_ptr< TableFactorytable_factory (std::unique_ptr< TableFactory > table_factory)
 Replaces the stored TableFactory with table_factory and returns the old TableFactory.
 
TableFactorytable_factory () const
 Returns a reference to the stored TableFactory.
 
template<class T >
requires std::derived_from<T, TableFactoryDecorator>
void register_table_property (ThreadSafePooledString name, const char *description=nullptr)
 Registers a new TableFactoryDecorator with the given name.
 
std::unique_ptr< TableFactoryapply_table_property (const ThreadSafePooledString &name, std::unique_ptr< TableFactory > table_factory) const
 Applies the TableFactoryDecorator corresponding to name to table_factory.
 
auto table_properties_begin ()
 
auto table_properties_end ()
 
auto table_properties_begin () const
 
auto table_properties_end () const
 
auto table_properties_cbegin () const
 
auto table_properties_cend () const
 
void register_pre_optimization (ThreadSafePooledString name, PreOptimizationCallback optimization, const char *description=nullptr)
 Registers a new pre-optimization with the given name.
 
auto pre_optimizations ()
 
auto pre_optimizations_begin ()
 
auto pre_optimizations_end ()
 
auto pre_optimizations_begin () const
 
auto pre_optimizations_end () const
 
auto pre_optimizations_cbegin () const
 
auto pre_optimizations_cend () const
 
void register_logical_post_optimization (ThreadSafePooledString name, LogicalPostOptimizationCallback optimization, const char *description=nullptr)
 Registers a new logical post-optimization with the given name.
 
auto logical_post_optimizations ()
 
auto logical_post_optimizations_begin ()
 
auto logical_post_optimizations_end ()
 
auto logical_post_optimizations_begin () const
 
auto logical_post_optimizations_end () const
 
auto logical_post_optimizations_cbegin () const
 
auto logical_post_optimizations_cend () const
 
void register_physical_post_optimization (const char *name, PhysicalPostOptimizationCallback optimization, const char *description=nullptr)
 Registers a new physical post-optimization with the given name.
 
auto physical_post_optimizations ()
 
auto physical_post_optimizations_begin ()
 
auto physical_post_optimizations_end ()
 
auto physical_post_optimizations_begin () const
 
auto physical_post_optimizations_end () const
 
auto physical_post_optimizations_cbegin () const
 
auto physical_post_optimizations_cend () const
 

Static Public Member Functions

static CatalogGet ()
 Return a reference to the single Catalog instance.
 
static void Clear ()
 Removes all content from the Catalog instance.
 
static void Destroy ()
 Destroys the current Catalog instance.
 

Private Types

using TableFactoryDecoratorCallback = std::function< std::unique_ptr< TableFactory >(std::unique_ptr< TableFactory >)>
 
using PreOptimizationCallback = std::function< void(QueryGraph &)>
 
using LogicalPostOptimizationCallback = std::function< std::unique_ptr< Producer >(std::unique_ptr< Producer >)>
 
using PhysicalPostOptimizationCallback = std::function< std::unique_ptr< MatchBase >(std::unique_ptr< MatchBase >)>
 

Private Member Functions

 Catalog ()
 
 Catalog (const Catalog &)=delete
 
Catalogoperator= (const Catalog &)=delete
 

Private Attributes

m::ArgParser arg_parser_
 
std::unique_ptr< memory::Allocatorallocator_
 our custom allocator
 
ThreadSafeStringPool pool_
 pool of strings
 
std::unordered_map< ThreadSafePooledString, Database * > databases_
 the databases
 
Databasedatabase_in_use_ = nullptr
 the currently used database
 
std::unordered_map< ThreadSafePooledString, Function * > standard_functions_
 functions defined by the SQL standard
 
Timer timer_
 a global timer
 
ComponentSet< StoreFactory > stores_
 
ComponentSet< storage::DataLayoutFactorydata_layouts_
 
ComponentSet< CardinalityEstimatorFactory > cardinality_estimators_
 
ComponentSet< pe::PlanEnumeratorplan_enumerators_
 
ComponentSet< BackendFactory > backends_
 
ComponentSet< CostFunctioncost_functions_
 
ComponentSet< DatabaseInstructionFactory > instructions_
 
ComponentSet< Schedulerschedulers_
 
ComponentSet< TableFactoryDecoratorCallbacktable_properties_
 
ComponentSet< PreOptimizationCallbackpre_optimizations_
 
ComponentSet< LogicalPostOptimizationCallbacklogical_post_optimizations_
 
ComponentSet< PhysicalPostOptimizationCallbackphysical_post_optimizations_
 
std::unique_ptr< TableFactorytable_factory_
 The TableFactory used to construct Tables.
 

Static Private Attributes

static Catalogthe_catalog_
 Singleton Catalog instance.
 

Detailed Description

The catalog contains all Databases and keeps track of all meta information of the database system.

There is always exactly one catalog.

Definition at line 214 of file Catalog.hpp.

Member Typedef Documentation

◆ LogicalPostOptimizationCallback

using m::Catalog::LogicalPostOptimizationCallback = std::function<std::unique_ptr<Producer>(std::unique_ptr<Producer>)>
private

Definition at line 332 of file Catalog.hpp.

◆ PhysicalPostOptimizationCallback

using m::Catalog::PhysicalPostOptimizationCallback = std::function<std::unique_ptr<MatchBase>(std::unique_ptr<MatchBase>)>
private

Definition at line 335 of file Catalog.hpp.

◆ PreOptimizationCallback

using m::Catalog::PreOptimizationCallback = std::function<void(QueryGraph&)>
private

Definition at line 329 of file Catalog.hpp.

◆ TableFactoryDecoratorCallback

using m::Catalog::TableFactoryDecoratorCallback = std::function<std::unique_ptr<TableFactory>(std::unique_ptr<TableFactory>)>
private

Definition at line 326 of file Catalog.hpp.

Constructor & Destructor Documentation

◆ Catalog() [1/2]

Catalog::Catalog ( )
private

Definition at line 19 of file Catalog.cpp.

◆ Catalog() [2/2]

m::Catalog::Catalog ( const Catalog )
privatedelete

◆ ~Catalog()

Catalog::~Catalog ( )

Definition at line 33 of file Catalog.cpp.

References databases_, and standard_functions_.

Member Function Documentation

◆ add_database()

Database & Catalog::add_database ( ThreadSafePooledString  name)

Creates a new Database with the given name.

Throws std::invalid_argument if a Database with the given name already exists.

Definition at line 58 of file Catalog.cpp.

References databases_.

Referenced by m::CreateDatabase::execute(), m::execute_statement(), generate_training_suite_filter(), generate_training_suite_group_by(), and generate_training_suite_join().

◆ allocator() [1/2]

memory::Allocator & m::Catalog::allocator ( )
inline

Returns a reference to the memory::Allocator.

Definition at line 269 of file Catalog.hpp.

Referenced by m::wasm::Module::Memory().

◆ allocator() [2/2]

const memory::Allocator & m::Catalog::allocator ( ) const
inline

Returns a reference to the memory::Allocator.

Definition at line 271 of file Catalog.hpp.

◆ apply_table_property()

std::unique_ptr< TableFactory > m::Catalog::apply_table_property ( const ThreadSafePooledString name,
std::unique_ptr< TableFactory table_factory 
) const
inline

Applies the TableFactoryDecorator corresponding to name to table_factory.

Returns the decorated TableFactory.

Definition at line 595 of file Catalog.hpp.

◆ arg_parser()

m::ArgParser & m::Catalog::arg_parser ( )
inline

Definition at line 253 of file Catalog.hpp.

Referenced by __attribute__(), M_LCOV_EXCL_STOP::__attribute__(), LIST_CE(), and main().

◆ backends_begin() [1/2]

auto m::Catalog::backends_begin ( )
inline

Definition at line 483 of file Catalog.hpp.

◆ backends_begin() [2/2]

auto m::Catalog::backends_begin ( ) const
inline

Definition at line 485 of file Catalog.hpp.

◆ backends_cbegin()

auto m::Catalog::backends_cbegin ( ) const
inline

Definition at line 487 of file Catalog.hpp.

Referenced by main().

◆ backends_cend()

auto m::Catalog::backends_cend ( ) const
inline

Definition at line 488 of file Catalog.hpp.

Referenced by main().

◆ backends_end() [1/2]

auto m::Catalog::backends_end ( )
inline

Definition at line 484 of file Catalog.hpp.

◆ backends_end() [2/2]

auto m::Catalog::backends_end ( ) const
inline

Definition at line 486 of file Catalog.hpp.

◆ cardinality_estimators_begin() [1/2]

auto m::Catalog::cardinality_estimators_begin ( )
inline

Definition at line 422 of file Catalog.hpp.

◆ cardinality_estimators_begin() [2/2]

auto m::Catalog::cardinality_estimators_begin ( ) const
inline

Definition at line 424 of file Catalog.hpp.

◆ cardinality_estimators_cbegin()

auto m::Catalog::cardinality_estimators_cbegin ( ) const
inline

Definition at line 426 of file Catalog.hpp.

Referenced by main().

◆ cardinality_estimators_cend()

auto m::Catalog::cardinality_estimators_cend ( ) const
inline

Definition at line 427 of file Catalog.hpp.

Referenced by main().

◆ cardinality_estimators_end() [1/2]

auto m::Catalog::cardinality_estimators_end ( )
inline

Definition at line 423 of file Catalog.hpp.

◆ cardinality_estimators_end() [2/2]

auto m::Catalog::cardinality_estimators_end ( ) const
inline

Definition at line 425 of file Catalog.hpp.

◆ Clear()

static void m::Catalog::Clear ( )
inlinestatic

Removes all content from the Catalog instance.

Definition at line 241 of file Catalog.hpp.

References database_in_use_, and databases_.

◆ cost_function() [1/2]

CostFunction & m::Catalog::cost_function ( ) const
inline

Returns a reference to the default CostFunction.

Definition at line 502 of file Catalog.hpp.

Referenced by m::QueryDatabase::execute(), m::execute_statement(), and m::logical_plan_from_statement().

◆ cost_function() [2/2]

CostFunction & m::Catalog::cost_function ( const ThreadSafePooledString name) const
inline

Returns a reference to the CostFunction with the given name.

Definition at line 504 of file Catalog.hpp.

◆ cost_functions_begin() [1/2]

auto m::Catalog::cost_functions_begin ( )
inline

Definition at line 508 of file Catalog.hpp.

◆ cost_functions_begin() [2/2]

auto m::Catalog::cost_functions_begin ( ) const
inline

Definition at line 510 of file Catalog.hpp.

◆ cost_functions_cbegin()

auto m::Catalog::cost_functions_cbegin ( ) const
inline

Definition at line 512 of file Catalog.hpp.

Referenced by main().

◆ cost_functions_cend()

auto m::Catalog::cost_functions_cend ( ) const
inline

Definition at line 513 of file Catalog.hpp.

Referenced by main().

◆ cost_functions_end() [1/2]

auto m::Catalog::cost_functions_end ( )
inline

Definition at line 509 of file Catalog.hpp.

◆ cost_functions_end() [2/2]

auto m::Catalog::cost_functions_end ( ) const
inline

Definition at line 511 of file Catalog.hpp.

◆ create_backend() [1/2]

std::unique_ptr< Backend > m::Catalog::create_backend ( ) const
inline

◆ create_backend() [2/2]

std::unique_ptr< Backend > m::Catalog::create_backend ( const ThreadSafePooledString name) const
inline

Returns a new Backend of name name.

Definition at line 479 of file Catalog.hpp.

◆ create_cardinality_estimator() [1/2]

std::unique_ptr< CardinalityEstimator > m::Catalog::create_cardinality_estimator ( const ThreadSafePooledString name,
ThreadSafePooledString  database 
) const
inline

Creates a new CardinalityEstimator of name name.

Definition at line 413 of file Catalog.hpp.

◆ create_cardinality_estimator() [2/2]

std::unique_ptr< CardinalityEstimator > m::Catalog::create_cardinality_estimator ( ThreadSafePooledString  database) const
inline

Creates a new CardinalityEstimator.

Definition at line 409 of file Catalog.hpp.

Referenced by m::Database::Database().

◆ create_instruction()

std::unique_ptr< DatabaseInstruction > m::Catalog::create_instruction ( const ThreadSafePooledString name,
const std::vector< std::string > &  args 
) const
inline

Returns a reference to the DatabaseInstruction with the given name.

Throws std::invalid_argument if no Instruction with the given name exists.

Definition at line 528 of file Catalog.hpp.

References args.

Referenced by m::execute_instruction().

◆ create_store() [1/2]

std::unique_ptr< Store > m::Catalog::create_store ( const Table tbl) const
inline

◆ create_store() [2/2]

std::unique_ptr< Store > m::Catalog::create_store ( const ThreadSafePooledString name,
const Table tbl 
) const
inline

Creates a new Store of name name for the given Table tbl.

Definition at line 354 of file Catalog.hpp.

◆ data_layout() [1/2]

storage::DataLayoutFactory & m::Catalog::data_layout ( ) const
inline

Returns a reference to the default DataLayoutFactory.

Definition at line 379 of file Catalog.hpp.

Referenced by m::execute_statement().

◆ data_layout() [2/2]

storage::DataLayoutFactory & m::Catalog::data_layout ( const ThreadSafePooledString name) const
inline

Returns a reference to the DataLayoutFactory with the given name.

Definition at line 381 of file Catalog.hpp.

◆ data_layouts_begin() [1/2]

auto m::Catalog::data_layouts_begin ( )
inline

Definition at line 385 of file Catalog.hpp.

◆ data_layouts_begin() [2/2]

auto m::Catalog::data_layouts_begin ( ) const
inline

Definition at line 387 of file Catalog.hpp.

◆ data_layouts_cbegin()

auto m::Catalog::data_layouts_cbegin ( ) const
inline

Definition at line 389 of file Catalog.hpp.

Referenced by main().

◆ data_layouts_cend()

auto m::Catalog::data_layouts_cend ( ) const
inline

Definition at line 390 of file Catalog.hpp.

Referenced by main().

◆ data_layouts_end() [1/2]

auto m::Catalog::data_layouts_end ( )
inline

Definition at line 386 of file Catalog.hpp.

◆ data_layouts_end() [2/2]

auto m::Catalog::data_layouts_end ( ) const
inline

Definition at line 388 of file Catalog.hpp.

◆ default_backend()

void m::Catalog::default_backend ( const ThreadSafePooledString name)
inline

Sets the default Backend to use.

Definition at line 473 of file Catalog.hpp.

Referenced by __attribute__().

◆ default_backend_name()

const ThreadSafePooledString & m::Catalog::default_backend_name ( ) const
inline

Returns the name of the default Backend.

Definition at line 481 of file Catalog.hpp.

◆ default_cardinality_estimator()

void m::Catalog::default_cardinality_estimator ( const ThreadSafePooledString name)
inline

Sets the default CardinalityEstimator to use.

Definition at line 405 of file Catalog.hpp.

Referenced by __attribute__().

◆ default_cardinality_estimator_name()

const ThreadSafePooledString & m::Catalog::default_cardinality_estimator_name ( ) const
inline

Returns the name of the default CardinalityEstimator.

Definition at line 418 of file Catalog.hpp.

◆ default_cost_function()

void m::Catalog::default_cost_function ( const ThreadSafePooledString name)
inline

Sets the default CostFunction to use.

Definition at line 498 of file Catalog.hpp.

Referenced by main().

◆ default_cost_function_name()

const ThreadSafePooledString & m::Catalog::default_cost_function_name ( ) const
inline

Returns the name of the default CostFunction.

Definition at line 506 of file Catalog.hpp.

◆ default_data_layout()

void m::Catalog::default_data_layout ( const ThreadSafePooledString name)
inline

Sets the default DataLayoutFactory to use.

Definition at line 375 of file Catalog.hpp.

Referenced by __attribute__().

◆ default_data_layout_name()

const m::ThreadSafePooledString & m::Catalog::default_data_layout_name ( ) const
inline

Returns the name of the default DataLayoutFactory.

Definition at line 383 of file Catalog.hpp.

◆ default_plan_enumerator()

void m::Catalog::default_plan_enumerator ( const ThreadSafePooledString name)
inline

Sets the default PlanEnumerator to use.

Definition at line 437 of file Catalog.hpp.

Referenced by __attribute__().

◆ default_plan_enumerator_name()

const ThreadSafePooledString & m::Catalog::default_plan_enumerator_name ( ) const
inline

Returns the name of the default PlanEnumerator.

Definition at line 445 of file Catalog.hpp.

◆ default_scheduler()

void m::Catalog::default_scheduler ( const ThreadSafePooledString name)
inline

Sets the default Scheduler to use.

Definition at line 549 of file Catalog.hpp.

Referenced by __attribute__().

◆ default_scheduler_name()

const ThreadSafePooledString & m::Catalog::default_scheduler_name ( ) const
inline

Returns the name of the default Scheduler.

Definition at line 557 of file Catalog.hpp.

◆ default_store()

void m::Catalog::default_store ( const ThreadSafePooledString name)
inline

Sets the default Store to use.

Definition at line 348 of file Catalog.hpp.

◆ default_store_name()

const ThreadSafePooledString & m::Catalog::default_store_name ( ) const
inline

Returns the name of the default Store.

Definition at line 358 of file Catalog.hpp.

◆ Destroy()

static void m::Catalog::Destroy ( )
static

Destroys the current Catalog instance.

Referenced by main().

◆ drop_database() [1/2]

void m::Catalog::drop_database ( const Database db)
inline

Drops the Database db.

Throws std::out_of_range if the db is currently in use.

Definition at line 290 of file Catalog.hpp.

References drop_database(), and m::Database::name.

Referenced by drop_database().

◆ drop_database() [2/2]

void Catalog::drop_database ( const ThreadSafePooledString name)

Drops the Database with the name.

Throws std::out_of_range if no such Database exists or if the Database is currently in use. See get_database_in_use().

Definition at line 66 of file Catalog.cpp.

References m::and, databases_, get_database_in_use(), and has_database_in_use().

Referenced by m::DropDatabase::execute(), and generate_training_suite_filter().

◆ Get()

static Catalog & m::Catalog::Get ( )
static

Return a reference to the single Catalog instance.

Referenced by __attribute__(), M_LCOV_EXCL_STOP::__attribute__(), m::idx::ArrayIndex< Key >::add(), m::Database::add_table(), m::AggregationOperator::AggregationOperator(), M_LCOV_EXCL_STOP::apply_timestamp_filter(), m::idx::ArrayIndex< Key >::bulkload(), m::command_from_string(), compute_aggregate_info(), m::Optimizer::construct_join_order(), m::ast::Sema::create_designator(), m::Database::Database(), emit_cardinalities(), m::InjectionCardinalityEstimator::estimate_grouping(), m::wasm::HashBasedGroupJoin::execute(), m::learn_spns::execute(), m::QueryDatabase::execute(), m::InsertRecords::execute(), m::ImportDSV::execute(), m::CreateDatabase::execute(), m::DropDatabase::execute(), m::UseDatabase::execute(), m::CreateTable::execute(), m::DropTable::execute(), m::CreateIndex::execute(), m::DropIndex::execute(), m::execute_file(), m::execute_instruction(), m::execute_physical_plan(), m::execute_query(), m::execute_statement(), generate_training_suite_filter(), generate_training_suite_group_by(), generate_training_suite_join(), m::Database::get_function(), m::ast::Expr::get_required(), m::Schema::Identifier::GetConstant(), m::GroupingOperator::GroupingOperator(), m::Schema::Identifier::Identifier(), index_scan_resolve_index_method(), m::instruction_from_string(), m::SpnWrapper::learn_spn_database(), m::SpnWrapper::learn_spn_table(), LIST_CE(), LIST_PE(), m::logical_plan_from_statement(), m::Interpreter::M_OPERATOR_LIST(), main(), m::InjectionCardinalityEstimator::make_identifier(), m::ast::QueryExpr::make_unique_alias(), m::QueryGraph2SQL::make_unique_alias(), m::ast::Sema::make_unique_id_from_binding_path(), m::wasm::Module::Memory(), m::MultiVersioningTable::MultiVersioningTable(), m::wasm::ExprCompiler::operator()(), m::StackMachineBuilder::operator()(), m::pe::hs::HeuristicSearch::operator()(), m::pe::DPccp::operator()(), m::pe::GOO::operator()(), m::pe::TDGOO::operator()(), PEall::operator()(), DPsize::operator()(), DPsizeOpt::operator()(), DPsizeSub::operator()(), DPsub::operator()(), DPsubOpt::operator()(), IKKBZ::operator()(), LinearizedDP::operator()(), TDbasic::operator()(), TDMinCutAGaT::operator()(), m::DSVReader::operator()(), m::Optimizer::optimize_join_order(), m::Optimizer::optimize_plan(), m::Optimizer::optimize_source_plans(), m::Optimizer::optimize_with_plantable(), m::ast::Parser::parse_Instruction(), m::physical_plan_from_logical_plan(), m::wasm::IndexScan< IndexMethod >::pre_condition(), m::process_stream(), m::ProjectionOperator::ProjectionOperator(), prompt(), m::InjectionCardinalityEstimator::read_json(), m::SerialScheduler::schedule_thread(), m::statement_from_string(), and time_select_query_execution().

◆ get_database()

Database & m::Catalog::get_database ( const ThreadSafePooledString name) const
inline

Returns the Database with the given name.

Throws std::out_of_range if no such Database exists.

Definition at line 283 of file Catalog.hpp.

Referenced by m::execute_statement().

◆ get_database_in_use() [1/2]

Database & m::Catalog::get_database_in_use ( )
inline

◆ get_database_in_use() [2/2]

const Database & m::Catalog::get_database_in_use ( ) const
inline

Returns a reference to the Database that is currently in use, if any.

Throws std::logic_error otherwise.

Definition at line 301 of file Catalog.hpp.

References get_database_in_use().

Referenced by get_database_in_use().

◆ get_function()

const Function * m::Catalog::get_function ( const ThreadSafePooledString name) const
inline

Returns a reference to the Function with the given name.

Throws std::out_of_range if no such Function exists.

Definition at line 310 of file Catalog.hpp.

Referenced by m::Database::get_function().

◆ get_pool() [1/2]

ThreadSafeStringPool & m::Catalog::get_pool ( )
inline

Returns a reference to the StringPool.

Definition at line 259 of file Catalog.hpp.

Referenced by m::command_from_string(), m::instruction_from_string(), main(), m::process_stream(), and m::statement_from_string().

◆ get_pool() [2/2]

const ThreadSafeStringPool & m::Catalog::get_pool ( ) const
inline

Returns a reference to the StringPool.

Definition at line 261 of file Catalog.hpp.

◆ has_database()

bool m::Catalog::has_database ( const ThreadSafePooledString name) const
inline

Returns true iff a Database with the given name exists.

Definition at line 285 of file Catalog.hpp.

◆ has_database_in_use()

bool m::Catalog::has_database_in_use ( ) const
inline

Returns true if any Database is currently in use.

Definition at line 293 of file Catalog.hpp.

Referenced by drop_database(), and main().

◆ has_default_backend()

bool m::Catalog::has_default_backend ( ) const
inline

Returns true iff the Catalog has a default Backend.

Definition at line 475 of file Catalog.hpp.

◆ has_default_cardinality_estimator()

bool m::Catalog::has_default_cardinality_estimator ( ) const
inline

Returns true iff the Catalog has a default CardinalityEstimator.

Definition at line 407 of file Catalog.hpp.

◆ has_default_cost_function()

bool m::Catalog::has_default_cost_function ( ) const
inline

Returns true iff the Catalog has a default CostFunction.

Definition at line 500 of file Catalog.hpp.

◆ has_default_data_layout()

bool m::Catalog::has_default_data_layout ( ) const
inline

Returns true iff the Catalog has a default DataLayoutFactory.

Definition at line 377 of file Catalog.hpp.

◆ has_default_plan_enumerator()

bool m::Catalog::has_default_plan_enumerator ( ) const
inline

Returns true iff the Catalog has a default PlanEnumerator.

Definition at line 439 of file Catalog.hpp.

◆ has_default_scheduler()

bool m::Catalog::has_default_scheduler ( ) const
inline

Returns true iff the Catalog has a default Scheduler.

Definition at line 551 of file Catalog.hpp.

◆ has_default_store()

bool m::Catalog::has_default_store ( ) const
inline

Returns true iff the Catalog has a default Store.

Definition at line 350 of file Catalog.hpp.

◆ instructions_begin() [1/2]

auto m::Catalog::instructions_begin ( )
inline

Definition at line 534 of file Catalog.hpp.

◆ instructions_begin() [2/2]

auto m::Catalog::instructions_begin ( ) const
inline

Definition at line 536 of file Catalog.hpp.

◆ instructions_cbegin()

auto m::Catalog::instructions_cbegin ( ) const
inline

Definition at line 538 of file Catalog.hpp.

◆ instructions_cend()

auto m::Catalog::instructions_cend ( ) const
inline

Definition at line 539 of file Catalog.hpp.

◆ instructions_end() [1/2]

auto m::Catalog::instructions_end ( )
inline

Definition at line 535 of file Catalog.hpp.

◆ instructions_end() [2/2]

auto m::Catalog::instructions_end ( ) const
inline

Definition at line 537 of file Catalog.hpp.

◆ logical_post_optimizations()

auto m::Catalog::logical_post_optimizations ( )
inline

Definition at line 644 of file Catalog.hpp.

Referenced by m::QueryDatabase::execute().

◆ logical_post_optimizations_begin() [1/2]

auto m::Catalog::logical_post_optimizations_begin ( )
inline

Definition at line 647 of file Catalog.hpp.

◆ logical_post_optimizations_begin() [2/2]

auto m::Catalog::logical_post_optimizations_begin ( ) const
inline

Definition at line 649 of file Catalog.hpp.

◆ logical_post_optimizations_cbegin()

auto m::Catalog::logical_post_optimizations_cbegin ( ) const
inline

Definition at line 651 of file Catalog.hpp.

◆ logical_post_optimizations_cend()

auto m::Catalog::logical_post_optimizations_cend ( ) const
inline

Definition at line 652 of file Catalog.hpp.

◆ logical_post_optimizations_end() [1/2]

auto m::Catalog::logical_post_optimizations_end ( )
inline

Definition at line 648 of file Catalog.hpp.

◆ logical_post_optimizations_end() [2/2]

auto m::Catalog::logical_post_optimizations_end ( ) const
inline

Definition at line 650 of file Catalog.hpp.

◆ num_databases()

std::size_t m::Catalog::num_databases ( ) const
inline

Returns the number of Databases.

Definition at line 256 of file Catalog.hpp.

◆ operator=()

Catalog & m::Catalog::operator= ( const Catalog )
privatedelete

◆ physical_post_optimizations()

auto m::Catalog::physical_post_optimizations ( )
inline

Definition at line 668 of file Catalog.hpp.

Referenced by m::QueryDatabase::execute().

◆ physical_post_optimizations_begin() [1/2]

auto m::Catalog::physical_post_optimizations_begin ( )
inline

Definition at line 671 of file Catalog.hpp.

◆ physical_post_optimizations_begin() [2/2]

auto m::Catalog::physical_post_optimizations_begin ( ) const
inline

Definition at line 673 of file Catalog.hpp.

◆ physical_post_optimizations_cbegin()

auto m::Catalog::physical_post_optimizations_cbegin ( ) const
inline

Definition at line 675 of file Catalog.hpp.

◆ physical_post_optimizations_cend()

auto m::Catalog::physical_post_optimizations_cend ( ) const
inline

Definition at line 676 of file Catalog.hpp.

◆ physical_post_optimizations_end() [1/2]

auto m::Catalog::physical_post_optimizations_end ( )
inline

Definition at line 672 of file Catalog.hpp.

◆ physical_post_optimizations_end() [2/2]

auto m::Catalog::physical_post_optimizations_end ( ) const
inline

Definition at line 674 of file Catalog.hpp.

◆ plan_enumerator() [1/2]

pe::PlanEnumerator & m::Catalog::plan_enumerator ( ) const
inline

Returns a reference to the default PlanEnumerator.

Definition at line 441 of file Catalog.hpp.

Referenced by m::QueryDatabase::execute(), m::execute_statement(), and m::logical_plan_from_statement().

◆ plan_enumerator() [2/2]

pe::PlanEnumerator & m::Catalog::plan_enumerator ( const ThreadSafePooledString name) const
inline

Returns a reference to the PlanEnumerator with the given name.

Definition at line 443 of file Catalog.hpp.

◆ plan_enumerators_begin() [1/2]

auto m::Catalog::plan_enumerators_begin ( )
inline

Definition at line 447 of file Catalog.hpp.

◆ plan_enumerators_begin() [2/2]

auto m::Catalog::plan_enumerators_begin ( ) const
inline

Definition at line 449 of file Catalog.hpp.

◆ plan_enumerators_cbegin()

auto m::Catalog::plan_enumerators_cbegin ( ) const
inline

Definition at line 451 of file Catalog.hpp.

Referenced by main().

◆ plan_enumerators_cend()

auto m::Catalog::plan_enumerators_cend ( ) const
inline

Definition at line 452 of file Catalog.hpp.

Referenced by main().

◆ plan_enumerators_end() [1/2]

auto m::Catalog::plan_enumerators_end ( )
inline

Definition at line 448 of file Catalog.hpp.

◆ plan_enumerators_end() [2/2]

auto m::Catalog::plan_enumerators_end ( ) const
inline

Definition at line 450 of file Catalog.hpp.

◆ pool() [1/2]

ThreadSafePooledString m::Catalog::pool ( const char *  str) const
inline

◆ pool() [2/2]

ThreadSafePooledString m::Catalog::pool ( std::string_view  str) const
inline

Creates an internalized copy of the string str by adding it to the internal StringPool.

Definition at line 276 of file Catalog.hpp.

◆ pre_optimizations()

auto m::Catalog::pre_optimizations ( )
inline

Definition at line 622 of file Catalog.hpp.

Referenced by m::QueryDatabase::execute().

◆ pre_optimizations_begin() [1/2]

auto m::Catalog::pre_optimizations_begin ( )
inline

Definition at line 623 of file Catalog.hpp.

◆ pre_optimizations_begin() [2/2]

auto m::Catalog::pre_optimizations_begin ( ) const
inline

Definition at line 625 of file Catalog.hpp.

◆ pre_optimizations_cbegin()

auto m::Catalog::pre_optimizations_cbegin ( ) const
inline

Definition at line 627 of file Catalog.hpp.

◆ pre_optimizations_cend()

auto m::Catalog::pre_optimizations_cend ( ) const
inline

Definition at line 628 of file Catalog.hpp.

◆ pre_optimizations_end() [1/2]

auto m::Catalog::pre_optimizations_end ( )
inline

Definition at line 624 of file Catalog.hpp.

◆ pre_optimizations_end() [2/2]

auto m::Catalog::pre_optimizations_end ( ) const
inline

Definition at line 626 of file Catalog.hpp.

◆ register_backend()

template<typename T >
requires std::derived_from<T, m::Backend>
void m::Catalog::register_backend ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new Backend with the given name.

Definition at line 458 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_cardinality_estimator()

template<typename T >
requires std::derived_from<T, m::CardinalityEstimator>
void m::Catalog::register_cardinality_estimator ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new CardinalityEstimator with the given name.

Definition at line 396 of file Catalog.hpp.

◆ register_cost_function()

void m::Catalog::register_cost_function ( ThreadSafePooledString  name,
std::unique_ptr< CostFunction CF,
const char *  description = nullptr 
)
inline

Registers a new CostFunction with the given name.

Definition at line 492 of file Catalog.hpp.

Referenced by __attribute__(), and main().

◆ register_data_layout()

void m::Catalog::register_data_layout ( ThreadSafePooledString  name,
std::unique_ptr< storage::DataLayoutFactory data_layout,
const char *  description = nullptr 
)
inline

Registers a new DataLayoutFactory with the given name.

Definition at line 369 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_instruction()

template<typename T >
requires std::derived_from<T, m::DatabaseInstruction>
void m::Catalog::register_instruction ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new DatabaseInstruction with the given name.

Definition at line 519 of file Catalog.hpp.

◆ register_logical_post_optimization()

void m::Catalog::register_logical_post_optimization ( ThreadSafePooledString  name,
LogicalPostOptimizationCallback  optimization,
const char *  description = nullptr 
)
inline

Registers a new logical post-optimization with the given name.

Definition at line 632 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_physical_post_optimization()

void m::Catalog::register_physical_post_optimization ( const char *  name,
PhysicalPostOptimizationCallback  optimization,
const char *  description = nullptr 
)
inline

Registers a new physical post-optimization with the given name.

Definition at line 656 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_plan_enumerator()

void m::Catalog::register_plan_enumerator ( ThreadSafePooledString  name,
std::unique_ptr< pe::PlanEnumerator PE,
const char *  description = nullptr 
)
inline

Registers a new PlanEnumerator with the given name.

Definition at line 431 of file Catalog.hpp.

◆ register_pre_optimization()

void m::Catalog::register_pre_optimization ( ThreadSafePooledString  name,
PreOptimizationCallback  optimization,
const char *  description = nullptr 
)
inline

Registers a new pre-optimization with the given name.

Definition at line 610 of file Catalog.hpp.

Referenced by M_LCOV_EXCL_STOP::__attribute__().

◆ register_scheduler()

void m::Catalog::register_scheduler ( ThreadSafePooledString  name,
std::unique_ptr< Scheduler scheduler,
const char *  description = nullptr 
)
inline

Registers a new Scheduler with the given name.

Definition at line 543 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_store()

template<typename T >
requires std::derived_from<T, m::Store>
void m::Catalog::register_store ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new Store with the given name.

Definition at line 343 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_table_property()

template<class T >
requires std::derived_from<T, TableFactoryDecorator>
void m::Catalog::register_table_property ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new TableFactoryDecorator with the given name.

The name will be used as the property name of the decorator in --table-properties.

Definition at line 582 of file Catalog.hpp.

Referenced by __attribute__().

◆ register_wasm_backend()

template<typename T >
requires std::derived_from<T, m::WasmEngine>
void m::Catalog::register_wasm_backend ( ThreadSafePooledString  name,
const char *  description = nullptr 
)
inline

Registers a new WasmBackend using the given WasmEngine with the given name.

Definition at line 465 of file Catalog.hpp.

◆ scheduler() [1/2]

Scheduler & m::Catalog::scheduler ( ) const
inline

Returns a reference to the default Scheduler.

Definition at line 553 of file Catalog.hpp.

Referenced by m::process_stream().

◆ scheduler() [2/2]

Scheduler & m::Catalog::scheduler ( const ThreadSafePooledString name) const
inline

Returns a reference to the Scheduler with the given name.

Definition at line 555 of file Catalog.hpp.

◆ schedulers_begin() [1/2]

auto m::Catalog::schedulers_begin ( )
inline

Definition at line 559 of file Catalog.hpp.

◆ schedulers_begin() [2/2]

auto m::Catalog::schedulers_begin ( ) const
inline

Definition at line 561 of file Catalog.hpp.

◆ schedulers_cbegin()

auto m::Catalog::schedulers_cbegin ( ) const
inline

Definition at line 563 of file Catalog.hpp.

Referenced by main().

◆ schedulers_cend()

auto m::Catalog::schedulers_cend ( ) const
inline

Definition at line 564 of file Catalog.hpp.

Referenced by main().

◆ schedulers_end() [1/2]

auto m::Catalog::schedulers_end ( )
inline

Definition at line 560 of file Catalog.hpp.

◆ schedulers_end() [2/2]

auto m::Catalog::schedulers_end ( ) const
inline

Definition at line 562 of file Catalog.hpp.

◆ set_database_in_use()

void m::Catalog::set_database_in_use ( Database db)
inline

Sets the Database db as the Database that is currently in use.


Definition at line 303 of file Catalog.hpp.

Referenced by m::execute_statement().

◆ stores_begin() [1/2]

auto m::Catalog::stores_begin ( )
inline

Definition at line 360 of file Catalog.hpp.

◆ stores_begin() [2/2]

auto m::Catalog::stores_begin ( ) const
inline

Definition at line 362 of file Catalog.hpp.

◆ stores_cbegin()

auto m::Catalog::stores_cbegin ( ) const
inline

Definition at line 364 of file Catalog.hpp.

◆ stores_cend()

auto m::Catalog::stores_cend ( ) const
inline

Definition at line 365 of file Catalog.hpp.

◆ stores_end() [1/2]

auto m::Catalog::stores_end ( )
inline

Definition at line 361 of file Catalog.hpp.

◆ stores_end() [2/2]

auto m::Catalog::stores_end ( ) const
inline

Definition at line 363 of file Catalog.hpp.

◆ table_factory() [1/2]

TableFactory & m::Catalog::table_factory ( ) const
inline

Returns a reference to the stored TableFactory.

Definition at line 576 of file Catalog.hpp.

◆ table_factory() [2/2]

std::unique_ptr< TableFactory > m::Catalog::table_factory ( std::unique_ptr< TableFactory table_factory)
inline

Replaces the stored TableFactory with table_factory and returns the old TableFactory.

Definition at line 572 of file Catalog.hpp.

Referenced by __attribute__().

◆ table_properties_begin() [1/2]

auto m::Catalog::table_properties_begin ( )
inline

Definition at line 601 of file Catalog.hpp.

◆ table_properties_begin() [2/2]

auto m::Catalog::table_properties_begin ( ) const
inline

Definition at line 603 of file Catalog.hpp.

◆ table_properties_cbegin()

auto m::Catalog::table_properties_cbegin ( ) const
inline

Definition at line 605 of file Catalog.hpp.

Referenced by main().

◆ table_properties_cend()

auto m::Catalog::table_properties_cend ( ) const
inline

Definition at line 606 of file Catalog.hpp.

Referenced by main().

◆ table_properties_end() [1/2]

auto m::Catalog::table_properties_end ( )
inline

Definition at line 602 of file Catalog.hpp.

◆ table_properties_end() [2/2]

auto m::Catalog::table_properties_end ( ) const
inline

Definition at line 604 of file Catalog.hpp.

◆ timer() [1/2]

Timer & m::Catalog::timer ( )
inline

◆ timer() [2/2]

const Timer & m::Catalog::timer ( ) const
inline

Returns the global Timer instance.

Definition at line 266 of file Catalog.hpp.

◆ unset_database_in_use()

void m::Catalog::unset_database_in_use ( )
inline

Unsets the Database that is currenly in use.

Definition at line 305 of file Catalog.hpp.

Referenced by generate_training_suite_filter().

Field Documentation

◆ allocator_

std::unique_ptr<memory::Allocator> m::Catalog::allocator_
private

our custom allocator

Definition at line 222 of file Catalog.hpp.

◆ arg_parser_

m::ArgParser m::Catalog::arg_parser_
private

Definition at line 220 of file Catalog.hpp.

◆ backends_

ComponentSet<BackendFactory> m::Catalog::backends_
private

Definition at line 321 of file Catalog.hpp.

◆ cardinality_estimators_

ComponentSet<CardinalityEstimatorFactory> m::Catalog::cardinality_estimators_
private

Definition at line 319 of file Catalog.hpp.

◆ cost_functions_

ComponentSet<CostFunction> m::Catalog::cost_functions_
private

Definition at line 322 of file Catalog.hpp.

◆ data_layouts_

ComponentSet<storage::DataLayoutFactory> m::Catalog::data_layouts_
private

Definition at line 318 of file Catalog.hpp.

◆ database_in_use_

Database* m::Catalog::database_in_use_ = nullptr
private

the currently used database

Definition at line 225 of file Catalog.hpp.

Referenced by Clear().

◆ databases_

std::unordered_map<ThreadSafePooledString, Database*> m::Catalog::databases_
private

the databases

Definition at line 224 of file Catalog.hpp.

Referenced by add_database(), Clear(), drop_database(), and ~Catalog().

◆ instructions_

ComponentSet<DatabaseInstructionFactory> m::Catalog::instructions_
private

Definition at line 323 of file Catalog.hpp.

◆ logical_post_optimizations_

ComponentSet<LogicalPostOptimizationCallback> m::Catalog::logical_post_optimizations_
private

Definition at line 333 of file Catalog.hpp.

◆ physical_post_optimizations_

ComponentSet<PhysicalPostOptimizationCallback> m::Catalog::physical_post_optimizations_
private

Definition at line 336 of file Catalog.hpp.

◆ plan_enumerators_

ComponentSet<pe::PlanEnumerator> m::Catalog::plan_enumerators_
private

Definition at line 320 of file Catalog.hpp.

◆ pool_

ThreadSafeStringPool m::Catalog::pool_
mutableprivate

pool of strings

Definition at line 223 of file Catalog.hpp.

◆ pre_optimizations_

ComponentSet<PreOptimizationCallback> m::Catalog::pre_optimizations_
private

Definition at line 330 of file Catalog.hpp.

◆ schedulers_

ComponentSet<Scheduler> m::Catalog::schedulers_
private

Definition at line 324 of file Catalog.hpp.

◆ standard_functions_

std::unordered_map<ThreadSafePooledString, Function*> m::Catalog::standard_functions_
private

functions defined by the SQL standard

Definition at line 226 of file Catalog.hpp.

Referenced by ~Catalog().

◆ stores_

ComponentSet<StoreFactory> m::Catalog::stores_
private

Definition at line 317 of file Catalog.hpp.

◆ table_factory_

std::unique_ptr<TableFactory> m::Catalog::table_factory_
private

The TableFactory used to construct Tables.

Definition at line 568 of file Catalog.hpp.

◆ table_properties_

ComponentSet<TableFactoryDecoratorCallback> m::Catalog::table_properties_
private

Definition at line 327 of file Catalog.hpp.

◆ the_catalog_

Catalog * Catalog::the_catalog_
staticprivate

Singleton Catalog instance.

Definition at line 218 of file Catalog.hpp.

Referenced by __attribute__().

◆ timer_

Timer m::Catalog::timer_
private

a global timer

Definition at line 227 of file Catalog.hpp.


The documentation for this struct was generated from the following files: