dongjoon-hyun commented on a change in pull request #32411:
URL: https://github.com/apache/spark/pull/32411#discussion_r632021958



##########
File path: 
sql/core/src/main/scala/org/apache/spark/sql/execution/command/DataWritingCommand.scala
##########
@@ -96,4 +99,20 @@ object DataWritingCommand {
       sparkContext.getLocalProperty(SQLExecution.EXECUTION_ID_KEY),
       metrics.values.toSeq)
   }
+
+  def assertEmptyRootPath(tablePath: URI, saveMode: SaveMode, hadoopConf: 
Configuration) {
+    if (saveMode != SaveMode.Overwrite &&
+      !SQLConf.get.allowCreateTableAsSelectNonEmptyLocation) {
+      val filePath = new org.apache.hadoop.fs.Path(tablePath)
+      val fs = filePath.getFileSystem(hadoopConf)
+      if (fs.exists(filePath) &&
+        fs.getFileStatus(filePath).isDirectory &&
+        fs.listStatus(filePath).length != 0) {
+        throw new AnalysisException(
+          s"CREATE-TABLE-AS-SELECT cannot create table with location to a 
non-empty directory " +
+            s"${tablePath} . To disable the behavior, " +

Review comment:
       Shall we have a more explicit message because `To disable the behavior` 
doesn't imply the overwrite behavior? Maybe, the following is better?
   ```scala
   - To disable the behavior, 
   - To allow overwriting the existing non-empty directory,
   ```




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



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to