mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
28 lines
850 B
C++
28 lines
850 B
C++
#pragma once
|
||
|
||
#include <ostream>
|
||
|
||
#include <DB/Core/NamesAndTypes.h>
|
||
#include <DB/Parsers/IAST.h>
|
||
|
||
|
||
namespace DB
|
||
{
|
||
|
||
/** Берёт синтаксическое дерево и превращает его обратно в текст.
|
||
* В случае запроса INSERT, данные будут отсутствовать.
|
||
*/
|
||
inline void formatAST(const IAST & ast, std::ostream & s, size_t indent = 0, bool hilite = true, bool one_line = false)
|
||
{
|
||
IAST::FormatSettings settings(s, hilite, one_line);
|
||
ast.format(settings);
|
||
}
|
||
|
||
|
||
String formatColumnsForCreateQuery(NamesAndTypesList & columns);
|
||
|
||
inline std::ostream & operator<<(std::ostream & os, const IAST & ast) { return formatAST(ast, os, 0, false, true), os; }
|
||
inline std::ostream & operator<<(std::ostream & os, const ASTPtr & ast) { return formatAST(*ast, os, 0, false, true), os; }
|
||
|
||
}
|