From e3360b03f69f3293a7e47e5eea0c1a2ad7c4f7a3 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Wed, 8 Jan 2025 16:36:19 +0100 Subject: [PATCH 01/14] feat(updateMany): add test for limit in updateMany --- .../writes/top_level_mutations/update_many.rs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs index c9a6d6df567c..6cc5745d071f 100644 --- a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs +++ b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs @@ -122,6 +122,40 @@ mod update_many { Ok(()) } + // "An updateMany mutation" should "update max limit number of items" + #[connector_test] + async fn update_max_limit_items(runner: Runner) -> TestResult<()> { + create_row(&runner, r#"{ id: 1, optStr: "str1" }"#).await?; + create_row(&runner, r#"{ id: 2, optStr: "str2" }"#).await?; + create_row(&runner, r#"{ id: 3, optStr: "str3" }"#).await?; + + insta::assert_snapshot!( + run_query!(&runner, r#"mutation { + updateManyTestModel( + where: { } + data: { optStr: { set: "updated" } } + limit: 2 + ){ + count + } + }"#), + @r###"{"data":{"updateManyTestModel":{"count":2}}}"### + ); + + insta::assert_snapshot!( + run_query!( + &runner, + r#"{ + findManyTestModel(orderBy: { id: asc }) { + optStr + } + }"#), + @r###"{"data":{"findManyTestModel":[{"optStr":"updated"},{"optStr":"updated"},{"optStr":"str3"}]}}"### + ); + + Ok(()) + } + // "An updateMany mutation" should "correctly apply all number operations for Int" #[connector_test(exclude(CockroachDb))] async fn apply_number_ops_for_int(runner: Runner) -> TestResult<()> { From 1a7f1e9e29b1b7f269bf98bdd3af825267f8fc76 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 10:16:04 +0100 Subject: [PATCH 02/14] feat(updateMany): implement limit for updateMany --- .../src/interface/connection.rs | 4 +++ .../src/interface/transaction.rs | 4 +++ .../src/root_queries/write.rs | 2 ++ .../query-connector/src/interface.rs | 2 ++ .../src/database/connection.rs | 6 ++-- .../src/database/operations/update.rs | 34 ++++++++++++++++--- .../src/database/operations/write.rs | 22 +++++++++--- .../src/database/transaction.rs | 5 ++- .../interpreter/query_interpreters/write.rs | 11 ++++-- query-engine/core/src/query_ast/write.rs | 1 + .../write/nested/update_nested.rs | 1 + .../src/query_graph_builder/write/update.rs | 16 ++++++++- .../src/query_graph_builder/write/utils.rs | 4 +++ .../src/build/input_types/fields/arguments.rs | 7 +++- 14 files changed, 103 insertions(+), 16 deletions(-) diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs index a0c49fca73ae..161b9bee83b1 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs @@ -96,6 +96,7 @@ impl WriteOperations for MongoDbConnection { model: &Model, record_filter: connector_interface::RecordFilter, args: WriteArgs, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(async move { @@ -106,6 +107,7 @@ impl WriteOperations for MongoDbConnection { record_filter, args, UpdateType::Many, + limit, ) .await?; @@ -120,6 +122,7 @@ impl WriteOperations for MongoDbConnection { _record_filter: connector_interface::RecordFilter, _args: WriteArgs, _selected_fields: FieldSelection, + _limit: Option, _traceparent: Option, ) -> connector_interface::Result { unimplemented!() @@ -141,6 +144,7 @@ impl WriteOperations for MongoDbConnection { record_filter, args, UpdateType::One, + None, ) .await?; diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs index 00115b5cfba9..3bfe6c01ed67 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs @@ -127,6 +127,7 @@ impl WriteOperations for MongoDbTransaction<'_> { model: &Model, record_filter: connector_interface::RecordFilter, args: connector_interface::WriteArgs, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(async move { @@ -137,6 +138,7 @@ impl WriteOperations for MongoDbTransaction<'_> { record_filter, args, UpdateType::Many, + limit, ) .await?; Ok(result.len()) @@ -150,6 +152,7 @@ impl WriteOperations for MongoDbTransaction<'_> { _record_filter: connector_interface::RecordFilter, _args: connector_interface::WriteArgs, _selected_fields: FieldSelection, + _limit: Option, _traceparent: Option, ) -> connector_interface::Result { unimplemented!() @@ -171,6 +174,7 @@ impl WriteOperations for MongoDbTransaction<'_> { record_filter, args, UpdateType::One, + None, // This is a single record update already => no need for additional limit ) .await?; // NOTE: Atomic updates are not yet implemented for MongoDB, so we only return ids. diff --git a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs index 622583c2a5f9..08b1c59730a8 100644 --- a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs +++ b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs @@ -146,6 +146,7 @@ pub async fn update_records<'conn>( record_filter: RecordFilter, mut args: WriteArgs, update_type: UpdateType, + limit: Option, ) -> crate::Result> { let coll = database.collection::(model.db_name()); @@ -160,6 +161,7 @@ pub async fn update_records<'conn>( let ids: Vec = if let Some(selectors) = record_filter.selectors { selectors .into_iter() + .take(limit.unwrap_or(i64::MAX) as usize) .map(|p| { (&id_field, p.values().next().unwrap()) .into_bson() diff --git a/query-engine/connectors/query-connector/src/interface.rs b/query-engine/connectors/query-connector/src/interface.rs index bfc6c5d725a8..a3c958c99fba 100644 --- a/query-engine/connectors/query-connector/src/interface.rs +++ b/query-engine/connectors/query-connector/src/interface.rs @@ -286,6 +286,7 @@ pub trait WriteOperations { model: &Model, record_filter: RecordFilter, args: WriteArgs, + limit: Option, traceparent: Option, ) -> crate::Result; @@ -299,6 +300,7 @@ pub trait WriteOperations { record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, + limit: Option, traceparent: Option, ) -> crate::Result; diff --git a/query-engine/connectors/sql-query-connector/src/database/connection.rs b/query-engine/connectors/sql-query-connector/src/database/connection.rs index e47fb9ce0192..ae9ddfc89470 100644 --- a/query-engine/connectors/sql-query-connector/src/database/connection.rs +++ b/query-engine/connectors/sql-query-connector/src/database/connection.rs @@ -226,12 +226,13 @@ where model: &Model, record_filter: RecordFilter, args: WriteArgs, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); catch( &self.connection_info, - write::update_records(&self.inner, model, record_filter, args, &ctx), + write::update_records(&self.inner, model, record_filter, args, limit, &ctx), ) .await } @@ -242,12 +243,13 @@ where record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); catch( &self.connection_info, - write::update_records_returning(&self.inner, model, record_filter, args, selected_fields, &ctx), + write::update_records_returning(&self.inner, model, record_filter, args, selected_fields, limit, &ctx), ) .await } diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs index 4773853ea25c..82dde0be30e4 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs @@ -2,14 +2,14 @@ use super::read::get_single_record; use crate::column_metadata::{self, ColumnMetadata}; use crate::filter::FilterBuilder; -use crate::model_extensions::AsColumns; +use crate::model_extensions::{AsColumn, AsColumns, AsTable}; use crate::query_builder::write::{build_update_and_set_query, chunk_update_with_ids}; use crate::row::ToSqlRow; use crate::{Context, QueryExt, Queryable}; use connector_interface::*; use itertools::Itertools; -use quaint::ast::Query; +use quaint::ast::*; use query_structure::*; /// Performs an update with an explicit selection set. @@ -79,7 +79,7 @@ pub(crate) async fn update_one_without_selection( let id_args = pick_args(&model.primary_identifier().into(), &args); // Perform the update and return the ids on which we've applied the update. // Note: We are _not_ getting back the ids from the update. Either we got some ids passed from the parent operation or we perform a read _before_ doing the update. - let (updates, ids) = update_many_from_ids_and_filter(conn, model, record_filter, args, None, ctx).await?; + let (updates, ids) = update_many_from_ids_and_filter(conn, model, record_filter, args, None, None, ctx).await?; for update in updates { conn.execute(update).await?; } @@ -103,11 +103,34 @@ pub(super) async fn update_many_from_filter( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, + limit: Option, ctx: &Context<'_>, ) -> crate::Result> { let update = build_update_and_set_query(model, args, None, ctx); let filter_condition = FilterBuilder::without_top_level_joins().visit_filter(record_filter.filter, ctx); - let update = update.so_that(filter_condition); + + let condition = if let Some(limit) = limit { + let columns = model + .primary_identifier() + .as_scalar_fields() + .expect("primary identifier must contain scalar fields") + .into_iter() + .map(|f| f.as_column(ctx)) + .collect::>(); + + ConditionTree::from( + Row::from(columns.clone()).in_selection( + Select::from_table(model.as_table(ctx)) + .columns(columns) + .so_that(filter_condition) + .limit(limit as usize), + ), + ) + } else { + filter_condition + }; + + let update = update.so_that(condition); if let Some(selected_fields) = selected_fields { Ok(update .returning(selected_fields.as_columns(ctx).map(|c| c.set_is_selected(true))) @@ -125,6 +148,7 @@ pub(super) async fn update_many_from_ids_and_filter( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, + limit: Option, ctx: &Context<'_>, ) -> crate::Result<(Vec>, Vec)> { let filter_condition = FilterBuilder::without_top_level_joins().visit_filter(record_filter.filter.clone(), ctx); @@ -136,7 +160,7 @@ pub(super) async fn update_many_from_ids_and_filter( let updates = { let update = build_update_and_set_query(model, args, selected_fields, ctx); - let ids: Vec<&SelectionResult> = ids.iter().collect(); + let ids: Vec<&SelectionResult> = ids.iter().take(limit.unwrap_or(i64::MAX) as usize).collect(); chunk_update_with_ids(update, model, &ids, filter_condition, ctx)? }; diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs index 1afa8aea8b84..5c538eed6ce4 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs @@ -376,15 +376,17 @@ async fn generate_updates( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, + limit: Option, ctx: &Context<'_>, ) -> crate::Result>> { + println!(">>>> DBFlo A {:?}", record_filter.selectors); if record_filter.has_selectors() { let (updates, _) = - update_many_from_ids_and_filter(conn, model, record_filter, args, selected_fields, ctx).await?; + update_many_from_ids_and_filter(conn, model, record_filter, args, selected_fields, limit, ctx).await?; Ok(updates) } else { Ok(vec![ - update_many_from_filter(model, record_filter, args, selected_fields, ctx).await?, + update_many_from_filter(model, record_filter, args, selected_fields, limit, ctx).await?, ]) } } @@ -398,6 +400,7 @@ pub(crate) async fn update_records( model: &Model, record_filter: RecordFilter, args: WriteArgs, + limit: Option, ctx: &Context<'_>, ) -> crate::Result { if args.args.is_empty() { @@ -405,7 +408,7 @@ pub(crate) async fn update_records( } let mut count = 0; - for update in generate_updates(conn, model, record_filter, args, None, ctx).await? { + for update in generate_updates(conn, model, record_filter, args, None, limit, ctx).await? { count += conn.execute(update).await?; } Ok(count as usize) @@ -419,6 +422,7 @@ pub(crate) async fn update_records_returning( record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, + limit: Option, ctx: &Context<'_>, ) -> crate::Result { let field_names: Vec = selected_fields.db_names().collect(); @@ -426,7 +430,17 @@ pub(crate) async fn update_records_returning( let meta = column_metadata::create(&field_names, &idents); let mut records = ManyRecords::new(field_names.clone()); - for update in generate_updates(conn, model, record_filter, args, Some(&selected_fields.into()), ctx).await? { + for update in generate_updates( + conn, + model, + record_filter, + args, + Some(&selected_fields.into()), + limit, + ctx, + ) + .await? + { let result_set = conn.query(update).await?; for result_row in result_set { diff --git a/query-engine/connectors/sql-query-connector/src/database/transaction.rs b/query-engine/connectors/sql-query-connector/src/database/transaction.rs index cdf5a4662378..fde803502de1 100644 --- a/query-engine/connectors/sql-query-connector/src/database/transaction.rs +++ b/query-engine/connectors/sql-query-connector/src/database/transaction.rs @@ -220,12 +220,13 @@ impl WriteOperations for SqlConnectorTransaction<'_> { model: &Model, record_filter: RecordFilter, args: WriteArgs, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); catch( &self.connection_info, - write::update_records(self.inner.as_queryable(), model, record_filter, args, &ctx), + write::update_records(self.inner.as_queryable(), model, record_filter, args, limit, &ctx), ) .await } @@ -236,6 +237,7 @@ impl WriteOperations for SqlConnectorTransaction<'_> { record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); @@ -247,6 +249,7 @@ impl WriteOperations for SqlConnectorTransaction<'_> { record_filter, args, selected_fields, + limit, &ctx, ), ) diff --git a/query-engine/core/src/interpreter/query_interpreters/write.rs b/query-engine/core/src/interpreter/query_interpreters/write.rs index 083cf238cae6..3dcb992b4356 100644 --- a/query-engine/core/src/interpreter/query_interpreters/write.rs +++ b/query-engine/core/src/interpreter/query_interpreters/write.rs @@ -307,7 +307,14 @@ async fn update_many( ) -> InterpretationResult { if let Some(selected_fields) = q.selected_fields { let records = tx - .update_records_returning(&q.model, q.record_filter, q.args, selected_fields.fields, traceparent) + .update_records_returning( + &q.model, + q.record_filter, + q.args, + selected_fields.fields, + q.limit, + traceparent, + ) .await?; let nested: Vec = @@ -325,7 +332,7 @@ async fn update_many( Ok(QueryResult::RecordSelection(Some(Box::new(selection)))) } else { let affected_records = tx - .update_records(&q.model, q.record_filter, q.args, traceparent) + .update_records(&q.model, q.record_filter, q.args, q.limit, traceparent) .await?; Ok(QueryResult::Count(affected_records)) diff --git a/query-engine/core/src/query_ast/write.rs b/query-engine/core/src/query_ast/write.rs index 51ddf05724f2..00063b0dcf7a 100644 --- a/query-engine/core/src/query_ast/write.rs +++ b/query-engine/core/src/query_ast/write.rs @@ -368,6 +368,7 @@ pub struct UpdateManyRecords { /// Fields of updated records that client has requested to return. /// `None` if the connector does not support returning the updated rows. pub selected_fields: Option, + pub limit: Option, } #[derive(Debug, Clone)] diff --git a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs index 4628912a4a46..fa9a3d6ae72b 100644 --- a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs +++ b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs @@ -150,6 +150,7 @@ pub fn nested_update_many( None, None, data_map, + None, // TODO: would it make sense to support limit on nested updates? )?; graph.create_edge( diff --git a/query-engine/core/src/query_graph_builder/write/update.rs b/query-engine/core/src/query_graph_builder/write/update.rs index 2f9024d69320..ab66d8acd097 100644 --- a/query-engine/core/src/query_graph_builder/write/update.rs +++ b/query-engine/core/src/query_graph_builder/write/update.rs @@ -1,4 +1,5 @@ use super::*; +use crate::query_document::ParsedInputValue; use crate::query_graph_builder::write::write_args_parser::*; use crate::ParsedObject; use crate::{ @@ -7,7 +8,7 @@ use crate::{ ArgumentListLookup, ParsedField, ParsedInputMap, }; use psl::datamodel_connector::ConnectorCapability; -use query_structure::{Filter, IntoFilter, Model}; +use query_structure::{Filter, IntoFilter, Model, PrismaValue}; use schema::{constants::args, QuerySchema}; use std::convert::TryInto; @@ -136,6 +137,15 @@ pub fn update_many_records( None => Filter::empty(), }; + // "limit" + let limit = field + .arguments + .lookup(args::LIMIT) + .and_then(|limit_arg| match limit_arg.value { + ParsedInputValue::Single(PrismaValue::Int(i)) => Some(i), + _ => None, + }); + // "data" let data_argument = field.arguments.lookup(args::DATA).unwrap(); let data_map: ParsedInputMap<'_> = data_argument.value.try_into()?; @@ -149,6 +159,7 @@ pub fn update_many_records( Some(field.name), field.nested_fields.filter(|_| with_field_selection), data_map, + limit, )?; } else { let pre_read_node = graph.create_node(utils::read_ids_infallible( @@ -164,6 +175,7 @@ pub fn update_many_records( Some(field.name), field.nested_fields.filter(|_| with_field_selection), data_map, + limit, )?; utils::insert_emulated_on_update(graph, query_schema, &model, &pre_read_node, &update_many_node)?; @@ -270,6 +282,7 @@ pub fn update_many_record_node( name: Option, nested_field_selection: Option>, data_map: ParsedInputMap<'_>, + limit: Option, ) -> QueryGraphBuilderResult where T: Into, @@ -302,6 +315,7 @@ where record_filter, args, selected_fields, + limit, }; let update_many_node = graph.create_node(Query::Write(WriteQuery::UpdateManyRecords(update_many))); diff --git a/query-engine/core/src/query_graph_builder/write/utils.rs b/query-engine/core/src/query_graph_builder/write/utils.rs index d73f5ae4a0b7..b5db88b2240d 100644 --- a/query-engine/core/src/query_graph_builder/write/utils.rs +++ b/query-engine/core/src/query_graph_builder/write/utils.rs @@ -229,6 +229,7 @@ where record_filter, args, selected_fields: None, + limit: None, }; graph.create_node(Query::Write(WriteQuery::UpdateManyRecords(ur))) @@ -618,6 +619,7 @@ pub fn emulate_on_delete_set_null( record_filter: RecordFilter::empty(), args: WriteArgs::new(child_update_args, crate::executor::get_request_now()), selected_fields: None, + limit: None, }); let set_null_dependents_node = graph.create_node(Query::Write(set_null_query)); @@ -770,6 +772,7 @@ pub fn emulate_on_update_set_null( record_filter: RecordFilter::empty(), args: WriteArgs::new(child_update_args, crate::executor::get_request_now()), selected_fields: None, + limit: None, }); let set_null_dependents_node = graph.create_node(Query::Write(set_null_query)); @@ -1095,6 +1098,7 @@ pub fn emulate_on_update_cascade( crate::executor::get_request_now(), ), selected_fields: None, + limit: None, }); let update_dependents_node = graph.create_node(Query::Write(update_query)); diff --git a/query-engine/schema/src/build/input_types/fields/arguments.rs b/query-engine/schema/src/build/input_types/fields/arguments.rs index 7e6f51b05a6f..0eb1fc138a1b 100644 --- a/query-engine/schema/src/build/input_types/fields/arguments.rs +++ b/query-engine/schema/src/build/input_types/fields/arguments.rs @@ -77,8 +77,13 @@ pub(crate) fn upsert_arguments(ctx: &QuerySchema, model: Model) -> Vec Vec> { let update_many_types = update_many_objects::update_many_input_types(ctx, model.clone(), None); let where_arg = where_argument(ctx, &model); + let limit_arg = input_field(args::LIMIT, vec![InputType::int()], None).optional(); - vec![input_field(args::DATA.to_owned(), update_many_types, None), where_arg] + vec![ + input_field(args::DATA.to_owned(), update_many_types, None), + where_arg, + limit_arg, + ] } /// Builds "where" argument intended for the delete many field. From f937b9af9accba01b8a5e94cdf04fd7a73c3a0e6 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 13:08:50 +0100 Subject: [PATCH 03/14] docu(updateMany): update comments --- .../src/query_graph_builder/write/nested/update_nested.rs | 2 +- query-engine/schema/src/build/input_types/fields/arguments.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs index fa9a3d6ae72b..c0a7b7c4bc78 100644 --- a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs +++ b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs @@ -150,7 +150,7 @@ pub fn nested_update_many( None, None, data_map, - None, // TODO: would it make sense to support limit on nested updates? + None, )?; graph.create_edge( diff --git a/query-engine/schema/src/build/input_types/fields/arguments.rs b/query-engine/schema/src/build/input_types/fields/arguments.rs index 0eb1fc138a1b..4b42f91fa6b2 100644 --- a/query-engine/schema/src/build/input_types/fields/arguments.rs +++ b/query-engine/schema/src/build/input_types/fields/arguments.rs @@ -73,7 +73,7 @@ pub(crate) fn upsert_arguments(ctx: &QuerySchema, model: Model) -> Vec Vec> { let update_many_types = update_many_objects::update_many_input_types(ctx, model.clone(), None); let where_arg = where_argument(ctx, &model); @@ -86,7 +86,7 @@ pub(crate) fn update_many_arguments(ctx: &QuerySchema, model: Model) -> Vec Vec> { let where_arg = where_argument(ctx, &model); From bedbb5c5bc9693c3afbef764817982f330a1cf83 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 13:31:16 +0100 Subject: [PATCH 04/14] fix: update snapshots --- .../snapshots/odoo.snapshot.json.gz | Bin 5275450 -> 5275095 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/query-engine/dmmf/src/tests/test-schemas/snapshots/odoo.snapshot.json.gz b/query-engine/dmmf/src/tests/test-schemas/snapshots/odoo.snapshot.json.gz index 75fb3d2ad0411e10eb757d8f70c3f515c555ac7b..c4d4d1daba59310b9d7cd563b90b9bd0bfdb5c13 100644 GIT binary patch delta 136139 zcmYg&cRbbq`+im#l`Uk1b8u|3N4A_}A6xc}?2!>pbj%3HIrerADKjKHdyi0P*qgG+ z{vGoEeZK$oM}ORp*Yi5}ecjh}-RjO;aK}$ta9_f4;J9!+I6j;JeiMERP6#K06T?a1 zx8Zl-cj2UPGB`P$0!|61f>Xn3;P>FPa5^|W{63rk&Io6MGs7RiS>UX2HaGwdgtNmr z;GA#}oD0qk=YjLW`QZF;0k|Ms2>uW*3>Sfm!o}d?a0$31Tna7?mw`Wm%fjX0@^A&X zB3ucs3|E0ahO5HCa0pxtt`66z((Hc(b4hvvMgV@@i~ics(&$ygCN%PptrGr#t~(LQ ziUYYJZEUOsBYJS7{i5uBU1|hh-8-pz;w5h}L&Fo~EeBsO{J*jV)5S}@WDQ9J%nydE z>GGB4Cq(pUm-x#nS>scNJHCBcPoojSB&Xm&LNK49mY}Vh)Spm*-V=yFrU5zyL!x{= zndl$^g}_9FIk*h%`^4D3tW^%G0qTc_&Dv$bcV_k|cOo6seM2>r(w`ZK(#zft$^@g4 z-XDd_qV|T_KeMjV{`4|WtLrG){CwIxP0COO<6YgS7 zYDsAQYD~1Lmdgg_dMJ$g05OJPilN`yk=2=zz3(A9n72^9vS>+}Kc@Uel!=<)cL04v znr+TxE=vlJF1?VxV&p8aN=UNi_9>YIzye2;+oDfj+wsBM2BycwF`nTIrM=zmWwnA6 z!!a*?;0gw>1AA zTe{#+T!G2=#roUk3x1o=X#|CuBu47Qk+_e(B@xOmPa!;;V`0wQlr|Q8CpFEFNNb)% zeIOX3XHswRs;FYYH6<5U7$Y^ngUcN3NV72b6Pa3*SCqb^HRsy)&!*Ci26Z5lUR97=wmFS0%dEb)(`zS$fu?kk7kPfja5|5q|0q8`xd~ zd}C2uHLsI?z+|*S)4va(MhHSE{u+OLxaqsWC0+8Pf9cWI?vK^K%O_>O#+&{gU6|b^ z7{nFkmJq-l09JL3RarNH_Af2?7DZJHgOLpll?6 z^iC|s3-%u4CXkT02R;S_eblY~hznOALEk8OLZsCbzbMdSH1SwKv1uwEf1_3fWBvtN zmi=&s-E0)&A^#Kig&wc^w`v(UhauQ)5pQ%ULiTW)`LnEs1&#ZbX)?E+|MRC387^g6 zg&Fk{Pj#3`W1irjodSmsfJT;Jc!VKTuJ>q_(nPYQ4=j6#h3Z;z=vXW0%8dFGUrCa^Ttrmh4! zle{=qXwBwWcyaFUxt#*b^80hXyD;<}wpNxP`dadlmfYaBe{@t3OjgTsl}*X&^6OA( z6F*hO$u3H6$VO`QaxA{i4a~{F zBkzwd6JxIpDAuXaZI`Q zSkGg}T{fw&YHI?PX2fkFWo{ghC_L|>qWzBiV>h()$rs^pZzzHf^p;AGn2W%tEC&Tw zpVI9GEh0USbq0xgOlVgb)FuF#2u-j9J=iqP8eek(O*=~UDq*apua!dT^VM&UtL1%} zKG?h;u<1dwr{q>p#rHbDJgyq3FkD*`)9xnqCqA{W ziV~fYXCXTZVG1q<_&&6<8|ZK)Eg-ww_~wn#6|C8?7i4!R-<7>r^(F~tc4CU?aO^oDfv zqa^6{uvof5fW=bA*%g*JQvYG;3QA)-{|8EN0W6d-q1RCQFph=NsPq+-IDD{B^5#2* z{lgNm;gbSHjZx1NES9QVuvpRx`2Sei!(!>OZ^j+Y@WPw{~ z5lWDx@IM0k9pX0)YN{ux22)dNGv zTs_{GCZQxyYC|5?<;)XCN3wy8$-oSd9zfLPUm z;Wh6@B8xw&V{9v+A9iTpf+nSVGO}0XEdEWrFQ7@9gS`;A?BOPJ{ci5xAWrw808Heo z!p09KNsAH5?UUzAu*u%z^n4Z+TPS(Lj7XCETwMw|fHDgWmiRa7+!lFsMg28E1=xYJ zswDWB;*%vp0@(@{0;VF=4|`0T4e-^M(bSaHxS3;u?-WKP``gmUPjOhQpYiJVm=!OS zdQy$;xi+B(wbEz!t60c}t1DK7-PBG_l*Seva@9Y>_UC1!FUEaF!tqT7XZ*IL!FO&R z81?SEyHf#w7V@(WVwB{8WZ6StA`Bd=0LqmI2BKYeLa*ADKmqO>JI8gPyMS^cJ_HvS za@X_2T}Hyxc<`;dQg&(5SKrzIRw2yow~vz)N6N-oQ7@GH8cQQSYc$xaE`;*jJZws% zh1IVAAk_LuF+D)v`|J1g)ZOKWfA{&``}w!`Ekb2vs@NyK8^#&lon~L)93t$K45cx? z9b}Q#8Lz2H%T9p0A_r5{RcTp0FCbT6OsrP|=t{zxnO~HCO$}1k4Pu6mGN^12*4heE z-o~cS@0}+M(7NIzEqwj<4kpL%lw+7hAUmGUQ9^T`KmHp#`oR;OVCJdV(u_h zE5wS@V8SGnbCb*NlIH1Ze*>>tb2>6=(PD?M0r**6kxdx_UyBKb0eGR{i3$`DyhPRR z{EQ0In|uk*rG`beKlOHen8*=5lOy%Ql8Unb#;+Hmx5UMl@%{2iACn8PRODw$$F8+AJdu-{gxDy;Sp`>YD)+UE=Pv6`fqq26~zpPt*xrNDri& zwGXtXJ4!nO?)`(tGCJ&V8LJJ2eM3n5Yk>-py1lE)5*&*GENCz3$wY66Brwy_HZU`q zTzWClT3zS1=C@mXB46$wFTUKd58Z=)kxGN;Xo~X4v>+MEaJALF- zPGVI{z;xd?TzCVAP8mUXfJqc?%25sr8M$abr#TQPiApWHCN1IM-5pL|)c0bY`}Ro? zqZ`utVbXu-#%psDzb(B()tYphS`m{Eoq)Js_&-pbB`Nk|^xzn9nT^J3W~%KRL>2E7RR39TU+bIV!*N zm722fZlLkX#1~120Y(~f&Ha@4+Z=(JVd4!e-T<(jQVi4pbV)1I-hOC8sQBw+Yt)Zk zGt=q9>vBg(BE%t3U=d;rVAF+jhbUbNqPXNl$P$3oQ?ZN7i4bQyBGx{hFfX0!irlu@ zhlx)d&Exi%Az#m0c-fTax+N0PEi4_>h4gP;+!P}_gzefe|G7|Ml8aZKoqxOt7YQ_4 zlsJSbj%LK`8w_t3R_OqcD2Yn|W513g1;j*)Zc+JiVF115C&*0V4v!xuD#`=sQE(Ay zaH?&L#cqM~ylv845Hih|(+eJKsA|_94SKBxMd4y-4EgUWUL{2x#rCe8n|L#1I zxx0u!**f4!T5SlL%7mCVEJ;BvH)2%7-vLyKH12Hx+htLrZYD1E6cwS3VIw?_1{2@Q zq~HG3@2xcPf7`-iL-aR>W_QKG*$_|5^~t(HSV{%Kckk&G)qME>yU+RqDRiYG#|wfv8h|our{^o z2SDO0%d0AQ?2?2I0iSnZy--`w2P%KvXld@_JAj_iL<{f-fH9(Bb+|^$%QCf0*a5ZV zj%RU7Oz6))mpjz`=w|kTXi`b}xXQ$dbW)`8rfH9Px?reTsLoTNk4HZ52tVS3YaZUnZ%u72~_Dzn(#2xU_9Oty^ zn!emcFa(^9)*5k;`o)z48%0y)1aW_HG?@M4mca88=5ISYvl+v)XQ-^ARYrU;O=kSy z!n(V)b6U^nqzeX@wE^)tdW;MIX=gu-2K4pwW8}$;N z+v3c$jf77uiRw#MXiVs5v7HA>3<^Uk)ai5!%_4lSc@)wEa7N4)t4NfB)*0b++)Iw$ z=T!V`tKKURsQU#(*8l*3@TAk|j=w$z*zfyriM&Ro$qa_1Wegw(j}k}^a6Sq(!fFmE zGtn+KPtqs+k}p=iluj_i$fu4Wf{%xS?Y?eI-Y}<^WfvYYrF>ioUH`WLRH)_^L5f&0%?F$p#rhpEqs1yvCyj|l+a9Fx9@ zpkzV{U~+ugmA+#R+N41prl$S3D4?l*g+=c0)V38B0Spn`J-=Y;PLc(@^18Z?eOxXr zg#`_3Ib&2u?hZ<_pHgJIh5?txBqzk*;7PSq-8 zvo`M^alPz3ZbxB#GwSbe0iF&_OAlvib)XOJ_hprWq|iS##m z7%D4=4lTiO-HAcnGIpu!W}K1byAYto=~NQ;KXh(b-jNig;|`fIW$)4 z(Qx&vTT-NuU*>&!-)ID%)idEqS*5e2zJ@aWeE$q)tLo;;&LW`}taV@2 z@9-d~DdW*B{|n=;Av_Ddl#R1o{aH4-{df@~qcFBbP%a&KScrROTMf$(dWk2|*Zcse zTvF)yA3wk#G+%Frs;tsc|~2vOd?_-oI=fum0N z4EA1Mn^uC8M~h9xTwKfP-ec2Yj-NETE0b2xq))lAu5<2#%$sG&p0P)l z<6+_<5=b{&1w9kIt|(Z0>dEgs>{FE>4IuSI7#Bdo&W9@nN|Y`vlUB>K$xM%eI||kA z%2K`%SpRmPHEBKA;$|E zS8Sz77MPg1NHSS3*OCQNxb|GMJF0SZlxM=-p{3osR$`4!X zo3*Kpf8>|yf5;xwX*UHkY=#{CQ2&KFn~XUaB6IY!;)RP2?s-StWLWQi8w7LbiH5&p zcsb_V>nt4Qu#AQVfEtnJ5PnQVLDkL<)DP4^WlkJ75UHqk8Z%}@!5@{}&dr{RdK|Y# z&6k^GKD!s4@r-i3RkbenCfnWd{I?r`<1ADF;&H^$M^u&kY_ye z?fQajs_ZP_M6955DG?0y9;r_*h+tBn>YxIW4hD@GT=0@RF-H&579#YE!z;*yTsSk) zKz)Qb5E@ZN3|S{5eWtQ?D`l*-LJ#P>4MWr~>%@=N*COfwF1XFZ;c{~0opYlNzc)5X zbehkqWtl20$hDK)t?+uQcW&N%D!=eaTSos5$;~5(znokhMOCX1{TYJ)lM;oH^gk6G zvxh+rjcJCx1?&8Uz+4*P{DjvRvjkAQbtY>E5g6u(BEI({2e>*G@ zH;!%)QO;u0iAY?C>Z!v1FCOre_k?tgL`sZtTBU(kq`Z(F!OAJ^-mrr$GoI$_AAJU@ z&JO^kOlrl>ej&DHy$suYEu6x1KLV}))K5Nq`k2__WX@BX>UJeG$NF96z_(C`exKw@J%F{oNe1sbL8~?KsB3m^F4PL2kRO#to zHFNf?^ylkD06|n%{}`qDqv+B*nksFw!*l~)mZQVpLs73fhvfV4qL42K6K6zf@9)Km zMQ|L~q$PX1KI{6i(kPzcEB3>~{!GOH)|kg#sbe7t3%43`h!JAs&57z15Pp|^FNBeW zxb)Q?Z>FuMgWIYd_lc9@-v<90;L zRnfM(yYBsHBlyup!-daF$>abKa}uV>eh%5rd7Cj#QuB#dg0ii?EGOVScJR?MSJ}p~ zSH!3qLbx%g5s0H$ZdDoFz}(*_DW4mT^muwEHzBdYN@R{~5S;S!^2>w0Co*1U_ieb>xHL(_sL+4lW&Q>g>&)i`+eQx zBl%+U8;v&taQ1Ll2tGI72y!fMXhvG}@-HUuJdQ-aQoATdn!rZ*SCjX+UmH_~#&OdM z-AfK_p^jmC`!Kn!XQF}~@Orh06CAiXl;b|7EDMt|q<738$R*5Y5IuT7<1BweQ#?n*Wf*^6eLuKcFZ`^V#|(Tf)a zEtBSSPifjti|2IvpMBtXpoFWw{jbr_I_yd226*o-ug=f!9p;L&#g0@)lBn&O^12z} zB`dwL+pqk3!#=)3CJsiZI*L1PloX@a5%VAwZu;cPMMs%EJIX6G1TdmIQkf7iWc%bTM5Evn8~<6N(b+?7N@+SYDH6 z8M20e6Q3&F$Hg(b|61!tO=UAo{0IcWdD^jL00t#3)R{x ziL;_#`mO19_p%sYUA%le^~25)_^nw>(Ub__g2 z1Os`V<*gMFhxe3YECB>;owKKlIbNROL_OAZ{O%tf?L6f46eFuW%+e|53H}WmE$32V zPp2VWaQsF`z8lQ=RZiXe>>e6bcmA5B68oR#(xSs`D^D0 zDbh0n0c_{68vfP7U_hQt^r0aasSV)-#+1SH{nrCP44QhtFoXg)H+kcO;+@cfMChwO zCs9LWxdiectC=prwx$hO3VO2|V&}j8pN(+VHe*dr#oy9d1xlf2AwK)z2Gbl|uAwaHsn%72~#2PL~hhqntn-=#g} zX~mr2u=qo}iAk)^b(>}=dI)u{3}Fm%1O;tEX!?UeXzT*-sLRqd-%Um#fsli+0uvCb zg*eu*!bk9d+ZfWeaTM9j&}Vr&%`>D=Zyw&rL6+5N6TBdQ)p#ObUfEzwQO7Bx(9~hy zd3=yW;aRJ(;Y`9iZPQ%Se9$#Ni+BD^K}JM|F7(^nDkZ)n0X!kEo?O^wqC=pBvdxQ5 zyGNh1UQOf(I`EnRGXZr5eWZF4EyEFutVx2x)QT`;&^2S0r=MZ zVL~G$4EG%wZ|Nd0Zu&IqfLy1q^f0`}VKF)||8Y}EVpJjyKWc~i3$RCJVv(OxGbD-4 z?Ofpdw(|Z^5))}e;KlPZ=cIwvvOm3Bdl$5)I5CYhot&a0?DW02cPq~;+2V!0w|!P& zT{#Dx$YAU6l6!LeFaIHYhF^}GDETmXN9_o63Oy(EmxLS_0@o42;AXUi&R`l(@P|-& zs6U8St;H`j2)_7o^hNX)x}Ec64<2&R9i!=YFbYBYAlWQTLSlXAr~DPmdPgN6FvrQDFjsXuA2G`2P6IhjHXmj4 zQO-Se{uFb8M$3Q}(Sy)|zjy8omW07C-PT@CZd&BfM;D}^Wq>ARFcxVAyL5It@9VSBiYo)lpIZ3fb_y! zo36S(%1bJ2Ft7Xm;<6hb8J?*`73JFv|B#BBeL5F7c~AB}L)$k!NPV>!Dx2j`3V{XT zi=R%PeJZ53!5JU{W|^HqKUJc1JQVvbp ziR(dP;%FAWgOEvUrx}}E z*_!Hk>b>(_$Br|v_`x~jj))>ZzGU(2m(LU)CmwG*aa9loXF0%aABDW;!C%wAOtY|+ zBd^me7sSU9w#Cad3k)j>u`M#h(c^)aReL#Ckyz(rl#ud-ip}{AXGh9gTKEi^1r3Uh zmFd!zl>=MZln@iKg~Nv`Etg+;VSIG734)7x$wLPlfwm#{zt7$4+$HgJhgBQ{{k%UT19oi{)Sgx!rwa#IuNiuh={j9DYd1V ztnoy>k6Wzz7jLooxepRwQO5wbW6RkK9DPjr)U5R>RK_Wm{dtj=zoy?BWz{fO*7=B3 zQq>NH+7$`LqDS8oJ~vtB zs6C1yRzBx;uj&S4d{YXE@UbBS%1HT7yV9%=#)(XA=y=Ma>EwloSkPBeBGNO!V9=qJ z^HNO2k`*(~rKf?kszMQoiq~4=gN@PXoXMOjYlOi}n_Qs2_T5OoOD*v;8WxM;g8hAc z?^Gr(G~;LhH3mGQ{Ch1XW^cMUz$_w<9RmIyR}^Y^2PVm{Mn}(L5M)bWEL*x=p0J^g_%UKL7EcSZHu9K=MT;mJfZ%^l!E? z+&2DYAX*ce{rc=jbMS)O;fssy*yvOC9C30@Ziedpi&$F4;(5J z)wk&ZT?hk}CXOph7E|uXy}?a{^u4rXF~w1w>wYkMT5XfZ2u1LFwEjq%YpFOIU^S`? z>cIuFEW~Dvyd5Lo=XBsn#(_ML`u3hd$oj6a6zOyNTBU${9ro~uU-V%szZ?`GwJpDc zt@fLzFDm(Wew}O|N*(wnIfa={M17C;_ae&W@#JyLt}LK<^||o5y4)1r+sfN$v9LFQ zB6toAdZoo+9b)}&4ho>MODP7T^NV}!sW6>3G$IjvodM*OK(oj{1Uq&+-)Xsp$mq?H zrr5vC0EU3sq>|nX2$|CwOWpOPsa5h!wzYv@OEH0WYa1`6nDJ(T?d=-i`ROLJu-X@% zjUj7cSg5KEi342~Ot7GmU-+95hw^}pO#++xuN%%yibiZ;Nhxa7)rJgx4tg;|WngX= z&8M84r}jm$u*nJ-q(aOCPDZPZP(N2!MLiZKP8L$jC!<%^#5i(Wp~vLd5|no|;8gW5 zjv&>s=N-$cGz81NL^I(Yg?E?d98lg>y1O`Ot%Q+=OOEQ zBIt=Zg^Nm0Ia+$ErdH>*sd%goVqK|mt%G>KMULx1uXPX;gKm~3DoxfGx=L6T1WK_g zOnI7pc1#B2B0@e=|8nc;x5q_vk7n^?a_D~I;cM+SnULs*-%}QU&)BB+hema!|9v>@ z^+3%2Z{9F=&->peX-wFIa@(}QTF)Q!-W%AuCr8V%wJ0V*F zl{U3j?-5&2yWK=B_7Yy!4JZlv!9`aY!;HhrIQ18-mmhUf^V|BYuQ8mm&C`O%OF_Y) z{f!dp)z{m$6uQ5(2zxOKNk;V4()zdgQOF5{=zl$mk;@*afvUNTOk!ZjB$TH@H=P1k z7gXaqH5t937xj5EU(b4DP-srcUB@Vx_Ed0S>&*=mnStRuRRMc|pDas3yva&|E z!{lJYbjAA^2Dkg^KRSo%H+OR_#a}*QF%+HoXno#(gQt)7zWH+TWQ%}(EhA+}HGXmB zT@6_{_Se^Lq}2<%&S&U;GuYwy@7Kq*w%{)C60NC5i1o4cz)pxSR>|RVJBp6ows&Sb zq9%H0)CKnxGZF#`M9qqM49RUyBe$P3BzSg8AnMsk@tT%8EfuHPcRzIf-q^pBdM_gG z*HA6dnz-$!MG`K@Hkwk4Ac zjfU93+iMN3{{nB7y)QHb7k#jCH&c-7akP}u5E7B*bvJ%4hp z^mkct`$T)=z-?Sh63^vvWBjc?9ScDhq!p6jjUeN4F?lDG$UA1rH?%BkJafCemjUKS zu*W^R|Bp{-j7ZJO8|5%hROU2c_OwBfUK-`!41g1ItY5K*x zv2r&CuGhc;#;xe`gna+&3HfU5^Dha zA_huiHGWwomB#pGr$=J3_77^Kdfy=bA8MH}?lri(KnnT|5ROIKJAg>fO1Xt1?sCLP zd@6lwBqbfnDwTDKWl*&V7sdB6>3yW2eY=sw-GD)H3(w?5tF7x!uX6CIx{)v8$p5hG z{4als$0t}rP`$eahvTpu&8ygZsKhaCtJu+>q_>nE6oQX&d(V)ZZ}Iag6+p0m8@q53 z{1B;Su1(BIfW+<8|2!MW2gkpQ_C&~ma{$Bgo!^S^W)UK*a))2>9UNu?BHMZXzDkjw z_LP$}FhdJfsHRSwk)?nqc%m{gdmc<1QnL95-ESc>+^IiOs&y+IDm&X|p6N3)*xK?- zR>K_mJ(bBpl`$3lY>C){ZACgF|!o1=E+bVFDgITzT@{`0z*kRCh~ zB&@Noimtuxdk7zH#qJEO*X^e}8$wqHV1Gz*@zj3BkQtHj^;^*vkBOf_7M_@FI!7jn z0`m%s`@ZB~m@Xu z%(m^w|6-@6bQV2%*V)CYyvTX0nE)^Y_{ODgi_I=_mMK!UF8PkYo75nY%Q@6Ksirem z*~Of_-_SOt?`GGo-Nm*C=S9hn>vGlr zWF^qgqcl8teqc80yo4Q?n*L*(JwTS3PnL42?BSG|G?#?Xy*OZ{1GTf+>079jlLnW) z)$n}A3=gMsu1I-f9(Jd|gr)trQxvy~j;Q~)Q&!sq3zzZaPyafcj z1R~;YfG3CBC%?Q3#oKxsTa<lJ;eC>M~467@Im%=Nk6{-AvU;pWKO(c zF&y|FOSFF`K^Wv;?&supt*eT78lfd>cIBZNF9~QowLbSX@!?~fp@#wF^xp~(Y8<>T_3tBmYjyQaj;x|jn zq|~2UM4Fl~g(PFeq-^4@1gObfjw|wsc}oOxVyj3L!*)sRL}o&HTYtQ#04W3nBB0Favay^+vphv+Or9*+?oZTn z9U_b!=bnq!g|$6VhMo7^YEkn3wr|TN34`4@j#Mxuu(DlsBaRh#?x?+7G`mVxzQOfp zs_?A`IwRQ|@&&U3^#;{Z$>@FHa^nLgBh-2@3oQuKmq;zhbKoMv6I>e_GmG|%mSjQL z6j7>XJ_SGYWtmu@b7A@*u1S=pPFidZ_Sr+%?Rw7v#-E{sl|MtO7(UVswNvH-VbhW+ zP2!7zM+uNnqPnl!wgIjr1#y<2-@y~seY)u@Hby@D0L`u%eHMD}85_~+fkq}Psa@Ua zfSe?wzpIBYUYog!z|6F%HNaHN3p^-b63GH?;Eq_ulUQ^WMyG&QY08j9R1@E-ibjH;hmMtPOXK zy+X~9o>D+*Eg~a(>gU0n438oHI+@r&;N>b)kpFf-SZnHP?L$cFjTD7g+yG@FkHHWi z1~D==_Zh~wFJ~JHjf+~7e@$2sRv}@v(j_)8PW05;$hgG1ZKY!NxA2^8gctg`az8;} ztBYV*7GuF;RQlu!$KB?mh=;?xKS}(`i4IXC1thi-Ge$ZRS_6~^!~JJ|?&|Cd%lxh1 zwOVl1SRc{Z?_&fsr?5iD@!E2iLzv4pD3kMMW1V?vwzKRH;#l$GHQe7;s@*C$z``f|YEwDEC z`jqU#raGq`&X@dmm`O|=O37QeM2eWG({kWt)uH@iO7Wbv#Y&p6s{j?mU#y^EA3K0A z15~KFf_I-r5pC`WDHdfUHb4ceO$R@?RRs*B2e}x(<3+b4pp2>Jp-g{bRvy1BvVYM7 z5ohDb_{tWQ@SHDxp##Ktz9>d094?xHeB4AvJ_1n*?CvVf`bA`n#tSI zXCtxaWUZ7L8E(By@J+@+i=yrLf zmevj9!aduMS>>Ucfi6!6qx`TL6KupJBbI=BA%@ZO5h(!DDPb6zT<9_*HpP&&0-JU+ zXsWGdgykK^ooNW_B+VUfGdZ{WWLD|m8{QTVmezu@MaaDKl3`%zAv#=r{nrnqqfOM# z@#ZoNk2O1g+8Z7s?;s+dJ#e4j1>HADu8Ap7H=0BfczEIwJI4+dM)9=%`H%VlO6yTH5 zGNMG7rTEAIq??Hi?esrsL+&dp_~(`(ubL7J!JdO2ur)BhJaj^Z20(|4wpRm)GLb0| z1z;{>7>+x1_m`Y)#z-v4FonikVcmMS_cN)h%J$u1y`5?!f`l)xy4S7Rdzc(lH=^Mr zhpy=gw|@Ol>mwKY(8oJ=wyP6iQ8>pOs_%!~vAxIitRRklq809u|NJ|>#0E6IOCC1c zqcH(_|JPUf;3-9)8r4e{k)-Cpoz~cRg7-Th0!; zIHe44ysQbve_0gwWlUEfa=ol+wcxs@Uzau2 z{j15F5?hn&e>K@-YZA*ZOuwwj^|B`8|6da<$@QwJMsEGHqX=gF`Y(px6VFyo=vLx^fmwuo8Qp2Zi%!fc3&b_BtvA)O zX1b>#OK);qN=g65m2WdS4zGp#*P5S@N)5qip{S*PYvh5X?SRemgde|=TYxc+Moi|^+-+hV9~rW1ImiB zO>|vgIm)44Cu%p9I5D?Ea*n)E&Qt+t30YNrL2z-GX9GHT9zD9 z7e(C-sCY_0m>70x(DFw;Nv4OZe@EYxIi$>bYeiy>s2Yy52@jfN=`prLLHhH6_BFaQ z>~>ygEZ@TmbaLsRi_L^{SoOF)Wjy@zNV9pE^r$*Kz3a5jsI;+5U+Kx|a!c>heIU~~ zC9ZCqJ22_t3>3SYgCSk$D|wh|G}HPU;vsf7hg}+_j)ou(jMF;CQ`-1iAs+pB7e$!$ z2@DM1u9>P3&dy~)|{PP(GGCx<~F`gJ1-#rjNf?=WfbA33=k^7@{X=;1- zu*=H#A#QgWQ5m)1#p$>~Un&J5P{&5$#94%cR*|ck4Ofs_F81heEyx~*--G}7`Q=eD zR!v_ulW^3m+RTk+5%v2t-u8*v~H^0p^JVa(LE+1u{+}WIL1tC zRs)3R4+7K1EA%@2J?0v|>yYg>01=X6UaSrOvQ*X&8(n^H-qFdH9jf1*P1y`SzZXyb zHmTed@7*)Z?c1=wp*bG8KJVyhoVQUI`VtRrn-N)9iN?Bi-!o;cpv$@v$*{3Sz20X| z9Q>CNa0m-8_X3#|F-JlpC=;tBf}*_B2F}WYg9uUmVCI4qJmJLrvD?|*Axy)!|KNlc zdMtlaKy@gS4?1;iAwCgMNbbIyowj~x6ZAqYm*^)f{Q1F~q_~sAxS{Ne$sh*4WW|tx zo%?qEvL~_oo+@|{oiV>*pH_PE7#(CMONc5lx;Jp@XOd_%Jd{!rdyaD1L^agFZmXFM z*Td)_v0{D*~i}%->PJRALZ~QL+^T|vHuDkNq_7{&g zPpXi^@LH%!Y*YTXDl3wS)6D}3tCTy%!_Hg3O0ZjB$IYngt*@RStg+zrPU+R%iU`P# zQNgSQQ!VC$tb$!RH{tOYFZ93)i}6rI2Lu*I^9 zou0)Jsa??#rsvP7@_e&%jTh}}>fd~Ap7zCtiQQAolRRvIz5AXV6i;>b#Gx`)1FR~7 zTK=k*os?C*p5EsO?03Va5dQmair{B3BJ_VBt{^9|wetamWR~#t=*jDF{Y99?4H08s zyUC%cG)`b2HOu@nW{%MvWbINBO*XF*xoD--O}Y%;7!f8p{x^F1dT!TL_EC?W9nQw> zo-CH1oRaIj)p<*^V@3UroBb}`-w(rr`96d6!aN_+)&yB#jv9X@NuqoeS5y(b-K5yR zMsRuBBcfv$go)aDcXfXBwLb5S!|Pdq55NqGzC7&#FU8=|Q;0eu!~4IIDNLyr#b8%m zQV*3K>YTBPM$^SNbB;8awsK5_rPzTTS6D#FC?{j+N_^9YVDez)%70rbESkLT)oEWN0(p#ph%IyUu|f|Nx(p6ajwgMIM|wBP%X zwTsNRqPd>>MH+I|A>k#b1n?nK7+u_pP9MG&%8BL(!;%N0(Q=0e6#Q{!++QDVa!t}t z*s`%nkq$Wd+{pK6`Ez=9>&IKuXLTan;~ia$aqirfajHWq!zl}JBQvcS^^#W9?PL}t zmTs-7u9jjm9=unSYZ=hI^9|~RjS2+RLmD}$&H2CXCR%~3(I(K6Dwv;k*i2M~-qTFt z4scxV>j&)JAy-k42Eb9ZC#L7)$ijLLtt!$%)&H$Fr32f>PBKv;8Hd%>oR#$a>%P_c zPiG{<{nF3;1o($KMpW3{m1iRLWQ}5#4pzSI!riO5+@q8w6!b5JS*_>)3A2UPj}Qj` zgjpEG(G=8$7?OiZq>I z#|E5z6iB4OS4{*8+UnOJhFuDt5F8DVWh%Po1bl=Jgf@xyiXq}klACgE)kip16Za+u znG;xm}s>2G;%9&yZgF9rp0fqxX`qZ##z!P2o2ZPxFIJ zv{^&BYLIt*xv;1L(WU(lRYY0;p(>3+tD96&ZQCf1^ZFc7|IIs%nLVfzrGg7>Du)M7 zITh9MCkNBzPzdD2pkzbX{`vPu)B$OAM(>itLV2E9CdS5WNVB1S9pH@3g~q|ow(qs1 zOZWO!0OIzc%S_HXTc32LtTZGN+1`P?p-GVy=Tey1&?hxFa#+~5qPJqT; zg5J*F=iGbV`_sSYH@jwyF{*0RGJ5O6y_FdBH*p~cCy9Wt1`OpT$4cR(_}%Tt%U<*oCv;cfWr%)}TK9uT4dOz> zM_CkI@pJwQ;m^^Kd^39ESN)bwH@Kg)H4)NjgA}L#+i5FEoU2#)Z>R0k5M%hdXE>?S z)mzAnm3+a>?@CDui6Xb@(A*;h`NJF@M@GF(MD9Q@C{4jTK)X1hrTEwC4ds2wDjKq0 z3jWsmzu?HoxQgJ`7?RX^+u5}d?#sNj+tOM2Ll9#VC1B8hzr>2PT3)ddF^HCKi;2a2 z_@{R_ZNm2s`Tv}V=4W}K{bj;ONOccyI!{7beq;W_Z_5X|@I)yE>dZoWvIi_dpYQL{ z^nfo44+s_EA2wh_|91YmrkfTdesoAHZB!z5t8AFdfqSBm?g-L}j#hLOv-y) z>b{6Rx{}Pqsl4PzC0o4K=pS18v7(S;TG5wdchgCKBgIK72&$+};rmh$O`V$&r2Ox@ zlE+n>w(_KZ_gCjAh_^F>6HVVm0YNc^UJ#fre#@QPS0&3QQRF)vT>=u9huU&=WTf2u z#~qo3F#o1ZirtF(o*&JZiC^9L&EA(q_Z2)r@VdT&LUXQONB-&E>v5#_o&K>M#kWUi z|JJ7M^L%}V!AXOuwr^kqL5ml|1=(n78rGbWKElNV(RWxo;%_oAM-c(n1lF-lF~|tf zKQ_sqlf4IpZGUZ&e`kDSrG7GeJylVn9ZN8muj`rrHH^#R{^K%8gWQIl#0c3hD(UjC zO%nHg3z<%n#410P-D?Zh)#}`|2%n272|^jSnagX<(wSRqZYlcf&ZE<-y}78xW&V1D zEnDoC$Gr*g{uo#ng*178J~hQi{<=$kR!IH2@aL?F7EUO{CTI3lpyS!q<8grsQ`b3( z&h6A?DE;o)^*vs4i3RayUc*t&e%}6PWYFPT!J1`60mJVv6DR5|>3GeB6-SK5dAy&O@(9*LQzT z{UrkhhLBGM+^y*AZm)~Z!BBu=(>+{za#h`FEzFHq z1+VUUh}y}>>o>M7j-vtaubiqCO@m5`R!5?q!N>i_ep7F_J6*|S|C1IMW*6qd)reQF zpB6PTj+ekuuB1D!FYoce{>#x()~)}PlUA6-^|1Ed=B0JrmP^a4E^PW?Z5&@m#wVd| zq$`tysFvCmB@IHZy?M9ZE-fe0(r08mEH#ykZ}Qd`A>=nH9J8y(P)yd!y>TqP-V7Vb zRo7RX2!`8jHTqG<=3wuNR*p5OMk{xeM)qcB7EGWpJvY53M8r9B=h{MQ|CChpbyPL^ z>iJ9ML~B#0ohUq^RFlF-Lc_9B0sb{tJO@RQ-6vSDOAUE@u;3qrfvw|P%=um6_5I416o!&90-+iMXHx#AaLwSk*TbRLp-n?a`3=b6ukV($#l z9wN1a^1=)=i5#~-MS{kdK*S7oHu252s6jwr{GOmJnsKd)TOcOSvs9^d*^vqL`U}Zs z@-1(bKbAovxG$q<&UVH&60h$32~DV;eAZmP79g5mbwJC4D7m)hjtt(mE< zQUeGvoXJDsANn{}poR&C8dDlHQxxVh*whKEi9UelS@5i4(klr)UJ@GQQnfP|57~h7 zEa;we@(uh#uDG9?m*pTckQoOjo-?w-?2}Zj4V4Jv9c>8VhA1zwa!0Z|c9t+Eqk_lu z3UyG;?n@105Pi725T7t3WQ&YxPEBf3FK(ENBI2A(R7}`tJzd{rf0IIa1}Y-kD_wyp|QrfR?EMI zJm+2Ic`?hbgQPN^>{R^owfno*t{lrB{Z(Dl1sZ~#$y5yh<1dp zC*P8ovZF6~1g7&jBi!3qGzk^f{YZLa75Uvy^P&Kx2huzK9cWeYrOn>z2dgRh83hGL zr*m1OpQTH4Ey5ddx#!8e-&DOml7u=;sB%tPGWXYj{avqIu8ir0y=6OJzI}SNp}rOH@%15n85{RJ{Y(>g;$^f` zGJd5vq^4~DPE0o4>+?pgQtk6-gvD@nU@QtTi6vKQi_5Ku!?-sp=T9qdKD}xs{Dv5pw~S2yKYfOYvotZ4tH~lgaIZceVC5YLaIcX zp5id>sVKb9Q>A^@FBWJj02-J7G|C;y!G96V>;2UXiP`JjbbS$>OFa3k&Rc!AxRlQ* ze%c&KJeYiqL$!SqsEx}#bgW-=YnSFG-nZ}FSiNswdiggNf;KmVB3f-qZ{2Y+u z#=n2Er+1<|SC60g2t+K8!=CPUDZzp!$OXurKDlJV6)dzC;B7u|0h5S_hXbjKP(20@ z$Y^f0+lZaqHpj%E>Y>-t%1G|slIKybS1ac}niu4yT&Q9^Be^Tp-Y^?^-Qmvu0UnFe zZKq#uZypO0Vl@an^S(b9XQ?*HHX+Jge@k-fZY@ZX`>}f#(K|Q+Fzs_a%kDCGU#qPO z?^I=AX5L_4BY0?d0H1EhUvSSH^$E_Ow2aX|5|BSOI#E%>G1mZPwHDT6h^#fQ&A$=`Q2-tj zW4q_!&MnG;zN*&}lkdouqt9P|M5lCi$q8LjnAY5e725T1u7y}Ob>|k<2mZu;`tcm| zNOexggTx7rcZGF@9fOm;eIXp9o~dF}cqb0 z2-(Ts2-)0w;F`o1cimAO;M{um4A(58brEPl%v*z@rx`!|H$ccrpGWs;=JvwgguXQm zh1t{#q8gJ#r>UiN42)pqtrSqlf8*HLx=26eU0*wiD^jiZ*MmFm-A z#eN$RCud%n`>|=jaicO+c~go}45TB?#Z}@2%Ct(2p?|E`G*V?5y4^F9rP3l(U+O7b zS+3WMR8|u5T4fcg;08HpMLl(g?9WyJ(-qshIG=Xf?s?R|zs>mMjUT#k7TVe3q(iWq zzgk;;61MI7cGWMh6F*K;Mr+QMKi*FCdqDW$gn0H`I*BD`Vi!^m93JVbqv4E!lw&Y< znGpN5X0e6~t|T`Jtv*tGPBe;`m0BS$pYX<8OAAgOuIAJ+;@W1*`qnz1fGI04Akt&1 z7XdfxW0QPSI2Naa?L|-1hm&}zw(}a%mxsTzff%nHVx#o{-@-=Jc0~kc$w3@iD)K z(|}iA{#|VGnLM;O##yi&|GEAsWuC7cAGF#Xxvj&9Pt|WsHTt>la#DJgnOt7Hyu%oI zA-e1D!w98Q7>}`3Rl_{h+&KoR8d3$M)+}K-^OSqDSZD(%X;Mhe@52{^07Z0U$yqhQ z1e7ho)*0-evif2XZZNdNbc$pHEF0;u^ymgGUEeH~l-GzFDfTrdXm% z*UyfNJ``J>t&`S_bV70s9MDAK))$jgE$(G`7SNkQ zt726(JjC)Ex%mCJ$p8t-m7g&ep=I4DaR!!RFEk+1j8ATg0nrniAzLHJD(}F|+pGBqT+%;} z1}CJaku~Fj7cot)E?wvKG@wv(nr0#V9+jfR^`?L#>()wf3lGIEX8RvDuR&>EsFv~M z37%~KzH89`z9?r`hYDw^b&eA$nIc^&XT)cpc=gi;%AcJPcR5=Ex_1HBLVsF&G*?!{9F1o|$Zs@Fo&D_x4vK-hUFPSuDCi7+`_eZw zt*J=f6=fV`(2ZXpB;KLfnH2LM4j&`J^&bw8FAAJQj$Ei7zsKya>a~0I5%78OK3q9H z`>PR2iz0hnYxo_S8_BdqJb3|rPmxwu38LGr9y{rj?cv8rbB!9-SRDnCL zaCZS#UNHPddO@97nwtb9^jT_A7C=V!P6T?apcRpqvE{ z$j4kTccp(i=ODllvo!r@I=no+BLBheMB0NX$=88O{*3HbY_LHVr#(Q%;ppJZsy`hY zQy29kMA4FYTx>>Hj{55_-YQfPrLWJH*i@2dyd)|*U8UTp-&TB2w&NYZo{966+I$bc z%gL2l)(%eCQNKcYCm?W#~F zy>&2U`$sBHb%o7@5o=QhbNiBicr1Ud+nVWz*0T9^iORD%w|I%GWK`l?Y?``=O^G%W zJ98X36`2UEBJn??HThcYj{O#c5f@k`zTB8a>3QimakaR>+J0M+jL2qc*hYi1 zJLB!()!@n1IDh;xLkN5f8T^UZ#c9Q$+QnB{vf&E%PtLvlGpFiML}%KfE(v7I)nFS^ zpoV02IwXw7krq^Zf4{9vgZ9Nrpf1e2n2JA2SWSoPy9DQ`shy>r+>pMh)ki$$rm3H3 z2>k0cw^W7(D-lqD__r1!m7hMNt#p?t7-rTN}(UpmbP~NoV5PBJ9x4_5dLR+;AOjXIZ->g>r zLeXwi-mj}fVJx)$^Sx{C%cAC}ecsX$0%y?J#Sut<}tcNyiD-OleMgdUlP72qM zEa~d`?xp}#Vf1w&RZt?upnuDozk|%M=Y|0aUL}^=+|S%h$LN#uCKyIwRu=x9H&?tq zs)}H?wT!YsMRfR>uy}H{a`g}lij-!Y#CA>{2uW0~I5W>=YTihFvDm$pJ=UrlO_RJ^ zNC;@;;#me1`lL>|VN4DW1g~;R<~^x#oa zHaRri4z?2RX(2Z4tV}q85@Wo=sdk}ugWh;#Q~v@IBjw@ahDO+*j=)oGZaR;5773q3 z-7|Yiy(S1ZJI)$}FAw`bxFh8wb9Dn#1Lj)W^KoUX69oHU*Dh4?o(R8$?FCe?C?Qs$ zWJ&Sku?+L1fE&}inSdaiR=@W%KP9TT$#S~267D=bO8e2V`j@B5>GB?amJYIsx`QNe zQqb1wr#gY7U^UqLg0;|z=f}ZQr~9XeX5ZM$|Lc=>>#qpxvHoo+O{hy+ZWZ7cn+XRO zG$HZ=HSSYgfXLEOf`EbgD--~bW^;sWkBq6E_tpS4rSHp_66tNjJrF|xrciDPEE)Ul z*Jo(ilNEN^nFG3o+&wzP#92j!!qZ^aD)Crp@pxzLCGL3AGYdyXypE#bkiw8x;PBK#o#ryqt`x1)H@2n_Sttdt{4GsfQj3J3? zv4>mjnV_3+{|C_HEbdMjZy7rVa;)sN4Tu&*D~`p#U^DJ%Gz-Nzb*kscf7bEONQowg zx5`&eJDVgv0BukRBOGajz8-0GkI(us_#pkj4Z+6#nS1qDi#yjzw@0;0l)t+31nQ3> ziDb$Yieh>bv)0c{iYp{EhMpFqkmw;vB~^pxTFzF?j+ z@WKm|9OGEMmT2bJ+tt2Z>}L;{37^6})Gjc!8wFugv`gOC>iMM@YH9{mvIX@6UNEmB z;&8kTu-VrnF?fQG*m>6J_Sn=kb9b^2<*ldq6Dq3bvsDUI*Nswe^~RPns$n=YyfD^= z=`st;egzv5&y}m~2Sre1tIs<$J{{hLMy{}y+{3Wn<6o(cyK?m-qU>6giIr`iNrDcV z(GHp}gWrEE!*neq*FnnzD|L5Nc1_$6olt@&@VNfu`|_a0P9D z_ZpaCV@t+}_->}~=5gz{=WV$$oLzcC6C^77-`O#_h6rclch%4u?qr44n<`+{IhN7K zfC2>V3Em%8H`&ebQA0A9av*3B^!FhfI2FEK@kvIn-*x?4N1t@vUSFQXm{!YBh|}Ad zw2T`X^kgoVyLZqmf(*<^9arkpuzKv7Q4wPSG96RDou1RLsNMZjdMy61pK%v5H$Ek{ zNUxbeJQ5iqkymuag66pVIb|dHY1eq!jS8)vVBU@Qasq(4s+q8ykq+=!r zGGG~&%{~_c{+p@Ea4)lgu6GKhpT$fBB@I$mR<+*J$oPipRRq!SX2|r4r?B5YUV@qi zpimJ24m&*7ejGucuV1BZNA9ixkr0#dP1HLbuMW(pRp%qZK<#bfTlJ6 zzTu5z&&EfURhUt`19EvjF+M|tvY$Zi366S^`fay`dy_qu@1r#!O#a>w2tRU=$56HY z(Gcp=iUB*}QB*HxNxxQl5Cc=R(J!XF`ohS-W%0U~O7+VU8B7)6mIaN#)R#mMt-s{e zH}ydY3}blLgp_PaZ}WrTqg;L^Oa&CFzg^16GpEXO`6qSQ1s>xVibjun`KBsWtiz~@;!2I?b^ z?1ux!<^Px6X!8J?lMm8Ky%on{nr=6B&3K59D;HrPagg{{JU|-T`rH5Gmx8XxPSoN* z_kTRNk)9cikXJVN@P2_?V_7n+U;lW^UaxtDiZ?&F_HX{F2QeaqeY>|_$V+4?=`$Xj zG?QwvxW+WoRRd_GgXiW<%;Uc{B^mNING_IT9Ea(Nj-@VJlMNZ)ya`oo@EU^+@#M|` z!=xj1 z?f1|nL&)+YO;*W@1Qw%RtE0mwi=%IpAAh{yHbLcUf@G)BC(%><%}TQDh68idZ$~WL zJ0oW9-aN$4b6Y!NEth49cuGPu6a^ZvrvK+s)yzb6MI8=@GZ=_|8%i5qapQu3rQdguxH zayH%CiziKsg^i8S2;IFc7c1lqI=A$s__(Akt0LHAH8Fsvv{k)NnDwDaqRANDf{wWV zS5+v+8nfohpCB&P`$`JT0rv%*5GbdXTrr1LXVY$*%bTlbKjS;H5UAcJe3PQC<-$J1 zZa-^a0nQa-KDlh(G=uYmgoMeWDvdNesKJEJU$-;Kkc}hoed=z^Q3tloDxPyMaoh&>(Tu< zRv{NQ-?)!XUi~L#-Jux?S}rUJ%gT^5tINO8M||7lVB3&9paav5%C;&l@STKDY6-n< z|Bs*Xgua_$tqumSL8L6jsBJDY7<)Z;2h}t*o3?Fo&6Jo;cnR=fB^J1CXrkktlV0l= z49d4=jB7Pw3g3g|?jT@5mCJ8IC`QZGY05*UG_PN%zoY2Rn6h9)Itm&PirX0 zT8U|waa;kA2Z;x8_)rCmn!h%hIApD83p!99uN4m2yz#cSHe{5w->N^`ugldu+rJu%+kFJy_gFgJalmu_5~Vl|CT_JWId{1S z>HgmQvKF(5$Nz+0wj&UM19PAQCe8z?uONs@7X#GTD~AUk87d}1eaWFEJ$`1Ge|>)6 zociz;n>&vi&mXxVeMA`1(az>9uxqvNxYelwF{Q zWPWAI>Qz-z>=x(-@|Hdb>RNPNJ8v&^z7y;NCUBEXeX@@IrYCR{6MVD$t|s??p;O$f zeuUzD_|`M7pG_~MczqQFpO;Oak^3mTg*;#MGG0JPdVM8Dh%_r2f4;vTKKfqo{WVw3 z>^^dYaE-+2UH90m%1AY4elB6g{?%`cOYcMbU@8Ztgiy7jvKd6Jz5Q@>PEi%P2*#T{ zfO2##8#4WMwi4f6f20N*olWk_5S$I=iU-<+BR#BJSciPf^AXtOy3u1W?6()j zXgd5Vf%#NAA8t%;XiU=o?~{28f_(qupEvVJ*WUV%f7%IrR>^Bs1J=c1*?yQaUz+Br>MVZGW$(#%shde zPsblU?RyPdLr*|AF}nFDJ$&)o>W~1eoF;FHa^yAuN4xG^eMMwVS0cr1r}n&JS&4 zMFQ$xtcdEPFFnphr+|Llcv>kseH&Ckwdq8D<(GxnkDn{WNk03KRmvKJAUjXVCl{|Z zg2evjGU(Ysgg{2C4FLq6Mo2F6_?ye9|K>7_zq!otZz_WyHkY#r;|={@d*0Bex8I0s zjiqKl)Lng}PG75eHeig*+w0Nj9elU`0GnNM24f7cIPFaFYka{K^w+9V#=Guv*6j$L zR+>~wnQ%+3v|q-}t-B5Ngt*e0Nl`RE>i7!d)c&9?&skdt$t$*djSs%)gxrTw%isG5 zc!b>?reF))y*K&mR4h@GD~C3-$35simG%p059ZK9_Wpv8@5R^?Pn4PS8VHLVG^vnwls)@nKggcC)I=FhX>$=8x^V9rl;!qc!^NCegB;ybM@n8lT zL&1Dtvp0~Kk%`@woC`Ju)CgA>MlcNM@0!XUKYSgZ)gK|ksp~uk7q>2y=jU7XhO3v>`^PMs(^vixCcJ^kth{UHVJ{Er@Ekj&rv3-9 zvY3^E-W$?ljW6gKs~}!_PR)M3U&N%5RAv0UAxyNBf_2H8fuU)`a4si;P5^?3QjfwY zwW(ZWlC0CxY4)`uYg5+eez1UW>EW5^QFG~1P#&?ED#>X~w9@x+ezcK?UNM|7L$dB5J0+8D;$Kg$LTFejn| zey0sA+sI*bGoFOP51PE5iq>|q@R|`VskWEWUo_cYBxZ5sGFOx{mH(Q=Cw}v@J1)pjb50rWN-S`NkX(UJoX?1Db{Ev~RV8SA znfbs+h-@O+7_tTXo1f=hY2ct;m3CvXy=_&^Z})Re$+X=sRA1ou8{FXHH;1RUdW{Ep zQz?6@byoZ@j7vDufNlT7aIAMag5&?gdm}%Bx;4$?()=55)iMhR-gn8fEzukxfDuNi8>RkLYmdL{ zfDVfHPUqRkpoK1)IxjMv#M_omP30A@D5{gQ_Aq9RbcG{-58D=-`|5>7a@MEtJnc*+ zaG>>PLA6oXaW@(dhBdggprxqf!-qlLwCgo z0h?U-^jzcN^Eef)a-CN0@8(NbAWmj9hLua|yU|_i8@PcvXAE4p&-kwT>o&7X@_H62 z^6uAg>B{uxP6Xd2b6Q80&~X`4qZKoUbJiSnevCYOuFT^?+gw-PV}(b^-g$sHKpfBq z0&CghKHjs)FG~*-${V7{rHQdj9>RZ$O(S!^xDkzvBgSwQ$ODOv{ln^3fCLr^z()GM zu(5Fn4i#~227`r2(tYY0`=e61m#=#K9))W%RpFYT7x{>Cj|&TB0Q;9@S)Kz%;g?iF zb{6BvsQ{LQ`I(saNZJ+j{U0{V1ri3QqbH*^`x1V2I2`8Z;<^t9 z>Goxqudx6Ad-W^$UE}N1{M_nsWfzzprV|G0fY4qJ;U9K^cD*bEKk~!5oTh54@#|q-HQUXhj{Z4y_v0Z86t&L+i zJ_BpFzBc?idy)oka3rPX@JsY(oK~Sfv|Esxxw|4{S`}INCGE%*ypF<-k#SOEH{XYN z&8I|0NT5HGEaHpVxYcapM3(EE`+)>N0=bOB8{OkT%q%7&VD!-2x$(YZ;(I5J&5gL| z(S_xHU4fE}fe1849)+ND&=N53j0~PR)@08Dp5f|qo7=w@ZVDf!Vfsy{E|cHqRf8D{ z%e$T;d}$_3t%PSjb*vG1Gi0aiYWedyx^ZE084r1$J3eWw%q7}Jz~Vi6F1%4G=c_)) zM(>lo^9Jz%ARd1z;g#xf-{4uaO5~?6jt_!(Z#3s$@4eqvd(T$)%rbjL1b|@&2?oB4 zqVRYB{#vi)fc2uw>F{J@`@wV;9pu9^KlE9NR4Ql|yE1D=;#^C*9WPa^Njc3wBabklSi{2|xnk;}I5*=k-}0&AsE^zaxKBFupZ#tV8%Pd;s&PGy{K`PJt@A!F=OTmJvVq8_F3RdJni0}dm({cJWrE-VHf2Mho=Tc|I~F!_Zj%a?HwErvWqdV`ajMipnf@OgGyk?2yRT z;Y=2`LfxHi($WHtGf2%gS_D$F6>BcTPqE==JgN=bqpC2rGbNTAkTA7UB6W^gN*5*v z7B-6XCw1$zq#cpG1#2y4Sf^OE#%lkVJI|x$BRHV7Ms9=}yMvzj+#yY(6#)NjOvOjd zj7263L^pR^K@2w)fo;{sw$CHz$I4AY(ABN&p5TJzPOT{;z6T~gF;njrnM+w4`R>zT z5gEdaSsOYdcYxW!&^=(@j83gjr+*a~;*N_79-2)CI*{Y!pUAmnG$^)LC+ z_yQq6?5z;;lQ94xKkQKu^1~L!M0+m`AwRHD5b|SsD(Hlus|@@lKW_gY@&o)OKYM@4 zk4M=*vHZ15t73bAMG_*Z-=x@nndK8~oOxMaiRHDrwQg!A_F?;FkTN03z_w{$uy(sSuifqCN9~a#({>cx){6LS^`k0Y zaNbOimX6sN?^$lZ#wUqrNj=JKz+xXT%JUjH+o zQ8wh#cIL17o7VMu9{Xnh<=LbOXl;A-?RehxQgew2cA)cQugxWo6GWe!TWkJCM zYC@hzS94a^fZNLBcpXSfaUlBk#$febL{b10MP&liWt&WoGUFiwYX>bFB-?y7)%%dzl-A3Fi3OvHV;4fnOdtcTp#Y%d9nckNUw$ z=QID}=%_u0`w3^(!nQAC(dPlOCZ(Uq{!auCsAA7LrXf3k1R%*@ddi8E;cLRhxzPWL z5CIxt+Sz^KbkHs|q4Jk}!Eh)Tr2gj*2pKdwCNQ05x9=QVT!U2U@z_Ya|E<#R_5I#B z*0Vx$-Hu7Q*j*R1JZOE9#Hoh-1TNm!J`^hN4v5GSuZkPI=88IHDAH3eUD)ns{HbY_ z2i(9Mo1okH_aHcREQ50=>LJvJ2!ZwDZbk9m%NO4nYXQ{S#BFgKee$IidLwww2C5*s zna4PV2|>?k?Dt;0g_bCx41?#oAbb$Mbus4@gR-xP3z*SwckP5i4_nEAgGqb}63v3Jiz47Cffi1};Q$dXjjExBC`d63tM4!|u;+~G1e zpRr3xIp}b>!BpBRc&}nMyD3E}d{$MP+Ng2EYBsGJ9F9v3HTdu5mE2v7n#|3LER zwLbC1pP#Z!a!Na1>SD_d zl^9B);TzP1zuWoSb)z|q@P7NQk3d#08TJV2WqU}yOl8(W5&Q&xNFQ&mEHrL!+P+Q& zb9S1+^KJ4*>%)qz45sB?={cL^!Rn0C+EDUV`can<=f#Pgl(SJsky;gj!y3OWl8POz zvW>nqV}MPPJs%&>K2eNrOpdLVm>15UTOd4-dG!_2&J$4*{`t&x0)IVM6(f5r5A~C1$pIfx z6qC1PD>BS}srfi-eUrbB#JeJ*9s(AqwBz|YOXxGP&ue0G11@X{E6rTK?*=+w?Wm;< z(5u_4d#*Hl<-<;XjXn*D#BgoZB&K1hJ`{JYbE%6HmjZO@+n==5v)?A0KXHGm>C8Y$ zh%ZT^>0Yyv4~&=IfkKk+ABsoJW-PsV+Qs?h#=;p~{0x^t)aE>MY>Lrky*}uk|3L_T zyJwh5MRUr26k9pkLXaD5gX*Lam$j>_UsFjJ1JOCwz+1m zD^Hfx*Bm++5yglw!u=)%M)5;W51q zH0F|dYyBeAQz@hOmwK*o8x~txW#GaibN=S#vBzSD;f72I#!*wP_f~VqwxELyz45Nw zz_8(~^kuO~MKaK&RPp?&MfTWkZwQI9v%8O~Yz2g#CtIu{QTkOa-MCc>S8`Ws611Hw zen;I&$)07Yy$QWKg;3%bL1)ejPZ12#@`d`r3LOi-!G-)m^5q{3sGz_l#wJ!QTRva7 zVeoRDt+^QAb>khDJSx*fS3(ykVAEPVhTpy9F6#S5*7zpORO+KUW1Keq>x^fx+tHv#oc=O`W>8_J9w0%o`Wg_uAR{mWJbkQTUxzJt8vN;(9}T-rMc=(fR}ULAWSjyl31m;mh`l`BIDL$ zYP%F+#Ox=!O|QoxffNyFW{&SH+br7Tzsy>JX|4ucq@IB@0R)z#Bhg3A@^wggPPL7+ z|DW>QXjhlbzvVfvkmlBv*FQN2`)8t+s68RGI}P$sl}#PuaH_&ZN&#Ny>)S8D z1~|lPCeawF=}Ec?2purlK^1iCD+Naczut&5Hib&t$gd z*>WOYN>5M=dFgHiwE&jHJ6cPW(x1A_k|_;XHmf2v@Mnt!0Vs_h^SG&9 zAN3mPKi-u+7U5`@2B)86fWzAJ7KHx%XM~^&+g?Q)h28oykE}Ih{sSh)zK9es+*oBg zKtHG3=;DW4eW4=kHG7@c^6vw;Zj3#ST8cu$88f4DS6K_MC;r56=_-7D3`8lL;gKC- zpjrQ)rv1}Hea$UxKtIILBuNZ0H0ee_um9K3bpHOohNi9OIRhtAa*RJOCl5;isl~KG zdZ6m#(aHx{gbCzq)KRPNlO|GtBV_3efev{J1=*i%XzL%e z18YN7ZRIoA=dzW*ha<1`jxq3>%@QOSgx75~~pW(8%gad*Bdj3${{trBV}w2epiE2~52Q>#o}M*hbdl0rm? z3`afbi)_V`2tdAn5SdN3l^(BP^q#x|uPOTeXs}oMxwpcf6rbsbUjFN~R|X#ZCxGDL zc&#CxE+0BWQ_-)%jU0!!PMTG0N*t0jx!E8|QyN823HP10+@dc$Wux5xKWXYNE^nN? z&$X`Gm0ku<1v9FYuKZk)j^e$a_v{BA3pM1~F8TlNR_7zuv>TBiUDY9|dt=nrNJ61? zO<@bhhHUL-OOS&AetfUVN#YWyMa`TVesuT5ztJ%$wc8jQ9v_+IkZrs9@0k64x>A?) zL-^wNU@2TPIA>ULQS9`%5-K%05oKAsPx}|q zS$NF)yS$gLKek^4_-Vc8p(ML3$Rrg(piVJT5tpd$jGMYJ3ZzWcBdW!n4<+IEo( zf38Dw-mivm!NGZ=imctcEhl{`Mvz9NrPJfAJf#4<2}kn$*8emjDG3O2FBmq++8?BIZ6`w<-d51yAsOpAN@!*02K9rd$Ve{9=zZeZ$d`w2M6m3R z>zcqj88bLnX$<+&EBk*amNR)JZJZq?2)SGkRwB_(11sX zGZcJfUA1-H@~R0-atv{XKKyltg8w>0sp=rkQ1D-8C`}K8l_F(em}lO^2kl6{KgEMl zQ~TzKst3-*A*MtZl7BjcL76JOgr>luG?Guubd=P<-y;x0j?k}7c>UiaNM`@%2zLtE z6F_Ff$cjqS=G${E7}P&mX2+X*hkM&{SCiNwms1nOcK1$#dWbp0Ri7pI2X6PIEPg>y z-OvYu>H#8(jE*~hQT+=9)x{hks2;`t7u5&0Sb+b5_1S(1tS=lwU|p{4A6OqJ`46lc zg8l>RLP5>Rz55G;nP|Bkt=noaA7;ouA5*Rl&u=50cKr#i?TW>*ySHURN6cxOkd~xx zpP!eqXv%3_?6SS;bMdjJAtEVAXg+C^p^l=2DE!GrS74pg{AgWxw9kTFHtC()td8$r ziSMb~Z^ws_fB048F|2eRfO(^;Ow#>Nvq#aq-t^yQj}TmaKSa=-4H~p=JjUApW;Q5; zm9c2h4hge$uJT`XJJt-;+SaBLMdRyslR960n67~}y5sG)XdTj7fpf;5BOKmyxakAD zlj{jgO4VYC^1If^#EiQcAzMHTFpeHC!EW!-P2x)4K*(R%m|U)*B&YB`!Q4Q6*lO(fYa*sdR@k+k>!ivJ^bKGBZmKl{Kd zC9-iH3-%q)2NL)xGDJz38C-1`JHPL>5RchK>|D0`y_h$f^+vAAY>+Qn+mPfZ%^7u!7n-#5b z8KkKu;2>qw=ny-UkVw$F1&MI_bi7Mk;_lE0_vYMO8Xb-BOACyJ?GR5y`}PMWD9uHa zO=!h2bDUGmCdh6rdMiD1EajNbqtS}6zcj-XD~O1jSHMc#Fd5TDjWq^9UBq@56o_b| zP$y5P7AtI!JH1YykjGDD@fq@^fybkb_Lg_-0H9c<4Hbe>Cat)6JkTgXc{?-(&%QK= zLhk1((M~|1yf7b?MlZxiM;C^m-}8nziZX}t0g?G_mvC8RHBH1aqoBm8unj-IayOeI zy`$>?=2?8@;LXrW5^ruUtR=!8Ky`iW|HeRqw9Pz z{Y|(DPP*E63}y0^Yz@C-!+4&4X*(;3t_ukHYG7fkdX9XovVm`e$m;xxRI)sQ9}#m$ zORG~YITA*F#4N8Uq7=TApcsw%L}nS7`5`DYs}s$r{)coHq2*c({p`uq33B8fjjxX! zluB8WL&)Ws!7?YH#P^2$v>h(ZW4%nX=W3!t`tpAL3e{rujFuGpj++>xXLdw7uxM^z zo-k)Gu5}S6$@%X?Hj#gulQ4AGCX*M%^M9y1%b>cpWo_f`!6879;7-t>!3hxDU4pyY z#N7$*7Tkloy9IZ5cZYAW_qpfZkEg2n1y!qi&M|t8w?{YVMP_QYU8Qq7S^hfG=Rxwn z@396PNuMPL%E6%pFRDq&U(kE3i}C&LpAuVE6NVYkNN6;`VaN;o)AG(lDW`_8}#jhub^Onr1H!QXKFt_)(D5%&J043?4%eg|?n zA8sbHpCE^OHw^BkDAtHU-?$9`P}8Nm8z>Uec`by%o2KDp?~&G26!6iwC{FL*)AAi~ zPRiAEy-xe_L%9!o1IE2j6TeEHeFH?d@p};9DWLOkZgHIi5RV3^Y)A?#RVw5#CAPC22*K%MRgWA#Way zz)kDOhB*fcQjN4SE$ha&tqYakj7cG@Y44sonwtWVB?`>f@;?WP086c&0NlqaRCra( zO3G2P+DK4oqoB}U!@s4Ce1?(wn3U~A+zwH?4+v-fb|NnnZ;}UxyP#1DkKTS9^Ch`F zzks$KjmO}duoXha!N*m>i6B60uKUdJxo@SHW-u%(pUEPqn4J7;Ma)E82=@>eL1pf;2) zfSwv%Gs4M#^<>gPkAEK;cc|gL72>C@c7bZ=Hye_sW*jEp$V?4*h`v@atRBKO{uNk4 zr!|#qL7PVH<&nAh=!OX#yUAkl$j_iv9)^lEiKo#XnAq}Hr@}9{BxC~r`{;SQ7tIvy zIuyb;cX5?kRD^9yuCCH4C-*Z54^}vy{llk@PWj&ja`h!kK_pZ&UJ)iOkux85J$O95 zUeYMPw+@X52^Ccb;;lX`D&Sro^VbQ;)Y7d(dwiZW-niH^7#u(^ZKSXIM74W6V~VZx z#fJ(}4iFP?kU`wogT0YAWLf-bia>Z{iMBgQ_iJtFfPLZaTY6Ey@&&nB9J;Q&b9eHd z#7y}IcL4~+I#~I=lB54RQqXDmR zr2y!-`41B4xOtgF>%DyK*B&$@ndaAA0QV{gR4avC{*e_P{HYeoz6!rbduN#Lf<1Hh z`$=u6_~c`lZyLATDELn|_Ox>d>~@xaYqOz?Fp&SL&F00J0*ylPSO7c-5!iS7%~N>ivi}gA zTmqHFrkG9}@6KC^eL$nO=DszAPl3em^e7ullm`2-iOg>3VE@hdT_5v**T<+}WdEy= zVg8Rkwio{B(Vz*M7&>P1#ba8pqeG0|+@q;_&g3h=Yg4MXa+@2?%9*ar(=~Bzf8ZZe zQ!6dn!L~o^6x+>d7TzBa?dJOzl*Y2Zfznv?17%ny9|zJvL-ZHF|E95rB2dARQ{i7H zW~Y+0IW@{aSu7kHcgnwsGnX2E>8gS`{?w zSUrT7i5-MxU{?Pfg+WmFV_i={Z}8Hbu&eNlKSuMpqp;uJA2b69IYyD+Z8veBC$-06 z^cdv2@5|Dx;yn4Mlie&R(nvv5mjxZaq(R1O|%u&o-!4}4WP%7!M(uOF!Ub~IyI$K z+&W^&C;=}HnFh&pi>2=}ofW~)aqlPNpRu=@E61F!g}P{XskMbj zI_175SovG^2nl_^2~Z$LPH!+bUS4!NUqj;oe#HA;anq(6jCdA6{2WtQ`c#Q`Mt2k; zVg0+vcBJVERxiA&Tf-#4l+_`dKrF?b67CmgbWRN#{nR{m()B$h zkVV%O>g@P=VQkvOTo9{%3RkhX`REw3$m}TOyTAe6%0G$N2MIc0u1nel)}cpx@~GUq zuX2V4lgX*XFtUfw2`|#%DU!AFt~LGw#yHMYh%l!WeFJiX9LN84Lz*AR4RBrWZb1IW4UlmE;|Aap^FMxY*knk)I9XyF zV;XD*zG66C!MbH1HWUxp}b(cIZ;FG7ALU6C=sNhz?71S5l%lUn?FEQNH|d< z49qG=WrFc=48s&cYws}ZV=I+!AfYJB>pJU2RlyK_NtL)?T0js+OG|K66FSdQX69f) zCO7!RQu`T+P3%M(Ka^l!fl{@6rWDBGbYc3q^iSqf3cY|n@^9ute~vW=YGL)#CqtJ7|!9Cj-^euvyK5fx=4 zv4QZ@Izk>RtBhSZDBE~{k`EPsEex8hm6zEjc^g{Y&>xh3F{QY>2Lh(y+o#m1R6jE5 z;wdoenTfrI_{wo|M-?Ii$w39v#=4b~AqmEx>R))b) z;(t?}+>Bs|&9t(~QGZ`aPme7CpI9i-XLEz&-Ik^yh@{^m$3AUyAZi{^O!=hSErRAt z*8*1)(R0dJZ;Ik>Vh-GFo`sR?A>Gbe{KW-4XFmQ2;bZtkaa>Ei=Q%`Qj+Hd}A=DTu zwo%(qt1>6p*!ZL6iwTtYtQ+gOAv%u<3fv>M?sG(kKQWs)tHq5vc8I|yXigj^>FKQS zU=LW*Ar>=UtKaGcwp2u5EbAqFy*7==$EJ%;Rk%{GWvUYu_(~wq%PR3N?#{D*30vpx z;avWY;jR-&{s7G*^J=0NwdmR+eaJ{BsdXRU96>LcW;FTsIQo7MQ^61F5wooex^VHd zUrxpi2Ex55iG%H-3)YC)iUUe928zM*CO;t7WKcCF;o(8VO;e+Q#v+@ZbSqM!c}4WN zSe1~cTy6h$eOLp2i&Ri7%_A@kN!GHIe)?JwW)^Dq1HwTK>O`4kksPxygFM_?jB`M2nqGk#a(5DeVaKAnQguugCs z{};KptcX?-D!~Y(j?cUtoJa8aZ8I?*OoLfD%xLtP3H$+obT4V$#rgP4yhI7NRScyz zMtZTOQ?>mu9;G_52q|ZkSW#U}m27<%8!wOP+l~H?SWFky@(DpDbIRSI7}(*UPkxO* z0{iKcY;tRUr%wA(66Fh$)aU%?jEznNI`u3tQnwDi=;`ag&Ph@;bnhRYmRJaa2pKR1 zH|il(6M36JA+=OCp3XdL2sPM_6_#io?4%!?!d;2pG6j67aur?|u-C^Q0XrcH=Z{$i zr6#srFJ+O|3{=IZFndyn;D2jJe`4+Lo^vBBUQC6q4zT1{&l-1?v8jZPPFf6z;mWj> zYY+pR!t6{bfiKp|oXXZOr{f@onTd*M zgeYb?;F?(zd_`KrP6-wrBnlOq3wog%+=7h(J-VQ_ z2ygoFwhz}~#=2T7Wti!fBSK!k)-?fJgYqENPUglOM6{fLIkC}Zl#YT_^WQ~__)=jM312#|ek-YKTJO#86Ngof+0eq5X(+>?vF z(ZznBWq%{vLg_Jn&Uc<{9wE{zMJihxux5)d`{=qYNJO($RhIzq$<171HeJ)9#Ns(= zbH>T69M6pTFA52}f&XqKHhwQU^z{kG0$^vN+a;T6Uwz(yNTPNlMK;O5R%nBTSvE}C z_Ud$&z1`w5Q57D~=6Cq4B>0FO`-ZBX<idw^Yt9(FP@`S>aQ)kA5AT zZ^(*)BO{H!Y#Wni8&kx_ihXgY!y!37gHgH>*gV752j9NPAf46l>Pk&m>9X~A9C%afMEqcRbyylrNEhubwd1Py+L%gkyr6y&Qj zICu|BZ_Zo`#Yzw6cReyv`ZKb;PV}{dJSen>^N)-AGp<-@kAXpF1`ll%qGQ*#u2sg3 zh`;Mw$1(JOC$0et?ZMhNh-YYuO^&tcFi3t^nC~@BfrS^nH!P za%wu!NrGH%4-cboAWK9|pm6n=BT^9ynF#xbt|(e^JFXmHhw&z8KGiMqX%tyRgqN8Y z&tbavRa_I7Qm+#?gh&82Nn{9udF7XXhgO2f1a`I^im80s$f#)(x?UtxGk|UYE8^bX zV9dE#ML+H1VQmGy1&)GcnEV^=Y?*=QP7buFvqpbfQ9 zZnbZvXWPy$-cp1>2p(OETJUa#e|2xcH8ESGGkmF|#Tc9Y7el~FK_yC5T)7+9y&2y) z2WJBDGfRWHcZ)=_4*`8x4=|cDGN^dWvjZ?=Y(7GS%b9w9Ql6-H9yarD`MAK1yk5^J z2w~g&Nn=WCadqFKxXrzZ$sD5&CjDHpstip4xyq~$DyA^qNW@qQC1vUm^JHq2U1q`x zoZPN$0Q#8jtL0l(c5A0ZnXYM|X(4z?O^Ux86EDk$-@)^aOaOXW<}ANVM>*KW z=WTGSDyqXTPJT=@Z{yVU94bZ06Hb&pg!E3711R{nwjrZGs80Esmfy6rNKg^ztlzYW&*32mmd8o=;|5qY4cKzId#->{BFT zI_Oc>Br9)O7YDk{vp@~sl;K<@#iFzeFRK^}X&=>^5;In-&nlB2gf=XU%m~)9m8pY` zmtu^a@3igJ@=at+al05W?M~W{OMNGtfYow-Rm(1fEW4zPJn#@g0uOazJSxX1{rufg zA%AOvrAz`l^=^^2x!#S9UHBw9L2T0{#5B3g-ozk*dEgtiE|4a?N<@-8w)@E@vzkh`%j9ByHWbK`ginEc3mbn7+wR0gBBvYv<%UPv)F|_Qkyo2 z8%uV$I-!vdo@FG>;(JFJsYYo!*7-8RE0XBFU#$CIk*Y@0SNmuOpP;LKb=bGEWN`&N zD!)iSB%_JSxB_(|KB0Ii311X1U;4IOwvju+p-a=L(e^5W`#GXdfr)#EzXmQx-!AmV z>E&SXW;xz{#I>o!^zNfdZ=Alaj*v#*CHgp&SLJ59f%p$a4NSP#kNQXocAj$BFWJ)a^v9w1BLFbMe^ zvZD^zfB)iIBYulE46}TL1rCSWiMA@+%!x6Kc#NR7J<(B0nqXZ={GDz%h(rpHmyBs# z2d~i@0^vCe5C2obh7(-=M8Ry0p9Y2UNEWWd zNcQpw`CTb@ORDZOf5hb(ZTh{jz}yjOAg4&UqTSqZ#Ha1f1MCa=_cz*Z^3Q%7xeR#d*g#r@(tws zS12n7xAVC(ZWA-bX2aOaGrUzv5d!)jV1j@F@lnimDuft5)ekbbnK|Wbw7gR3Rp9rH zdT`Zj{^!i3>hErs`s3uk*YjS7aASx7VN@2$OGxI^SSXPaG}-$-iI~|pJvujSa@_oH zjPj)$XHT@|;T6P-e9|PZq(TV9?Rb7u}pMX45N!4P1HIq`OF(t(z$E;({AdP>TvkR9TM zZEplc`@kel%dzpA#Y>;<%LD@$W!$*xYt~)y;vka2>P8>=>*1<%(|dYPLFJTfOpNiy z_v&(M%lEjtIlb>2X@BZa4djmHQcNWe<#ME3_NHby2K{9gtvu20DGD%g#I|pPWcShc;Q$cqj9J~m91b*; zzFWXsJZI&n80McaDIsNYnAKt6w&B!Cc?~c%TO#-6_D>kFRc@DTOf?P$C6Hujpsw8O z5~@20g~!FEla#<+uVN7FjKbE*lkuJ9iR%w?7y`ze7h$WvOQwRLt9`&ZwzHx%w-GvL znKn#>aTiV&umh-FOaS%SAM>aLs0QWrV63|}K%YQbJ1NncK+~Jx)|7Z&nXV^E-Eja# zD9NDJNKAOJDZA^(?;_S&93wwNJDF_s%h#Qx^8LuLa74ScC^|TiRp6^aA*>Q-s9v7* zkJ!34C4I>kogwRt15e8w*|nZl=)#fND!?f{$hW=0ro+R7Gm=9=kw-xWQpi*?cuuTP&ir^XNrtfFU74_pH!W{4B);&@VEJJ30AL4dZX^;(Fmq(#rDTh zD11sE6dRLyP;Bz`-(z!pk|&;H_#T_W1yF2`fR^{*Jc2mFT&xoTN!gJ(L5ks z-4dCbX#C<3`Q*DDTjx$i)vHZU=pa2F*(`mJ_cfv0*b@2kA)J#JcMk7BSl(gcWvJ#0kofds_)Tg% zK4T3r?k&AQ&?BjVMWt58O8qraGye=b^^H~vNiii3sJ)Z8(YH%SF0+5jeeK_fF8+qc z{JLvA1fQc2yL-Yv)ZT!qxW7gRT#4^G>ikZGi-LG9dn^irU?jU<@;YkJf#t=2i>iPW zS}P5{-hWyX@t@#8(C2*wUVox}yLJRj|IWP_eP3%!+%NNayW|NH z8k~M!o?=o;o)RotK;$7Kxf4G1`$50hXWup)$cOvnxN@OmeQBRObf~k=-$xvM%L^YHb zx2?SBcYr^nn-wGEwkP!Vb=4UT1*)|Ijqrn;&L_^V*X>;}U`ta$stNCeM1YVM)=!1= zQ33B*3dYa~M%M^N(+Ea&>eTlAhtI61A7yDY`kBvhB^BMg7(}p z7coTBSHoB1Gt)aq81shW1pXT|CkPy|`Taqw1p_D_T2W&@(z_9p@|axn_h6haDTLrA zy;BqkLPozh6)Y}pAG278$znM;j(`Fmc*ze86m>7U$ePqPLo=z>`MAyQHXmqlCx!iV zrnfnk@Mj?ZRm)XyJFw=04y^>ov{?V_xZ_7@6jX&*eEit}gnSuLJ(n(`BFVXIwyR51Nl{8xbQ?e84r zt=U$7e2K}*a-xxz9i4-j&qqo1nG?mXh@I<2Vo&4VL{ZO6;#_A-x|VM6(V_mtH6%N z!7fLz<{2ujo21Fe4EnJr0K^L zGYQ=DF#7Ox@N~(al0Zb`>0`h+v>2d00s`doaKDaEMsWsi9z+4qC)j74d((KK?+A(b zT$kM&ms-r(j|@)ID@ktg0mC@Z5Cjtarlf4qBf>NX0!961kEpjYko~%5#yI_?aT4(8 zRq(Pn-!Rk7Zm9VN$-d4ZMGAc~D1DhL8PXThS0=bM(({fD5>eAdwhbyUB-c(e`hESB z2c7imv&>I$ZO?)#Fxj>#Rqwl1^YETA=W2ceMwPIt{o#a=B}&unT>&4840{~41Fnh) zQ|*fwM&T$Am*{w~DsT{;Zu9HVDb|Nbxh8GspN0(x(kWamazUdlEZGvatIGOHvK~b1 zsMsoqPu)T)EClDiZ35VxN1kXj=Wd^MXv#L$N!P?5`d@#^skLV)PPC)vO%jjCBj z{#Mh_7V~N3Cqcdlmt}4>RfVM@_D)^d(2@6(XoKZG(MU#xkLaN3hv#xsuVjgLq)Bx5 zG)}5%*z*v41D`I1AMM{Dp&p%dJbk=YRdlk(*9zM|#{#FcEXYb{8Lvnv=FSLPIWz#pGoP=%jZe%oEg9QXRguGchsLLVXu$h(IB30z{bY}?`StzF6%gbZ%h9i zp4HIcB*6(8VX=&0L1<3^A{Fnuo0)+Rvw%7x+D=t%pYL+*tV(pn>?4BRwCLIwG!yy- z_IqH#Bmjc0{H)vXq9+;G*)n|CVGzUvLm_Woxi$98EQaBOX<0S7SQ%Erc2R9ttY)p8 z3zmsSSRL|`)7PIZvcZrckaImg-J-K~;L7te>?X%NW}-Z^s{b3R{^j%e9n zqLcGyLotO~FcXzWotM$V&EMijj>vwh8`>flHP0B9xFxFirIiJ%q5Ph#|_a?Y$Fx(Bh&<$#R#=aG~HGsO66#PmV+;}t4Fbtx3 zw1LO}f+nZ`Yh+0tTsU6*;^wAM{vXb@ieK1!Yqfum^a>Zrr&jrMD&9E_8sh_2Pb=;yW1(;dE!!v`?H+p5SvDf=#|6s58zng*a zKcYEXl$ZP-=S-7ilVl%IK}5O2sTq!yPekIT>eQ~v5`3X|9u}1tZmpF2Ygb?%FYMDS znr5jw#?xe5Dzq%!Zzsok*MUypA7yesK-WWeeW11va{#2v#}~~jz^rTEO<}Z@P0e^E z9YZA` zp+2`-pn-{tuI4Tv4tCnP=74WOv^qkyE+#n@#1if-J4?q&Bbuo;t)5G_eY%lrxj#BG zqk}fQ^AeX`L@?t;HZ;i+hVgw5|67dVg8yw^}4(LN&`mT$Sy4}DkZa0!8y`P-{S`<$`_$F@G7b28vBu4 zw5Do_6rTC-e-Tdpa+v^*3boFl6PMQI2NZq&2hmYe+RHp7vFxE3pSHnSiH|4g_?X#5 z+Kf(Rs#zT~ZR`xd+=E>=gey8bS9&KY>sev33fN2Up7(LrRx-l_<|XyEg2lRm==_gv z*^=)cXr`KtkS{ZDkuh3zW*c5X6WVB&nvR(m+?I70^h@V>_kJST zLOk-7x0VwkprT@>&9kCxMcV^pULUjQ2UyQ`7M;F+6|X)bu0M8jJTy1Y(7N_TH;R0}Gt=hg;RG$s+g z=ugUXIJb-VCg5p9^>^1A4AtrH`mZa2AXx5s$dAe#rBz)i`m72Ax3JO=W=M|={V2^1LE?YCim&5~T;Gi=goX=~+Hns<4vB-Ebb3m)fM>aQd z%@>=7p^*U)oWYW*V`hvzb&6gpcFgH5| zj-fOTN5>@YHB(QQ*Y9=CmJcN7nU9o7>}{+sYL!0d4#4# z>Q9fs^7U`mN1!Y33g@>+;=PUjD&N&ODy?)^&YiTZw_`U)tr0Jz;E`K6ibK!E;LDop zi}jD3wIvKs#un3So6~FEV;W)eZjf}a0Cp1D7bQjOVX~hpkOiY`mz6UmDnr7n1auw_ zhRA;RKUu$HQrZtKai#Q6DH}leK5J4&WA!A!aoJ6=UY-ika>>}$`l`0e7!2J=J;}?c z^PU81Us2K^ZNb`?$jNrW8YF6LxWrZTvim?2)U?kql&tp-jz-an(>v)!e~d@X1GptD zqZdhP!Siv`cU^;X3HmA2r}%lDRFkM=JtwrIkNEZ(1`>%KaJHADnkobh`AnE&7Fr&V zb$yoSl)ErhVYuG$h;|1z9U1E;{zWl7CxYxkq^K2J5Qe|^we*oj*Lc$KskSowkI!v5 z=)y?2)jhFgzYRM3bEB#cQrIz_!Bdt^w z{6$vpZ|wqIc<(5P^z2MJKspLvEeUy4$SM0jeF1s6LsSV}X1+L-o)$m5lulKxvRcfz5`D@@8TRV-oU{d1f#WSU$L~GpqiYGZs~c zXsWGL4-L972$yx|_v&P)XuT)e?(piR1~+Qnz=whd#Vo~Z7d-4DI(fA`p+VBUAMqu- z+`Fgw!Iz^Yi@q(_#eYbERvP*Ndw0nSK{l;k+1#|{je6HFQ!=oE5!OiZ?*#gYDrMvK z;>LriWoVev0fVNro)iz}`4!|UWj9*Tl8Uh>?i^U4F6P4|Wu0GdZwYSGO%OtUDtn+L zOn8G3An;}c$XFqkONbLT;^Ti~v{e07@WoMflRR%zm!%@9Ag}fd|7dtjLWaMFkN>mn z9b$n6nT-1o=0dHvCc?LpnfOir+G_c)Rm#et01x|67qbifEIY~S{;oxWuUI=57*W40 zD9IQJf2ReF;*Pj?IwFR#oxYQpacJ=@0!QiOt~ads)_qe+iG-yM?#0Hp$sgZp_qb|* zQYASNrr>eB+h2JOr7DxlYjQGe0E@5o7Qa+n^C3onwnUysXAxqZ?r%6n;3p)qZ5SCWL7)TbU}_s7-bkzHqe zP&xwV!=_`|$LWGUCSjNo4e3sA2zD9{G+|)Qk)gR&%z5a$j0&i197Z$(=$A)TUxr}$ ztp_v{H_usSDU85v`eqgBHdTAj$uY>i*u{@=^xyY5lPrSz7d`NdSu?ZNnp!vYGwZU9 z*=EfG%5pYyibdu0nQEV#AyrrMmY_)~ef|#ihgViwb4{XfG=&QPqU7UubcBwnn0+d8 zh5g$_Lco58VSr}<*c1@Ubdp)#+|^cHkb3BP=mu;cu0IfNAFq(m$s56-I<_

