Skip to content

Commit 9f23278

Browse files
authored
Merge branch 'main' into attribute-expression-selections-refactor
2 parents fa6bc54 + 976986d commit 9f23278

File tree

6 files changed

+72
-2
lines changed

6 files changed

+72
-2
lines changed

query-service-impl/src/test/java/org/hypertrace/core/query/service/pinot/MigrationTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,27 @@ public void testQuery() {
9393
executionContext);
9494
}
9595

96+
@Test
97+
public void testQuerySelectionUsingAggregateFunctionUsingMapAttribute() {
98+
Builder builder = QueryRequest.newBuilder();
99+
builder.addSelection(
100+
createFunctionExpression(
101+
"sum", createComplexAttributeExpression("Span.tags", "otel.status_code").build()));
102+
ViewDefinition viewDefinition = getDefaultViewDefinition();
103+
defaultMockingForExecutionContext();
104+
105+
assertPQLQuery(
106+
builder.build(),
107+
"Select sum(mapValue(tags__KEYS,'otel.status_code',tags__VALUES)) FROM SpanEventView "
108+
+ "where "
109+
+ viewDefinition.getTenantIdColumn()
110+
+ " = '"
111+
+ TENANT_ID
112+
+ "'",
113+
viewDefinition,
114+
executionContext);
115+
}
116+
96117
@Test
97118
public void testQuerySelectionUsingMapAttributeWithSubPath() {
98119
Builder builder = QueryRequest.newBuilder();

query-service/src/integrationTest/java/org/hypertrace/core/query/service/htqueries/HTPinotQueriesTest.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,19 @@ public void testAttributeExpressionQueries(
418418
assertEquals(expectedValue, rows.get(0).getColumn(0).getString());
419419
}
420420

421+
@Test
422+
public void testNotContainsKeyQuery() throws IOException {
423+
LOG.info("Not contains key query");
424+
Iterator<ResultSetChunk> itr =
425+
queryServiceClient.executeQuery(
426+
buildQueryFromJsonFile("not_contains_key_query.json"), TENANT_ID_MAP, 10000);
427+
List<ResultSetChunk> list = Streams.stream(itr).collect(Collectors.toList());
428+
List<Row> rows = list.get(0).getRowList();
429+
assertEquals(10, rows.size());
430+
assertEquals(
431+
"\"http.status_code\":\"200\"", rows.get(0).getColumn(0).getString().split(",")[1]);
432+
}
433+
421434
private static Stream<Arguments> provideQueryRequestForServiceQueries()
422435
throws InvalidProtocolBufferException {
423436
QueryRequest queryRequest1 = ServicesQueries.buildQuery1();
@@ -445,7 +458,8 @@ private static Stream<Arguments> provideQueryRequestForExplorerQueries()
445458
private static Stream<Arguments> provideQueryRequestForAttributeExpressionQueries()
446459
throws IOException {
447460
return Stream.of(
448-
Arguments.arguments(buildQueryFromJsonFile("query1.json"), 10, "server"),
449-
Arguments.arguments(buildQueryFromJsonFile("query2.json"), 2, "server"));
461+
Arguments.arguments(buildQueryFromJsonFile("order_by_query.json"), 10, "server"),
462+
Arguments.arguments(buildQueryFromJsonFile("group_by_query.json"), 2, "server"),
463+
Arguments.arguments(buildQueryFromJsonFile("aggregated_function_query.json"), 1, "0.0"));
450464
}
451465
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"selection": [{
3+
"function": {
4+
"functionName": "sum",
5+
"arguments": [{
6+
"attributeExpression": {
7+
"attributeId": "EVENT.spanTags",
8+
"subpath": "otel.status_code"
9+
}
10+
}]
11+
}
12+
}]
13+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"filter": {
3+
"lhs": {
4+
"attributeExpression": {
5+
"attributeId": "EVENT.spanTags"
6+
}
7+
},
8+
"operator": "NOT_CONTAINS_KEY",
9+
"rhs": {
10+
"literal": {
11+
"value": {
12+
"string": "Flags"
13+
}
14+
}
15+
}
16+
},
17+
"selection": [{
18+
"attributeExpression": {
19+
"attributeId": "EVENT.spanTags"
20+
}
21+
}]
22+
}

0 commit comments

Comments
 (0)