aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-01-05 15:34:22 -0800
committerMichael Armbrust <michael@databricks.com>2015-01-05 15:34:22 -0800
commit04d55d8e8e4890d110ce5561b5c1ae608c34a7c9 (patch)
treebbbfda582398e3ed1a5ca88e9a1e6d64d6636729 /sql/catalyst
parentbbcba3a9430365640c0188e7ca6e0677d3227dd8 (diff)
downloadspark-04d55d8e8e4890d110ce5561b5c1ae608c34a7c9.tar.gz
spark-04d55d8e8e4890d110ce5561b5c1ae608c34a7c9.tar.bz2
spark-04d55d8e8e4890d110ce5561b5c1ae608c34a7c9.zip
[SPARK-5040][SQL] Support expressing unresolved attributes using $"attribute name" notation in SQL DSL.
Author: Reynold Xin <rxin@databricks.com> Closes #3862 from rxin/stringcontext-attr and squashes the following commits: 9b10f57 [Reynold Xin] Rename StrongToAttributeConversionHelper 72121af [Reynold Xin] [SPARK-5040][SQL] Support expressing unresolved attributes using $"attribute name" notation in SQL DSL.
Diffstat (limited to 'sql/catalyst')
-rwxr-xr-xsql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
index 8e39f79d2c..9608e15c0f 100755
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala
@@ -135,6 +135,15 @@ package object dsl {
implicit def symbolToUnresolvedAttribute(s: Symbol): analysis.UnresolvedAttribute =
analysis.UnresolvedAttribute(s.name)
+ /** Converts $"col name" into an [[analysis.UnresolvedAttribute]]. */
+ implicit class StringToAttributeConversionHelper(val sc: StringContext) {
+ // Note that if we make ExpressionConversions an object rather than a trait, we can
+ // then make this a value class to avoid the small penalty of runtime instantiation.
+ def $(args: Any*): analysis.UnresolvedAttribute = {
+ analysis.UnresolvedAttribute(sc.s(args :_*))
+ }
+ }
+
def sum(e: Expression) = Sum(e)
def sumDistinct(e: Expression) = SumDistinct(e)
def count(e: Expression) = Count(e)