[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

2016-08-01 Thread ericl
Github user ericl closed the pull request at:

https://github.com/apache/spark/pull/14427


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

2016-07-31 Thread rxin
Github user rxin commented on a diff in the pull request:

https://github.com/apache/spark/pull/14427#discussion_r72898654
  
--- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala
 ---
@@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with 
SharedSQLContext with Predi
 }
   }
 
+  test("[SPARK-16818] partition pruned file scans implement sameResult 
correctly") {
+withTempPath { path =>
+  val tempDir = path.getCanonicalPath
+  spark.range(100)
+.selectExpr("id", "id as b")
+.write
+.partitionBy("id")
+.parquet(tempDir)
+  val df = spark.read.parquet(tempDir)
+  def getPlan(df: DataFrame): SparkPlan = {
+df.queryExecution.executedPlan
+  }
+  assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 
2"
+  assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id 
= 3"
+}
+  }
+
+  test("[SPARK-16818] exchange reuse respects differences in partition 
pruning") {
+spark.conf.set("spark.sql.exchange.reuse", true)
--- End diff --

yea i think those places were not correctly using the confs either.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

2016-07-31 Thread ericl
Github user ericl commented on a diff in the pull request:

https://github.com/apache/spark/pull/14427#discussion_r72898570
  
--- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala
 ---
@@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with 
SharedSQLContext with Predi
 }
   }
 
+  test("[SPARK-16818] partition pruned file scans implement sameResult 
correctly") {
+withTempPath { path =>
+  val tempDir = path.getCanonicalPath
+  spark.range(100)
+.selectExpr("id", "id as b")
+.write
+.partitionBy("id")
+.parquet(tempDir)
+  val df = spark.read.parquet(tempDir)
+  def getPlan(df: DataFrame): SparkPlan = {
+df.queryExecution.executedPlan
+  }
+  assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 
2"
+  assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id 
= 3"
+}
+  }
+
+  test("[SPARK-16818] exchange reuse respects differences in partition 
pruning") {
+spark.conf.set("spark.sql.exchange.reuse", true)
--- End diff --

Oh, I assumed the test already did so since I've seen this pattern
elsewhere. If it affects more than just the suite, I can submit a follow-up
fix.

On Sat, Jul 30, 2016, 10:59 PM Reynold Xin  wrote:

> In
> 
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala
> :
>
> > +  spark.range(100)
> > +.selectExpr("id", "id as b")
> > +.write
> > +.partitionBy("id")
> > +.parquet(tempDir)
> > +  val df = spark.read.parquet(tempDir)
> > +  def getPlan(df: DataFrame): SparkPlan = {
> > +df.queryExecution.executedPlan
> > +  }
> > +  assert(getPlan(df.where("id = 
2")).sameResult(getPlan(df.where("id = 2"
> > +  assert(!getPlan(df.where("id = 
2")).sameResult(getPlan(df.where("id = 3"
> > +}
> > +  }
> > +
> > +  test("[SPARK-16818] exchange reuse respects differences in partition 
pruning") {
> > +spark.conf.set("spark.sql.exchange.reuse", true)
>
> ah actually just realized we could've improved with by using "withSQLConf"
> -- it makes sure the configs get reset after the test case finishes 
running.
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> 
,
> or mute the thread
> 

> .
>



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

2016-07-30 Thread rxin
Github user rxin commented on a diff in the pull request:

https://github.com/apache/spark/pull/14427#discussion_r72898521
  
--- Diff: 
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategySuite.scala
 ---
@@ -407,6 +407,39 @@ class FileSourceStrategySuite extends QueryTest with 
SharedSQLContext with Predi
 }
   }
 
+  test("[SPARK-16818] partition pruned file scans implement sameResult 
correctly") {
+withTempPath { path =>
+  val tempDir = path.getCanonicalPath
+  spark.range(100)
+.selectExpr("id", "id as b")
+.write
+.partitionBy("id")
+.parquet(tempDir)
+  val df = spark.read.parquet(tempDir)
+  def getPlan(df: DataFrame): SparkPlan = {
+df.queryExecution.executedPlan
+  }
+  assert(getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id = 
2"
+  assert(!getPlan(df.where("id = 2")).sameResult(getPlan(df.where("id 
= 3"
+}
+  }
+
+  test("[SPARK-16818] exchange reuse respects differences in partition 
pruning") {
+spark.conf.set("spark.sql.exchange.reuse", true)
--- End diff --

ah actually just realized we could've improved with by using "withSQLConf" 
-- it makes sure the configs get reset after the test case finishes running.



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org



[GitHub] spark pull request #14427: [SPARK-16818] Exchange reuse incorrectly reuses s...

2016-07-30 Thread ericl
GitHub user ericl opened a pull request:

https://github.com/apache/spark/pull/14427

[SPARK-16818] Exchange reuse incorrectly reuses scans over different sets 
of partitions

https://github.com/apache/spark/pull/14425 rebased for branch-2.0

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/ericl/spark spark-16818-br-2

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/spark/pull/14427.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #14427


commit ef60367331fb3097040cfb0849bdc314c8d399ea
Author: Eric Liang 
Date:   2016-07-31T05:48:09Z

[SPARK-16818] Exchange reuse incorrectly reuses scans over different sets 
of partitions

This fixes a bug wherethe file scan operator does not take into account 
partition pruning in its implementation of `sameResult()`. As a result, 
executions may be incorrect on self-joins over the same base file relation.

The patch here is minimal, but we should reconsider relying on `metadata` 
for implementing sameResult() in the future, as string representations may not 
be uniquely identifying.

cc rxin

Unit tests.

Author: Eric Liang 

Closes #14425 from ericl/spark-16818.

Conflicts:

sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/FileSourceStrategy.scala




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org