gengliangwang commented on code in PR #50571: URL: https://github.com/apache/spark/pull/50571#discussion_r2042531784
########## sql/core/src/test/scala/org/apache/spark/sql/execution/command/DDLSuite.scala: ########## @@ -1376,32 +1398,67 @@ abstract class DDLSuite extends QueryTest with DDLSuiteBase { } } - test("SPARK-51747: Data source cached plan should respect options") { - withTable("t") { - spark.sql("CREATE TABLE t(a string, b string) USING CSV".stripMargin) - spark.sql("INSERT INTO TABLE t VALUES ('a;b', 'c')") - spark.sql("INSERT INTO TABLE t VALUES ('hello; world', 'test')") + test("SPARK-51747: Data source cached plan respects options if ignore conf disabled") { + Seq("true", "false").foreach { ignoreOption => + withSQLConf(SQLConf.READ_FILE_SOURCE_TABLE_CACHE_IGNORE_OPTIONS.key -> ignoreOption) { + withNamespace("ns") { + withTable("t") { + spark.sql("CREATE TABLE t(a string, b string) USING CSV".stripMargin) + spark.sql("INSERT INTO TABLE t VALUES ('a;b', 'c')") + spark.sql("INSERT INTO TABLE t VALUES ('hello; world', 'test')") - // check initial contents of table - checkAnswer(spark.table("t"), Row("a;b", "c") :: Row("hello; world", "test") :: Nil) + // check initial contents of table + checkAnswer(spark.table("t"), Row("a;b", "c") :: Row("hello; world", "test") :: Nil) - // no option - checkAnswer( - spark.sql("SELECT * FROM t"), - Row("a;b", "c") :: Row("hello; world", "test") :: Nil - ) + val shouldIgnoreOption = ignoreOption == "true" + // If shouldIgnoreOption conf set to true, then the result is always with no options + val resultNoOptions = Row("a;b", "c") :: Row("hello; world", "test") :: Nil - // respect delimiter option - checkAnswer( - spark.sql("SELECT * FROM t WITH ('delimiter' = ';')"), - Row("a", "b,c") :: Row("hello", " world,test") :: Nil - ) + // delimiter ; option + checkAnswer( + spark.sql("SELECT * FROM t WITH ('delimiter' = ';')"), + if (shouldIgnoreOption) { + resultNoOptions + } else { + Row("a", "b,c") :: Row("hello", " world,test") :: Nil + } + ) + + // check cache + val expectedOptions = DataSourceUtils.generateDatasourceOptions( Review Comment: If we are going to validate the table options is merged with the new options, shall we have non-empty options in the table creatation? Also, let's write out the result directly, instead of reusing production code. -- 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. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org