Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0b15c46

Browse files
committed
% and _ escaping changed on LIKE operator NLPchina#137
1 parent feb2b1e commit 0b15c46

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/main/java/org/nlpcn/es4sql/query/maker/Maker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,9 @@ private ToXContent make(Condition cond, String name, Object value) throws SqlPar
156156
}
157157
case LIKE:
158158
case NLIKE:
159-
String queryStr = ((String) value).replace("[%]","ESCAPEDPERCENTAGE").replace("[_]","ESCAPEDUNDERSCORE");
159+
String queryStr = ((String) value);
160160
queryStr = queryStr.replace('%', '*').replace('_', '?');
161-
queryStr = queryStr.replace("ESCAPEDPERCENTAGE","%").replace("ESCAPEDUNDERSCORE","_");
161+
queryStr = queryStr.replace("&PERCENT","%").replace("&UNDERSCORE","_");
162162
WildcardQueryBuilder wildcardQuery = QueryBuilders.wildcardQuery(name, queryStr);
163163
x = isQuery ? wildcardQuery : FilterBuilders.queryFilter(wildcardQuery);
164164
break;

src/test/java/org/nlpcn/es4sql/SqlParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ public void fieldsAsNumbersOnWhere() throws SqlParseException {
782782

783783
@Test
784784
public void likeTestWithEscaped() throws SqlParseException {
785-
String query = "select * from x where name like '[_]hey_%[%]'";
785+
String query = "select * from x where name like '&UNDERSCOREhey_%&PERCENT'";
786786
Select select = parser.parseSelect((SQLQueryExpr) queryToExpr(query));
787787
BoolFilterBuilder explan = FilterMaker.explan(select.getWhere());
788788
String filterAsString = explan.toString();

0 commit comments

Comments
 (0)