Skip to content

Commit

Permalink
[SPARK-42921][SQL][TESTS] Split timestampNTZ/datetime-special.sql i…
Browse files Browse the repository at this point in the history
…nto w/ and w/o `ansi` suffix to pass sql analyzer test in ansi mode

### What changes were proposed in this pull request?
After #40496, run

```
SPARK_ANSI_SQL_MODE=true build/sbt "sql/testOnly org.apache.spark.sql.SQLQueryTestSuite"
```

There is one test faild with `spark.sql.ansi.enabled = true`

```
[info] - timestampNTZ/datetime-special.sql_analyzer_test *** FAILED *** (11 milliseconds)
[info]   timestampNTZ/datetime-special.sql_analyzer_test
[info]   Expected "...date(999999, 3, 18, [false) AS make_date(999999, 3, 18)#x, make_date(-1, 1, 28, fals]e) AS make_date(-1, ...", but got "...date(999999, 3, 18, [true) AS make_date(999999, 3, 18)#x, make_date(-1, 1, 28, tru]e) AS make_date(-1, ..." Result did not match for query #1
[info]   select make_date(999999, 3, 18), make_date(-1, 1, 28) (SQLQueryTestSuite.scala:777)
[info]   org.scalatest.exceptions.TestFailedException:
```

The failure reason is the last parameter of function `MakeDate` is `failOnError: Boolean = SQLConf.get.ansiEnabled`.

So this pr split `timestampNTZ/datetime-special.sql` into w/ and w/o ansi to mask this test difference.

### Why are the changes needed?
Make SQLQueryTestSuite test pass with `spark.sql.ansi.enabled = true`.

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
- Pass GitHub Actions
- Manual checked `SPARK_ANSI_SQL_MODE=true build/sbt "sql/testOnly org.apache.spark.sql.SQLQueryTestSuite"`

Closes #40552 from LuciferYang/SPARK-42921.

Authored-by: yangjie01 <[email protected]>
Signed-off-by: Hyukjin Kwon <[email protected]>
  • Loading branch information
LuciferYang authored and HyukjinKwon committed Mar 27, 2023
1 parent 06bf544 commit 02c3352
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
-- Automatically generated by SQLQueryTestSuite
-- !query
select date'999999-03-18', date'-0001-1-28', date'0015'
-- !query analysis
[Analyzer test output redacted due to nondeterminism]


-- !query
select make_date(999999, 3, 18), make_date(-1, 1, 28)
-- !query analysis
Project [make_date(999999, 3, 18, true) AS make_date(999999, 3, 18)#x, make_date(-1, 1, 28, true) AS make_date(-1, 1, 28)#x]
+- OneRowRelation


-- !query
select timestamp'-1969-12-31 16:00:00', timestamp'-0015-03-18 16:00:00', timestamp'-000001', timestamp'99999-03-18T12:03:17'
-- !query analysis
Project [-1969-12-31 16:00:00 AS TIMESTAMP_NTZ '-1969-12-31 16:00:00'#x, -0015-03-18 16:00:00 AS TIMESTAMP_NTZ '-0015-03-18 16:00:00'#x, -0001-01-01 00:00:00 AS TIMESTAMP_NTZ '-0001-01-01 00:00:00'#x, +99999-03-18 12:03:17 AS TIMESTAMP_NTZ '+99999-03-18 12:03:17'#x]
+- OneRowRelation


-- !query
select make_timestamp(-1969, 12, 31, 16, 0, 0.0), make_timestamp(-15, 3, 18, 16, 0, 0.0), make_timestamp(99999, 3, 18, 12, 3, 17.0)
-- !query analysis
Project [make_timestamp(-1969, 12, 31, 16, 0, cast(0.0 as decimal(16,6)), None, Some(America/Los_Angeles), true, TimestampNTZType) AS make_timestamp(-1969, 12, 31, 16, 0, 0.0)#x, make_timestamp(-15, 3, 18, 16, 0, cast(0.0 as decimal(16,6)), None, Some(America/Los_Angeles), true, TimestampNTZType) AS make_timestamp(-15, 3, 18, 16, 0, 0.0)#x, make_timestamp(99999, 3, 18, 12, 3, cast(17.0 as decimal(16,6)), None, Some(America/Los_Angeles), true, TimestampNTZType) AS make_timestamp(99999, 3, 18, 12, 3, 17.0)#x]
+- OneRowRelation
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--SET spark.sql.ansi.enabled = true
--IMPORT datetime-special.sql
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
--SET spark.sql.ansi.enabled = false
--IMPORT datetime-special.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-- Automatically generated by SQLQueryTestSuite
-- !query
select date'999999-03-18', date'-0001-1-28', date'0015'
-- !query schema
struct<DATE '+999999-03-18':date,DATE '-0001-01-28':date,DATE '0015-01-01':date>
-- !query output
+999999-03-18 -0001-01-28 0015-01-01


-- !query
select make_date(999999, 3, 18), make_date(-1, 1, 28)
-- !query schema
struct<make_date(999999, 3, 18):date,make_date(-1, 1, 28):date>
-- !query output
+999999-03-18 -0001-01-28


-- !query
select timestamp'-1969-12-31 16:00:00', timestamp'-0015-03-18 16:00:00', timestamp'-000001', timestamp'99999-03-18T12:03:17'
-- !query schema
struct<TIMESTAMP_NTZ '-1969-12-31 16:00:00':timestamp_ntz,TIMESTAMP_NTZ '-0015-03-18 16:00:00':timestamp_ntz,TIMESTAMP_NTZ '-0001-01-01 00:00:00':timestamp_ntz,TIMESTAMP_NTZ '+99999-03-18 12:03:17':timestamp_ntz>
-- !query output
-1969-12-31 16:00:00 -0015-03-18 16:00:00 -0001-01-01 00:00:00 +99999-03-18 12:03:17


-- !query
select make_timestamp(-1969, 12, 31, 16, 0, 0.0), make_timestamp(-15, 3, 18, 16, 0, 0.0), make_timestamp(99999, 3, 18, 12, 3, 17.0)
-- !query schema
struct<make_timestamp(-1969, 12, 31, 16, 0, 0.0):timestamp_ntz,make_timestamp(-15, 3, 18, 16, 0, 0.0):timestamp_ntz,make_timestamp(99999, 3, 18, 12, 3, 17.0):timestamp_ntz>
-- !query output
-1969-12-31 16:00:00 -0015-03-18 16:00:00 +99999-03-18 12:03:17
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,9 @@ class ThriftServerQueryTestSuite extends SQLQueryTestSuite with SharedThriftServ
"subquery/in-subquery/in-group-by.sql",
"subquery/in-subquery/simple-in.sql",
"subquery/in-subquery/in-order-by.sql",
"subquery/in-subquery/in-set-operations.sql"
"subquery/in-subquery/in-set-operations.sql",
// SPARK-42921
"timestampNTZ/datetime-special-ansi.sql"
)

override def runQueries(
Expand Down

0 comments on commit 02c3352

Please sign in to comment.