This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 16f488257c1 [case][fix](iceberg)move rest cases from p2 to p0 and fix
iceberg version issue (#37898)
16f488257c1 is described below
commit 16f488257c1b714ea66aef53e78a8c2c6a6f455d
Author: wuwenchi <[email protected]>
AuthorDate: Tue Jul 23 11:08:19 2024 +0800
[case][fix](iceberg)move rest cases from p2 to p0 and fix iceberg version
issue (#37898)
## Proposed changes
move cases from p2 to p0
---
.../docker-compose/iceberg/iceberg.yaml.tpl | 1 +
.../docker-compose/iceberg/spark-init-iceberg.sql | 25 ++-
.../datasource/iceberg/source/IcebergScanNode.java | 9 +-
.../iceberg/test_gen_iceberg_by_api.out | 10 ++
.../iceberg/test_iceberg_equality_delete.out | 41 +++++
.../iceberg/test_iceberg_position_delete.out} | 0
.../iceberg/test_iceberg_time_travel.out | 46 +++++
.../test_iceberg_upper_case_column_name.out} | 44 -----
.../hive/test_upper_case_column_name.out | 44 -----
.../iceberg/iceberg_equality_delete.out | 109 ------------
...est_external_catalog_iceberg_hadoop_catalog.out | 26 ---
.../test_external_catalog_icebergv2_nereids.out | 74 --------
.../hive/test_upper_case_column_name.groovy | 32 ----
.../iceberg/test_gen_iceberg_by_api.groovy | 192 +++++++++++++++++++++
.../iceberg/test_iceberg_equality_delete.groovy | 152 ++++++++++++++++
.../iceberg/test_iceberg_position_delete.groovy} | 42 +++--
.../iceberg/test_iceberg_time_travel.groovy | 55 ++++++
.../test_iceberg_upper_case_column_name.groovy} | 75 +++-----
.../hive/test_upper_case_column_name.groovy | 32 ----
.../iceberg/iceberg_equality_delete.groovy | 57 ------
..._external_catalog_iceberg_hadoop_catalog.groovy | 49 ------
.../test_external_catalog_icebergv2_nereids.groovy | 84 ---------
22 files changed, 574 insertions(+), 625 deletions(-)
diff --git a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
index 8f71d6c5087..10c86d742e6 100644
--- a/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
+++ b/docker/thirdparties/docker-compose/iceberg/iceberg.yaml.tpl
@@ -26,6 +26,7 @@ services:
depends_on:
- rest
- minio
+ - mc
volumes:
- ./data/output/spark-warehouse:/home/iceberg/warehouse
- ./data/output/spark-notebooks:/home/iceberg/notebooks/notebooks
diff --git a/docker/thirdparties/docker-compose/iceberg/spark-init-iceberg.sql
b/docker/thirdparties/docker-compose/iceberg/spark-init-iceberg.sql
index 84d8d054d7c..36c416b7deb 100644
--- a/docker/thirdparties/docker-compose/iceberg/spark-init-iceberg.sql
+++ b/docker/thirdparties/docker-compose/iceberg/spark-init-iceberg.sql
@@ -1,4 +1,6 @@
create database if not exists demo.test_db;
+use demo.test_db;
+
drop table if exists demo.test_db.location_s3a_table;
create table demo.test_db.location_s3a_table (
id int,
@@ -25,5 +27,26 @@ tblproperties (
insert into demo.test_db.location_s3_table values (1,'a');
update demo.test_db.location_s3_table set val='b' where id=1;
+drop table if exists demo.test_db.tb_ts_ntz_filter;
create table demo.test_db.tb_ts_ntz_filter (ts timestamp_ntz) using iceberg;
-insert into demo.test_db.tb_ts_ntz_filter values (timestamp_ntz '2024-06-11
12:34:56.123456');
\ No newline at end of file
+insert into demo.test_db.tb_ts_ntz_filter values (timestamp_ntz '2024-06-11
12:34:56.123456');
+
+drop table if exists iceberg_upper_case_parquet;
+CREATE TABLE iceberg_upper_case_parquet (
+ `ID` BIGINT,
+ `NAME` STRING)
+USING iceberg
+TBLPROPERTIES(
+ 'write.format.default' = 'parquet');
+
+insert into iceberg_upper_case_parquet values (1, 'name');
+
+drop table if exists iceberg_upper_case_orc;
+CREATE TABLE iceberg_upper_case_orc (
+ `ID` BIGINT,
+ `NAME` STRING)
+USING iceberg
+TBLPROPERTIES(
+ 'write.format.default' = 'orc');
+
+insert into iceberg_upper_case_orc values (1, 'name');
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java
index 85778d0ae40..a79256f7f0d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/source/IcebergScanNode.java
@@ -74,7 +74,6 @@ import org.apache.iceberg.util.SnapshotUtil;
import org.apache.iceberg.util.TableScanUtil;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -299,11 +298,11 @@ public class IcebergScanNode extends FileQueryScanNode {
List<IcebergDeleteFileFilter> filters = new ArrayList<>();
for (DeleteFile delete : spitTask.deletes()) {
if (delete.content() == FileContent.POSITION_DELETES) {
- ByteBuffer lowerBoundBytes =
delete.lowerBounds().get(MetadataColumns.DELETE_FILE_POS.fieldId());
- Optional<Long> positionLowerBound =
Optional.ofNullable(lowerBoundBytes)
+ Optional<Long> positionLowerBound =
Optional.ofNullable(delete.lowerBounds())
+ .map(m ->
m.get(MetadataColumns.DELETE_FILE_POS.fieldId()))
.map(bytes ->
Conversions.fromByteBuffer(MetadataColumns.DELETE_FILE_POS.type(), bytes));
- ByteBuffer upperBoundBytes =
delete.upperBounds().get(MetadataColumns.DELETE_FILE_POS.fieldId());
- Optional<Long> positionUpperBound =
Optional.ofNullable(upperBoundBytes)
+ Optional<Long> positionUpperBound =
Optional.ofNullable(delete.upperBounds())
+ .map(m ->
m.get(MetadataColumns.DELETE_FILE_POS.fieldId()))
.map(bytes ->
Conversions.fromByteBuffer(MetadataColumns.DELETE_FILE_POS.type(), bytes));
filters.add(IcebergDeleteFileFilter.createPositionDelete(delete.path().toString(),
positionLowerBound.orElse(-1L),
positionUpperBound.orElse(-1L)));
diff --git
a/regression-test/data/external_table_p0/iceberg/test_gen_iceberg_by_api.out
b/regression-test/data/external_table_p0/iceberg/test_gen_iceberg_by_api.out
new file mode 100644
index 00000000000..b3d42dfcd19
--- /dev/null
+++ b/regression-test/data/external_table_p0/iceberg/test_gen_iceberg_by_api.out
@@ -0,0 +1,10 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !q01 --
+1 1970-01-03T09:02:03.000001 a
+1 1970-01-03T09:02:03.000001 b
+2 1970-01-03T09:02:04.000001 c
+2 1970-01-03T09:02:04.000001 d
+
+-- !q02 --
+463870
+
diff --git
a/regression-test/data/external_table_p0/iceberg/test_iceberg_equality_delete.out
b/regression-test/data/external_table_p0/iceberg/test_iceberg_equality_delete.out
new file mode 100644
index 00000000000..3a21417f1a7
--- /dev/null
+++
b/regression-test/data/external_table_p0/iceberg/test_iceberg_equality_delete.out
@@ -0,0 +1,41 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !one_delete_column --
+1 b
+2 c
+
+-- !one_delete_column_orc --
+1 b
+2 c
+
+-- !count1 --
+2
+
+-- !count1_orc --
+2
+
+-- !max1 --
+c
+
+-- !max1_orc --
+c
+
+-- !one_delete_column --
+1 id2 1 b
+2 id2 1 c
+
+-- !one_delete_column_orc --
+1 id2 1 b
+2 id2 1 c
+
+-- !count3 --
+2
+
+-- !count3_orc --
+2
+
+-- !max3 --
+c
+
+-- !max3_orc --
+c
+
diff --git
a/regression-test/data/external_table_p2/iceberg/iceberg_position_delete.out
b/regression-test/data/external_table_p0/iceberg/test_iceberg_position_delete.out
similarity index 100%
rename from
regression-test/data/external_table_p2/iceberg/iceberg_position_delete.out
rename to
regression-test/data/external_table_p0/iceberg/test_iceberg_position_delete.out
diff --git
a/regression-test/data/external_table_p0/iceberg/test_iceberg_time_travel.out
b/regression-test/data/external_table_p0/iceberg/test_iceberg_time_travel.out
new file mode 100644
index 00000000000..c888cedbdf0
--- /dev/null
+++
b/regression-test/data/external_table_p0/iceberg/test_iceberg_time_travel.out
@@ -0,0 +1,46 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !q1 --
+5632
+
+-- !q2 --
+30
+
+-- !q3 --
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+
+-- !q4 --
+1 hello world
+1 hello world
+2 select xxxxxxxxx
+2 select xxxxxxxxx
+3 example xxxx
+3 example xxxx
+4 more dataxxx
+4 more dataxxx
+5 another examplexxx
+5 another examplexxx
+
+-- !q5 --
+480
+
+-- !q6 --
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+1 hello world
+
diff --git
a/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
b/regression-test/data/external_table_p0/iceberg/test_iceberg_upper_case_column_name.out
similarity index 58%
copy from
regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
copy to
regression-test/data/external_table_p0/iceberg/test_iceberg_upper_case_column_name.out
index 1b39ef27718..dc7acbbe880 100644
---
a/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
+++
b/regression-test/data/external_table_p0/iceberg/test_iceberg_upper_case_column_name.out
@@ -1,48 +1,4 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
--- !hiveParquet1 --
-1 name
-
--- !hiveParquet2 --
-1 name
-
--- !hiveParquet3 --
-
--- !hiveParquet4 --
-1 name
-
--- !hiveParquet5 --
-
--- !hiveParquet6 --
-1
-
--- !hiveParquet7 --
-name
-
--- !hiveParquet8 --
-1 name
-
--- !hiveOrc1 --
-1 name
-
--- !hiveOrc2 --
-1 name
-
--- !hiveOrc3 --
-
--- !hiveOrc4 --
-1 name
-
--- !hiveOrc5 --
-
--- !hiveOrc6 --
-1
-
--- !hiveOrc7 --
-name
-
--- !hiveOrc8 --
-1 name
-
-- !icebergParquet1 --
1 name
diff --git
a/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
b/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
index 1b39ef27718..fa5838be4dd 100644
---
a/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
+++
b/regression-test/data/external_table_p2/hive/test_upper_case_column_name.out
@@ -43,47 +43,3 @@ name
-- !hiveOrc8 --
1 name
--- !icebergParquet1 --
-1 name
-
--- !icebergParquet2 --
-1 name
-
--- !icebergParquet3 --
-
--- !icebergParquet4 --
-1 name
-
--- !icebergParquet5 --
-
--- !icebergParquet6 --
-1
-
--- !icebergParquet7 --
-name
-
--- !icebergParquet8 --
-1 name
-
--- !icebergOrc1 --
-1 name
-
--- !icebergOrc2 --
-1 name
-
--- !icebergOrc3 --
-
--- !icebergOrc4 --
-1 name
-
--- !icebergOrc5 --
-
--- !icebergOrc6 --
-1
-
--- !icebergOrc7 --
-name
-
--- !icebergOrc8 --
-1 name
-
diff --git
a/regression-test/data/external_table_p2/iceberg/iceberg_equality_delete.out
b/regression-test/data/external_table_p2/iceberg/iceberg_equality_delete.out
deleted file mode 100644
index 44cf1b7b2bf..00000000000
--- a/regression-test/data/external_table_p2/iceberg/iceberg_equality_delete.out
+++ /dev/null
@@ -1,109 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !one_delete_column --
-1 Customer#000000001 IVhzIApeRb ot,c,E 151 update-phone-1
711.56 BUILDING update-comment-1
-2 Customer#000000002 XSTf4,NCwDVaWNe6tEgvwfmRchLXak 13
23-768-687-3665 121.65 AUTOMOBILE l accounts. blithely ironic theodolites
integrate boldly: caref
-3 Customer#000000003 MG9kdTD2WBHm 1 11-719-748-3364 7498.12
AUTOMOBILE deposits eat slyly ironic, even instructions. express foxes
detect slyly. blithely even accounts abov
-4 Customer#000000004 XxVSJsLAGtn 47 update-phone-4 15.39
MACHINERY update-comment-2
-6 Customer#000000006 sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn 20
30-114-968-4951 7638.57 AUTOMOBILE tions. even deposits boost according to
the slyly bold packages. final accounts cajole requests. furious
-7 Customer#000000007 TcGe5gaZNgVePxU5kRrvXBfkasDTea 18
28-190-982-9759 9561.95 AUTOMOBILE ainst the ironic, express theodolites.
express, even pinto beans among the exp
-8 Customer#000000008 I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5 17
27-147-574-9335 6819.74 BUILDING among the slyly regular theodolites
kindle blithely courts. carefully even theodolites haggle slyly along the ide
-9 Customer#000000009 xKiAFTjUsCuxfeleNqefumTrjS 8
18-338-906-3675 8324.07 FURNITURE r theodolites according to the requests
wake thinly excuses: pending requests haggle furiousl
-10 Customer#000000010 6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2 5
15-741-346-9870 2753.54 HOUSEHOLD es regular deposits haggle. fur
-11 Customer#000000011 PkWS 3HlXqwTuzrKg633BEi 23 33-464-151-3439
-272.60 BUILDING ckages. requests sleep slyly. quickly even pinto beans
promise above the slyly regular pinto beans.
-12 Customer#000000012 9PWKuhzT4Zr1Q 13 23-791-276-1263 3396.49
HOUSEHOLD to the carefully final braids. blithely regular requests nag.
ironic theodolites boost quickly along
-13 Customer#000000013 nsXQu0oVjD7PM659uC3SRSp 3 13-761-547-5974
3857.34 BUILDING ounts sleep carefully after the close frays. carefully
bold notornis use ironic requests. blithely
-14 Customer#000000014 KXkletMlL2JQEA 1 11-845-129-3851 5266.30
FURNITURE , ironic packages across the unus
-15 Customer#000000015 YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn 23
33-687-542-7601 2788.52 HOUSEHOLD platelets. regular deposits detect
asymptotes. blithely unusual packages nag slyly at the fluf
-16 Customer#000000016 cYiaeMLZSMAOQ2 d0W, 10 20-781-609-3107
4681.03 FURNITURE kly silent courts. thinly regular theodolites sleep
fluffily after
-17 Customer#000000017 izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7 2
12-970-682-3487 6.34 AUTOMOBILE packages wake! blithely even pint
-18 Customer#000000018 3txGO AiuFux3zT0Z9NYaFRnZt 6
16-155-215-1315 5494.43 BUILDING s sleep. carefully even instructions
nag furiously alongside of t
-19 Customer#000000019 uc,3bHIx84H,wdrmLOjVsiqXCq2tr 18
28-396-526-5053 8914.71 HOUSEHOLD nag. furiously careful packages are
slyly at the accounts. furiously regular in
-20 Customer#000000020 JrPk8Pqplj4Ne 22 32-957-234-8742 7603.40
FURNITURE g alongside of the special excuses-- fluffily enticing packages
wake
-
--- !one_delete_column_orc --
-1 Customer#000000001 IVhzIApeRb ot,c,E 151 update-phone-1
711.56 BUILDING update-comment-1
-2 Customer#000000002 XSTf4,NCwDVaWNe6tEgvwfmRchLXak 13
23-768-687-3665 121.65 AUTOMOBILE l accounts. blithely ironic theodolites
integrate boldly: caref
-3 Customer#000000003 MG9kdTD2WBHm 1 11-719-748-3364 7498.12
AUTOMOBILE deposits eat slyly ironic, even instructions. express foxes
detect slyly. blithely even accounts abov
-4 Customer#000000004 XxVSJsLAGtn 47 update-phone-4 15.39
MACHINERY update-comment-2
-6 Customer#000000006 sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn 20
30-114-968-4951 7638.57 AUTOMOBILE tions. even deposits boost according to
the slyly bold packages. final accounts cajole requests. furious
-7 Customer#000000007 TcGe5gaZNgVePxU5kRrvXBfkasDTea 18
28-190-982-9759 9561.95 AUTOMOBILE ainst the ironic, express theodolites.
express, even pinto beans among the exp
-8 Customer#000000008 I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5 17
27-147-574-9335 6819.74 BUILDING among the slyly regular theodolites
kindle blithely courts. carefully even theodolites haggle slyly along the ide
-9 Customer#000000009 xKiAFTjUsCuxfeleNqefumTrjS 8
18-338-906-3675 8324.07 FURNITURE r theodolites according to the requests
wake thinly excuses: pending requests haggle furiousl
-10 Customer#000000010 6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2 5
15-741-346-9870 2753.54 HOUSEHOLD es regular deposits haggle. fur
-11 Customer#000000011 PkWS 3HlXqwTuzrKg633BEi 23 33-464-151-3439
-272.60 BUILDING ckages. requests sleep slyly. quickly even pinto beans
promise above the slyly regular pinto beans.
-12 Customer#000000012 9PWKuhzT4Zr1Q 13 23-791-276-1263 3396.49
HOUSEHOLD to the carefully final braids. blithely regular requests nag.
ironic theodolites boost quickly along
-13 Customer#000000013 nsXQu0oVjD7PM659uC3SRSp 3 13-761-547-5974
3857.34 BUILDING ounts sleep carefully after the close frays. carefully
bold notornis use ironic requests. blithely
-14 Customer#000000014 KXkletMlL2JQEA 1 11-845-129-3851 5266.30
FURNITURE , ironic packages across the unus
-15 Customer#000000015 YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn 23
33-687-542-7601 2788.52 HOUSEHOLD platelets. regular deposits detect
asymptotes. blithely unusual packages nag slyly at the fluf
-16 Customer#000000016 cYiaeMLZSMAOQ2 d0W, 10 20-781-609-3107
4681.03 FURNITURE kly silent courts. thinly regular theodolites sleep
fluffily after
-17 Customer#000000017 izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7 2
12-970-682-3487 6.34 AUTOMOBILE packages wake! blithely even pint
-18 Customer#000000018 3txGO AiuFux3zT0Z9NYaFRnZt 6
16-155-215-1315 5494.43 BUILDING s sleep. carefully even instructions
nag furiously alongside of t
-19 Customer#000000019 uc,3bHIx84H,wdrmLOjVsiqXCq2tr 18
28-396-526-5053 8914.71 HOUSEHOLD nag. furiously careful packages are
slyly at the accounts. furiously regular in
-20 Customer#000000020 JrPk8Pqplj4Ne 22 32-957-234-8742 7603.40
FURNITURE g alongside of the special excuses-- fluffily enticing packages
wake
-
--- !count1 --
-19
-
--- !count1_orc --
-19
-
--- !max1 --
-update-comment-2
-
--- !max1_orc --
-update-comment-2
-
--- !one_delete_column --
-1 Customer#000000001 IVhzIApeRb ot,c,E 151 update-phone-1
711.56 BUILDING update-comment-1
-2 Customer#000000002 XSTf4,NCwDVaWNe6tEgvwfmRchLXak 13
23-768-687-3665 121.65 AUTOMOBILE l accounts. blithely ironic theodolites
integrate boldly: caref
-3 Customer#000000003 MG9kdTD2WBHm 1 11-719-748-3364 7498.12
AUTOMOBILE deposits eat slyly ironic, even instructions. express foxes
detect slyly. blithely even accounts abov
-4 Customer#000000004 XxVSJsLAGtn 47 update-phone-4 15.39
MACHINERY update-comment-2
-6 Customer#000000006 sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn 20
30-114-968-4951 7638.57 AUTOMOBILE tions. even deposits boost according to
the slyly bold packages. final accounts cajole requests. furious
-7 Customer#000000007 TcGe5gaZNgVePxU5kRrvXBfkasDTea 18
28-190-982-9759 9561.95 AUTOMOBILE ainst the ironic, express theodolites.
express, even pinto beans among the exp
-8 Customer#000000008 I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5 17
27-147-574-9335 6819.74 BUILDING among the slyly regular theodolites
kindle blithely courts. carefully even theodolites haggle slyly along the ide
-9 Customer#000000009 xKiAFTjUsCuxfeleNqefumTrjS 8
18-338-906-3675 8324.07 FURNITURE r theodolites according to the requests
wake thinly excuses: pending requests haggle furiousl
-10 Customer#000000010 6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2 5
15-741-346-9870 2753.54 HOUSEHOLD es regular deposits haggle. fur
-11 Customer#000000011 PkWS 3HlXqwTuzrKg633BEi 23 33-464-151-3439
-272.60 BUILDING ckages. requests sleep slyly. quickly even pinto beans
promise above the slyly regular pinto beans.
-12 Customer#000000012 9PWKuhzT4Zr1Q 13 23-791-276-1263 3396.49
HOUSEHOLD to the carefully final braids. blithely regular requests nag.
ironic theodolites boost quickly along
-13 Customer#000000013 nsXQu0oVjD7PM659uC3SRSp 3 13-761-547-5974
3857.34 BUILDING ounts sleep carefully after the close frays. carefully
bold notornis use ironic requests. blithely
-14 Customer#000000014 KXkletMlL2JQEA 1 11-845-129-3851 5266.30
FURNITURE , ironic packages across the unus
-15 Customer#000000015 YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn 23
33-687-542-7601 2788.52 HOUSEHOLD platelets. regular deposits detect
asymptotes. blithely unusual packages nag slyly at the fluf
-16 Customer#000000016 cYiaeMLZSMAOQ2 d0W, 10 20-781-609-3107
4681.03 FURNITURE kly silent courts. thinly regular theodolites sleep
fluffily after
-17 Customer#000000017 izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7 2
12-970-682-3487 6.34 AUTOMOBILE packages wake! blithely even pint
-18 Customer#000000018 3txGO AiuFux3zT0Z9NYaFRnZt 6
16-155-215-1315 5494.43 BUILDING s sleep. carefully even instructions
nag furiously alongside of t
-19 Customer#000000019 uc,3bHIx84H,wdrmLOjVsiqXCq2tr 18
28-396-526-5053 8914.71 HOUSEHOLD nag. furiously careful packages are
slyly at the accounts. furiously regular in
-20 Customer#000000020 JrPk8Pqplj4Ne 22 32-957-234-8742 7603.40
FURNITURE g alongside of the special excuses-- fluffily enticing packages
wake
-
--- !one_delete_column_orc --
-1 Customer#000000001 IVhzIApeRb ot,c,E 151 update-phone-1
711.56 BUILDING update-comment-1
-2 Customer#000000002 XSTf4,NCwDVaWNe6tEgvwfmRchLXak 13
23-768-687-3665 121.65 AUTOMOBILE l accounts. blithely ironic theodolites
integrate boldly: caref
-3 Customer#000000003 MG9kdTD2WBHm 1 11-719-748-3364 7498.12
AUTOMOBILE deposits eat slyly ironic, even instructions. express foxes
detect slyly. blithely even accounts abov
-4 Customer#000000004 XxVSJsLAGtn 47 update-phone-4 15.39
MACHINERY update-comment-2
-6 Customer#000000006 sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn 20
30-114-968-4951 7638.57 AUTOMOBILE tions. even deposits boost according to
the slyly bold packages. final accounts cajole requests. furious
-7 Customer#000000007 TcGe5gaZNgVePxU5kRrvXBfkasDTea 18
28-190-982-9759 9561.95 AUTOMOBILE ainst the ironic, express theodolites.
express, even pinto beans among the exp
-8 Customer#000000008 I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5 17
27-147-574-9335 6819.74 BUILDING among the slyly regular theodolites
kindle blithely courts. carefully even theodolites haggle slyly along the ide
-9 Customer#000000009 xKiAFTjUsCuxfeleNqefumTrjS 8
18-338-906-3675 8324.07 FURNITURE r theodolites according to the requests
wake thinly excuses: pending requests haggle furiousl
-10 Customer#000000010 6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2 5
15-741-346-9870 2753.54 HOUSEHOLD es regular deposits haggle. fur
-11 Customer#000000011 PkWS 3HlXqwTuzrKg633BEi 23 33-464-151-3439
-272.60 BUILDING ckages. requests sleep slyly. quickly even pinto beans
promise above the slyly regular pinto beans.
-12 Customer#000000012 9PWKuhzT4Zr1Q 13 23-791-276-1263 3396.49
HOUSEHOLD to the carefully final braids. blithely regular requests nag.
ironic theodolites boost quickly along
-13 Customer#000000013 nsXQu0oVjD7PM659uC3SRSp 3 13-761-547-5974
3857.34 BUILDING ounts sleep carefully after the close frays. carefully
bold notornis use ironic requests. blithely
-14 Customer#000000014 KXkletMlL2JQEA 1 11-845-129-3851 5266.30
FURNITURE , ironic packages across the unus
-15 Customer#000000015 YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn 23
33-687-542-7601 2788.52 HOUSEHOLD platelets. regular deposits detect
asymptotes. blithely unusual packages nag slyly at the fluf
-16 Customer#000000016 cYiaeMLZSMAOQ2 d0W, 10 20-781-609-3107
4681.03 FURNITURE kly silent courts. thinly regular theodolites sleep
fluffily after
-17 Customer#000000017 izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7 2
12-970-682-3487 6.34 AUTOMOBILE packages wake! blithely even pint
-18 Customer#000000018 3txGO AiuFux3zT0Z9NYaFRnZt 6
16-155-215-1315 5494.43 BUILDING s sleep. carefully even instructions
nag furiously alongside of t
-19 Customer#000000019 uc,3bHIx84H,wdrmLOjVsiqXCq2tr 18
28-396-526-5053 8914.71 HOUSEHOLD nag. furiously careful packages are
slyly at the accounts. furiously regular in
-20 Customer#000000020 JrPk8Pqplj4Ne 22 32-957-234-8742 7603.40
FURNITURE g alongside of the special excuses-- fluffily enticing packages
wake
-
--- !count3 --
-19
-
--- !count3_orc --
-19
-
--- !max3 --
-update-comment-2
-
--- !max3_orc --
-update-comment-2
-
diff --git
a/regression-test/data/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.out
b/regression-test/data/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.out
deleted file mode 100644
index aaa9037977d..00000000000
---
a/regression-test/data/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.out
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !q01 --
-2879562
-
--- !q02 --
-1
-3
-5
-6
-7
-8
-11
-
--- !q03 --
-1 Customer#000000001 j5JsirBM9P MOROCCO 0 MOROCCO AFRICA
25-989-741-2988 BUILDING
-3 Customer#000000003 fkRGN8n ARGENTINA7 ARGENTINA AMERICA
11-719-748-3364 AUTOMOBILE
-5 Customer#000000005 hwBtxkoBF qSW4KrI CANADA 5 CANADA
AMERICA 13-750-942-6364 HOUSEHOLD
-
--- !q04 --
-1 1970-01-03 09:02:03.000001 a
-1 1970-01-03 09:02:03.000001 b
-2 1970-01-03 09:02:04.000001 c
-2 1970-01-03 09:02:04.000001 d
-
--- !q05 --
-463870
diff --git
a/regression-test/data/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.out
b/regression-test/data/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.out
deleted file mode 100644
index a6e68d2f621..00000000000
---
a/regression-test/data/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.out
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !q01 --
-149988
-
--- !q02 --
-1
-3
-4
-7
-
--- !q03 --
-8242263
-
--- !q04 --
-0
-
--- !q05 --
-1 Customer#000000001 IVhzIApeRb ot,c,E 15 25-989-741-2988
711.56 BUILDING to the even, regular platelets. regular, ironic
epitaphs nag e
-3 Customer#000000003 MG9kdTD2WBHm 1 11-719-748-3364 7498.12
AUTOMOBILE deposits eat slyly ironic, even instructions. express foxes
detect slyly. blithely even accounts abov
-4 Customer#000000004 XxVSJsLAGtn 4 14-128-190-5944 2866.83
MACHINERY requests. final, regular ideas sleep final accou
-
--- !q06 --
-604519555
-604519557
-604519558
-
--- !q07 --
-12979.65
-219204.52
-5908.20
-
--- !q08 --
-120001848
-
--- !q09 --
-1
-2
-3
-
--- !q10 --
-150000000
-149999999
-149999996
-
--- !q11 --
-1
-2
-3
-
--- !q12 --
-150000000
-149999999
-149999996
-
--- !q13 --
-1
-4
-7
-
--- !q14 --
-Customer#000000004
-Customer#000000007
-
--- !q15 --
-150000
-
--- !q16 --
-150000
-
--- !q17 --
-150000
-
--- !q18 --
-150000
diff --git
a/regression-test/suites/external_table_p0/hive/test_upper_case_column_name.groovy
b/regression-test/suites/external_table_p0/hive/test_upper_case_column_name.groovy
index 76246398613..a43af56a12e 100644
---
a/regression-test/suites/external_table_p0/hive/test_upper_case_column_name.groovy
+++
b/regression-test/suites/external_table_p0/hive/test_upper_case_column_name.groovy
@@ -32,22 +32,6 @@ suite("test_upper_case_column_name",
"p0,external,hive,external_docker,external_
def hiveOrc6 = """select id from hive_upper_case_orc where id=1;"""
def hiveOrc7 = """select name from hive_upper_case_orc where id=1;"""
def hiveOrc8 = """select id, name from hive_upper_case_orc where id=1;"""
- def icebergParquet1 = """select * from iceberg_upper_case_parquet;"""
- def icebergParquet2 = """select * from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet3 = """select * from iceberg_upper_case_parquet where
id>1;"""
- def icebergParquet4 = """select * from iceberg_upper_case_parquet where
name='name';"""
- def icebergParquet5 = """select * from iceberg_upper_case_parquet where
name!='name';"""
- def icebergParquet6 = """select id from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet7 = """select name from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet8 = """select id, name from iceberg_upper_case_parquet
where id=1;"""
- def icebergOrc1 = """select * from iceberg_upper_case_orc;"""
- def icebergOrc2 = """select * from iceberg_upper_case_orc where id=1;"""
- def icebergOrc3 = """select * from iceberg_upper_case_orc where id>1;"""
- def icebergOrc4 = """select * from iceberg_upper_case_orc where
name='name';"""
- def icebergOrc5 = """select * from iceberg_upper_case_orc where
name!='name';"""
- def icebergOrc6 = """select id from iceberg_upper_case_orc where id=1;"""
- def icebergOrc7 = """select name from iceberg_upper_case_orc where id=1;"""
- def icebergOrc8 = """select id, name from iceberg_upper_case_orc where
id=1;"""
String enabled = context.config.otherConfigs.get("enableHiveTest")
if (enabled == null || !enabled.equalsIgnoreCase("true")) {
@@ -82,22 +66,6 @@ suite("test_upper_case_column_name",
"p0,external,hive,external_docker,external_
qt_hiveOrc6 hiveOrc6
qt_hiveOrc7 hiveOrc7
qt_hiveOrc8 hiveOrc8
- // qt_icebergParquet1 icebergParquet1
- // qt_icebergParquet2 icebergParquet2
- // qt_icebergParquet3 icebergParquet3
- // qt_icebergParquet4 icebergParquet4
- // qt_icebergParquet5 icebergParquet5
- // qt_icebergParquet6 icebergParquet6
- // qt_icebergParquet7 icebergParquet7
- // qt_icebergParquet8 icebergParquet8
- // qt_icebergOrc1 icebergOrc1
- // qt_icebergOrc2 icebergOrc2
- // qt_icebergOrc3 icebergOrc3
- // qt_icebergOrc4 icebergOrc4
- // qt_icebergOrc5 icebergOrc5
- // qt_icebergOrc6 icebergOrc6
- // qt_icebergOrc7 icebergOrc7
- // qt_icebergOrc8 icebergOrc8
}
}
diff --git
a/regression-test/suites/external_table_p0/iceberg/test_gen_iceberg_by_api.groovy
b/regression-test/suites/external_table_p0/iceberg/test_gen_iceberg_by_api.groovy
new file mode 100644
index 00000000000..4fcc180bd02
--- /dev/null
+++
b/regression-test/suites/external_table_p0/iceberg/test_gen_iceberg_by_api.groovy
@@ -0,0 +1,192 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_gen_iceberg_by_api",
"p0,external,doris,external_docker,external_docker_doris") {
+ String enabled = context.config.otherConfigs.get("enableIcebergTest")
+ if (enabled == null || !enabled.equalsIgnoreCase("true")) {
+ logger.info("disable iceberg test.")
+ return
+ }
+
+ String rest_port = context.config.otherConfigs.get("iceberg_rest_uri_port")
+ String minio_port = context.config.otherConfigs.get("iceberg_minio_port")
+ String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+ String catalog_name = "test_gen_iceberg_by_api"
+
+ sql """drop catalog if exists ${catalog_name}"""
+ sql """
+ CREATE CATALOG ${catalog_name} PROPERTIES (
+ 'type'='iceberg',
+ 'iceberg.catalog.type'='rest',
+ 'uri' = 'http://${externalEnvIp}:${rest_port}',
+ "s3.access_key" = "admin",
+ "s3.secret_key" = "password",
+ "s3.endpoint" = "http://${externalEnvIp}:${minio_port}",
+ "s3.region" = "us-east-1"
+ );"""
+
+ sql """switch ${catalog_name};"""
+ sql """ use `test_db`; """
+
+ def q01 = {
+ qt_q01 """ select * from multi_partition2 order by val """
+ qt_q02 """ select count(*) from table_with_append_file where MAN_ID is
not null """
+ }
+
+ q01()
+}
+
+/*
+
+// 打包后,在iceberg-spark的docker中运行
+
+package org.example;
+
+
+import org.apache.iceberg.CatalogUtil;
+import org.apache.iceberg.DataFile;
+import org.apache.iceberg.DataFiles;
+import org.apache.iceberg.FileFormat;
+import org.apache.iceberg.PartitionSpec;
+import org.apache.iceberg.Schema;
+import org.apache.iceberg.Table;
+import org.apache.iceberg.catalog.Catalog;
+import org.apache.iceberg.catalog.Namespace;
+import org.apache.iceberg.catalog.TableIdentifier;
+import org.apache.iceberg.io.InputFile;
+import org.apache.iceberg.types.Types;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class CreateTable {
+ public static void main(String[] args) throws Exception {
+ CreateTable createTable = new CreateTable();
+ createTable.create();
+ }
+
+ public void create() {
+ HashMap<String, String> prop = new HashMap<>();
+ prop.put("uri", "http://172.21.0.101:18181");
+ prop.put("io-impl", "org.apache.iceberg.aws.s3.S3FileIO");
+ prop.put("type", "rest");
+ prop.put("AWS_ACCESS_KEY_ID", "admin");
+ prop.put("AWS_SECRET_ACCESS_KEY", "password");
+ prop.put("AWS_REGION", "us-east-1");
+ prop.put("s3.endpoint", "http://172.21.0.101:19001");
+ // RESTCatalog catalog = new RESTCatalog();
+ Catalog catalog = CatalogUtil.buildIcebergCatalog("df", prop, null);
+ catalog.initialize("ddf", prop);
+ List<TableIdentifier> test_db =
catalog.listTables(Namespace.of("test_db"));
+ System.out.println(test_db);
+
+ table1(catalog);
+ table2(catalog);
+
+ }
+
+ public void table1(Catalog catalog) {
+
+ TableIdentifier of = TableIdentifier.of("test_db", "multi_partition2");
+ boolean exists = catalog.tableExists(of);
+ Table table;
+ if (exists) {
+ catalog.dropTable(of);
+ }
+ Schema schema = new Schema(
+ Types.NestedField.required(1, "id",
Types.IntegerType.get()),
+ Types.NestedField.required(2, "ts",
Types.TimestampType.withZone()),
+ Types.NestedField.required(3, "val",
Types.StringType.get()));
+ PartitionSpec spec = PartitionSpec.builderFor(schema)
+ .identity("id")
+ .hour("ts")
+ .build();
+ table = catalog.createTable(of, schema, spec);
+
+ DataFile build = DataFiles.builder(table.spec())
+ .withPartitionValues(new
ArrayList<String>(){{add("1");add("1000");}})
+
.withInputFile(table.io().newInputFile("s3://warehouse/data/multi_partition2/00000-0-f309508c-953a-468f-8bcf-d910b2c7a1e5-00001.parquet"))
+ .withFileSizeInBytes(884)
+ .withRecordCount(1)//read the record count
+ .withFormat(FileFormat.PARQUET)
+ .build();
+ DataFile build2 = DataFiles.builder(table.spec())
+ .withPartitionValues(new
ArrayList<String>(){{add("1");add("1000");}})
+
.withInputFile(table.io().newInputFile("s3://warehouse/data/multi_partition2/00000-1-4acbae74-1265-4c3b-a8d1-d773037e8b42-00001.parquet"))
+ .withFileSizeInBytes(884)
+ .withRecordCount(1)//read the record count
+ .withFormat(FileFormat.PARQUET)
+ .build();
+ DataFile build3 = DataFiles.builder(table.spec())
+ .withPartitionValues(new
ArrayList<String>(){{add("2");add("2000");}})
+
.withInputFile(table.io().newInputFile("s3://warehouse/data/multi_partition2/00000-2-9c8199d3-9bc5-4e57-84d7-ad1cedcfbe94-00001.parquet"))
+ .withFileSizeInBytes(884)
+ .withRecordCount(1)//read the record count
+ .withFormat(FileFormat.PARQUET)
+ .build();
+ DataFile build4 = DataFiles.builder(table.spec())
+ .withPartitionValues(new
ArrayList<String>(){{add("2");add("2000");}})
+
.withInputFile(table.io().newInputFile("s3://warehouse/data/multi_partition2/00000-3-c042039c-f716-41a1-a857-eedf23f7be92-00001.parquet"))
+ .withFileSizeInBytes(884)
+ .withRecordCount(1)//read the record count
+ .withFormat(FileFormat.PARQUET)
+ .build();
+
+ table.newAppend()
+ .appendFile(build)
+ .appendFile(build2)
+ .appendFile(build3)
+ .appendFile(build4)
+ .commit();
+ }
+
+ public void table2(Catalog catalog) {
+ TableIdentifier of = TableIdentifier.of("test_db",
"table_with_append_file");
+ boolean exists = catalog.tableExists(of);
+ if (exists) {
+ catalog.dropTable(of);
+ }
+ Schema schema = new Schema(
+ Types.NestedField.required(1, "START_TIME",
Types.LongType.get()),
+ Types.NestedField.required(2, "ENT_TIME",
Types.LongType.get()),
+ Types.NestedField.required(3, "MAN_ID",
Types.StringType.get()),
+ Types.NestedField.required(4, "END_TIME_MICROS",
Types.TimestampType.withZone()));
+ PartitionSpec spec = PartitionSpec.builderFor(schema)
+ .hour("END_TIME_MICROS")
+ .build();
+ Table table = catalog.createTable(of, schema, spec);
+
+ InputFile inputFile = table.io()
+
.newInputFile("s3://warehouse/data/table_with_append_file/sample-data.snappy.parquet");
+
+ DataFile build = DataFiles.builder(table.spec())
+ .withPartitionValues(new ArrayList<String>(){{add("3");}})
+ .withInputFile(inputFile)
+ .withFileSizeInBytes(inputFile.getLength())
+ .withRecordCount(1)//read the record count
+ .withFormat(FileFormat.PARQUET)
+ .build();
+
+ table.newAppend()
+ .appendFile(build)
+ .commit();
+ }
+}
+
+
+*/
\ No newline at end of file
diff --git
a/regression-test/suites/external_table_p0/iceberg/test_iceberg_equality_delete.groovy
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_equality_delete.groovy
new file mode 100644
index 00000000000..74a3dc953eb
--- /dev/null
+++
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_equality_delete.groovy
@@ -0,0 +1,152 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_iceberg_equality_delete",
"p0,external,doris,external_docker,external_docker_doris") {
+ String enabled = context.config.otherConfigs.get("enableIcebergTest")
+ if (enabled == null || !enabled.equalsIgnoreCase("true")) {
+ logger.info("disable iceberg test.")
+ return
+ }
+
+ String rest_port = context.config.otherConfigs.get("iceberg_rest_uri_port")
+ String minio_port = context.config.otherConfigs.get("iceberg_minio_port")
+ String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+ String catalog_name = "test_iceberg_equality_delete"
+
+ sql """drop catalog if exists ${catalog_name}"""
+ sql """
+ CREATE CATALOG ${catalog_name} PROPERTIES (
+ 'type'='iceberg',
+ 'iceberg.catalog.type'='rest',
+ 'uri' = 'http://${externalEnvIp}:${rest_port}',
+ "s3.access_key" = "admin",
+ "s3.secret_key" = "password",
+ "s3.endpoint" = "http://${externalEnvIp}:${minio_port}",
+ "s3.region" = "us-east-1"
+ );"""
+
+ logger.info("catalog " + catalog_name + " created")
+ sql """switch ${catalog_name};"""
+ logger.info("switched to catalog " + catalog_name)
+ sql """ use test_db;"""
+
+ // one delete column
+ qt_one_delete_column """select * from customer_flink_one order by id"""
+ qt_one_delete_column_orc """select * from customer_flink_one_orc order
by id"""
+ qt_count1 """select count(*) from customer_flink_one"""
+ qt_count1_orc """select count(*) from customer_flink_one_orc"""
+ qt_max1 """select max(val) from customer_flink_one"""
+ qt_max1_orc """select max(val) from customer_flink_one_orc"""
+
+ // three delete columns
+ qt_one_delete_column """select * from customer_flink_three order by
id1"""
+ qt_one_delete_column_orc """select * from customer_flink_three_orc
order by id1"""
+ qt_count3 """select count(*) from customer_flink_three"""
+ qt_count3_orc """select count(*) from customer_flink_three_orc"""
+ qt_max3 """select max(val) from customer_flink_three"""
+ qt_max3_orc """select max(val) from customer_flink_three_orc"""
+
+ sql """drop catalog ${catalog_name}"""
+}
+
+/*
+
+---- flink sql:
+
+export AWS_ACCESS_KEY_ID=admin
+export AWS_SECRET_ACCESS_KEY=password
+export AWS_REGION=us-east-1
+export AWS_DEFAULT_REGION=us-east-1
+export S3_PATH_STYLE_ACCESS=true
+export S3_ENDPOINT=http://172.21.0.101:19001
+
+CREATE CATALOG iceberg_rest WITH (
+ 'type' = 'iceberg',
+ 'catalog-type' = 'rest',
+ 'uri'='http://172.21.0.101:18181',
+ 'warehouse'='s3a://warehouse/wh',
+ 's3.endpoint' = 'http://172.21.0.101:19001'
+);
+
+use iceberg_rest.test_db;
+
+create table customer_flink_one (
+ id int,
+ val string,
+ PRIMARY KEY(`id`) NOT ENFORCED
+) WITH (
+ 'format-version'='2',
+ 'write-format'='parquet',
+ 'upsert-enabled'='true'
+);
+
+insert into customer_flink_one values (1,'a');
+insert into customer_flink_one values (2,'b');
+insert into customer_flink_one values (1,'b');
+insert into customer_flink_one values (2, 'a'),(2, 'c');
+
+
+create table customer_flink_one_orc (
+ id int,
+ val string,
+ PRIMARY KEY(`id`) NOT ENFORCED
+) WITH (
+ 'format-version'='2',
+ 'write-format'='orc',
+ 'upsert-enabled'='true'
+);
+
+insert into customer_flink_one_orc values (1,'a');
+insert into customer_flink_one_orc values (2,'b');
+insert into customer_flink_one_orc values (1,'b');
+insert into customer_flink_one_orc values (2, 'a'),(2, 'c');
+
+
+create table customer_flink_three (
+ id1 int,
+ id2 string,
+ id3 int,
+ val string,
+ PRIMARY KEY(`id1`,`id2`,`id3`) NOT ENFORCED
+) WITH (
+ 'format-version'='2',
+ 'write-format'='parquet',
+ 'upsert-enabled'='true'
+);
+insert into customer_flink_three values (1,'id2',1,'a');
+insert into customer_flink_three values (1,'id2',1,'b');
+insert into customer_flink_three values (2,'id2',1,'b');
+insert into customer_flink_three values (2,'id2',1,'a'),(2,'id2',1,'c');
+
+create table customer_flink_three_orc (
+ id1 int,
+ id2 string,
+ id3 int,
+ val string,
+ PRIMARY KEY(`id1`,`id2`,`id3`) NOT ENFORCED
+) WITH (
+ 'format-version'='2',
+ 'write-format'='orc',
+ 'upsert-enabled'='true'
+);
+
+insert into customer_flink_three_orc values (1,'id2',1,'a');
+insert into customer_flink_three_orc values (1,'id2',1,'b');
+insert into customer_flink_three_orc values (2,'id2',1,'b');
+insert into customer_flink_three_orc values (2,'id2',1,'a'),(2,'id2',1,'c');
+
+*/
diff --git
a/regression-test/suites/external_table_p2/iceberg/iceberg_position_delete.groovy
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_position_delete.groovy
similarity index 92%
rename from
regression-test/suites/external_table_p2/iceberg/iceberg_position_delete.groovy
rename to
regression-test/suites/external_table_p0/iceberg/test_iceberg_position_delete.groovy
index 8f62aaba50d..6a14712a2af 100644
---
a/regression-test/suites/external_table_p2/iceberg/iceberg_position_delete.groovy
+++
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_position_delete.groovy
@@ -15,27 +15,34 @@
// specific language governing permissions and limitations
// under the License.
-suite("iceberg_position_delete",
"p2,external,iceberg,external_remote,external_remote_iceberg") {
-
- String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
- if (enabled != null && enabled.equalsIgnoreCase("true")) {
-
- String catalog_name = "test_external_iceberg_position_delete"
- String extHiveHmsHost =
context.config.otherConfigs.get("extHiveHmsHost")
- String extHdfsPort = context.config.otherConfigs.get("extHdfsPort")
- sql """drop catalog if exists ${catalog_name};"""
- sql """
- create catalog if not exists ${catalog_name} properties (
- 'type'='iceberg',
- 'iceberg.catalog.type'='hadoop',
- 'warehouse' =
'hdfs://${extHiveHmsHost}:${extHdfsPort}/usr/hive/warehouse/hadoop_catalog'
- );
- """
+suite("test_iceberg_position_delete",
"p0,external,doris,external_docker,external_docker_doris") {
+ String enabled = context.config.otherConfigs.get("enableIcebergTest")
+ if (enabled == null || !enabled.equalsIgnoreCase("true")) {
+ logger.info("disable iceberg test.")
+ return
+ }
+
+ String rest_port = context.config.otherConfigs.get("iceberg_rest_uri_port")
+ String minio_port = context.config.otherConfigs.get("iceberg_minio_port")
+ String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+ String catalog_name = "test_iceberg_position_delete"
+
+ sql """drop catalog if exists ${catalog_name}"""
+ sql """
+ CREATE CATALOG ${catalog_name} PROPERTIES (
+ 'type'='iceberg',
+ 'iceberg.catalog.type'='rest',
+ 'uri' = 'http://${externalEnvIp}:${rest_port}',
+ "s3.access_key" = "admin",
+ "s3.secret_key" = "password",
+ "s3.endpoint" = "http://${externalEnvIp}:${minio_port}",
+ "s3.region" = "us-east-1"
+ );"""
logger.info("catalog " + catalog_name + " created")
sql """switch ${catalog_name};"""
logger.info("switched to catalog " + catalog_name)
- sql """ use multi_catalog;"""
+ sql """ use test_db;"""
qt_gen_data_1 """ select * from iceberg_position_gen_data where name
= 'xyzxxxxxx' and id != 9;"""
qt_gen_data_2 """ select * from iceberg_position_gen_data where id =
1; """
@@ -158,7 +165,6 @@ suite("iceberg_position_delete",
"p2,external,iceberg,external_remote,external_r
assertTrue(iceberg_position_gen_7.size() == 5632)
sql """drop catalog ${catalog_name}"""
- }
}
/*
diff --git
a/regression-test/suites/external_table_p0/iceberg/test_iceberg_time_travel.groovy
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_time_travel.groovy
new file mode 100644
index 00000000000..5f4ffcef643
--- /dev/null
+++
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_time_travel.groovy
@@ -0,0 +1,55 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("test_iceberg_time_travel",
"p0,external,doris,external_docker,external_docker_doris") {
+ String enabled = context.config.otherConfigs.get("enableIcebergTest")
+ if (enabled == null || !enabled.equalsIgnoreCase("true")) {
+ logger.info("disable iceberg test.")
+ return
+ }
+
+ String rest_port = context.config.otherConfigs.get("iceberg_rest_uri_port")
+ String minio_port = context.config.otherConfigs.get("iceberg_minio_port")
+ String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+ String catalog_name = "test_iceberg_time_travel"
+
+ sql """drop catalog if exists ${catalog_name}"""
+ sql """
+ CREATE CATALOG ${catalog_name} PROPERTIES (
+ 'type'='iceberg',
+ 'iceberg.catalog.type'='rest',
+ 'uri' = 'http://${externalEnvIp}:${rest_port}',
+ "s3.access_key" = "admin",
+ "s3.secret_key" = "password",
+ "s3.endpoint" = "http://${externalEnvIp}:${minio_port}",
+ "s3.region" = "us-east-1"
+ );"""
+
+ sql """ use ${catalog_name}.test_db """
+
+ // test for 'FOR TIME AS OF' and 'FOR VERSION AS OF'
+ def q01 = {
+ qt_q1 """ select count(*) from iceberg_position_gen_data """ //
5632
+ qt_q2 """ select count(*) from iceberg_position_gen_data FOR TIME
AS OF '2024-07-14 14:17:01' """// 120
+ qt_q3 """ select * from iceberg_position_gen_data order by id
limit 10"""
+ qt_q4 """ select * from iceberg_position_gen_data FOR TIME AS OF
'2024-07-14 14:17:01' order by id limit 10"""
+ qt_q5 """ select count(*) from iceberg_position_gen_data FOR
VERSION AS OF 3106988132043095748 """ // 240
+ qt_q6 """ select * from iceberg_position_gen_data FOR VERSION AS
OF 3106988132043095748 order by id limit 10"""
+ }
+
+ q01()
+}
diff --git
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_upper_case_column_name.groovy
similarity index 50%
copy from
regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
copy to
regression-test/suites/external_table_p0/iceberg/test_iceberg_upper_case_column_name.groovy
index 28d4e6742e0..79e51a18ed1 100644
---
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
+++
b/regression-test/suites/external_table_p0/iceberg/test_iceberg_upper_case_column_name.groovy
@@ -15,23 +15,13 @@
// specific language governing permissions and limitations
// under the License.
-suite("upper_case_column_name",
"p2,external,hive,external_remote,external_remote_hive") {
- def hiveParquet1 = """select * from hive_upper_case_parquet;"""
- def hiveParquet2 = """select * from hive_upper_case_parquet where id=1;"""
- def hiveParquet3 = """select * from hive_upper_case_parquet where id>1;"""
- def hiveParquet4 = """select * from hive_upper_case_parquet where
name='name';"""
- def hiveParquet5 = """select * from hive_upper_case_parquet where
name!='name';"""
- def hiveParquet6 = """select id from hive_upper_case_parquet where id=1;"""
- def hiveParquet7 = """select name from hive_upper_case_parquet where
id=1;"""
- def hiveParquet8 = """select id, name from hive_upper_case_parquet where
id=1;"""
- def hiveOrc1 = """select * from hive_upper_case_orc;"""
- def hiveOrc2 = """select * from hive_upper_case_orc where id=1;"""
- def hiveOrc3 = """select * from hive_upper_case_orc where id>1;"""
- def hiveOrc4 = """select * from hive_upper_case_orc where name='name';"""
- def hiveOrc5 = """select * from hive_upper_case_orc where name!='name';"""
- def hiveOrc6 = """select id from hive_upper_case_orc where id=1;"""
- def hiveOrc7 = """select name from hive_upper_case_orc where id=1;"""
- def hiveOrc8 = """select id, name from hive_upper_case_orc where id=1;"""
+suite("test_iceberg_upper_case_column_name",
"p0,external,doris,external_docker,external_docker_doris") {
+ String enabled = context.config.otherConfigs.get("enableIcebergTest")
+ if (enabled == null || !enabled.equalsIgnoreCase("true")) {
+ logger.info("disable iceberg test.")
+ return
+ }
+
def icebergParquet1 = """select * from iceberg_upper_case_parquet;"""
def icebergParquet2 = """select * from iceberg_upper_case_parquet where
id=1;"""
def icebergParquet3 = """select * from iceberg_upper_case_parquet where
id>1;"""
@@ -49,39 +39,25 @@ suite("upper_case_column_name",
"p2,external,hive,external_remote,external_remot
def icebergOrc7 = """select name from iceberg_upper_case_orc where id=1;"""
def icebergOrc8 = """select id, name from iceberg_upper_case_orc where
id=1;"""
+ String rest_port = context.config.otherConfigs.get("iceberg_rest_uri_port")
+ String minio_port = context.config.otherConfigs.get("iceberg_minio_port")
+ String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+ String catalog_name = "test_iceberg_upper_case_column_name"
+
+ sql """drop catalog if exists ${catalog_name}"""
+ sql """
+ CREATE CATALOG ${catalog_name} PROPERTIES (
+ 'type'='iceberg',
+ 'iceberg.catalog.type'='rest',
+ 'uri' = 'http://${externalEnvIp}:${rest_port}',
+ "s3.access_key" = "admin",
+ "s3.secret_key" = "password",
+ "s3.endpoint" = "http://${externalEnvIp}:${minio_port}",
+ "s3.region" = "us-east-1"
+ );"""
+
+ sql """use `${catalog_name}`.`test_db`"""
- String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
- if (enabled != null && enabled.equalsIgnoreCase("true")) {
- String extHiveHmsHost =
context.config.otherConfigs.get("extHiveHmsHost")
- String extHiveHmsPort =
context.config.otherConfigs.get("extHiveHmsPort")
- String catalog_name = "upper_case"
- sql """drop catalog if exists ${catalog_name};"""
- sql """
- create catalog if not exists ${catalog_name} properties (
- 'type'='hms',
- 'hive.metastore.uris' =
'thrift://${extHiveHmsHost}:${extHiveHmsPort}'
- );
- """
- logger.info("catalog " + catalog_name + " created")
- sql """switch ${catalog_name};"""
- logger.info("switched to catalog " + catalog_name)
- sql """use multi_catalog;"""
- qt_hiveParquet1 hiveParquet1
- qt_hiveParquet2 hiveParquet2
- qt_hiveParquet3 hiveParquet3
- qt_hiveParquet4 hiveParquet4
- qt_hiveParquet5 hiveParquet5
- qt_hiveParquet6 hiveParquet6
- qt_hiveParquet7 hiveParquet7
- qt_hiveParquet8 hiveParquet8
- qt_hiveOrc1 hiveOrc1
- qt_hiveOrc2 hiveOrc2
- qt_hiveOrc3 hiveOrc3
- qt_hiveOrc4 hiveOrc4
- qt_hiveOrc5 hiveOrc5
- qt_hiveOrc6 hiveOrc6
- qt_hiveOrc7 hiveOrc7
- qt_hiveOrc8 hiveOrc8
qt_icebergParquet1 icebergParquet1
qt_icebergParquet2 icebergParquet2
qt_icebergParquet3 icebergParquet3
@@ -98,6 +74,5 @@ suite("upper_case_column_name",
"p2,external,hive,external_remote,external_remot
qt_icebergOrc6 icebergOrc6
qt_icebergOrc7 icebergOrc7
qt_icebergOrc8 icebergOrc8
- }
}
diff --git
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
b/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
index 28d4e6742e0..0033e0dca24 100644
---
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
+++
b/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
@@ -32,22 +32,6 @@ suite("upper_case_column_name",
"p2,external,hive,external_remote,external_remot
def hiveOrc6 = """select id from hive_upper_case_orc where id=1;"""
def hiveOrc7 = """select name from hive_upper_case_orc where id=1;"""
def hiveOrc8 = """select id, name from hive_upper_case_orc where id=1;"""
- def icebergParquet1 = """select * from iceberg_upper_case_parquet;"""
- def icebergParquet2 = """select * from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet3 = """select * from iceberg_upper_case_parquet where
id>1;"""
- def icebergParquet4 = """select * from iceberg_upper_case_parquet where
name='name';"""
- def icebergParquet5 = """select * from iceberg_upper_case_parquet where
name!='name';"""
- def icebergParquet6 = """select id from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet7 = """select name from iceberg_upper_case_parquet where
id=1;"""
- def icebergParquet8 = """select id, name from iceberg_upper_case_parquet
where id=1;"""
- def icebergOrc1 = """select * from iceberg_upper_case_orc;"""
- def icebergOrc2 = """select * from iceberg_upper_case_orc where id=1;"""
- def icebergOrc3 = """select * from iceberg_upper_case_orc where id>1;"""
- def icebergOrc4 = """select * from iceberg_upper_case_orc where
name='name';"""
- def icebergOrc5 = """select * from iceberg_upper_case_orc where
name!='name';"""
- def icebergOrc6 = """select id from iceberg_upper_case_orc where id=1;"""
- def icebergOrc7 = """select name from iceberg_upper_case_orc where id=1;"""
- def icebergOrc8 = """select id, name from iceberg_upper_case_orc where
id=1;"""
String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
@@ -82,22 +66,6 @@ suite("upper_case_column_name",
"p2,external,hive,external_remote,external_remot
qt_hiveOrc6 hiveOrc6
qt_hiveOrc7 hiveOrc7
qt_hiveOrc8 hiveOrc8
- qt_icebergParquet1 icebergParquet1
- qt_icebergParquet2 icebergParquet2
- qt_icebergParquet3 icebergParquet3
- qt_icebergParquet4 icebergParquet4
- qt_icebergParquet5 icebergParquet5
- qt_icebergParquet6 icebergParquet6
- qt_icebergParquet7 icebergParquet7
- qt_icebergParquet8 icebergParquet8
- qt_icebergOrc1 icebergOrc1
- qt_icebergOrc2 icebergOrc2
- qt_icebergOrc3 icebergOrc3
- qt_icebergOrc4 icebergOrc4
- qt_icebergOrc5 icebergOrc5
- qt_icebergOrc6 icebergOrc6
- qt_icebergOrc7 icebergOrc7
- qt_icebergOrc8 icebergOrc8
}
}
diff --git
a/regression-test/suites/external_table_p2/iceberg/iceberg_equality_delete.groovy
b/regression-test/suites/external_table_p2/iceberg/iceberg_equality_delete.groovy
deleted file mode 100644
index 984181ac2f3..00000000000
---
a/regression-test/suites/external_table_p2/iceberg/iceberg_equality_delete.groovy
+++ /dev/null
@@ -1,57 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("iceberg_equality_delete",
"p2,external,iceberg,external_remote,external_remote_iceberg") {
-
- String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
- if (enabled != null && enabled.equalsIgnoreCase("true")) {
-
- String catalog_name = "test_external_iceberg_equality_delete"
- String extHiveHmsHost =
context.config.otherConfigs.get("extHiveHmsHost")
- String extHdfsPort = context.config.otherConfigs.get("extHdfsPort")
- sql """drop catalog if exists ${catalog_name};"""
- sql """
- create catalog if not exists ${catalog_name} properties (
- 'type'='iceberg',
- 'iceberg.catalog.type'='hadoop',
- 'warehouse' =
'hdfs://${extHiveHmsHost}:${extHdfsPort}/usr/hive/warehouse/hadoop_catalog'
- );
- """
-
- logger.info("catalog " + catalog_name + " created")
- sql """switch ${catalog_name};"""
- logger.info("switched to catalog " + catalog_name)
- sql """ use multi_catalog;"""
-
- // one delete column
- qt_one_delete_column """select * from customer_flink_one order by
c_custkey"""
- qt_one_delete_column_orc """select * from customer_flink_one_orc order
by c_custkey"""
- qt_count1 """select count(*) from customer_flink_one"""
- qt_count1_orc """select count(*) from customer_flink_one_orc"""
- qt_max1 """select max(c_comment) from customer_flink_one"""
- qt_max1_orc """select max(c_comment) from customer_flink_one_orc"""
- // three delete columns
- qt_one_delete_column """select * from customer_flink_three order by
c_custkey"""
- qt_one_delete_column_orc """select * from customer_flink_three_orc
order by c_custkey"""
- qt_count3 """select count(*) from customer_flink_three"""
- qt_count3_orc """select count(*) from customer_flink_three_orc"""
- qt_max3 """select max(c_comment) from customer_flink_three"""
- qt_max3_orc """select max(c_comment) from customer_flink_three_orc"""
-
- sql """drop catalog ${catalog_name}"""
- }
-}
diff --git
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.groovy
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.groovy
deleted file mode 100644
index 12ec14992ec..00000000000
---
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_hadoop_catalog.groovy
+++ /dev/null
@@ -1,49 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_external_catalog_iceberg_hadoop_catalog",
"p2,external,iceberg,external_remote,external_remote_iceberg") {
- String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
- if (enabled != null && enabled.equalsIgnoreCase("true")) {
- String iceberg_catalog_name = "test_external_iceberg_catalog_hadoop"
- String extHiveHmsHost =
context.config.otherConfigs.get("extHiveHmsHost")
- String extHdfsPort = context.config.otherConfigs.get("extHdfsPort")
- sql """drop catalog if exists ${iceberg_catalog_name};"""
- sql """
- create catalog if not exists ${iceberg_catalog_name} properties (
- 'type'='iceberg',
- 'iceberg.catalog.type'='hadoop',
- 'warehouse' =
'hdfs://${extHiveHmsHost}:${extHdfsPort}/usr/hive/warehouse/hadoop_catalog'
- );
- """
-
- sql """switch ${iceberg_catalog_name};"""
- def q01 = {
- qt_q01 """ select count(*) from iceberg_hadoop_catalog """
- qt_q02 """ select c_custkey from iceberg_hadoop_catalog group by
c_custkey order by c_custkey limit 7 """
- qt_q03 """ select * from iceberg_hadoop_catalog order by c_custkey
limit 3 """
- }
-
- def q02 = {
- qt_q04 """ select * from multi_partition2 order by val """
- qt_q05 """ select count(*) from table_with_append_file where
MAN_ID is not null """
- }
-
- sql """ use `multi_catalog`; """
- q01()
- q02()
- }
-}
diff --git
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
deleted file mode 100644
index 38385b3c458..00000000000
---
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
+++ /dev/null
@@ -1,84 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_external_catalog_icebergv2_nereids",
"p2,external,iceberg,external_remote,external_remote_iceberg") {
- String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
- if (enabled != null && enabled.equalsIgnoreCase("true")) {
- String extHiveHmsHost =
context.config.otherConfigs.get("extHiveHmsHost")
- String extHiveHmsPort =
context.config.otherConfigs.get("extHiveHmsPort")
- String hms_catalog_name = "test_external_hms_catalog_iceberg_nereids"
- String iceberg_catalog_name = "test_external_iceberg_catalog_nereids"
-
- sql """drop catalog if exists ${hms_catalog_name};"""
- sql """
- create catalog if not exists ${hms_catalog_name} properties (
- 'type'='hms',
- 'hive.metastore.uris' =
'thrift://${extHiveHmsHost}:${extHiveHmsPort}'
- );
- """
-
- sql """drop catalog if exists ${iceberg_catalog_name};"""
- sql """
- create catalog if not exists ${iceberg_catalog_name} properties (
- 'type'='iceberg',
- 'iceberg.catalog.type'='hms',
- 'hive.metastore.uris' =
'thrift://${extHiveHmsHost}:${extHiveHmsPort}'
- );
- """
- sql """set enable_nereids_planner=true;"""
- sql """set enable_fallback_to_original_planner=false;"""
-
- sql """switch ${hms_catalog_name};"""
- // test parquet format format
- def q01 = {
- qt_q01 """ select count(1) as c from customer_small """
- qt_q02 """ select c_custkey from customer_small group by c_custkey
order by c_custkey limit 4 """
- qt_q03 """ select count(1) from orders_small """
- qt_q04 """ select count(1) from customer_small where c_name =
'Customer#000000005' or c_name = 'Customer#000000006' """
- qt_q05 """ select * from customer_small order by c_custkey limit 3
"""
- qt_q06 """ select o_orderkey from orders_small where o_orderkey >
652566 order by o_orderkey limit 3 """
- qt_q07 """ select o_totalprice from orders_small where o_custkey <
3357 order by o_custkey limit 3 """
- qt_q08 """ select count(1) as c from customer """
- }
- // test time travel stmt
- def q02 = {
- qt_q09 """ select c_custkey from customer for time as of
'2022-12-27 10:21:36' order by c_custkey limit 3 """
- qt_q10 """ select c_custkey from customer for time as of
'2022-12-28 10:21:36' order by c_custkey desc limit 3 """
- qt_q11 """ select c_custkey from customer for version as of
906874575350293177 order by c_custkey limit 3 """
- qt_q12 """ select c_custkey from customer for version as of
6352416983354893547 order by c_custkey desc limit 3 """
- }
- // in predicate
- def q03 = {
- qt_q13 """ select c_custkey from customer_small where c_custkey in
(1, 2, 4, 7) order by c_custkey """
- qt_q14 """ select c_name from customer_small where c_name in
('Customer#000000004', 'Customer#000000007') order by c_custkey """
- }
-
- // test for 'FOR TIME AS OF' and 'FOR VERSION AS OF'
- def q04 = {
- qt_q15 """ select count(*) from
${hms_catalog_name}.tpch_1000_icebergv2.customer_small FOR TIME AS OF
'2022-12-22 02:29:30' """
- qt_q16 """ select count(*) from
${hms_catalog_name}.tpch_1000_icebergv2.customer_small FOR VERSION AS OF
6113938156088124425 """
- qt_q17 """ select count(*) from
${iceberg_catalog_name}.tpch_1000_icebergv2.customer_small FOR TIME AS OF
'2022-12-22 02:29:30' """
- qt_q18 """ select count(*) from
${iceberg_catalog_name}.tpch_1000_icebergv2.customer_small FOR VERSION AS OF
6113938156088124425 """
- }
-
- sql """ use `tpch_1000_icebergv2`; """
- q01()
- q02()
- q03()
- q04()
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]