### Topic Enhance existing features ### Which SQL? Hive ### SQL content `SELECT * from hive_current_catalog_schema1 WHERE hive_current_catalog_schema1 = ` ### What happened? 此时返回的补全项是重新推荐一个新的column <img width="455" alt="Image" src="https://github.com/user-attachments/assets/e9ca57f2-fc2b-408f-95b1-58d80d3be4cb" /> ### Description 希望 getSuggestionAtCaretPosition 返回的 "column" 的 wordRanges 可以包含到值,如期望返回的 column wordRanges 的结构: ``` [ { "syntaxContextType": "column", "wordRanges": [ { "text": "hive_current_catalog_schema1", "line": 1, "startIndex": 49, "endIndex": 76, "startColumn": 50, "endColumn": 78 }, { "text": " ", "line": 1, "startIndex": 77, "endIndex": 77, "startColumn": 78, "endColumn": 79 }, { "text": "=", "line": 1, "startIndex": 78, "endIndex": 78, "startColumn": 79, "endColumn": 80 }, { "text": " ", "line": 1, "startIndex": 79, "endIndex": 79, "startColumn": 80, "endColumn": 81 } ] } ] ``` 这样的话,可以根据当前的column,去进行下一步的处理,如查询这个column有什么枚举值之类的
Activity
liuxy0551 commentedon Jun 5, 2025
可以再具体点吗,比如示例 SQL、期望返回的 column wordRanges 是什么结构
wonghan commentedon Jun 5, 2025
已补充 @liuxy0551
[-][Feature Request]: getSuggestionAtCaretPosition[/-][+][Feature Request]: 希望 getSuggestionAtCaretPosition 返回的 "column" 的 wordRanges 可以包含到值[/+]liuxy0551 commentedon Jun 5, 2025
table.column或database.table.columnwonghan commentedon Jun 5, 2025
@liuxy0551
感谢你的解答,不过我的诉求不是在这个地方推荐表的字段,我想要的是推荐是字段的值
比如这个地方,假设
hive_current_catalog_schema1是枚举类型,那我可以在=之后,推荐字段的枚举值enum1/enum2/ ...=之后,再按一次空格,此时getSuggestionAtCaretPosition会将此位置当作新字段的开始,返回如下:因此我无法知道当前的位置其实是
[字段] [操作符] [值]中[值]的位置,就无法实现推荐字段的枚举值的功能dt-sql-parser返回的值,可以扩展到操作符之后,比如:那我就可以按照 @liuxy0551 说的表字段的推荐方法,去做字段值的推荐。
liuxy0551 commentedon Jun 5, 2025
谢谢你的解释,我了解了你的预期。
dt-sql-parser没有做这么细支上的需求,做到了 COLUMN 的提示补全,但是没有对 COLUMN 的各种属性进一步做延伸功能。src/grammar/hive/HiveSqlParser.g4,不过这需要比较了解 g4 文件的语法。抱歉,我们目前没有该功能的迭代计划,无法快速帮助你实现你的预期。