From 8b15e0688d38275490c7a1097e0d898b3d6e0001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aure=CC=80le=20Nitoref?= Date: Mon, 7 Oct 2024 03:31:40 +0200 Subject: [PATCH] Remove Geometry connector capabilities to allow stable build --- libs/user-facing-errors/src/lib.rs | 2 +- .../builtin_connectors/capabilities_support.rs | 2 +- .../cockroach_datamodel_connector.rs | 2 -- psl/psl-core/src/builtin_connectors/mongodb.rs | 1 - .../mssql_datamodel_connector.rs | 2 -- .../mysql_datamodel_connector.rs | 2 -- .../postgres_datamodel_connector.rs | 2 -- .../sqlite_datamodel_connector.rs | 2 -- psl/psl-core/src/datamodel_connector.rs | 4 ---- .../src/datamodel_connector/capabilities.rs | 4 +--- .../src/datamodel_connector/empty_connector.rs | 1 - psl/psl-core/src/lib.rs | 1 - .../validation_pipeline/validations/fields.rs | 16 ---------------- .../tests/queries/filters/geometry_filter.rs | 5 ++--- .../tests/writes/top_level_mutations/create.rs | 2 +- .../query-engine-wasm/rust-toolchain.toml | 2 +- rust-toolchain.toml | 2 +- 17 files changed, 8 insertions(+), 44 deletions(-) diff --git a/libs/user-facing-errors/src/lib.rs b/libs/user-facing-errors/src/lib.rs index 33f263418a27..7d7856831637 100644 --- a/libs/user-facing-errors/src/lib.rs +++ b/libs/user-facing-errors/src/lib.rs @@ -121,7 +121,7 @@ impl Error { /// Construct a new UnknownError from a `PanicInfo` in a panic hook. `UnknownError`s created /// with this constructor will have a proper, useful backtrace. - pub fn new_in_panic_hook(panic_info: &std::panic::PanicHookInfo<'_>) -> Self { + pub fn new_in_panic_hook(panic_info: &std::panic::PanicInfo<'_>) -> Self { let message = panic_info .payload() .downcast_ref::<&str>() diff --git a/psl/psl-core/src/builtin_connectors/capabilities_support.rs b/psl/psl-core/src/builtin_connectors/capabilities_support.rs index 5b666a8c7b8d..aef2d22cd076 100644 --- a/psl/psl-core/src/builtin_connectors/capabilities_support.rs +++ b/psl/psl-core/src/builtin_connectors/capabilities_support.rs @@ -83,7 +83,7 @@ macro_rules! reachable_only_with_capability { #[inline(always)] #[allow(dead_code)] // not used if more than one connector is built const fn check_comptime_capability(capabilities: ConnectorCapabilities, cap: ConnectorCapability) -> bool { - (capabilities.bits_c() & (cap as u128)) > 0 + (capabilities.bits_c() & (cap as u64)) > 0 } #[inline(always)] diff --git a/psl/psl-core/src/builtin_connectors/cockroach_datamodel_connector.rs b/psl/psl-core/src/builtin_connectors/cockroach_datamodel_connector.rs index 4cec7868d4b1..088e51cc7e27 100644 --- a/psl/psl-core/src/builtin_connectors/cockroach_datamodel_connector.rs +++ b/psl/psl-core/src/builtin_connectors/cockroach_datamodel_connector.rs @@ -46,8 +46,6 @@ const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(Connector Json | JsonFiltering | JsonFilteringArrayPath | - Geometry | - GeometryFiltering | NamedPrimaryKeys | NamedForeignKeys | SqlQueryRaw | diff --git a/psl/psl-core/src/builtin_connectors/mongodb.rs b/psl/psl-core/src/builtin_connectors/mongodb.rs index bec283cff092..bc18956201ad 100644 --- a/psl/psl-core/src/builtin_connectors/mongodb.rs +++ b/psl/psl-core/src/builtin_connectors/mongodb.rs @@ -17,7 +17,6 @@ use std::result::Result as StdResult; const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(ConnectorCapability::{ Json | - Geometry | Enums | EnumArrayPush | RelationFieldsInArbitraryOrder | diff --git a/psl/psl-core/src/builtin_connectors/mssql_datamodel_connector.rs b/psl/psl-core/src/builtin_connectors/mssql_datamodel_connector.rs index b063ffbbf4f3..edf6a0711873 100644 --- a/psl/psl-core/src/builtin_connectors/mssql_datamodel_connector.rs +++ b/psl/psl-core/src/builtin_connectors/mssql_datamodel_connector.rs @@ -26,8 +26,6 @@ const CONSTRAINT_SCOPES: &[ConstraintScope] = &[ ]; const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(ConnectorCapability::{ - Geometry | - GeometryFiltering | AnyId | AutoIncrement | AutoIncrementAllowedOnNonId | diff --git a/psl/psl-core/src/builtin_connectors/mysql_datamodel_connector.rs b/psl/psl-core/src/builtin_connectors/mysql_datamodel_connector.rs index ca0319052444..66987ca9316f 100644 --- a/psl/psl-core/src/builtin_connectors/mysql_datamodel_connector.rs +++ b/psl/psl-core/src/builtin_connectors/mysql_datamodel_connector.rs @@ -37,8 +37,6 @@ pub const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(Conne Enums | EnumArrayPush | Json | - Geometry | - GeometryFiltering | AutoIncrementAllowedOnNonId | RelationFieldsInArbitraryOrder | CreateMany | diff --git a/psl/psl-core/src/builtin_connectors/postgres_datamodel_connector.rs b/psl/psl-core/src/builtin_connectors/postgres_datamodel_connector.rs index 3f7066c08139..d8ced5ca0159 100644 --- a/psl/psl-core/src/builtin_connectors/postgres_datamodel_connector.rs +++ b/psl/psl-core/src/builtin_connectors/postgres_datamodel_connector.rs @@ -50,8 +50,6 @@ pub const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(Conne JsonFilteringArrayPath | JsonFilteringAlphanumeric | JsonFilteringAlphanumericFieldRef | - Geometry | - GeometryFiltering | MultiSchema | NamedForeignKeys | NamedPrimaryKeys | diff --git a/psl/psl-core/src/builtin_connectors/sqlite_datamodel_connector.rs b/psl/psl-core/src/builtin_connectors/sqlite_datamodel_connector.rs index a9034e178d74..6b90abb98463 100644 --- a/psl/psl-core/src/builtin_connectors/sqlite_datamodel_connector.rs +++ b/psl/psl-core/src/builtin_connectors/sqlite_datamodel_connector.rs @@ -18,8 +18,6 @@ pub const CAPABILITIES: ConnectorCapabilities = enumflags2::make_bitflags!(Conne AnyId | AutoIncrement | CompoundIds | - Geometry | - GeometryFiltering | SqlQueryRaw | RelationFieldsInArbitraryOrder | UpdateableId | diff --git a/psl/psl-core/src/datamodel_connector.rs b/psl/psl-core/src/datamodel_connector.rs index d269f6c958f7..f88f560920e0 100644 --- a/psl/psl-core/src/datamodel_connector.rs +++ b/psl/psl-core/src/datamodel_connector.rs @@ -223,10 +223,6 @@ pub trait Connector: Send + Sync { } } - fn supports_geometry_type(&self) -> bool { - self.capabilities().contains(ConnectorCapability::Geometry) - } - fn supported_index_types(&self) -> BitFlags { IndexAlgorithm::BTree.into() } diff --git a/psl/psl-core/src/datamodel_connector/capabilities.rs b/psl/psl-core/src/datamodel_connector/capabilities.rs index 0f441fb99657..cf3f36eeea13 100644 --- a/psl/psl-core/src/datamodel_connector/capabilities.rs +++ b/psl/psl-core/src/datamodel_connector/capabilities.rs @@ -6,7 +6,7 @@ macro_rules! capabilities { ($( $variant:ident $(,)? ),*) => { #[derive(Debug, Clone, Copy, PartialEq)] #[enumflags2::bitflags] - #[repr(u128)] + #[repr(u64)] pub enum ConnectorCapability { $( $variant, @@ -55,8 +55,6 @@ capabilities!( TwoWayEmbeddedManyToManyRelation, ImplicitManyToManyRelation, MultiSchema, - Geometry, - GeometryFiltering, //Start of ME/IE only capabilities AutoIncrementAllowedOnNonId, AutoIncrementMultipleAllowed, diff --git a/psl/psl-core/src/datamodel_connector/empty_connector.rs b/psl/psl-core/src/datamodel_connector/empty_connector.rs index efd0517485a4..3aa97dfeaa13 100644 --- a/psl/psl-core/src/datamodel_connector/empty_connector.rs +++ b/psl/psl-core/src/datamodel_connector/empty_connector.rs @@ -25,7 +25,6 @@ impl Connector for EmptyDatamodelConnector { CompoundIds | Enums | Json | - Geometry | ImplicitManyToManyRelation }) } diff --git a/psl/psl-core/src/lib.rs b/psl/psl-core/src/lib.rs index dac097aa17ea..34a77c371640 100644 --- a/psl/psl-core/src/lib.rs +++ b/psl/psl-core/src/lib.rs @@ -2,7 +2,6 @@ #![deny(rust_2018_idioms, unsafe_code)] #![allow(clippy::derive_partial_eq_without_eq)] #![allow(incomplete_features)] -#![feature(repr128)] pub mod builtin_connectors; pub mod datamodel_connector; diff --git a/psl/psl-core/src/validate/validation_pipeline/validations/fields.rs b/psl/psl-core/src/validate/validation_pipeline/validations/fields.rs index 2ec5b6493e10..674d8e50d3bc 100644 --- a/psl/psl-core/src/validate/validation_pipeline/validations/fields.rs +++ b/psl/psl-core/src/validate/validation_pipeline/validations/fields.rs @@ -298,22 +298,6 @@ pub(super) fn validate_scalar_field_connector_specific(field: ScalarFieldWalker< } } - ScalarFieldType::BuiltInScalar(ScalarType::Geometry) => { - if !ctx.connector.supports_geometry_type() { - ctx.push_error(DatamodelError::new_field_validation_error( - &format!( - "Field `{}` in {container} `{}` can't be of type Geometry. The current connector does not support the Geometry type.", - field.name(), - field.model().name(), - ), - container, - field.model().name(), - field.name(), - field.ast_field().span(), - )); - } - } - _ => (), } diff --git a/query-engine/connector-test-kit-rs/query-engine-tests/tests/queries/filters/geometry_filter.rs b/query-engine/connector-test-kit-rs/query-engine-tests/tests/queries/filters/geometry_filter.rs index aab9b008eebd..19cbdfbd85cd 100644 --- a/query-engine/connector-test-kit-rs/query-engine-tests/tests/queries/filters/geometry_filter.rs +++ b/query-engine/connector-test-kit-rs/query-engine-tests/tests/queries/filters/geometry_filter.rs @@ -1,6 +1,6 @@ use query_engine_tests::*; -#[test_suite(capabilities(Geometry))] +#[test_suite] mod geometry_filter_spec { use query_engine_tests::run_query; @@ -119,8 +119,7 @@ mod geometry_filter_spec { #[connector_test( schema(schema), - exclude(Postgres, Sqlite(3, "cfd1", "libsql.js", "libsql.js.wasm"), MySQL(5.6)), - capabilities(GeometryFiltering) + exclude(Postgres, Sqlite(3, "cfd1", "libsql.js", "libsql.js.wasm"), MySQL(5.6), MongoDb) )] async fn geometric_comparison_filters(runner: Runner) -> TestResult<()> { geometric_comparison_filters_test(runner).await diff --git a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/create.rs b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/create.rs index 5999166a7b44..df06263a7087 100644 --- a/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/create.rs +++ b/query-engine/connector-test-kit-rs/query-engine-tests/tests/writes/top_level_mutations/create.rs @@ -425,7 +425,7 @@ mod mapped_create { } } -#[test_suite(capabilities(Geometry))] +#[test_suite] mod geometry_create { use query_engine_tests::run_query; diff --git a/query-engine/query-engine-wasm/rust-toolchain.toml b/query-engine/query-engine-wasm/rust-toolchain.toml index fab6164d265c..5048fd2e74a6 100644 --- a/query-engine/query-engine-wasm/rust-toolchain.toml +++ b/query-engine/query-engine-wasm/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2024-09-29" +channel = "nightly-2024-05-25" components = ["clippy", "rustfmt", "rust-src"] targets = [ "wasm32-unknown-unknown", diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 9fcff05a670c..e48263a13878 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly" +channel = "1.80.1" components = ["clippy", "rustfmt", "rust-src"] targets = [ # WASM target for serverless and edge environments.