diff --git a/src/executor/ir.rs b/src/executor/ir.rs
index 77e9d390c1ed7e47981df8061a5c73fb4abcb2a5..6d026a7b7a04c1de3fe354195ae6dfbc01f87ed2 100644
--- a/src/executor/ir.rs
+++ b/src/executor/ir.rs
@@ -82,12 +82,12 @@ impl ExecutionPlan {
     ///
     /// # Errors
     /// - node is not valid
-    pub fn get_motion_alias(&self, node_id: usize) -> Result<Option<String>, QueryPlannerError> {
+    pub fn get_motion_alias(&self, node_id: usize) -> Result<Option<&String>, QueryPlannerError> {
         let sq_id = &self.get_motion_child(node_id)?;
         if let Relational::ScanSubQuery { alias, .. } =
             self.get_ir_plan().get_relation_node(*sq_id)?
         {
-            return Ok(alias.clone());
+            return Ok(alias.as_ref());
         }
 
         Ok(None)