IMPALA-3812: Fix error message for unsupported types Before this patch an unclear error message was returned if DATE or DATETIME appeared in the select list after a star expansion. This was because DATE and DATETIME PrimitiveType was serialized as INVALID_TYPE. This is fixed by serializing correctly.
Change-Id: I9019b4bfd219f94e554c795befd3ff5e39706ea9 Reviewed-on: http://gerrit.cloudera.org:8080/4859 Reviewed-by: Alex Behm <[email protected]> Tested-by: Internal Jenkins Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/eb8120d2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/eb8120d2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/eb8120d2 Branch: refs/heads/master Commit: eb8120d218e825d36d3d8ca7560b3863691c8a73 Parents: 0ab3d76 Author: Taras Bobrovytsky <[email protected]> Authored: Wed Oct 26 17:02:05 2016 -0700 Committer: Internal Jenkins <[email protected]> Committed: Thu Nov 17 05:31:34 2016 +0000 ---------------------------------------------------------------------- .../apache/impala/catalog/PrimitiveType.java | 2 ++ .../org/apache/impala/catalog/ScalarType.java | 2 +- .../apache/impala/analysis/AnalyzerTest.java | 10 ++++----- testdata/UnsupportedTypes/data.csv | 10 ++++----- .../functional/functional_schema_template.sql | 1 + .../queries/QueryTest/misc.test | 22 +++++++++++++++++++- 6 files changed, 35 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java b/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java index fa53c6c..986c4fe 100644 --- a/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java +++ b/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java @@ -78,6 +78,8 @@ public enum PrimitiveType { case BIGINT: return BIGINT; case FLOAT: return FLOAT; case DOUBLE: return DOUBLE; + case DATE: return DATE; + case DATETIME: return DATETIME; case STRING: return STRING; case VARCHAR: return VARCHAR; case TIMESTAMP: return TIMESTAMP; http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/fe/src/main/java/org/apache/impala/catalog/ScalarType.java ---------------------------------------------------------------------- diff --git a/fe/src/main/java/org/apache/impala/catalog/ScalarType.java b/fe/src/main/java/org/apache/impala/catalog/ScalarType.java index 5f98b7c..c75ef16 100644 --- a/fe/src/main/java/org/apache/impala/catalog/ScalarType.java +++ b/fe/src/main/java/org/apache/impala/catalog/ScalarType.java @@ -266,7 +266,7 @@ public class ScalarType extends Type { @Override public boolean isSupported() { - return !getUnsupportedTypes().contains(this); + return isValid() && !getUnsupportedTypes().contains(this); } @Override http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/fe/src/test/java/org/apache/impala/analysis/AnalyzerTest.java ---------------------------------------------------------------------- diff --git a/fe/src/test/java/org/apache/impala/analysis/AnalyzerTest.java b/fe/src/test/java/org/apache/impala/analysis/AnalyzerTest.java index b9d1595..ff99085 100644 --- a/fe/src/test/java/org/apache/impala/analysis/AnalyzerTest.java +++ b/fe/src/test/java/org/apache/impala/analysis/AnalyzerTest.java @@ -304,20 +304,20 @@ public class AnalyzerTest extends FrontendTestBase { // Unsupported type binary. AnalysisError("select bin_col from functional.unsupported_types", "Unsupported type 'BINARY' in 'bin_col'."); - // Unsupported type binary in a star expansion. + // Unsupported type date in a star expansion. AnalysisError("select * from functional.unsupported_types", - "Unsupported type 'BINARY' in 'functional.unsupported_types.bin_col'."); + "Unsupported type 'DATE' in 'functional.unsupported_types.date_col'."); // Mixed supported/unsupported types. AnalysisError("select int_col, str_col, bin_col " + "from functional.unsupported_types", "Unsupported type 'BINARY' in 'bin_col'."); AnalysisError("create table tmp as select * from functional.unsupported_types", - "Unsupported type 'BINARY' in 'functional.unsupported_types.bin_col'."); + "Unsupported type 'DATE' in 'functional.unsupported_types.date_col'."); // Unsupported type in the target insert table. AnalysisError("insert into functional.unsupported_types " + - "values(null, null, null, null, null)", + "values(null, null, null, null, null, null)", "Unable to INSERT into target table (functional.unsupported_types) because " + - "the column 'bin_col' has an unsupported type 'BINARY'"); + "the column 'date_col' has an unsupported type 'DATE'"); // Unsupported partition-column type. AnalysisError("select * from functional.unsupported_partition_types", "Failed to load metadata for table: 'functional.unsupported_partition_types'"); http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/testdata/UnsupportedTypes/data.csv ---------------------------------------------------------------------- diff --git a/testdata/UnsupportedTypes/data.csv b/testdata/UnsupportedTypes/data.csv index 41718ce..551c34a 100644 --- a/testdata/UnsupportedTypes/data.csv +++ b/testdata/UnsupportedTypes/data.csv @@ -1,5 +1,5 @@ -0,0,aaaa,a,0 -1,1.0,bbbb,b,10 -2,1111111111.12345678901234567890,cccc,cccccccccc,20 -,2222222222.1234567890,\N,dddddddddd,, -4,,eeee,,40 +0,0,2016-05-05,aaaa,a,0 +1,1.0,,bbbb,b,10 +2,1111111111.12345678901234567890,2018-05-05,cccc,cccccccccc,20 +,2222222222.1234567890,2019-05-05,\N,dddddddddd,, +4,,2020-05-05,eeee,,40 http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/testdata/datasets/functional/functional_schema_template.sql ---------------------------------------------------------------------- diff --git a/testdata/datasets/functional/functional_schema_template.sql b/testdata/datasets/functional/functional_schema_template.sql index bed4713..be6b232 100644 --- a/testdata/datasets/functional/functional_schema_template.sql +++ b/testdata/datasets/functional/functional_schema_template.sql @@ -1434,6 +1434,7 @@ unsupported_types CREATE EXTERNAL TABLE IF NOT EXISTS {db_name}{db_suffix}.{table_name} ( int_col INT, dec_col DECIMAL, + date_col DATE, str_col STRING, bin_col BINARY, bigint_col BIGINT) http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/eb8120d2/testdata/workloads/functional-query/queries/QueryTest/misc.test ---------------------------------------------------------------------- diff --git a/testdata/workloads/functional-query/queries/QueryTest/misc.test b/testdata/workloads/functional-query/queries/QueryTest/misc.test index a0cf841..061963f 100644 --- a/testdata/workloads/functional-query/queries/QueryTest/misc.test +++ b/testdata/workloads/functional-query/queries/QueryTest/misc.test @@ -135,4 +135,24 @@ SELECT count(*) from functional.alltypes group by bool_col having bool_col 3650 ---- TYPES bigint -==== \ No newline at end of file +==== +---- QUERY +# IMPALA-3812: Verfiy that the correct error message is shown when the star expansion adds +# the DATE unsupported type to the select list. +select * from functional.unsupported_types +---- CATCH +Unsupported type 'DATE' in 'functional.unsupported_types.date_col'. +==== +---- QUERY +# IMPALA-3812: Verfiy that DATE type is displayed correctly in the describe table. +describe functional.unsupported_types +---- RESULTS +'int_col','int','' +'dec_col','decimal(10,0)','' +'date_col','date','' +'str_col','string','' +'bin_col','binary','' +'bigint_col','bigint','' +---- TYPES +STRING, STRING, STRING +====
