Rajkumar Singh created HIVE-25024:
-------------------------------------

             Summary: Length function on char field yield incorrect result if 
CBO is enable
                 Key: HIVE-25024
                 URL: https://issues.apache.org/jira/browse/HIVE-25024
             Project: Hive
          Issue Type: Bug
          Components: CBO, Hive
    Affects Versions: 4.0.0
            Reporter: Rajkumar Singh


Steps to repro:

{code:java}
create table char_test(val char(10));
insert into table char_test values ('abc')
select * from char_test;
+----------------+
| char_test.val  |
+----------------+
| abc            |
+----------------+

 select length(val) from char_test where val='abc';
+------+
| _c0  |
+------+
| 10   |
+------+
{code}

The problem surface when CBO is enabled and query have a predicate on the char 
field. the filter form in this case is 'abc       ' (extra padded char) of 
string type since this is constant comparison. for string type genericudflength 
will not strip the extra chars.

https://github.com/apache/hive/blob/1758c8c857f8a6dc4c9dc9c522de449f53e5e5cc/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java#L943





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to