[ https://issues.apache.org/jira/browse/LIVY-699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
runzhiwang updated LIVY-699: ---------------------------- Description: LIVY-699[THRIFT] Fix resultSet.getBigDecimal throw java.sql.SQLException: Illegal conversion. Follows are steps to reproduce the problem: # {{create table test(id decimal)}}. # Then {{resultSet.getBigDecimal(1)}} will throw:{{ java.sql.SQLException: Illegal conversion}}. The reason is {{getSchema().getColumnDescriptorAt(columnIndex - 1).getType();}} at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L415] return string, so cannot pass the check {{val instanceof BigDecimal at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L133], so throw java.sql.SQLException: Illegal conversion}} at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L137] Additionally, SparkThrift return decimal instead of string in the same case, so it is necessary to return decimal instead of string in livy. The same to timestamp and date. was: [LIVY-699][THRIFT] Fix resultSet.getBigDecimal throw java.sql.SQLException: Illegal conversion. Follows are steps to reproduce the problem: # {{create table test(id decimal)}}. # Then {{resultSet.getBigDecimal(1)}} will throw:{{ java.sql.SQLException: Illegal conversion}}. The reason is {{getSchema().getColumnDescriptorAt(columnIndex - 1).getType();}} at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L415] return string, so cannot pass the check {{val instanceof BigDecimal }}at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L133], so throw {{java.sql.SQLException: Illegal conversion}} at [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L137] Additionally, SparkThrift return decimal instead of string in the same case, so it is necessary to return decimal instead of string in livy. The same to timestamp and date. > [LIVY-699][THRIFT] Fix resultSet.getBigDecimal throw java.sql.SQLException: > Illegal conversion > ---------------------------------------------------------------------------------------------- > > Key: LIVY-699 > URL: https://issues.apache.org/jira/browse/LIVY-699 > Project: Livy > Issue Type: Bug > Affects Versions: 0.6.0 > Reporter: runzhiwang > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > LIVY-699[THRIFT] Fix resultSet.getBigDecimal throw java.sql.SQLException: > Illegal conversion. > Follows are steps to reproduce the problem: > # {{create table test(id decimal)}}. > # Then {{resultSet.getBigDecimal(1)}} will throw:{{ java.sql.SQLException: > Illegal conversion}}. The reason is > {{getSchema().getColumnDescriptorAt(columnIndex - 1).getType();}} at > [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L415] > return string, so cannot pass the check {{val instanceof BigDecimal at > [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L133], > so throw java.sql.SQLException: Illegal conversion}} at > [https://github.com/apache/hive/blob/master/jdbc/src/java/org/apache/hive/jdbc/HiveBaseResultSet.java#L137] > Additionally, SparkThrift return decimal instead of string in the same case, > so it is necessary to return decimal instead of string in livy. The same to > timestamp and date. -- This message was sent by Atlassian Jira (v8.3.4#803005)