MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / QueryTreePassManager

Class QueryTreePassManager

src/Analyzer/QueryTreePassManager.h:13–48  ·  view source on GitHub ↗

Query tree pass manager provide functionality to register and run passes * on query tree. */

Source from the content-addressed store, hash-verified

11 * on query tree.
12 */
13class QueryTreePassManager : public WithContext
14{
15public:
16 explicit QueryTreePassManager(ContextPtr context_);
17
18 /// Get registered passes
19 const std::vector<QueryTreePassPtr> & getPasses() const
20 {
21 return passes;
22 }
23
24 /// Add query tree pass
25 void addPass(QueryTreePassPtr pass);
26
27 /// Run query tree passes on query tree
28 void run(QueryTreeNodePtr & query_tree_node);
29
30 /// Run only query tree passes responsible to name resolution.
31 void runOnlyResolve(QueryTreeNodePtr & query_tree_node);
32
33 /** Run query tree passes on query tree up to up_to_pass_index.
34 * Throws exception if up_to_pass_index is greater than passes size.
35 */
36 void run(QueryTreeNodePtr & query_tree_node, size_t up_to_pass_index);
37
38 /// Dump query tree passes
39 void dump(WriteBuffer & buffer);
40
41 /** Dump query tree passes to up_to_pass_index.
42 * Throws exception if up_to_pass_index is greater than passes size.
43 */
44 void dump(WriteBuffer & buffer, size_t up_to_pass_index);
45
46private:
47 std::vector<QueryTreePassPtr> passes;
48};
49
50void addQueryTreePasses(QueryTreePassManager & manager, bool only_analyze = false);
51

Callers 1

explainQueryTreeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected