From a74b67de2b15a311d6a6b3e6265828f8cafa4922 Mon Sep 17 00:00:00 2001 From: Denis Smirnov <sd@picodata.io> Date: Fri, 20 Jan 2023 11:18:01 +0700 Subject: [PATCH] refactoring: connection type methods --- sbroad-cartridge/src/cartridge/router.rs | 16 ++++------------ sbroad-core/src/executor/ir.rs | 10 ++++++++++ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/sbroad-cartridge/src/cartridge/router.rs b/sbroad-cartridge/src/cartridge/router.rs index 283efc8b0a..5e1ac8988f 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 40e28973fb..e03cdf5871 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, -- GitLab