select-meta中的一个用例在语法解析阶段就判断为FALURE,请问要怎么解决
- SELECT * AND A EXISTENT COLUMN
select *, age from Select_meta;
-ID | AGE | AGE
+FAILURE
select-meta中的一个用例在语法解析阶段就判断为FALURE,请问要怎么解决
能描述得更具体一些么,比如你的observer版本,表的schema信息,包括一些错误日志和报错的截图都可以贴一下
这里应该是需要你处理select *,col 的语句,题目的要求应该是不支持该语法,你处理为FAILURE就行
代码就是从github的仓库test分支拉下来的,具体版本我也不太清楚
建表语句为create table t(id int, age int);
对于select *,age from t; 语句
parse.cpp中的 parse 方法直接返回为 SQL_SYNTAX,然后在ParseStage::handle_request方法将响应设置为FALURE,但是测试要求返回 ID|AGE|AGE,如下图所示
已解决,修改了yacc_sql.y,增加一条产生式即可
看错了,这里是需要支持这种解析,增加对select *,col 语法的支持即可
可以分享一下具体yacc_sql.y,增加一条产生式的细节吗?万分感谢!
select_attr中添加以下代码即可
| STAR attr_list {
RelAttr attr;
relation_attr_init(&attr, NULL, “*”);
selects_append_attribute(&CONTEXT->ssql->sstr.selection, &attr);
}