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

Function analyzePlannerStats

src/storage/stats/planner_stats.cpp:108–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106}
107
108std::vector<table_id_t> analyzePlannerStats(StorageManager& storageManager, const Catalog& catalog,
109 const Transaction* transaction, const std::optional<std::string>& tableName) {
110 std::vector<table_id_t> analyzedTables;
111 auto analyzeTable = [&](const TableCatalogEntry& tableEntry) {
112 if (tableEntry.getType() == CatalogEntryType::FOREIGN_TABLE_ENTRY) {
113 return;
114 }
115 if (tableEntry.getTableType() == TableType::REL) {
116 auto& relGroupEntry = tableEntry.constCast<RelGroupCatalogEntry>();
117 for (const auto& relInfo : relGroupEntry.getRelEntryInfos()) {
118 storageManager.setCachedPlannerTableStats(buildPlannerTableStats(storageManager,
119 catalog, transaction, tableEntry, relInfo.oid));
120 analyzedTables.push_back(relInfo.oid);
121 }
122 return;
123 }
124 storageManager.setCachedPlannerTableStats(
125 buildPlannerTableStats(storageManager, catalog, transaction, tableEntry));
126 analyzedTables.push_back(tableEntry.getTableID());
127 };
128 if (tableName.has_value()) {
129 analyzeTable(*catalog.getTableCatalogEntry(transaction, tableName.value(), false));
130 return analyzedTables;
131 }
132 for (const auto tableEntry : catalog.getTableEntries(transaction, false /* useInternal */)) {
133 analyzeTable(*tableEntry);
134 }
135 return analyzedTables;
136}
137
138} // namespace storage
139} // namespace lbug

Callers 1

executeInternalMethod · 0.85

Calls 7

buildPlannerTableStatsFunction · 0.85
getTableCatalogEntryMethod · 0.80
getTableEntriesMethod · 0.80
getTypeMethod · 0.45
getTableTypeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected