SQL解析函数
ClickHouse的SQL解析入口函数:parseQuery, 函数原型:
ASTPtr parseQuery(
IParser & parser,
const char * begin,
const char * end,
const std::string & query_description,
size_t max_query_size)
具体的功能实现是通过调用tryParseQuery函数完成。
tryParseQuery函数
函数原型:
ASTPtr tryParseQuery(
IParser & parser,
const char * & pos,
const char * end,
std::string & out_error_message,
bool hilite,
const std::string & query_description,
bool allow_multi_statements,
size_t max_query_size)
该函数主要实现了两种功能:词法分析和语法解析。
ClickHouse词法解析
词法解析的主要任务是读入源程序的输入字符、将它们组成词素,生成并输出一个词法单元(Token)序列,每个词法单元对应于一个词素。
Cli