Skip to content

Commit 5e7611f

Browse files
authored
[core][fix] Turn off regexp rewriting (#2142)
1 parent 4093b0a commit 5e7611f

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

fixcore/fixcore/db/arango_query.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@
8484
regexp_leading_trailing = re.compile(r"(^\^?[.][*])|([.][*][$]?$)")
8585
# see: cli.py
8686
DefaultSort = [Sort("reported.kind"), Sort("reported.name"), Sort("reported.id")]
87+
# Disabled for the moment, since likes are case-sensitive and regex are not
88+
TranslateRegexpToLike = False
8789

8890

8991
class ArangoQueryContext:
@@ -170,7 +172,7 @@ def empty_and_simple(value: Any) -> bool:
170172
)
171173

172174
def regexp_like(value: Any) -> Optional[str]:
173-
if not isinstance(value, str):
175+
if not TranslateRegexpToLike or not isinstance(value, str):
174176
return None
175177
ml = regexp_leading_trailing.sub("", value)
176178
ml = ml.replace("%", "\\%").replace("_", "\\_").replace(".*", "%").replace(".", "_")

fixcore/tests/fixcore/db/arango_query_test.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
possible_values,
1313
load_time_series,
1414
history_query,
15+
TranslateRegexpToLike,
1516
)
1617
from fixcore.db.graphdb import GraphDB
1718
from fixcore.db.model import QueryModel
@@ -438,12 +439,13 @@ def assert_view(query: str, expected: str, **kwargs: Any) -> Tuple[str, Json]:
438439
assert_view("g[*] in [1,2,3]", "SEARCH v0.g in @b0 RETURN v0) FOR result in view0")
439440
assert_view("g[*] not in [1,2,3]", "SEARCH v0.g not in @b0 RETURN v0) FOR result in view0")
440441
# use like instead of regex
441-
assert_view('name=~"^123"', "SEARCH v0.name LIKE @b0", b0="123%")
442-
assert_view('name=~"^.*123$"', "SEARCH v0.name LIKE @b0", b0="%123")
443-
assert_view('name=~".*123$"', "SEARCH v0.name LIKE @b0", b0="%123")
444-
assert_view('name=~"^123$"', "SEARCH v0.name LIKE @b0", b0="123")
445-
assert_view('name=~"^%1%2%.*3%$"', "SEARCH v0.name LIKE @b0", b0="\\%1\\%2\\%%3\\%")
446-
assert_view('name=~"^...$"', "SEARCH v0.name LIKE @b0", b0="___")
442+
if TranslateRegexpToLike:
443+
assert_view('name=~"^123"', "SEARCH v0.name LIKE @b0", b0="123%")
444+
assert_view('name=~"^.*123$"', "SEARCH v0.name LIKE @b0", b0="%123")
445+
assert_view('name=~".*123$"', "SEARCH v0.name LIKE @b0", b0="%123")
446+
assert_view('name=~"^123$"', "SEARCH v0.name LIKE @b0", b0="123")
447+
assert_view('name=~"^%1%2%.*3%$"', "SEARCH v0.name LIKE @b0", b0="\\%1\\%2\\%%3\\%")
448+
assert_view('name=~"^...$"', "SEARCH v0.name LIKE @b0", b0="___")
447449

448450
# cannot use like since regex cannot be expressed as glob. needs filter
449451
assert_view('name=~"123[0-9]+"',

0 commit comments

Comments
 (0)