[
https://issues.apache.org/jira/browse/HIVE-26745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ádám Szita resolved HIVE-26745.
-------------------------------
Fix Version/s: 4.0.0
Resolution: Fixed
Merged to master. Thanks for the reviews [~amagyar] and [~dkuzmenko]
> 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
> Fix For: 4.0.0
>
> Time Spent: 40m
> 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)