[ 
https://issues.apache.org/jira/browse/PHOENIX-1362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14247701#comment-14247701
 ] 

ASF GitHub Bot commented on PHOENIX-1362:
-----------------------------------------

GitHub user dhacker1341 opened a pull request:

    https://github.com/apache/phoenix/pull/30

    PHOENIX-1362 Fix Min/MaxAggregateFunction Aggregator max length

    Turned out the expression compiler was seeing the max length of 0 on fixed 
length data types because getMaxLength() on the aggregator was not being 
overridden.
    
    Let me know if I need to change anything especially on the test side.  Not 
too familiar yet with the style of the project.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/dhacker1341/phoenix master

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/phoenix/pull/30.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #30
    
----
commit 489f57a93a734b7d47aed864ea8f71d6bc01d0d7
Author: David <[email protected]>
Date:   2014-12-16T03:46:17Z

    PHOENIX-1362 Fix Min/MaxAggregateFunction Aggregator max length

----


> Min/max query on CHAR columns containing values with '0' as prefix always 
> returns null
> --------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1362
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1362
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>         Environment: HBase 0.98.4
> RHEL 6.5
>            Reporter: Hari Krishna Dara
>            Assignee: Dave Hacker
>              Labels: aggregate, char
>
> - Create a table with CHAR type and insert a few strings that start with 0.
> - Select min()/max() on the column, you always get null value.
> {noformat}
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> create table TT(VAL1 integer not 
> null, VAL2 char(2), val3 varchar, VAL4 varchar constraint PK primary key 
> (VAL1));
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> upsert into TT values (0, '00', '00', 
> '0');
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> upsert into TT values (1, '01', '01', 
> '1');
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> upsert into TT values (2, '02', '02', 
> '2');
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> select * from TT;
> +------------+------+------------+------------+
> |    VAL1    | VAL2 |    VAL3    |    VAL4    |
> +------------+------+------------+------------+
> | 0          | 00   | 00         | 0          |
> | 1          | 01   | 01         | 1          |
> | 2          | 02   | 02         | 2          |
> +------------+------+------------+------------+
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> select min(VAL1), max(VAL1) from TT;
> +------------+------------+
> | MIN(VAL1)  | MAX(VAL1)  |
> +------------+------------+
> | 0          | 2          |
> +------------+------------+
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> select min(VAL2), max(VAL2) from TT;
> +------------+------------+
> | MIN(VAL2)  | MAX(VAL2)  |
> +------------+------------+
> | null       | null       |
> +------------+------------+
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> select min(VAL3), max(VAL3) from TT;
> +------------+------------+
> | MIN(VAL3)  | MAX(VAL3)  |
> +------------+------------+
> | 00         | 02         |
> +------------+------------+
> 0: jdbc:phoenix:isthbase01-mnds2-1-crd> select min(VAL4), max(VAL4) from TT;
> +------------+------------+
> | MIN(VAL4)  | MAX(VAL4)  |
> +------------+------------+
> | 0          | 2          |
> +------------+------------+
> {noformat}
> As you can see, the query on VAL2 which is of type CHAR(2) returns null, 
> while the same exact values on VAL3 which is of type VARCHAR work as expected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to