diff --git a/src/ir/expression.rs b/src/ir/expression.rs
index 13a1a3fbc19222f0e2714c92dd79b32f7229bf2b..1d2bd6563bb41802414c2c14db8c0b64bbfac069 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)
     }