diff options
author | Reynold Xin <rxin@databricks.com> | 2015-01-05 15:34:22 -0800 |
---|---|---|
committer | Michael Armbrust <michael@databricks.com> | 2015-01-05 15:34:22 -0800 |
commit | 04d55d8e8e4890d110ce5561b5c1ae608c34a7c9 (patch) | |
tree | bbbfda582398e3ed1a5ca88e9a1e6d64d6636729 /sql/catalyst | |
parent | bbcba3a9430365640c0188e7ca6e0677d3227dd8 (diff) | |
download | spark-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-x | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/dsl/package.scala | 9 |
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) |