com.ql.util.express.rule.RuleManager#makeCondtionString方法对like指令的支持问题
- Dominant language
- Java
- Stars
- 5.6k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
问题复习步骤:
1、我先调用com.ql.util.express.ExpressRunner#parseContition方法拿到每一条Condition
2、然后通过com.ql.util.express.ExpressRunner#parseInstructionSet(condition.getText())方法获取指令集。
3、如果我的规则为“姓名 like '%张三%'”,则第2步会报错:com.ql.util.express.exception.QLCompileException: 程序错误,不满足语法规范,没有匹配到合适的语法,最大匹配致[0:0]
第3步报错的原因是通过第2步condition.getText()拿到的text值为姓名like'%张三%',中间没有空格。在parseInstructionSet解析时报错了
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with com.ql.util.express.rule.RuleManager#makeCondtionString and trace the output into ExpressRunner#parseContition and parseInstructionSet. Reproduce the failure with “姓名 like '%张三%'” and inspect how condition.getText() is formed. Done means the resulting like condition can be parsed without the missing whitespace causing QLCompileException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100