~Vt@ 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

TdV8MgC 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 I%`4D12>JU`c>n+a delta 136560 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

  • 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 From d1f8faeca6b61fc5b4eaa81034fb67c1e0aa173d Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 13:48:35 +0100 Subject: [PATCH 05/14] refactor: solve too many method args by introducing arg object --- .../write/nested/update_nested.rs | 9 ++++-- .../src/query_graph_builder/write/update.rs | 32 ++++++++++++------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs index c0a7b7c4bc78..353cb36f6daf 100644 --- a/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs +++ b/query-engine/core/src/query_graph_builder/write/nested/update_nested.rs @@ -1,4 +1,5 @@ use super::*; +use crate::query_graph_builder::write::update::UpdateManyRecordNodeOptionals; use crate::{ query_ast::*, query_graph::{Node, NodeRef, QueryGraph, QueryGraphDependency}, @@ -147,10 +148,12 @@ pub fn nested_update_many( query_schema, Filter::empty(), child_model.clone(), - None, - None, data_map, - None, + UpdateManyRecordNodeOptionals { + name: None, + nested_field_selection: None, + limit: None, + }, )?; graph.create_edge( diff --git a/query-engine/core/src/query_graph_builder/write/update.rs b/query-engine/core/src/query_graph_builder/write/update.rs index ab66d8acd097..a1e416f80797 100644 --- a/query-engine/core/src/query_graph_builder/write/update.rs +++ b/query-engine/core/src/query_graph_builder/write/update.rs @@ -156,10 +156,12 @@ pub fn update_many_records( query_schema, filter, model, - Some(field.name), - field.nested_fields.filter(|_| with_field_selection), data_map, - limit, + UpdateManyRecordNodeOptionals { + name: Some(field.name), + nested_field_selection: field.nested_fields.filter(|_| with_field_selection), + limit, + }, )?; } else { let pre_read_node = graph.create_node(utils::read_ids_infallible( @@ -172,10 +174,12 @@ pub fn update_many_records( query_schema, Filter::empty(), model.clone(), - Some(field.name), - field.nested_fields.filter(|_| with_field_selection), data_map, - limit, + UpdateManyRecordNodeOptionals { + name: Some(field.name), + nested_field_selection: field.nested_fields.filter(|_| with_field_selection), + limit, + }, )?; utils::insert_emulated_on_update(graph, query_schema, &model, &pre_read_node, &update_many_node)?; @@ -279,10 +283,8 @@ pub fn update_many_record_node( query_schema: &QuerySchema, filter: T, model: Model, - name: Option, - nested_field_selection: Option>, data_map: ParsedInputMap<'_>, - limit: Option, + additional_args: UpdateManyRecordNodeOptionals<'_>, ) -> QueryGraphBuilderResult where T: Into, @@ -296,7 +298,7 @@ where args.update_datetimes(&model); - let selected_fields = if let Some(nested_fields) = nested_field_selection { + let selected_fields = if let Some(nested_fields) = additional_args.nested_field_selection { let (selected_fields, selection_order, nested_read) = super::read::utils::extract_selected_fields(nested_fields.fields, &model, query_schema)?; @@ -310,12 +312,12 @@ where }; let update_many = UpdateManyRecords { - name: name.unwrap_or_default(), + name: additional_args.name.unwrap_or_default(), model, record_filter, args, selected_fields, - limit, + limit: additional_args.limit, }; let update_many_node = graph.create_node(Query::Write(WriteQuery::UpdateManyRecords(update_many))); @@ -356,3 +358,9 @@ fn can_use_atomic_update( true } + +pub struct UpdateManyRecordNodeOptionals<'a> { + pub name: Option, + pub nested_field_selection: Option>, + pub limit: Option, +} From 0a4637f11e4e95eddc8f9346c5b1c74b3d410470 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 14:00:22 +0100 Subject: [PATCH 06/14] refactor: extract subquery creation to avoid code duplication between deleteMany and updateMany --- .../src/database/operations/update.rs | 35 ++++++------------- .../connectors/sql-query-connector/src/lib.rs | 1 + .../sql-query-connector/src/limit.rs | 31 ++++++++++++++++ .../src/query_builder/write.rs | 24 ++----------- 4 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 query-engine/connectors/sql-query-connector/src/limit.rs diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs index 82dde0be30e4..d6817a720739 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs @@ -2,11 +2,12 @@ use super::read::get_single_record; use crate::column_metadata::{self, ColumnMetadata}; use crate::filter::FilterBuilder; -use crate::model_extensions::{AsColumn, AsColumns, AsTable}; +use crate::model_extensions::AsColumns; use crate::query_builder::write::{build_update_and_set_query, chunk_update_with_ids}; use crate::row::ToSqlRow; use crate::{Context, QueryExt, Queryable}; +use crate::limit::wrap_with_limit_subquery_if_needed; use connector_interface::*; use itertools::Itertools; use quaint::ast::*; @@ -107,30 +108,14 @@ pub(super) async fn update_many_from_filter( ctx: &Context<'_>, ) -> crate::Result> { let update = build_update_and_set_query(model, args, None, ctx); - let filter_condition = FilterBuilder::without_top_level_joins().visit_filter(record_filter.filter, ctx); - - let condition = if let Some(limit) = limit { - let columns = model - .primary_identifier() - .as_scalar_fields() - .expect("primary identifier must contain scalar fields") - .into_iter() - .map(|f| f.as_column(ctx)) - .collect::>(); - - ConditionTree::from( - Row::from(columns.clone()).in_selection( - Select::from_table(model.as_table(ctx)) - .columns(columns) - .so_that(filter_condition) - .limit(limit as usize), - ), - ) - } else { - filter_condition - }; - - let update = update.so_that(condition); + let filter_condition = wrap_with_limit_subquery_if_needed( + model, + FilterBuilder::without_top_level_joins().visit_filter(record_filter.filter, ctx), + limit, + ctx, + ); + + let update = update.so_that(filter_condition); if let Some(selected_fields) = selected_fields { Ok(update .returning(selected_fields.as_columns(ctx).map(|c| c.set_is_selected(true))) diff --git a/query-engine/connectors/sql-query-connector/src/lib.rs b/query-engine/connectors/sql-query-connector/src/lib.rs index 9bd6c2d7f211..2f019b41e54c 100644 --- a/query-engine/connectors/sql-query-connector/src/lib.rs +++ b/query-engine/connectors/sql-query-connector/src/lib.rs @@ -8,6 +8,7 @@ mod database; mod error; mod filter; mod join_utils; +mod limit; mod model_extensions; mod nested_aggregations; mod ordering; diff --git a/query-engine/connectors/sql-query-connector/src/limit.rs b/query-engine/connectors/sql-query-connector/src/limit.rs new file mode 100644 index 000000000000..281d538240af --- /dev/null +++ b/query-engine/connectors/sql-query-connector/src/limit.rs @@ -0,0 +1,31 @@ +use crate::{model_extensions::*, Context}; +use quaint::ast::*; +use query_structure::*; + +pub(crate) fn wrap_with_limit_subquery_if_needed<'a>( + model: &Model, + filter_condition: ConditionTree<'a>, + limit: Option, + ctx: &Context, +) -> ConditionTree<'a> { + if let Some(limit) = limit { + let columns = model + .primary_identifier() + .as_scalar_fields() + .expect("primary identifier must contain scalar fields") + .into_iter() + .map(|f| f.as_column(ctx)) + .collect::>(); + + ConditionTree::from( + Row::from(columns.clone()).in_selection( + Select::from_table(model.as_table(ctx)) + .columns(columns) + .so_that(filter_condition) + .limit(limit as usize), + ), + ) + } else { + filter_condition + } +} diff --git a/query-engine/connectors/sql-query-connector/src/query_builder/write.rs b/query-engine/connectors/sql-query-connector/src/query_builder/write.rs index 0ec506e1b6f6..bb6bd6882379 100644 --- a/query-engine/connectors/sql-query-connector/src/query_builder/write.rs +++ b/query-engine/connectors/sql-query-connector/src/query_builder/write.rs @@ -1,3 +1,4 @@ +use crate::limit::wrap_with_limit_subquery_if_needed; use crate::{model_extensions::*, sql_trace::SqlTraceComment, Context}; use connector_interface::{DatasourceFieldName, ScalarWriteOperation, WriteArgs}; use quaint::ast::*; @@ -229,29 +230,10 @@ pub(crate) fn delete_many_from_filter( limit: Option, ctx: &Context<'_>, ) -> Query<'static> { - let condition = if let Some(limit) = limit { - let columns = model - .primary_identifier() - .as_scalar_fields() - .expect("primary identifier must contain scalar fields") - .into_iter() - .map(|f| f.as_column(ctx)) - .collect::>(); - - ConditionTree::from( - Row::from(columns.clone()).in_selection( - Select::from_table(model.as_table(ctx)) - .columns(columns) - .so_that(filter_condition) - .limit(limit as usize), - ), - ) - } else { - filter_condition - }; + let filter_condition = wrap_with_limit_subquery_if_needed(model, filter_condition, limit, ctx); Delete::from_table(model.as_table(ctx)) - .so_that(condition) + .so_that(filter_condition) .add_traceparent(ctx.traceparent) .into() } From 107013a80c81dc49cc28e00212f9bbb97d324220 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 14:47:10 +0100 Subject: [PATCH 07/14] fix(tests): update snapshot test with added limit param --- prisma-fmt/src/get_dmmf.rs | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/prisma-fmt/src/get_dmmf.rs b/prisma-fmt/src/get_dmmf.rs index 0b627a7e545d..3733c36d455d 100644 --- a/prisma-fmt/src/get_dmmf.rs +++ b/prisma-fmt/src/get_dmmf.rs @@ -5523,6 +5523,18 @@ mod tests { "isList": false } ] + }, + { + "name": "limit", + "isRequired": false, + "isNullable": false, + "inputTypes": [ + { + "type": "Int", + "location": "scalar", + "isList": false + } + ] } ], "isNullable": false, @@ -5567,6 +5579,18 @@ mod tests { "isList": false } ] + }, + { + "name": "limit", + "isRequired": false, + "isNullable": false, + "inputTypes": [ + { + "type": "Int", + "location": "scalar", + "isList": false + } + ] } ], "isNullable": false, @@ -5897,6 +5921,18 @@ mod tests { "isList": false } ] + }, + { + "name": "limit", + "isRequired": false, + "isNullable": false, + "inputTypes": [ + { + "type": "Int", + "location": "scalar", + "isList": false + } + ] } ], "isNullable": false, @@ -5941,6 +5977,18 @@ mod tests { "isList": false } ] + }, + { + "name": "limit", + "isRequired": false, + "isNullable": false, + "inputTypes": [ + { + "type": "Int", + "location": "scalar", + "isList": false + } + ] } ], "isNullable": false, From 0473645391c200fb8417f5aed811490d13c40310 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 16:35:50 +0100 Subject: [PATCH 08/14] refactor: improve method signature semantics --- .../mongodb-query-connector/src/interface/connection.rs | 4 +--- .../mongodb-query-connector/src/interface/transaction.rs | 4 +--- .../mongodb-query-connector/src/root_queries/write.rs | 8 +++++--- query-engine/connectors/query-connector/src/lib.rs | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs index 161b9bee83b1..e224cc52b156 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs @@ -106,8 +106,7 @@ impl WriteOperations for MongoDbConnection { model, record_filter, args, - UpdateType::Many, - limit, + UpdateType::Many { limit }, ) .await?; @@ -144,7 +143,6 @@ impl WriteOperations for MongoDbConnection { record_filter, args, UpdateType::One, - None, ) .await?; diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs index 3bfe6c01ed67..4b6c41364e1c 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs @@ -137,8 +137,7 @@ impl WriteOperations for MongoDbTransaction<'_> { model, record_filter, args, - UpdateType::Many, - limit, + UpdateType::Many { limit }, ) .await?; Ok(result.len()) @@ -174,7 +173,6 @@ impl WriteOperations for MongoDbTransaction<'_> { record_filter, args, UpdateType::One, - None, // This is a single record update already => no need for additional limit ) .await?; // NOTE: Atomic updates are not yet implemented for MongoDB, so we only return ids. diff --git a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs index 08b1c59730a8..537fbb1218c2 100644 --- a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs +++ b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs @@ -146,7 +146,6 @@ pub async fn update_records<'conn>( record_filter: RecordFilter, mut args: WriteArgs, update_type: UpdateType, - limit: Option, ) -> crate::Result> { let coll = database.collection::(model.db_name()); @@ -161,7 +160,10 @@ pub async fn update_records<'conn>( let ids: Vec = if let Some(selectors) = record_filter.selectors { selectors .into_iter() - .take(limit.unwrap_or(i64::MAX) as usize) + .take(match update_type { + UpdateType::Many { limit } => limit.unwrap_or(i64::MAX), + UpdateType::One => 1, + } as usize) .map(|p| { (&id_field, p.values().next().unwrap()) .into_bson() @@ -207,7 +209,7 @@ pub async fn update_records<'conn>( // It's important we check the `matched_count` and not the `modified_count` here. // MongoDB returns `modified_count: 0` when performing a noop update, which breaks // nested connect mutations as it rely on the returned count to know whether the update happened. - if update_type == UpdateType::Many && res.matched_count == 0 { + if matches!(update_type, UpdateType::Many { limit: _ }) && res.matched_count == 0 { return Ok(Vec::new()); } } diff --git a/query-engine/connectors/query-connector/src/lib.rs b/query-engine/connectors/query-connector/src/lib.rs index 5488dfaef494..e6631a7dcc21 100644 --- a/query-engine/connectors/query-connector/src/lib.rs +++ b/query-engine/connectors/query-connector/src/lib.rs @@ -20,6 +20,6 @@ pub type Result = std::result::Result; /// However when we updating any records we want to return an empty array if zero items were updated #[derive(PartialEq)] pub enum UpdateType { - Many, + Many { limit: Option }, One, } From 63e697e46d9a0107bb9bc58ff8969bb1cd895288 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Thu, 9 Jan 2025 16:36:14 +0100 Subject: [PATCH 09/14] cleanup: cleanup leftover log statement --- .../sql-query-connector/src/database/operations/write.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs index 5c538eed6ce4..2e2237e64a65 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs @@ -379,7 +379,6 @@ async fn generate_updates( limit: Option, ctx: &Context<'_>, ) -> crate::Result>> { - println!(">>>> DBFlo A {:?}", record_filter.selectors); if record_filter.has_selectors() { let (updates, _) = update_many_from_ids_and_filter(conn, model, record_filter, args, selected_fields, limit, ctx).await?; From d8c2f272d93a49210ecc16ae1c3c9c0046cf82e7 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Fri, 10 Jan 2025 14:29:10 +0100 Subject: [PATCH 10/14] refactor: validate provided limit value and prevent overflows --- .../src/interface/connection.rs | 6 ++-- .../src/interface/transaction.rs | 6 ++-- .../src/root_queries/write.rs | 21 ++++++++++--- .../query-connector/src/interface.rs | 6 ++-- .../connectors/query-connector/src/lib.rs | 2 +- .../src/database/connection.rs | 6 ++-- .../src/database/operations/update.rs | 6 ++-- .../src/database/operations/write.rs | 11 ++++--- .../src/database/transaction.rs | 6 ++-- .../sql-query-connector/src/limit.rs | 4 +-- .../src/query_builder/write.rs | 4 +-- query-engine/core/src/query_ast/write.rs | 4 +-- .../src/query_graph_builder/write/delete.rs | 16 +++++----- .../src/query_graph_builder/write/limit.rs | 31 +++++++++++++++++++ .../core/src/query_graph_builder/write/mod.rs | 1 + .../src/query_graph_builder/write/update.rs | 17 +++++----- 16 files changed, 93 insertions(+), 54 deletions(-) create mode 100644 query-engine/core/src/query_graph_builder/write/limit.rs diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs index e224cc52b156..94f29b21535e 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/connection.rs @@ -96,7 +96,7 @@ impl WriteOperations for MongoDbConnection { model: &Model, record_filter: connector_interface::RecordFilter, args: WriteArgs, - limit: Option, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(async move { @@ -121,7 +121,7 @@ impl WriteOperations for MongoDbConnection { _record_filter: connector_interface::RecordFilter, _args: WriteArgs, _selected_fields: FieldSelection, - _limit: Option, + _limit: Option, _traceparent: Option, ) -> connector_interface::Result { unimplemented!() @@ -164,7 +164,7 @@ impl WriteOperations for MongoDbConnection { &mut self, model: &Model, record_filter: connector_interface::RecordFilter, - limit: Option, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(write::delete_records( diff --git a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs index 4b6c41364e1c..31943e0dd6cc 100644 --- a/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs +++ b/query-engine/connectors/mongodb-query-connector/src/interface/transaction.rs @@ -127,7 +127,7 @@ impl WriteOperations for MongoDbTransaction<'_> { model: &Model, record_filter: connector_interface::RecordFilter, args: connector_interface::WriteArgs, - limit: Option, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(async move { @@ -151,7 +151,7 @@ impl WriteOperations for MongoDbTransaction<'_> { _record_filter: connector_interface::RecordFilter, _args: connector_interface::WriteArgs, _selected_fields: FieldSelection, - _limit: Option, + _limit: Option, _traceparent: Option, ) -> connector_interface::Result { unimplemented!() @@ -193,7 +193,7 @@ impl WriteOperations for MongoDbTransaction<'_> { &mut self, model: &Model, record_filter: connector_interface::RecordFilter, - limit: Option, + limit: Option, _traceparent: Option, ) -> connector_interface::Result { catch(write::delete_records( diff --git a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs index 537fbb1218c2..3445d7f36d33 100644 --- a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs +++ b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs @@ -1,4 +1,5 @@ use super::*; +use crate::error::MongoError::ConversionError; use crate::{ error::{DecorateErrorWithFieldInformationExtension, MongoError}, filter::{FilterPrefix, MongoFilter, MongoFilterVisitor}, @@ -161,7 +162,7 @@ pub async fn update_records<'conn>( selectors .into_iter() .take(match update_type { - UpdateType::Many { limit } => limit.unwrap_or(i64::MAX), + UpdateType::Many { limit } => limit.unwrap_or(usize::MAX), UpdateType::One => 1, } as usize) .map(|p| { @@ -232,7 +233,7 @@ pub async fn delete_records<'conn>( session: &mut ClientSession, model: &Model, record_filter: RecordFilter, - limit: Option, + limit: Option, ) -> crate::Result { let coll = database.collection::(model.db_name()); let id_field = pick_singular_id(model); @@ -240,7 +241,7 @@ pub async fn delete_records<'conn>( let ids = if let Some(selectors) = record_filter.selectors { selectors .into_iter() - .take(limit.unwrap_or(i64::MAX) as usize) + .take(limit.unwrap_or(usize::MAX)) .map(|p| { (&id_field, p.values().next().unwrap()) .into_bson() @@ -309,7 +310,7 @@ async fn find_ids( session: &mut ClientSession, model: &Model, filter: MongoFilter, - limit: Option, + limit: Option, ) -> crate::Result> { let id_field = model.primary_identifier(); let mut builder = MongoReadQueryBuilder::new(model.clone()); @@ -325,7 +326,17 @@ async fn find_ids( let mut builder = builder.with_model_projection(id_field)?; - builder.limit = limit; + if let Some(limit) = limit { + builder.limit = match i64::try_from(limit) { + Ok(limit) => Some(limit), + Err(_) => { + return Err(ConversionError { + from: "usize".to_owned(), + to: "i64".to_owned(), + }) + } + } + } let query = builder.build()?; let docs = query.execute(collection, session).await?; diff --git a/query-engine/connectors/query-connector/src/interface.rs b/query-engine/connectors/query-connector/src/interface.rs index a3c958c99fba..3bf1614e0394 100644 --- a/query-engine/connectors/query-connector/src/interface.rs +++ b/query-engine/connectors/query-connector/src/interface.rs @@ -286,7 +286,7 @@ pub trait WriteOperations { model: &Model, record_filter: RecordFilter, args: WriteArgs, - limit: Option, + limit: Option, traceparent: Option, ) -> crate::Result; @@ -300,7 +300,7 @@ pub trait WriteOperations { record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, - limit: Option, + limit: Option, traceparent: Option, ) -> crate::Result; @@ -328,7 +328,7 @@ pub trait WriteOperations { &mut self, model: &Model, record_filter: RecordFilter, - limit: Option, + limit: Option, traceparent: Option, ) -> crate::Result; diff --git a/query-engine/connectors/query-connector/src/lib.rs b/query-engine/connectors/query-connector/src/lib.rs index e6631a7dcc21..c497f121ae9d 100644 --- a/query-engine/connectors/query-connector/src/lib.rs +++ b/query-engine/connectors/query-connector/src/lib.rs @@ -20,6 +20,6 @@ pub type Result = std::result::Result; /// However when we updating any records we want to return an empty array if zero items were updated #[derive(PartialEq)] pub enum UpdateType { - Many { limit: Option }, + Many { limit: Option }, One, } diff --git a/query-engine/connectors/sql-query-connector/src/database/connection.rs b/query-engine/connectors/sql-query-connector/src/database/connection.rs index ae9ddfc89470..614f174e562b 100644 --- a/query-engine/connectors/sql-query-connector/src/database/connection.rs +++ b/query-engine/connectors/sql-query-connector/src/database/connection.rs @@ -226,7 +226,7 @@ where model: &Model, record_filter: RecordFilter, args: WriteArgs, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); @@ -243,7 +243,7 @@ where record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); @@ -274,7 +274,7 @@ where &mut self, model: &Model, record_filter: RecordFilter, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs index d6817a720739..9ea13127a4fc 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/update.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/update.rs @@ -104,7 +104,7 @@ pub(super) async fn update_many_from_filter( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result> { let update = build_update_and_set_query(model, args, None, ctx); @@ -133,7 +133,7 @@ pub(super) async fn update_many_from_ids_and_filter( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result<(Vec>, Vec)> { let filter_condition = FilterBuilder::without_top_level_joins().visit_filter(record_filter.filter.clone(), ctx); @@ -145,7 +145,7 @@ pub(super) async fn update_many_from_ids_and_filter( let updates = { let update = build_update_and_set_query(model, args, selected_fields, ctx); - let ids: Vec<&SelectionResult> = ids.iter().take(limit.unwrap_or(i64::MAX) as usize).collect(); + let ids: Vec<&SelectionResult> = ids.iter().take(limit.unwrap_or(usize::MAX)).collect(); chunk_update_with_ids(update, model, &ids, filter_condition, ctx)? }; diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs index 2e2237e64a65..4ddee294b168 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs @@ -376,7 +376,7 @@ async fn generate_updates( record_filter: RecordFilter, args: WriteArgs, selected_fields: Option<&ModelProjection>, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result>> { if record_filter.has_selectors() { @@ -399,7 +399,7 @@ pub(crate) async fn update_records( model: &Model, record_filter: RecordFilter, args: WriteArgs, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result { if args.args.is_empty() { @@ -421,7 +421,7 @@ pub(crate) async fn update_records_returning( record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result { let field_names: Vec = selected_fields.db_names().collect(); @@ -458,7 +458,7 @@ pub(crate) async fn delete_records( conn: &dyn Queryable, model: &Model, record_filter: RecordFilter, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> crate::Result { let filter_condition = FilterBuilder::without_top_level_joins().visit_filter(record_filter.clone().filter, ctx); @@ -474,7 +474,8 @@ pub(crate) async fn delete_records( { row_count += conn.execute(delete).await?; if let Some(old_remaining_limit) = remaining_limit { - let new_remaining_limit = old_remaining_limit - row_count as i64; + // u64 to usize cast here cannot 'overflow' as the number of rows was limited to MAX usize in the first place. + let new_remaining_limit = old_remaining_limit - row_count as usize; if new_remaining_limit <= 0 { break; } diff --git a/query-engine/connectors/sql-query-connector/src/database/transaction.rs b/query-engine/connectors/sql-query-connector/src/database/transaction.rs index fde803502de1..6528343f54fa 100644 --- a/query-engine/connectors/sql-query-connector/src/database/transaction.rs +++ b/query-engine/connectors/sql-query-connector/src/database/transaction.rs @@ -220,7 +220,7 @@ impl WriteOperations for SqlConnectorTransaction<'_> { model: &Model, record_filter: RecordFilter, args: WriteArgs, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); @@ -237,7 +237,7 @@ impl WriteOperations for SqlConnectorTransaction<'_> { record_filter: RecordFilter, args: WriteArgs, selected_fields: FieldSelection, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { let ctx = Context::new(&self.connection_info, traceparent); @@ -283,7 +283,7 @@ impl WriteOperations for SqlConnectorTransaction<'_> { &mut self, model: &Model, record_filter: RecordFilter, - limit: Option, + limit: Option, traceparent: Option, ) -> connector::Result { catch(&self.connection_info, async { diff --git a/query-engine/connectors/sql-query-connector/src/limit.rs b/query-engine/connectors/sql-query-connector/src/limit.rs index 281d538240af..8df1e749e4b7 100644 --- a/query-engine/connectors/sql-query-connector/src/limit.rs +++ b/query-engine/connectors/sql-query-connector/src/limit.rs @@ -5,7 +5,7 @@ use query_structure::*; pub(crate) fn wrap_with_limit_subquery_if_needed<'a>( model: &Model, filter_condition: ConditionTree<'a>, - limit: Option, + limit: Option, ctx: &Context, ) -> ConditionTree<'a> { if let Some(limit) = limit { @@ -22,7 +22,7 @@ pub(crate) fn wrap_with_limit_subquery_if_needed<'a>( Select::from_table(model.as_table(ctx)) .columns(columns) .so_that(filter_condition) - .limit(limit as usize), + .limit(limit), ), ) } else { diff --git a/query-engine/connectors/sql-query-connector/src/query_builder/write.rs b/query-engine/connectors/sql-query-connector/src/query_builder/write.rs index bb6bd6882379..2f4ab525e845 100644 --- a/query-engine/connectors/sql-query-connector/src/query_builder/write.rs +++ b/query-engine/connectors/sql-query-connector/src/query_builder/write.rs @@ -227,7 +227,7 @@ pub(crate) fn delete_returning( pub(crate) fn delete_many_from_filter( model: &Model, filter_condition: ConditionTree<'static>, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> Query<'static> { let filter_condition = wrap_with_limit_subquery_if_needed(model, filter_condition, limit, ctx); @@ -242,7 +242,7 @@ pub(crate) fn delete_many_from_ids_and_filter( model: &Model, ids: &[&SelectionResult], filter_condition: ConditionTree<'static>, - limit: Option, + limit: Option, ctx: &Context<'_>, ) -> Vec> { let columns: Vec<_> = ModelProjection::from(model.primary_identifier()) diff --git a/query-engine/core/src/query_ast/write.rs b/query-engine/core/src/query_ast/write.rs index 00063b0dcf7a..ca0287179e32 100644 --- a/query-engine/core/src/query_ast/write.rs +++ b/query-engine/core/src/query_ast/write.rs @@ -368,7 +368,7 @@ pub struct UpdateManyRecords { /// Fields of updated records that client has requested to return. /// `None` if the connector does not support returning the updated rows. pub selected_fields: Option, - pub limit: Option, + pub limit: Option, } #[derive(Debug, Clone)] @@ -398,7 +398,7 @@ pub struct DeleteRecordFields { pub struct DeleteManyRecords { pub model: Model, pub record_filter: RecordFilter, - pub limit: Option, + pub limit: Option, } #[derive(Debug, Clone)] diff --git a/query-engine/core/src/query_graph_builder/write/delete.rs b/query-engine/core/src/query_graph_builder/write/delete.rs index b0c43d3d5adb..aa7d6e832051 100644 --- a/query-engine/core/src/query_graph_builder/write/delete.rs +++ b/query-engine/core/src/query_graph_builder/write/delete.rs @@ -1,12 +1,12 @@ use super::*; -use crate::query_document::ParsedInputValue; +use crate::query_graph_builder::write::limit::validate_limit; use crate::{ query_ast::*, query_graph::{Node, QueryGraph, QueryGraphDependency}, ArgumentListLookup, FilteredQuery, ParsedField, }; use psl::datamodel_connector::ConnectorCapability; -use query_structure::{Filter, Model, PrismaValue}; +use query_structure::{Filter, Model}; use schema::{constants::args, QuerySchema}; use std::convert::TryInto; @@ -111,13 +111,11 @@ pub fn delete_many_records( Some(where_arg) => extract_filter(where_arg.value.try_into()?, &model)?, None => Filter::empty(), }; - let limit = field - .arguments - .lookup(args::LIMIT) - .and_then(|limit_arg| match limit_arg.value { - ParsedInputValue::Single(PrismaValue::Int(i)) => Some(i), - _ => None, - }); + + let limit = match validate_limit(field.arguments.lookup(args::LIMIT)) { + Ok(limit) => limit, + Err(err) => return Err(err), + }; let model_id = model.primary_identifier(); let record_filter = filter.clone().into(); diff --git a/query-engine/core/src/query_graph_builder/write/limit.rs b/query-engine/core/src/query_graph_builder/write/limit.rs new file mode 100644 index 000000000000..2a615173ef9c --- /dev/null +++ b/query-engine/core/src/query_graph_builder/write/limit.rs @@ -0,0 +1,31 @@ +use crate::query_document::{ParsedArgument, ParsedInputValue}; +use crate::query_graph_builder::{QueryGraphBuilderError, QueryGraphBuilderResult}; +use query_structure::PrismaValue; + +pub(crate) fn validate_limit<'a>(limit_arg: Option>) -> QueryGraphBuilderResult> { + let limit = limit_arg.and_then(|limit_arg| match limit_arg.value { + ParsedInputValue::Single(PrismaValue::Int(i)) => Some(i), + _ => None, + }); + + match limit { + Some(i) => { + if i < 0 { + return Err(QueryGraphBuilderError::InputError(format!( + "Provided limit ({}) must be a positive integer.", + i + ))); + } + + match usize::try_from(i) { + Ok(i) => Ok(Some(i)), + Err(_) => Err(QueryGraphBuilderError::InputError(format!( + "Provided limit ({}) is beyond max int value for platform ({}).", + i, + usize::MAX + ))), + } + } + None => Ok(None), + } +} diff --git a/query-engine/core/src/query_graph_builder/write/mod.rs b/query-engine/core/src/query_graph_builder/write/mod.rs index 8db664e91d66..d1b1e62d0c57 100644 --- a/query-engine/core/src/query_graph_builder/write/mod.rs +++ b/query-engine/core/src/query_graph_builder/write/mod.rs @@ -2,6 +2,7 @@ mod connect; mod create; mod delete; mod disconnect; +mod limit; mod nested; mod raw; mod update; diff --git a/query-engine/core/src/query_graph_builder/write/update.rs b/query-engine/core/src/query_graph_builder/write/update.rs index a1e416f80797..db828599b762 100644 --- a/query-engine/core/src/query_graph_builder/write/update.rs +++ b/query-engine/core/src/query_graph_builder/write/update.rs @@ -1,5 +1,5 @@ use super::*; -use crate::query_document::ParsedInputValue; +use crate::query_graph_builder::write::limit::validate_limit; use crate::query_graph_builder::write::write_args_parser::*; use crate::ParsedObject; use crate::{ @@ -8,7 +8,7 @@ use crate::{ ArgumentListLookup, ParsedField, ParsedInputMap, }; use psl::datamodel_connector::ConnectorCapability; -use query_structure::{Filter, IntoFilter, Model, PrismaValue}; +use query_structure::{Filter, IntoFilter, Model}; use schema::{constants::args, QuerySchema}; use std::convert::TryInto; @@ -138,13 +138,10 @@ pub fn update_many_records( }; // "limit" - let limit = field - .arguments - .lookup(args::LIMIT) - .and_then(|limit_arg| match limit_arg.value { - ParsedInputValue::Single(PrismaValue::Int(i)) => Some(i), - _ => None, - }); + let limit = match validate_limit(field.arguments.lookup(args::LIMIT)) { + Ok(limit) => limit, + Err(err) => return Err(err), + }; // "data" let data_argument = field.arguments.lookup(args::DATA).unwrap(); @@ -362,5 +359,5 @@ fn can_use_atomic_update( pub struct UpdateManyRecordNodeOptionals<'a> { pub name: Option, pub nested_field_selection: Option>, - pub limit: Option, + pub limit: Option, } From 038f4d3dc2a45d321504f8c492dccc439ef2b6cb Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Fri, 10 Jan 2025 15:05:21 +0100 Subject: [PATCH 11/14] style: fix linter issues --- .../sql-query-connector/src/database/operations/write.rs | 2 +- query-engine/core/src/query_graph_builder/write/limit.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs index 4ddee294b168..19a52fa94fbf 100644 --- a/query-engine/connectors/sql-query-connector/src/database/operations/write.rs +++ b/query-engine/connectors/sql-query-connector/src/database/operations/write.rs @@ -476,7 +476,7 @@ pub(crate) async fn delete_records( if let Some(old_remaining_limit) = remaining_limit { // u64 to usize cast here cannot 'overflow' as the number of rows was limited to MAX usize in the first place. let new_remaining_limit = old_remaining_limit - row_count as usize; - if new_remaining_limit <= 0 { + if new_remaining_limit == 0 { break; } remaining_limit = Some(new_remaining_limit); diff --git a/query-engine/core/src/query_graph_builder/write/limit.rs b/query-engine/core/src/query_graph_builder/write/limit.rs index 2a615173ef9c..3ce45dddf714 100644 --- a/query-engine/core/src/query_graph_builder/write/limit.rs +++ b/query-engine/core/src/query_graph_builder/write/limit.rs @@ -2,7 +2,7 @@ use crate::query_document::{ParsedArgument, ParsedInputValue}; use crate::query_graph_builder::{QueryGraphBuilderError, QueryGraphBuilderResult}; use query_structure::PrismaValue; -pub(crate) fn validate_limit<'a>(limit_arg: Option>) -> QueryGraphBuilderResult> { +pub(crate) fn validate_limit(limit_arg: Option>) -> QueryGraphBuilderResult> { let limit = limit_arg.and_then(|limit_arg| match limit_arg.value { ParsedInputValue::Single(PrismaValue::Int(i)) => Some(i), _ => None, From 0120366ff7580664e0590e731b8f750254253bee Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Fri, 10 Jan 2025 15:29:38 +0100 Subject: [PATCH 12/14] fix: linter --- .../mongodb-query-connector/src/root_queries/write.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs index 3445d7f36d33..a92c373be866 100644 --- a/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs +++ b/query-engine/connectors/mongodb-query-connector/src/root_queries/write.rs @@ -164,7 +164,7 @@ pub async fn update_records<'conn>( .take(match update_type { UpdateType::Many { limit } => limit.unwrap_or(usize::MAX), UpdateType::One => 1, - } as usize) + }) .map(|p| { (&id_field, p.values().next().unwrap()) .into_bson() From 4966e5f62a41e49479e07955ca294411dc6abe47 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Fri, 10 Jan 2025 16:57:35 +0100 Subject: [PATCH 13/14] refactor: simplify error handling syntax --- query-engine/core/src/query_graph_builder/write/delete.rs | 5 +---- query-engine/core/src/query_graph_builder/write/update.rs | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/query-engine/core/src/query_graph_builder/write/delete.rs b/query-engine/core/src/query_graph_builder/write/delete.rs index aa7d6e832051..9f2071440514 100644 --- a/query-engine/core/src/query_graph_builder/write/delete.rs +++ b/query-engine/core/src/query_graph_builder/write/delete.rs @@ -112,10 +112,7 @@ pub fn delete_many_records( None => Filter::empty(), }; - let limit = match validate_limit(field.arguments.lookup(args::LIMIT)) { - Ok(limit) => limit, - Err(err) => return Err(err), - }; + let limit = validate_limit(field.arguments.lookup(args::LIMIT))?; let model_id = model.primary_identifier(); let record_filter = filter.clone().into(); diff --git a/query-engine/core/src/query_graph_builder/write/update.rs b/query-engine/core/src/query_graph_builder/write/update.rs index db828599b762..0c262b5b4597 100644 --- a/query-engine/core/src/query_graph_builder/write/update.rs +++ b/query-engine/core/src/query_graph_builder/write/update.rs @@ -138,10 +138,7 @@ pub fn update_many_records( }; // "limit" - let limit = match validate_limit(field.arguments.lookup(args::LIMIT)) { - Ok(limit) => limit, - Err(err) => return Err(err), - }; + let limit = validate_limit(field.arguments.lookup(args::LIMIT))?; // "data" let data_argument = field.arguments.lookup(args::DATA).unwrap(); From d8523a03fee9bff92fcb32dd20ea1696d27d0327 Mon Sep 17 00:00:00 2001 From: Florian Goessler Date: Fri, 10 Jan 2025 17:06:48 +0100 Subject: [PATCH 14/14] chore: add tests for negative limit --- .../writes/top_level_mutations/delete_many.rs | 18 +++++++++++++ .../writes/top_level_mutations/update_many.rs | 25 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/delete_many.rs b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/delete_many.rs index e4b264e8bb3c..50bbe1955201 100644 --- a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/delete_many.rs +++ b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/delete_many.rs @@ -202,6 +202,24 @@ mod delete_many { Ok(()) } + // "The delete many Mutation" should "fail if limit param is negative" + #[connector_test] + async fn should_fail_with_negative_limit(runner: Runner) -> TestResult<()> { + create_row(&runner, r#"{ id: 1, title: "title1" }"#).await?; + create_row(&runner, r#"{ id: 2, title: "title2" }"#).await?; + create_row(&runner, r#"{ id: 3, title: "title3" }"#).await?; + create_row(&runner, r#"{ id: 4, title: "title4" }"#).await?; + + assert_error!( + &runner, + r#"mutation { deleteManyTodo(limit: -3){ count }}"#, + 2019, + "Provided limit (-3) must be a positive integer." + ); + + Ok(()) + } + fn nested_del_many() -> String { let schema = indoc! { r#"model ZChild{ diff --git a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs index 6cc5745d071f..0b07790645c6 100644 --- a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs +++ b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/update_many.rs @@ -156,6 +156,31 @@ mod update_many { Ok(()) } + // "An updateMany mutation" should "fail if limit param is negative" + #[connector_test] + async fn should_fail_with_negative_limit(runner: Runner) -> TestResult<()> { + create_row(&runner, r#"{ id: 1, optStr: "str1" }"#).await?; + create_row(&runner, r#"{ id: 2, optStr: "str2" }"#).await?; + create_row(&runner, r#"{ id: 3, optStr: "str3" }"#).await?; + + assert_error!( + &runner, + r#"mutation { + updateManyTestModel( + where: { } + data: { optStr: { set: "updated" } } + limit: -2 + ){ + count + } + }"#, + 2019, + "Provided limit (-2) must be a positive integer." + ); + + Ok(()) + } + // "An updateMany mutation" should "correctly apply all number operations for Int" #[connector_test(exclude(CockroachDb))] async fn apply_number_ops_for_int(runner: Runner) -> TestResult<()> {