From aa4803ca443b53b8314a96ac19284c28dc74730b Mon Sep 17 00:00:00 2001 From: Sophie Atkins Date: Wed, 8 Nov 2023 09:05:48 +0100 Subject: [PATCH] update to be specific to unique indices --- .../src/validate/validation_pipeline/validations.rs | 2 +- .../validate/validation_pipeline/validations/indexes.rs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/psl/psl-core/src/validate/validation_pipeline/validations.rs b/psl/psl-core/src/validate/validation_pipeline/validations.rs index b92c9d3587e2..90f8ec9fe79e 100644 --- a/psl/psl-core/src/validate/validation_pipeline/validations.rs +++ b/psl/psl-core/src/validate/validation_pipeline/validations.rs @@ -123,7 +123,7 @@ pub(super) fn validate(ctx: &mut Context<'_>) { indexes::supports_clustering_setting(index, ctx); indexes::clustering_can_be_defined_only_once(index, ctx); indexes::opclasses_are_not_allowed_with_other_than_normal_indices(index, ctx); - indexes::composite_type_in_compound_index(index, ctx); + indexes::composite_type_in_compound_unique_index(index, ctx); for field_attribute in index.scalar_field_attributes() { let span = index.ast_attribute().span; diff --git a/psl/psl-core/src/validate/validation_pipeline/validations/indexes.rs b/psl/psl-core/src/validate/validation_pipeline/validations/indexes.rs index 22dda8395d54..7a7d0e1d105e 100644 --- a/psl/psl-core/src/validate/validation_pipeline/validations/indexes.rs +++ b/psl/psl-core/src/validate/validation_pipeline/validations/indexes.rs @@ -386,14 +386,18 @@ pub(crate) fn opclasses_are_not_allowed_with_other_than_normal_indices(index: In } } -pub(crate) fn composite_type_in_compound_index(index: IndexWalker<'_>, ctx: &mut Context<'_>) { +pub(crate) fn composite_type_in_compound_unique_index(index: IndexWalker<'_>, ctx: &mut Context<'_>) { + if !index.is_unique() { + return; + } + let composite_type = index .fields() .find(|f| f.scalar_field_type().as_composite_type().is_some()); if index.fields().len() > 1 && composite_type.is_some() { let message = format!( - "Prisma does not currently support composite types in compound indices, please remove {:?} from the index. See https://pris.ly/d/mongodb-composite-compound-indices for more details", + "Prisma does not currently support composite types in compound unique indices, please remove {:?} from the index. See https://pris.ly/d/mongodb-composite-compound-indices for more details", composite_type.unwrap().name() ); ctx.push_error(DatamodelError::new_attribute_validation_error(