From 265983cc88e2802eb88d8a88d7c2019c03e9dce9 Mon Sep 17 00:00:00 2001
From: Denis Smirnov <sd@picodata.io>
Date: Tue, 1 Feb 2022 15:30:53 +0700
Subject: [PATCH] refactoring: use get_relation_node() to reduce nested checks

---
 src/ir/expression.rs | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/ir/expression.rs b/src/ir/expression.rs
index 13a1a3fbc1..1d2bd6563b 100644
--- a/src/ir/expression.rs
+++ b/src/ir/expression.rs
@@ -512,18 +512,17 @@ impl Plan {
         }) = self.get_node(ref_id)?
         {
             let referred_rel_id = self.get_map_relational_value(*parent)?;
-            if let Node::Relational(rel) = self.get_node(referred_rel_id)? {
-                if let Some(children) = rel.children() {
-                    if let Some(positions) = targets {
-                        for pos in positions {
-                            if let Some(child) = children.get(*pos) {
-                                rel_nodes.insert(*child);
-                            }
+            let rel = self.get_relation_node(referred_rel_id)?;
+            if let Some(children) = rel.children() {
+                if let Some(positions) = targets {
+                    for pos in positions {
+                        if let Some(child) = children.get(*pos) {
+                            rel_nodes.insert(*child);
                         }
                     }
                 }
-                return Ok(rel_nodes);
             }
+            return Ok(rel_nodes);
         }
         Err(QueryPlannerError::InvalidReference)
     }
-- 
GitLab