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]