You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Rajkumar Singh (Jira)" <ji...@apache.org> on 2021/04/17 00:16:00 UTC

[jira] [Created] (HIVE-25024) Length function on char field yield incorrect result if CBO is enable

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)