-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SNOW-821644 add dataframe alias support #79
Conversation
@@ -2791,7 +2808,8 @@ class DataFrame private[snowpark] ( | |||
|
|||
// utils | |||
private[snowpark] def resolve(colName: String): NamedExpression = { | |||
val normalizedColName = quoteName(colName) | |||
val (aliasColName, aliasOutput) = resolveAlias(colName, output) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we directly return result form resolveAlias
if we can find that name?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to quote the column name and check for name conflicts, so it's better to return the column name and output list.
src/main/scala/com/snowflake/snowpark/internal/analyzer/Expression.scala
Show resolved
Hide resolved
src/main/scala/com/snowflake/snowpark/internal/analyzer/ExpressionAnalyzer.scala
Outdated
Show resolved
Hide resolved
src/main/scala/com/snowflake/snowpark/internal/analyzer/ExpressionAnalyzer.scala
Outdated
Show resolved
Hide resolved
src/main/scala/com/snowflake/snowpark/internal/analyzer/ExpressionAnalyzer.scala
Outdated
Show resolved
Hide resolved
src/main/scala/com/snowflake/snowpark/internal/analyzer/SnowflakePlanNode.scala
Outdated
Show resolved
Hide resolved
@@ -192,6 +206,17 @@ private[snowpark] case class Sort(order: Seq[SortOrder], child: LogicalPlan) ext | |||
Sort(order, _) | |||
} | |||
|
|||
private[snowpark] case class DataframeAlias(alias: String, child: LogicalPlan) | |||
extends UnaryNode { | |||
dfAliasMap += (alias -> child.getSnowflakePlan.get.output) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
override lazy val dfAliasMap = child.dfAliasMap + (alias -> child.getSnowflakePlan.get.output)
|
||
addToDataframeAliasMap(left) | ||
addToDataframeAliasMap(right) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
override lazy val dfAliasMap = left.dfAliasMap ++ right.dfAliasMap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved with some comments, please merge after address those comments.
Please answer these questions before submitting your pull requests. Thanks!
What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Fixes #NNNN
Fill out the following pre-review checklist:
Please describe how your code solves the related issue.
Replace this with a short description of how your code change solves the related issue.
Pre-review checklist
(For Snowflake employees)