alibaba / alibaba/QLExpress

com.ql.util.express.rule.RuleManager#makeCondtionString方法对like指令的支持问题

Open
#162 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.