[ https://issues.apache.org/jira/browse/HIVE-26745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated HIVE-26745: ---------------------------------- Labels: pull-request-available (was: ) > HPL unable to handle Decimal or null values in hplsql mode > ---------------------------------------------------------- > > Key: HIVE-26745 > URL: https://issues.apache.org/jira/browse/HIVE-26745 > Project: Hive > Issue Type: Bug > Reporter: Ádám Szita > Assignee: Ádám Szita > Priority: Major > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > Decimal or null values coming from Hive service side are not handled properly > in HPL. > When we're using beeline in HPL mode then the results of queries such as > SELECT CAST are returned in RowSet objects directly from HS2 code. This is > due to HplSqlQueryExecutor expecting RowSet type in OperationRowResult. For > this RowSet interface, a ColumnBasedSet class brings the imlementation which > holds a ColumnBuffer list to hold the result data. > The internal representation however cannot hold BigDecimal values, as seen > here: > https://github.com/apache/hive/blob/master/serde/src/java/org/apache/hadoop/hive/serde2/thrift/ColumnBuffer.java#L396 > so while the SELECT CAST query will produce a HiveBigDecimal instance, it > will be converted to String at > https://github.com/apache/hive/blob/master/service/src/java/org/apache/hive/service/cli/ColumnBasedSet.java#L110-L112 > before we add this piece of data to the result set. > Further down the line we will see class java.lang.String cannot be casted to > class java.math.BigDecimal. > ColumnBuffer seems like a pretty commonly used code and I don't think we > would want to try and extend this with the ability the carry decimal types. > Perhaps we could create a Jira to recreate the BigDecimal value from the > String representation arriving on the HPL side. > Since the two issues are both about value conversion I'm aiming to fix these > in one go. -- This message was sent by Atlassian Jira (v8.20.10#820010)