MCPcopy Create free account
hub / github.com/ByConity/ByConity / fillData

Method fillData

src/Storages/System/StorageSystemVirtualWarehouseQueryQueue.cpp:30–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28}
29
30void StorageSystemVirtualWarehouseQueryQueue::fillData(MutableColumns & res_columns, ContextPtr context, const SelectQueryInfo &) const
31{
32 auto all_vw = context->getVirtualWarehousePool().getAll();
33 for (auto iter = all_vw.begin(); iter != all_vw.end(); iter++)
34 {
35 iter->second->getQueueManager().fillSystemTable([&](VirtualWarehouseQueue & queue) {
36
37 const auto rules = queue.getRules();
38 if (rules.empty())
39 {
40 size_t i = 0;
41 res_columns[i++]->insert(iter->first);
42 res_columns[i++]->insert(queue.queueName());
43 res_columns[i++]->insert(queue.maxConcurrency());
44 res_columns[i++]->insert(queue.queryQueueSize());
45 DB::Array tmp;
46 res_columns[i++]->insert("");
47 res_columns[i++]->insert(tmp);
48 res_columns[i++]->insert(tmp);
49 res_columns[i++]->insert("");
50 res_columns[i++]->insert("");
51 res_columns[i++]->insert("");
52 res_columns[i++]->insert("");
53 }
54 else
55 {
56 for (const auto & rule : rules)
57 {
58 size_t i = 0;
59 res_columns[i++]->insert(iter->first);
60 res_columns[i++]->insert(queue.queueName());
61 res_columns[i++]->insert(queue.maxConcurrency());
62 res_columns[i++]->insert(queue.queryQueueSize());
63 res_columns[i++]->insert(rule.rule_name);
64 DB::Array tmp;
65 tmp.reserve(rule.databases.size());
66 for (const auto & database : rule.databases)
67 {
68 tmp.emplace_back(database);
69 }
70 res_columns[i++]->insert(tmp);
71
72 tmp.clear();
73 for (const auto & table : rule.tables)
74 {
75 tmp.emplace_back(table);
76 }
77 res_columns[i++]->insert(tmp);
78 res_columns[i++]->insert(rule.user);
79 res_columns[i++]->insert(rule.ip);
80 res_columns[i++]->insert(rule.query_id);
81 res_columns[i++]->insert(rule.fingerprint);
82 }
83 }
84
85
86 });
87 }

Callers

nothing calls this directly

Calls 15

getQueueManagerMethod · 0.80
getRulesMethod · 0.80
queueNameMethod · 0.80
maxConcurrencyMethod · 0.80
queryQueueSizeMethod · 0.80
getAllMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
fillSystemTableMethod · 0.45
emptyMethod · 0.45
insertMethod · 0.45
reserveMethod · 0.45

Tested by

no test coverage detected