-
Notifications
You must be signed in to change notification settings - Fork 592
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(iceberg): support eq delete merge on read for iceberg (#18448)
Co-authored-by: Dylan Chen <[email protected]>
- Loading branch information
Showing
15 changed files
with
429 additions
and
95 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
113 changes: 113 additions & 0 deletions
113
e2e_test/iceberg/test_case/iceberg_source_eq_delete.slt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
statement ok | ||
set sink_decouple = false; | ||
|
||
statement ok | ||
set streaming_parallelism=4; | ||
|
||
statement ok | ||
CREATE TABLE s1 (i1 int, i2 varchar, i3 varchar); | ||
|
||
statement ok | ||
CREATE MATERIALIZED VIEW mv1 AS SELECT * FROM s1; | ||
|
||
statement ok | ||
CREATE SINK sink1 AS select * from mv1 WITH ( | ||
connector = 'iceberg', | ||
type = 'upsert', | ||
database.name = 'demo_db', | ||
table.name = 't1', | ||
catalog.name = 'demo', | ||
catalog.type = 'storage', | ||
warehouse.path = 's3a://icebergdata/demo', | ||
s3.endpoint = 'http://127.0.0.1:9301', | ||
s3.region = 'us-east-1', | ||
s3.access.key = 'hummockadmin', | ||
s3.secret.key = 'hummockadmin', | ||
create_table_if_not_exists = 'true', | ||
primary_key = 'i1,i2', | ||
); | ||
|
||
statement ok | ||
insert into s1 values(1,'2','3'); | ||
|
||
statement ok | ||
insert into s1 values(7,'8','9'); | ||
|
||
statement ok | ||
insert into s1 values(4,'5','6'); | ||
|
||
statement ok | ||
flush; | ||
|
||
statement ok | ||
delete from s1 where i1 = 7; | ||
|
||
statement ok | ||
flush; | ||
|
||
sleep 5s | ||
|
||
statement ok | ||
CREATE SOURCE iceberg_t1_source | ||
WITH ( | ||
connector = 'iceberg', | ||
s3.endpoint = 'http://127.0.0.1:9301', | ||
s3.region = 'us-east-1', | ||
s3.access.key = 'hummockadmin', | ||
s3.secret.key = 'hummockadmin', | ||
catalog.type = 'storage', | ||
warehouse.path = 's3a://icebergdata/demo', | ||
database.name = 'demo_db', | ||
table.name = 't1', | ||
); | ||
|
||
query I | ||
select * from iceberg_t1_source order by i1; | ||
---- | ||
1 2 3 | ||
4 5 6 | ||
|
||
query I | ||
select i1,i2,i3 from iceberg_t1_source order by i1; | ||
---- | ||
1 2 3 | ||
4 5 6 | ||
|
||
query I | ||
select i3,i2 from iceberg_t1_source order by i2; | ||
---- | ||
3 2 | ||
6 5 | ||
|
||
query I | ||
select i2,i1 from iceberg_t1_source order by i1; | ||
---- | ||
2 1 | ||
5 4 | ||
|
||
query I | ||
select i1 from iceberg_t1_source order by i1; | ||
---- | ||
1 | ||
4 | ||
|
||
query I | ||
select i2 from iceberg_t1_source order by i2; | ||
---- | ||
2 | ||
5 | ||
|
||
query I | ||
select i3 from iceberg_t1_source order by i3; | ||
---- | ||
3 | ||
6 | ||
|
||
statement ok | ||
DROP SINK sink1; | ||
|
||
statement ok | ||
DROP SOURCE iceberg_t1_source; | ||
|
||
statement ok | ||
DROP TABLE s1 cascade; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
init_sqls = [ | ||
'CREATE SCHEMA IF NOT EXISTS demo_db', | ||
'DROP TABLE IF EXISTS demo_db.t1', | ||
] | ||
|
||
slt = 'test_case/iceberg_source_eq_delete.slt' | ||
|
||
drop_sqls = [ | ||
'DROP TABLE IF EXISTS demo_db.t1', | ||
'DROP SCHEMA IF EXISTS demo_db', | ||
] |
Oops, something went wrong.