Shubham Chaurasia created HIVE-21641:
----------------------------------------

             Summary: Llap external client returns decimal columns in different 
precision/scale as compared to beeline
                 Key: HIVE-21641
                 URL: https://issues.apache.org/jira/browse/HIVE-21641
             Project: Hive
          Issue Type: Bug
          Components: llap
            Reporter: Shubham Chaurasia
            Assignee: Shubham Chaurasia


Llap external client gives different precision/scale as compared to when the 
query is executed beeline. Consider the following results:

Query:
{code} 
select avg(ss_ext_sales_price) my_avg from store_sales;
{code} 

Result from Beeline
{code} 
+----------------------------+
|           my_avg           |
+----------------------------+
| 37.8923531030581611189434  |
+----------------------------+
{code} 

Result from Llap external client
{code}
+---------+
|   my_avg|
+---------+
|37.892353|
+---------+
{code}
 
This is due to Driver(beeline path) calls 
[analyzeInternal()|https://github.com/apache/hive/blob/rel/release-3.1.1/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java#L328]
 for getting result set schema which initializes 
[resultSchema|https://github.com/apache/hive/blob/rel/release-3.1.1/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java#L333]
 after some more transformations as compared to llap-ext-client which calls 
[genLogicalPlan()|https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java#L561]

Replacing {{genLogicalPlan()}} by {{analyze()}} resolves this.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to