Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-1362

Min/max aggregate query on CHAR and BINARY types always return null

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.1.0
    • 4.3.0, 3.3.0, 4.2.3, 3.2.3
    • None
    • HBase 0.98.4
      RHEL 6.5

    Description

      • 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.
      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          |
      +------------+------------+
      

      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.

      Attachments

        Issue Links

          Activity

            People

              dhacker1341 Dave Hacker
              haridsv Hari Krishna Dara
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: