MCPcopy Create free account
hub / github.com/alibaba/zvec / sql_info

Method sql_info

src/db/sqlengine/parser/zvec_sql_parser.cc:94–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92}
93
94SQLInfo::Ptr ZVecSQLParser::sql_info(VoidPtr tree) {
95 ParseTree *parseTree = reinterpret_cast<ParseTree *>(tree);
96 SQLParser::Compilation_unitContext *compilation_unit_node =
97 (SQLParser::Compilation_unitContext *)parseTree;
98 SQLParser::Unit_statementContext *unit_statement_node =
99 (SQLParser::Unit_statementContext *)compilation_unit_node->children[0];
100
101 SQLInfo::SQLType sqlType = sql_type(unit_statement_node);
102 if (sqlType == SQLInfo::SQLType::NONE) {
103 return nullptr;
104 }
105
106 BaseInfo::Ptr baseInfo = nullptr;
107 switch (sqlType) {
108 case SQLInfo::SQLType::SELECT:
109 baseInfo =
110 select_info(unit_statement_node->dql_statement()->select_statement());
111 break;
112 default:
113 break;
114 }
115
116 if (baseInfo == nullptr) {
117 return nullptr;
118 }
119
120 if (baseInfo->validate() == false) {
121 err_msg_ = baseInfo->err_msg();
122 return nullptr;
123 }
124
125 SQLInfo::Ptr sqlInfo = std::make_shared<SQLInfo>(sqlType, baseInfo);
126 return sqlInfo;
127}
128
129SQLInfo::SQLType ZVecSQLParser::sql_type(VoidPtr node) {
130 SQLParser::Unit_statementContext *unit_statement_node =

Callers

nothing calls this directly

Calls 4

select_statementMethod · 0.80
dql_statementMethod · 0.80
err_msgMethod · 0.80
validateMethod · 0.45

Tested by

no test coverage detected