Skip to content

Commit 437a2e5

Browse files
ref(search): Be consistent about allowed spaces in lists (#26189)
1 parent fe4bcc6 commit 437a2e5

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/sentry/api/event_search.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@
112112
text_key = explicit_tag_key / search_key
113113
text_value = quoted_value / in_value
114114
quoted_value = ~r"\"((?:\\\"|[^\"])*)?\""s
115-
numeric_in_list = open_bracket numeric_value (comma spaces numeric_value)* closed_bracket
116-
text_in_list = open_bracket text_value (comma spaces text_value)* closed_bracket
115+
numeric_in_list = open_bracket numeric_value (spaces comma spaces numeric_value)* closed_bracket
116+
text_in_list = open_bracket text_value (spaces comma spaces text_value)* closed_bracket
117117
118118
# Formats
119119
iso_8601_date_format = ~r"(\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{1,6})?)?(Z|([+-]\d{2}:\d{2}))?)(?=\s|\)|$)"
@@ -407,7 +407,7 @@ def visit_boolean_filter(self, node, children):
407407
def process_list(self, first, remaining):
408408
return [
409409
first,
410-
*[item[2] for item in remaining],
410+
*[item[3] for item in remaining],
411411
]
412412

413413
def visit_numeric_filter(self, node, children):
@@ -622,9 +622,7 @@ def visit_text_filter(self, node, children):
622622
def visit_text_in_filter(self, node, children):
623623
(negation, search_key, _, search_value) = children
624624
operator = "IN"
625-
search_value = SearchValue(
626-
self.process_list(search_value[1], [(_, _, val) for _, _, val in search_value[2]])
627-
)
625+
search_value = SearchValue(self.process_list(search_value[1], search_value[2]))
628626

629627
operator = self.handle_negation(negation, operator)
630628

@@ -683,10 +681,7 @@ def visit_aggregate_key(self, node, children):
683681
return AggregateKey(self.key_mappings_lookup.get(key, key))
684682

685683
def visit_function_args(self, node, children):
686-
args = [children[0]]
687-
args.extend(v[3] for v in children[1])
688-
689-
return args
684+
return self.process_list(children[0], children[1])
690685

691686
def visit_search_value(self, node, children):
692687
return SearchValue(children[0])

tests/sentry/api/test_event_search.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,13 @@ def test_numeric_in_filter(self):
799799
value=SearchValue(raw_value=[500, 501, 502]),
800800
)
801801
]
802+
assert parse_search_query("project_id:[500, 501 ,502]") == [
803+
SearchFilter(
804+
key=SearchKey(name="project_id"),
805+
operator="IN",
806+
value=SearchValue(raw_value=[500, 501, 502]),
807+
),
808+
]
802809
assert parse_search_query("project_id:[500,501,502] issue.id:[100]") == [
803810
SearchFilter(
804811
key=SearchKey(name="project_id"),

0 commit comments

Comments
 (0)