Skip to content

Commit 4319953

Browse files
committed
fix: preserve arity of aggregation fields
1 parent c717abe commit 4319953

8 files changed

Lines changed: 12 additions & 15 deletions

File tree

query-compiler/query-compiler/src/data_mapper.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use query_core::{
88
CreateManyRecordsFields, DeleteRecordFields, Node, Query, QueryGraph, ReadQuery, UpdateManyRecordsFields,
99
UpdateRecord, WriteQuery, schema::constants::aggregations,
1010
};
11-
use query_structure::{AggregationSelection, FieldSelection, SelectedField};
11+
use query_structure::{AggregationSelection, FieldSelection, FieldTypeInformation, SelectedField};
1212
use std::{borrow::Cow, collections::HashMap};
1313

1414
pub fn map_result_structure(graph: &QueryGraph, builder: &mut ResultNodeBuilder) -> Option<ResultNode> {
@@ -227,12 +227,13 @@ fn get_result_node_for_aggregation(
227227
} else {
228228
(ident.name, ident.db_name)
229229
};
230-
(aggregate_underscore_name(sel), name, db_name, ident.typ)
230+
let type_info = FieldTypeInformation::new(ident.typ, ident.arity, None);
231+
(aggregate_underscore_name(sel), name, db_name, type_info)
231232
})
232233
})
233234
.sorted_by_key(|(underscore_name, name, _, _)| ordered_set.get_index_of(&(*underscore_name, *name)))
234235
{
235-
let value = builder.new_value(db_name.to_owned(), typ.into());
236+
let value = builder.new_value(db_name.to_owned(), typ);
236237
if let Some(undescore_name) = underscore_name {
237238
node.entry_or_insert_nested(undescore_name)
238239
.add_field(name.to_owned(), value);

query-compiler/query-engine-tests-todo/neon/fail/join

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::chunking::chunking::order_by_aggregation_should_fail

query-compiler/query-engine-tests-todo/neon/fail/query

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::chunking::chunking::order_by_aggregation_should_fail

query-compiler/query-engine-tests-todo/pg-cockroachdb/fail/join

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking_cockroachdb::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::aggregation::many_count_relation::many_count_rel::count_with_distinct

query-compiler/query-engine-tests-todo/pg-cockroachdb/fail/query

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking_cockroachdb::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::chunking::chunking::order_by_aggregation_should_fail

query-compiler/query-engine-tests-todo/pg/fail/join

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::chunking::chunking::order_by_aggregation_should_fail

query-compiler/query-engine-tests-todo/pg/fail/query

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
new::regressions::prisma_13097::prisma_13097::group_by_boolean_array
2-
new::regressions::prisma_13097::prisma_13097::group_by_enum_array
31
new::regressions::prisma_7434::not_in_chunking::not_in_batch_filter
42
queries::aggregation::group_by::aggregation_group_by::group_by_ordering_sum_aggregation
53
queries::chunking::chunking::order_by_aggregation_should_fail

query-engine/query-structure/src/field/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,14 @@ pub struct FieldTypeInformation {
297297
}
298298

299299
impl FieldTypeInformation {
300+
pub fn new(typ: Type, arity: FieldArity, native_type: Option<NativeTypeInstance>) -> Self {
301+
FieldTypeInformation {
302+
typ,
303+
arity,
304+
native_type,
305+
}
306+
}
307+
300308
pub fn to_prisma_type(&self) -> PrismaValueType {
301309
let type_ = match (self.typ.id, self.native_type.as_ref()) {
302310
(TypeIdentifier::DateTime, Some(native_type))

0 commit comments

Comments
 (0)