This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 5cc66f2a34 Add docs for Expr::unalias (#10406)
5cc66f2a34 is described below
commit 5cc66f2a343dc43a0b38a351599587380c969b5c
Author: Andrew Lamb <[email protected]>
AuthorDate: Tue May 7 11:18:18 2024 -0400
Add docs for Expr::unalias (#10406)
---
datafusion/expr/src/expr.rs | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/datafusion/expr/src/expr.rs b/datafusion/expr/src/expr.rs
index f32fed5db5..c154cd999a 100644
--- a/datafusion/expr/src/expr.rs
+++ b/datafusion/expr/src/expr.rs
@@ -1087,6 +1087,25 @@ impl Expr {
}
/// Remove an alias from an expression if one exists.
+ ///
+ /// If the expression is not an alias, the expression is returned
unchanged.
+ /// This method does not remove aliases from nested expressions.
+ ///
+ /// # Example
+ /// ```
+ /// # use datafusion_expr::col;
+ /// // `foo as "bar"` is unaliased to `foo`
+ /// let expr = col("foo").alias("bar");
+ /// assert_eq!(expr.unalias(), col("foo"));
+ ///
+ /// // `foo as "bar" + baz` is not unaliased
+ /// let expr = col("foo").alias("bar") + col("baz");
+ /// assert_eq!(expr.clone().unalias(), expr);
+ ///
+ /// // `foo as "bar" as "baz" is unalaised to foo as "bar"
+ /// let expr = col("foo").alias("bar").alias("baz");
+ /// assert_eq!(expr.unalias(), col("foo").alias("bar"));
+ /// ```
pub fn unalias(self) -> Expr {
match self {
Expr::Alias(alias) => *alias.expr,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]