Skip to content

Commit 0518bbc

Browse files
Add more tests and fix bug
1 parent 72e72e4 commit 0518bbc

File tree

2 files changed

+75
-4
lines changed

2 files changed

+75
-4
lines changed

x-pack/plugin/esql-core/src/main/java/org/elasticsearch/xpack/esql/core/expression/predicate/regex/WildcardPatternList.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ public List<WildcardPattern> patternList() {
7070
@Override
7171
public Automaton createAutomaton(boolean ignoreCase) {
7272
List<Automaton> automatonList = patternList.stream().map(x->x.createAutomaton(ignoreCase)).toList();
73-
return Operations.union(automatonList);
73+
Automaton result = Operations.union(automatonList);
74+
return Operations.determinize(result, Operations.DEFAULT_DETERMINIZE_WORK_LIMIT);
7475
}
7576

7677
@Override

x-pack/plugin/esql/qa/testFixtures/src/main/resources/where-like.csv-spec

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,90 @@ emp_no:integer | first_name:keyword
7474
10013 | Eberhardt
7575
;
7676

77-
inLikeWithWildcard
77+
likeListEmptyArgWildcard
78+
from employees | where first_name like ("") | keep emp_no, first_name;
79+
80+
emp_no:integer | first_name:keyword
81+
;
82+
83+
likeListSingleArgWildcard
7884
from employees | where first_name like ("Eberhardt*") | keep emp_no, first_name;
7985

8086
emp_no:integer | first_name:keyword
8187
10013 | Eberhardt
8288
;
8389

84-
inLikeTwoArgs
85-
from employees | where first_name like ("Eberhardt*", "testString") | keep emp_no, first_name;
90+
likeListTwoArgWildcard
91+
from employees | where first_name like ("Eberhardt*", "testString*") | keep emp_no, first_name;
8692

8793
emp_no:integer | first_name:keyword
8894
10013 | Eberhardt
8995
;
9096

97+
likeListThreeArgWildcard
98+
from employees | where first_name like ("Eberhardt*", "Ot*", "Part?") | keep emp_no, first_name;
99+
100+
emp_no:integer | first_name:keyword
101+
10003 | Parto
102+
10013 | Eberhardt
103+
10029 | Otmar
104+
;
105+
106+
107+
likeListMultipleWhere
108+
from employees | where first_name like ("Eberhardt*", "Ot*", "Part?") | where first_name like ("Eberhard?", "Otm*")| keep emp_no, first_name;
109+
110+
emp_no:integer | first_name:keyword
111+
10013 | Eberhardt
112+
10029 | Otmar
113+
;
114+
115+
likeListAllWildcard
116+
from employees | where first_name like ("*") | keep emp_no, first_name | sort emp_no | limit 2;
117+
118+
emp_no:integer | first_name:keyword
119+
10001 | Georgi
120+
10002 | Bezalel
121+
;
122+
123+
likeListOverlappingPatterns
124+
from employees | where first_name like ("Eber*", "Eberhardt") | keep emp_no, first_name;
125+
126+
emp_no:integer | first_name:keyword
127+
10013 | Eberhardt
128+
;
129+
130+
likeListCaseSensitive
131+
from employees | where first_name like ("eberhardt", "EBERHARDT") | keep emp_no, first_name;
132+
133+
emp_no:integer | first_name:keyword
134+
;
135+
136+
likeListSpecialCharacters
137+
from employees | where first_name like ("*ar*", "?eor*") | keep emp_no, first_name | sort emp_no;
138+
139+
emp_no:integer | first_name:keyword
140+
10001 | Georgi
141+
10003 | Parto
142+
10011 | Mary
143+
10013 | Eberhardt
144+
10029 | Otmar
145+
10055 | Georgy
146+
10058 | Berhard
147+
10068 | Charlene
148+
10069 | Margareta
149+
10074 | Mokhtar
150+
10082 | Parviz
151+
10089 | Sudharsan
152+
10095 | Hilari
153+
;
154+
155+
likeListEscapedWildcard
156+
from employees | where first_name like ("Eberhar\\*") | keep emp_no, first_name;
157+
158+
emp_no:integer | first_name:keyword
159+
;
160+
91161
likeEvalNoWildcard
92162
from employees | eval x = concat(first_name, "X") | where x like "EberhardtX" | keep emp_no, first_name;
93163

0 commit comments

Comments
 (0)