dbtsai commented on a change in pull request #27728: [SPARK-17636][SQL] Nested
Field Predicate Pushdown for Parquet
URL: https://github.com/apache/spark/pull/27728#discussion_r385962101
##########
File path:
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/DataSourceStrategySuite.scala
##########
@@ -22,69 +22,119 @@ import org.apache.spark.sql.catalyst.expressions._
import org.apache.spark.sql.catalyst.plans.PlanTest
import org.apache.spark.sql.sources
import org.apache.spark.sql.test.SharedSparkSession
+import org.apache.spark.sql.types.{IntegerType, StringType, StructField,
StructType}
class DataSourceStrategySuite extends PlanTest with SharedSparkSession {
- test("translate simple expression") {
- val attrInt = 'cint.int
- val attrStr = 'cstr.string
-
- testTranslateFilter(EqualTo(attrInt, 1), Some(sources.EqualTo("cint", 1)))
- testTranslateFilter(EqualTo(1, attrInt), Some(sources.EqualTo("cint", 1)))
+ val attrInts = Seq(
+ 'cint.int,
+ Symbol("c.int").int,
+ GetStructField('a.struct(StructType(
+ StructField("cstr", StringType, nullable = true) ::
+ StructField("cint", IntegerType, nullable = true) :: Nil)), 1, None),
+ GetStructField('a.struct(StructType(
+ StructField("c.int", IntegerType, nullable = true) ::
+ StructField("cstr", StringType, nullable = true) :: Nil)), 0, None),
+ GetStructField(Symbol("a.b").struct(StructType(
+ StructField("cstr1", StringType, nullable = true) ::
+ StructField("cstr2", StringType, nullable = true) ::
+ StructField("cint", IntegerType, nullable = true) :: Nil)), 2, None),
+ GetStructField(Symbol("a.b").struct(StructType(
+ StructField("c.int", IntegerType, nullable = true) :: Nil)), 0, None)
+ ).zip(Seq(
+ "cint",
+ "`c.int`", // single level column that contains `dot` in name
+ "a.cint", // two level nested column
+ "a.`c.int`", // two level nested column, and nested level contains `dot`
+ "`a.b`.cint", // two level nested column, and top level contains `dot`
+ "`a.b`.`c.int`" // two level nested column, and both levels contain `dot`
Review comment:
I added a test case for three level nested field.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]