@@ -112,13 +112,13 @@ std::stack<const QueryNode *> getSupportingParallelReplicasQuery(const IQueryTre
112112 return res;
113113}
114114
115- class ReplaceTableNodeToDummyVisitor : public InDepthQueryTreeVisitor <ReplaceTableNodeToDummyVisitor, true >
115+ class ReplaceTableNodeToDummyVisitor : public InDepthQueryTreeVisitorWithContext <ReplaceTableNodeToDummyVisitor>
116116{
117117public:
118- using Base = InDepthQueryTreeVisitor <ReplaceTableNodeToDummyVisitor, true >;
118+ using Base = InDepthQueryTreeVisitorWithContext <ReplaceTableNodeToDummyVisitor>;
119119 using Base::Base;
120120
121- void visitImpl ( const QueryTreeNodePtr & node)
121+ void enterImpl ( QueryTreeNodePtr & node)
122122 {
123123 auto * table_node = node->as <TableNode>();
124124 auto * table_function_node = node->as <TableFunctionNode>();
@@ -133,21 +133,19 @@ class ReplaceTableNodeToDummyVisitor : public InDepthQueryTreeVisitor<ReplaceTab
133133 ColumnsDescription (storage_snapshot->getColumns (get_column_options)),
134134 storage_snapshot);
135135
136- auto dummy_table_node = std::make_shared<TableNode>(std::move (storage_dummy), context );
136+ auto dummy_table_node = std::make_shared<TableNode>(std::move (storage_dummy), getContext () );
137137
138138 dummy_table_node->setAlias (node->getAlias ());
139139 replacement_map.emplace (node.get (), std::move (dummy_table_node));
140140 }
141141 }
142142
143- ContextPtr context;
144143 std::unordered_map<const IQueryTreeNode *, QueryTreeNodePtr> replacement_map;
145144};
146145
147- QueryTreeNodePtr replaceTablesWithDummyTables (const QueryTreeNodePtr & query, const ContextPtr & context)
146+ QueryTreeNodePtr replaceTablesWithDummyTables (QueryTreeNodePtr query, const ContextPtr & context)
148147{
149- ReplaceTableNodeToDummyVisitor visitor;
150- visitor.context = context;
148+ ReplaceTableNodeToDummyVisitor visitor (context);
151149 visitor.visit (query);
152150
153151 return query->cloneAndReplace (visitor.replacement_map );
0 commit comments