amaliujia commented on a change in pull request #35472:
URL: https://github.com/apache/spark/pull/35472#discussion_r804349859



##########
File path: 
sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/ThriftServerWithSparkContextSuite.scala
##########
@@ -57,34 +57,50 @@ trait ThriftServerWithSparkContextSuite extends 
SharedThriftServer {
 
   test("Full stack traces as error message for jdbc or thrift client") {
     val sql = "select date_sub(date'2011-11-11', '1.2')"
+    val ansi: Boolean = SQLConf.get.getConf(SQLConf.ANSI_ENABLED)
+
     withCLIServiceClient() { client =>
       val sessionHandle = client.openSession(user, "")
 
       val confOverlay = new java.util.HashMap[java.lang.String, 
java.lang.String]
+      val exec: String => OperationHandle = 
client.executeStatement(sessionHandle, _, confOverlay)
+
       val e = intercept[HiveSQLException] {
-        client.executeStatement(
-          sessionHandle,
-          sql,
-          confOverlay)
+        exec(sql)
       }
 
-      assert(e.getMessage
-        .contains("The second argument of 'date_sub' function needs to be an 
integer."))
-      assert(!e.getMessage.contains("" +
-        "java.lang.NumberFormatException: invalid input syntax for type 
numeric: 1.2"))
-      assert(e.getSQLState == "22023")
+      if (ansi) {
+        assert(!e.getMessage
+          .contains("The second argument of 'date_sub' function needs to be an 
integer."))
+        assert(e.getMessage.contains(
+          "java.lang.NumberFormatException: invalid input syntax for type 
numeric: 1.2"))
+        assert(e.getSQLState == "42000")
+      } else {
+        assert(e.getMessage
+          .contains("The second argument of 'date_sub' function needs to be an 
integer."))
+        assert(!e.getMessage.contains(
+          "java.lang.NumberFormatException: invalid input syntax for type 
numeric: 1.2"))
+        assert(e.getSQLState == "22023")
+      }
     }
 
     withJdbcStatement { statement =>
       val e = intercept[SQLException] {
         statement.executeQuery(sql)
       }
-      assert(e.getMessage
-        .contains("The second argument of 'date_sub' function needs to be an 
integer."))
-      assert(e.getMessage.contains("[SECOND_FUNCTION_ARGUMENT_NOT_INTEGER]"))
-      assert(e.getMessage.contains("" +
-        "java.lang.NumberFormatException: invalid input syntax for type 
numeric: 1.2"))
-      assert(e.getSQLState == "22023")
+
+      if (ansi) {
+        assert(e.getMessage.contains(
+          "java.lang.NumberFormatException: invalid input syntax for type 
numeric: 1.2"))
+        assert(e.getSQLState == "42000")
+      } else {
+        assert(e.getMessage
+          .contains("The second argument of 'date_sub' function needs to be an 
integer."))
+        assert(e.getMessage.contains("[SECOND_FUNCTION_ARGUMENT_NOT_INTEGER]"))

Review comment:
       I think because `e` here is `java.sql.SQLException`, it does not 
`getErrorClass`. Maybe that's why this code was written as what we see it now.




-- 
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: [email protected]

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