Repository: spark Updated Branches: refs/heads/master bf1d6614d -> 80cb25b22
[SPARK-10080] [SQL] Fix binary incompatibility for $ column interpolation Turns out that inner classes of inner objects are referenced directly, and thus moving it will break binary compatibility. Author: Michael Armbrust <mich...@databricks.com> Closes #8281 from marmbrus/binaryCompat. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/80cb25b2 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/80cb25b2 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/80cb25b2 Branch: refs/heads/master Commit: 80cb25b228e821a80256546a2f03f73a45cf7645 Parents: bf1d661 Author: Michael Armbrust <mich...@databricks.com> Authored: Tue Aug 18 13:50:51 2015 -0700 Committer: Michael Armbrust <mich...@databricks.com> Committed: Tue Aug 18 13:50:51 2015 -0700 ---------------------------------------------------------------------- .../main/scala/org/apache/spark/sql/SQLContext.scala | 11 +++++++++++ .../main/scala/org/apache/spark/sql/SQLImplicits.scala | 10 ---------- .../org/apache/spark/sql/test/SharedSQLContext.scala | 12 +++++++++++- 3 files changed, 22 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/80cb25b2/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala index 53de10d..58fe75b 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala @@ -334,6 +334,17 @@ class SQLContext(@transient val sparkContext: SparkContext) @Experimental object implicits extends SQLImplicits with Serializable { protected override def _sqlContext: SQLContext = self + + /** + * Converts $"col name" into an [[Column]]. + * @since 1.3.0 + */ + // This must live here to preserve binary compatibility with Spark < 1.5. + implicit class StringToColumn(val sc: StringContext) { + def $(args: Any*): ColumnName = { + new ColumnName(sc.s(args: _*)) + } + } } // scalastyle:on http://git-wip-us.apache.org/repos/asf/spark/blob/80cb25b2/sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala b/sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala index 5f82372..47b6f80 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/SQLImplicits.scala @@ -34,16 +34,6 @@ private[sql] abstract class SQLImplicits { protected def _sqlContext: SQLContext /** - * Converts $"col name" into an [[Column]]. - * @since 1.3.0 - */ - implicit class StringToColumn(val sc: StringContext) { - def $(args: Any*): ColumnName = { - new ColumnName(sc.s(args: _*)) - } - } - - /** * An implicit conversion that turns a Scala `Symbol` into a [[Column]]. * @since 1.3.0 */ http://git-wip-us.apache.org/repos/asf/spark/blob/80cb25b2/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSQLContext.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSQLContext.scala b/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSQLContext.scala index 3cfd822..8a061b6 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSQLContext.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSQLContext.scala @@ -17,7 +17,7 @@ package org.apache.spark.sql.test -import org.apache.spark.sql.SQLContext +import org.apache.spark.sql.{ColumnName, SQLContext} /** @@ -65,4 +65,14 @@ private[sql] trait SharedSQLContext extends SQLTestUtils { } } + /** + * Converts $"col name" into an [[Column]]. + * @since 1.3.0 + */ + // This must be duplicated here to preserve binary compatibility with Spark < 1.5. + implicit class StringToColumn(val sc: StringContext) { + def $(args: Any*): ColumnName = { + new ColumnName(sc.s(args: _*)) + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org