wangyum opened a new pull request #22721: [SPARK-19784][SPARK-25403][SQL] 
Refresh the table even table stats is empty
URL: https://github.com/apache/spark/pull/22721
 
 
   ## What changes were proposed in this pull request?
   
   We invalidate table relation once table data is changed by 
[SPARK-21237](https://issues.apache.org/jira/browse/SPARK-21237). But there is 
a situation we have not 
invalidated(`spark.sql.statistics.size.autoUpdate.enabled=false` and 
`table.stats.isEmpty`):
   
https://github.com/apache/spark/blob/07c4b9bd1fb055f283af076b2a995db8f6efe7a5/sql/core/src/main/scala/org/apache/spark/sql/execution/command/CommandUtils.scala#L44-L54
   
   This will introduce some issues, e.g. 
[SPARK-19784](https://issues.apache.org/jira/browse/SPARK-19784), 
[SPARK-19845](https://issues.apache.org/jira/browse/SPARK-19845), 
[SPARK-25403](https://issues.apache.org/jira/browse/SPARK-25403), 
[SPARK-25332](https://issues.apache.org/jira/browse/SPARK-25332) and 
[SPARK-28413](https://issues.apache.org/jira/browse/SPARK-28413). 
   
   This is a example to reproduce 
[SPARK-19784](https://issues.apache.org/jira/browse/SPARK-19784):
   ```scala
   val path = "/tmp/spark/parquet"
   spark.sql("CREATE TABLE t (a INT) USING parquet")
   spark.sql("INSERT INTO TABLE t VALUES (1)")
   spark.range(5).toDF("a").write.parquet(path)
   spark.sql(s"ALTER TABLE t SET LOCATION '${path}'")
   spark.table("t").count() // return 1
   spark.sql("refresh table t")
   spark.table("t").count() // return 5
   ```
   
   This PR invalidates the table relation in this 
case(`spark.sql.statistics.size.autoUpdate.enabled=false` and 
`table.stats.isEmpty`) to fix this issue.
   
   ## How was this patch tested?
   
   unit tests
   

----------------------------------------------------------------
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]

Reply via email to