aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorMichael Armbrust <michael@databricks.com>2015-06-12 23:11:16 -0700
committerReynold Xin <rxin@databricks.com>2015-06-12 23:11:16 -0700
commit4aed66f299a67f5a594da9316b6bf4c345838216 (patch)
tree5912c3db7a73868394405d2a03a828fc0ba7e3bb /sql
parentd46f8e5d4b5c1278e0fae3ad133b2229ac01b197 (diff)
downloadspark-4aed66f299a67f5a594da9316b6bf4c345838216.tar.gz
spark-4aed66f299a67f5a594da9316b6bf4c345838216.tar.bz2
spark-4aed66f299a67f5a594da9316b6bf4c345838216.zip
[SPARK-8329][SQL] Allow _ in DataSource options
Author: Michael Armbrust <michael@databricks.com> Closes #6786 from marmbrus/optionsParser and squashes the following commits: e7d18ef [Michael Armbrust] add dots 99a3452 [Michael Armbrust] [SPARK-8329][SQL] Allow _ in DataSource options
Diffstat (limited to 'sql')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala6
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala16
2 files changed, 18 insertions, 4 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala b/sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala
index 01c67db232..b7095c8ead 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala
@@ -166,10 +166,14 @@ private[sql] class DDLParser(
}
)
- protected lazy val optionName: Parser[String] = "[_a-zA-Z][a-zA-Z0-9]*".r ^^ {
+ protected lazy val optionPart: Parser[String] = "[_a-zA-Z][_a-zA-Z0-9]*".r ^^ {
case name => name
}
+ protected lazy val optionName: Parser[String] = repsep(optionPart, ".") ^^ {
+ case parts => parts.mkString(".")
+ }
+
protected lazy val pair: Parser[(String, String)] =
optionName ~ stringLit ^^ { case k ~ v => (k, v) }
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
index 4a4d8d2548..4887577322 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/sources/TableScanSuite.scala
@@ -51,6 +51,10 @@ class AllDataTypesScanSource extends SchemaRelationProvider {
sqlContext: SQLContext,
parameters: Map[String, String],
schema: StructType): BaseRelation = {
+ // Check that weird parameters are passed correctly.
+ parameters("option_with_underscores")
+ parameters("option.with.dots")
+
AllDataTypesScan(parameters("from").toInt, parameters("TO").toInt, schema)(sqlContext)
}
}
@@ -128,7 +132,9 @@ class TableScanSuite extends DataSourceTest {
|USING org.apache.spark.sql.sources.SimpleScanSource
|OPTIONS (
| From '1',
- | To '10'
+ | To '10',
+ | option_with_underscores 'someval',
+ | option.with.dots 'someval'
|)
""".stripMargin)
@@ -159,7 +165,9 @@ class TableScanSuite extends DataSourceTest {
|USING org.apache.spark.sql.sources.AllDataTypesScanSource
|OPTIONS (
| From '1',
- | To '10'
+ | To '10',
+ | option_with_underscores 'someval',
+ | option.with.dots 'someval'
|)
""".stripMargin)
}
@@ -361,7 +369,9 @@ class TableScanSuite extends DataSourceTest {
|USING org.apache.spark.sql.sources.AllDataTypesScanSource
|OPTIONS (
| from '1',
- | to '10'
+ | to '10',
+ | option_with_underscores 'someval',
+ | option.with.dots 'someval'
|)
""".stripMargin)