1#pragma once
2
3#include <Parsers/IAST.h>
4#include <Parsers/ASTFunction.h>
5#include <Parsers/ASTSelectQuery.h>
6#include <Parsers/ASTSelectWithUnionQuery.h>
7#include <Interpreters/InDepthNodeVisitor.h>
8
9namespace DB
10{
11
12struct ExtractFunctionData
13{
14 using TypeToVisit = ASTFunction;
15
16 std::vector<ASTFunction *> functions;
17 std::vector<ASTFunction *> aggregate_functions;
18
19 void visit(ASTFunction & identifier, ASTPtr &);
20};
21
22using ExtractFunctionMatcher = OneTypeMatcher<ExtractFunctionData>;
23using ExtractFunctionVisitor = InDepthNodeVisitor<ExtractFunctionMatcher, true>;
24
25}
26