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,