1#include "addTypeConversionToAST.h"
2
3#include <Parsers/ASTLiteral.h>
4#include <Parsers/ASTFunction.h>
5#include <Parsers/ASTExpressionList.h>
6#include <Parsers/ASTWithAlias.h>
7
8
9namespace DB
10{
11
12ASTPtr addTypeConversionToAST(ASTPtr && ast, const String & type_name)
13{
14 auto func = makeASTFunction("CAST", ast, std::make_shared<ASTLiteral>(type_name));
15
16 if (ASTWithAlias * ast_with_alias = dynamic_cast<ASTWithAlias *>(ast.get()))
17 {
18 func->alias = ast_with_alias->alias;
19 func->prefer_alias_to_column_name = ast_with_alias->prefer_alias_to_column_name;
20 ast_with_alias->alias.clear();
21 }
22
23 return func;
24}
25
26}
27