iotdb
iotdb copied to clipboard
聚合路径的数据类型查询问题
已知iotdb的TSServiceImpl类fetchMetadata函数中COLUMN分支的作用是返回一条路径的数据类型查询结果,特别地,给定一条聚合路径会触发PathErrorException,而此处对于PathErrorException目前只 catch 不处理。
考虑jdbc 的 resultSet = new TsfileQueryResultSet(this, execResp.getColumns(), client, sessionHandle, operationHandle, sql, execResp.getOperationType(), getColumnsType(execResp.getColumns())),当sql是聚合查询语句时, execResp.getColumns()得到的是聚合路径(例如"max(root.ln.wf01.wt01)"),getColumnsType(execResp.getColumns()))就会执行对该聚合路径的数据类型查询请求,这也是上述对于这种PathErrorException不抛出异常的部分原因。
综上所述,现状是既存在对聚合路径的数据类型查询请求,但是却没有对应的实现,对于聚合路径抛出的异常沉默处理。
改进上述问题的可能的两个方向:1)聚合查询语句的execResp.getColumns()得到干净的非聚合路径,或者2)fetchMetadata函数的COLUMN分支扩展实现对聚合路径的数据类型查询。