MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / getPlannerStats

Function getPlannerStats

src/planner/join_order/cardinality_estimator.cpp:28–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28static PlannerTableStats getPlannerStats(main::ClientContext* context,
29 storage::StorageManager& storageManager, catalog::TableCatalogEntry& tableEntry,
30 table_id_t physicalTableID = INVALID_TABLE_ID) {
31 const auto tableID =
32 physicalTableID == INVALID_TABLE_ID ? tableEntry.getTableID() : physicalTableID;
33 auto* table = storageManager.getTable(tableID);
34 if (auto cachedStats = storageManager.getCachedPlannerTableStats(tableID);
35 cachedStats.has_value() && cachedStats->tableChangeEpoch == table->getChangeEpoch()) {
36 return std::move(cachedStats.value());
37 }
38 return storage::buildPlannerTableStats(storageManager, *catalog::Catalog::Get(*context),
39 transaction::Transaction::Get(*context), tableEntry, physicalTableID,
40 storage::PlannerStatsMode::SCHEMA_ONLY);
41}
42
43void CardinalityEstimator::init(const QueryGraph& queryGraph) {
44 for (auto i = 0u; i < queryGraph.getNumQueryNodes(); ++i) {

Callers 1

initMethod · 0.85

Calls 3

buildPlannerTableStatsFunction · 0.85
getTableMethod · 0.45

Tested by

no test coverage detected