From 020730e0111ab753176dec8714555c2b8609ebbc Mon Sep 17 00:00:00 2001 From: InvisibleProgrammer Date: Thu, 22 Apr 2021 13:20:14 +0200 Subject: [PATCH] HIVE-27272 - Fix limit clause issue for iceberg qtests --- .../queries/negative/parquet_limit_negative.q | 7 +++++ .../src/test/queries/positive/parquet_limit.q | 5 ++++ .../negative/parquet_limit_negative.q.out | 30 +++++++++++++++++++ .../test/results/positive/parquet_limit.q.out | 25 ++++++++++++++++ .../hadoop/hive/cli/TestIcebergCliDriver.java | 3 ++ .../cli/TestIcebergNegativeCliDriver.java | 3 ++ 6 files changed, 73 insertions(+) create mode 100644 iceberg/iceberg-handler/src/test/queries/negative/parquet_limit_negative.q create mode 100644 iceberg/iceberg-handler/src/test/queries/positive/parquet_limit.q create mode 100644 iceberg/iceberg-handler/src/test/results/negative/parquet_limit_negative.q.out create mode 100644 iceberg/iceberg-handler/src/test/results/positive/parquet_limit.q.out diff --git a/iceberg/iceberg-handler/src/test/queries/negative/parquet_limit_negative.q b/iceberg/iceberg-handler/src/test/queries/negative/parquet_limit_negative.q new file mode 100644 index 000000000000..d36aabfa966d --- /dev/null +++ b/iceberg/iceberg-handler/src/test/queries/negative/parquet_limit_negative.q @@ -0,0 +1,7 @@ +create table icebergtable (id int, name string) stored by iceberg stored as parquet; + +insert into icebergtable values (1, 'Joe'), (2, 'Jack'); + +select * from icebergtable limit 1; + +create table icebergtable (id int, name string) stored by iceberg stored as parquet; diff --git a/iceberg/iceberg-handler/src/test/queries/positive/parquet_limit.q b/iceberg/iceberg-handler/src/test/queries/positive/parquet_limit.q new file mode 100644 index 000000000000..2437d1612a34 --- /dev/null +++ b/iceberg/iceberg-handler/src/test/queries/positive/parquet_limit.q @@ -0,0 +1,5 @@ +create table icebergtable (id int, name string) stored by iceberg stored as parquet; + +insert into icebergtable values (1, 'Joe'), (2, 'Jack'); + +select * from icebergtable limit 1; diff --git a/iceberg/iceberg-handler/src/test/results/negative/parquet_limit_negative.q.out b/iceberg/iceberg-handler/src/test/results/negative/parquet_limit_negative.q.out new file mode 100644 index 000000000000..fdbb911ee7d9 --- /dev/null +++ b/iceberg/iceberg-handler/src/test/results/negative/parquet_limit_negative.q.out @@ -0,0 +1,30 @@ +PREHOOK: query: create table icebergtable (id int, name string) stored by iceberg stored as parquet +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@icebergtable +POSTHOOK: query: create table icebergtable (id int, name string) stored by iceberg stored as parquet +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@icebergtable +PREHOOK: query: insert into icebergtable values (1, 'Joe'), (2, 'Jack') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@icebergtable +POSTHOOK: query: insert into icebergtable values (1, 'Joe'), (2, 'Jack') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@icebergtable +PREHOOK: query: select * from icebergtable limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@icebergtable +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: select * from icebergtable limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@icebergtable +POSTHOOK: Output: hdfs://### HDFS PATH ### +1 Joe +PREHOOK: query: create table icebergtable (id int, name string) stored by iceberg stored as parquet +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@icebergtable +FAILED: Execution Error, return code 40000 from org.apache.hadoop.hive.ql.ddl.DDLTask. AlreadyExistsException(message:Table hive.default.icebergtable already exists) diff --git a/iceberg/iceberg-handler/src/test/results/positive/parquet_limit.q.out b/iceberg/iceberg-handler/src/test/results/positive/parquet_limit.q.out new file mode 100644 index 000000000000..a1461e30e2f0 --- /dev/null +++ b/iceberg/iceberg-handler/src/test/results/positive/parquet_limit.q.out @@ -0,0 +1,25 @@ +PREHOOK: query: create table icebergtable (id int, name string) stored by iceberg stored as parquet +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@icebergtable +POSTHOOK: query: create table icebergtable (id int, name string) stored by iceberg stored as parquet +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@icebergtable +PREHOOK: query: insert into icebergtable values (1, 'Joe'), (2, 'Jack') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@icebergtable +POSTHOOK: query: insert into icebergtable values (1, 'Joe'), (2, 'Jack') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@icebergtable +PREHOOK: query: select * from icebergtable limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@icebergtable +PREHOOK: Output: hdfs://### HDFS PATH ### +POSTHOOK: query: select * from icebergtable limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@icebergtable +POSTHOOK: Output: hdfs://### HDFS PATH ### +1 Joe diff --git a/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergCliDriver.java b/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergCliDriver.java index c32fa2487270..79e97573b2e6 100644 --- a/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergCliDriver.java +++ b/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergCliDriver.java @@ -21,6 +21,8 @@ import java.util.List; import org.apache.hadoop.hive.cli.control.CliAdapter; import org.apache.hadoop.hive.cli.control.CliConfigs; +import org.apache.hadoop.hive.ql.exec.tez.ObjectCache; +import org.apache.tez.runtime.common.objectregistry.ObjectRegistryImpl; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -55,6 +57,7 @@ public TestIcebergCliDriver(String name, File qfile) { @Test public void testCliDriver() throws Exception { + ObjectCache.setupObjectRegistry(new ObjectRegistryImpl()); adapter.runTest(name, qfile); } } diff --git a/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergNegativeCliDriver.java b/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergNegativeCliDriver.java index adbc0a27fb3a..d3461e508501 100644 --- a/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergNegativeCliDriver.java +++ b/itests/qtest-iceberg/src/test/java/org/apache/hadoop/hive/cli/TestIcebergNegativeCliDriver.java @@ -21,6 +21,8 @@ import java.util.List; import org.apache.hadoop.hive.cli.control.CliAdapter; import org.apache.hadoop.hive.cli.control.CliConfigs; +import org.apache.hadoop.hive.ql.exec.tez.ObjectCache; +import org.apache.tez.runtime.common.objectregistry.ObjectRegistryImpl; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -55,6 +57,7 @@ public TestIcebergNegativeCliDriver(String name, File qfile) { @Test public void testCliDriver() throws Exception { + ObjectCache.setupObjectRegistry(new ObjectRegistryImpl()); adapter.runTest(name, qfile); } }