Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Impala 2.2.0
-
None
-
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