Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-7618

Kudu table Create/Alter syntax should accept 'VALUES <= <lit>'

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • Impala 2.2.0
    • None
    • Frontend
    • None
    • ghx-label-6

    Description

      Currently Impala allows the PARTITION 200 <= VALUES syntax to specify an unbounded-above range partition in a Kudu table, but not PARTITION VALUES >= 200.  Since these expressions are equivalent it would be nice if both were accepted.

       

      I would normally consider this an improvement and not a bug, however there is currently a mismatch between how Kudu pretty-prints these partitions and how Impala parses them.  This mismatch makes it very likely that users will hit this issue and be stumped.  For example:

       

      > CREATE TABLE dan_test (a int, PRIMARY KEY (a))
        PARTITION BY RANGE (a) (
          PARTITION 0 <= VALUES < 100,
          PARTITION VALUES >= 200
        ) STORED AS KUDU;
      
          ERROR: AnalysisException: Syntax error in line 4:
              PARTITION VALUES >= 200
                              ^
          Encountered: >
          Expected: COMMA
      
          CAUSED BY: Exception: Syntax error
      
      > CREATE TABLE dan_test (a int, PRIMARY KEY (a))
        PARTITION BY RANGE (a) (
          PARTITION 0 <= VALUES < 100,
          PARTITION 200 <= VALUES
        ) STORED AS KUDU;
      
          +-------------------------+
          | summary                 |
          +-------------------------+
          | Table has been created. |
          +-------------------------+
          Fetched 1 row(s) in 1.65s
      
      > SHOW RANGE PARTITIONS dan_test;
      
          +-------------------+
          | RANGE (a)         |
          +-------------------+
          | 0 <= VALUES < 100 |
          | VALUES >= 200     |
          +-------------------+
          Fetched 2 row(s) in 3.73s
      
      
      > ALTER TABLE dan_test DROP RANGE PARTITION VALUES >= 100;
      
          Query: ALTER TABLE dan_test DROP RANGE PARTITION VALUES >= 100
          ERROR: AnalysisException: Syntax error in line 1:
          ALTER TABLE dan_test DROP RANGE PARTITION VALUES >= 100
                                                          ^
          Encountered: >
          Expected: COMMA
      
          CAUSED BY: Exception: Syntax error
      
      > ALTER TABLE dan_test DROP RANGE PARTITION 100 <= VALUES;
      
          Query: ALTER TABLE dan_test DROP RANGE PARTITION 100 <= VALUES
          ERROR: ImpalaRuntimeException: Error dropping range partition in table dan_test
          CAUSED BY: NonRecoverableException: No range partition found for drop range partition step: VALUES >= 100
      
      > ALTER TABLE dan_test DROP RANGE PARTITION 200 <= VALUES;
      
          Query: ALTER TABLE dan_test DROP RANGE PARTITION 200 <= VALUES
          +-----------------------------------+
          | summary                           |
          +-----------------------------------+
          | Range partition has been dropped. |
          +-----------------------------------+
          Fetched 1 row(s) in 0.10s
      
      > SHOW PARTITIONS dan_test;
      
          Query: SHOW PARTITIONS dan_test
          +--------+-----------+----------+-----------------------------------+------------+
          | # Rows | Start Key | Stop Key | Leader Replica                    | # Replicas |
          +--------+-----------+----------+-----------------------------------+------------+
          | -1     | 80000000  | 80000064 | nightly6x-4.vpc.cloudera.com:7050 | 3          |
          +--------+-----------+----------+-----------------------------------+------------+
          Fetched 1 row(s) in 0.04s

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            danburkert Dan Burkert
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: