diff --git a/sbroad-cartridge/src/cartridge/router.rs b/sbroad-cartridge/src/cartridge/router.rs index 283efc8b0a061c91321c0bdd440395954ac063f8..5e1ac8988fb3f73427ed4f72e6d408e339b35419 100644 --- a/sbroad-cartridge/src/cartridge/router.rs +++ b/sbroad-cartridge/src/cartridge/router.rs @@ -467,13 +467,9 @@ impl RouterRuntime { query_type: QueryType, conn_type: ConnectionType, ) -> Result<Box<dyn Any>, SbroadError> { - let is_readonly = match &conn_type { - ConnectionType::Read => true, - ConnectionType::Write => false, - }; match &query_type { - QueryType::DQL => self.dql_on_some(rs_ir, is_readonly), - QueryType::DML => self.dml_on_some(rs_ir, is_readonly), + QueryType::DQL => self.dql_on_some(rs_ir, conn_type.is_readonly()), + QueryType::DML => self.dml_on_some(rs_ir, conn_type.is_readonly()), } } @@ -547,13 +543,9 @@ impl RouterRuntime { query_type: QueryType, conn_type: ConnectionType, ) -> Result<Box<dyn Any>, SbroadError> { - let is_readonly = match &conn_type { - ConnectionType::Read => true, - ConnectionType::Write => false, - }; match &query_type { - QueryType::DQL => self.dql_on_all(required, optional, is_readonly), - QueryType::DML => self.dml_on_all(required, optional, is_readonly), + QueryType::DQL => self.dql_on_all(required, optional, conn_type.is_readonly()), + QueryType::DML => self.dml_on_all(required, optional, conn_type.is_readonly()), } } } diff --git a/sbroad-core/src/executor/ir.rs b/sbroad-core/src/executor/ir.rs index 40e28973fb79bcf93160fcd5d30a1dece13fa2ab..e03cdf587196a315b406640a75134d2f7868651a 100644 --- a/sbroad-core/src/executor/ir.rs +++ b/sbroad-core/src/executor/ir.rs @@ -29,6 +29,16 @@ pub enum ConnectionType { Write, } +impl ConnectionType { + #[must_use] + pub fn is_readonly(&self) -> bool { + match self { + ConnectionType::Read => true, + ConnectionType::Write => false, + } + } +} + #[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, Eq)] pub struct ExecutionPlan { plan: Plan,