[ 
https://issues.apache.org/jira/browse/HIVE-26745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ádám Szita reassigned HIVE-26745:
---------------------------------


> 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
>
> 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)

Reply via email to