You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@impala.apache.org by "Peter Rozsa (Code Review)" <ge...@cloudera.org> on 2024/10/29 13:41:35 UTC
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Peter Rozsa has uploaded this change for review. ( http://gerrit.cloudera.org:8080/21988
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
This change adds support for a new MERGE clause that covers the
condition when the source statements rows do not match the target
tables rows. Example: MERGE INTO target t using source s on t.id = s.id
WHEN NOT MATCHED BY SOURCE THEN UPDATE set t.column = "a";
This change also adds support to use WHEN NOT MATCHED BY TARGET
explicitly, this is equivalent to WHEN NOT MATCHED.
Tests:
- Parser tests for the new language elements.
- Analyzer and planner test for WHEN NOT MATCHED BY SOURCE/TARGET
clauses.
- E2E tests for WHEN NOT MATCHED BY SOURCE clause.
Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
---
M be/src/exec/iceberg-merge-node.cc
M be/src/exec/iceberg-merge-node.h
M common/thrift/PlanNodes.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/MergeCase.java
M fe/src/main/java/org/apache/impala/analysis/MergeDelete.java
M fe/src/main/java/org/apache/impala/analysis/MergeInsert.java
M fe/src/main/java/org/apache/impala/analysis/MergeStmt.java
M fe/src/main/java/org/apache/impala/analysis/MergeUpdate.java
M fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeModifyStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/iceberg-merge.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
14 files changed, 360 insertions(+), 105 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/21988/1
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 1
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 5: Code-Review+2
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 5
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 02 Jan 2025 09:23:06 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Peter Rozsa (Code Review)" <ge...@cloudera.org>.
Peter Rozsa has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 4: Code-Review+2
(2 comments)
Carrying Zoltan's +2
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h
File be/src/exec/iceberg-merge-node.h:
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h@102
PS3, Line 102: '
> nit: double closing parentheses
Done
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h@102
PS3, Line 102: n
> nit: no need for capital 'I'
Done
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 4
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 02 Jan 2025 08:54:12 +0000
Gerrit-HasComments: Yes
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 1:
(1 comment)
gerrit-auto-critic failed. You can reproduce it locally using command:
python2 bin/jenkins/critique-gerrit-review.py --dryrun
To run it, you might need a virtual env with virtualenv installed.
http://gerrit.cloudera.org:8080/#/c/21988/1/fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
File fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java:
http://gerrit.cloudera.org:8080/#/c/21988/1/fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java@71
PS1, Line 71: Expr.treesToThrift(mergeCase.getResultExprs()), mergeCase.caseType(), mergeCase.matchType());
line too long (103 > 90)
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 1
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Comment-Date: Tue, 29 Oct 2024 13:42:49 +0000
Gerrit-HasComments: Yes
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Peter Rozsa (Code Review)" <ge...@cloudera.org>.
Peter Rozsa has uploaded a new patch set (#4). ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
This change adds support for a new MERGE clause that covers the
condition when the source statement's rows do not match the target
tables rows. Example: MERGE INTO target t using source s on t.id = s.id
WHEN NOT MATCHED BY SOURCE THEN UPDATE set t.column = "a";
This change also adds support to use WHEN NOT MATCHED BY TARGET
explicitly, this is equivalent to WHEN NOT MATCHED.
Tests:
- Parser tests for the new language elements.
- Analyzer and planner test for WHEN NOT MATCHED BY SOURCE/TARGET
clauses.
- E2E tests for WHEN NOT MATCHED BY SOURCE clause.
Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
---
M be/src/exec/iceberg-merge-node.cc
M be/src/exec/iceberg-merge-node.h
M common/thrift/PlanNodes.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/MergeCase.java
M fe/src/main/java/org/apache/impala/analysis/MergeDelete.java
M fe/src/main/java/org/apache/impala/analysis/MergeInsert.java
M fe/src/main/java/org/apache/impala/analysis/MergeStmt.java
M fe/src/main/java/org/apache/impala/analysis/MergeUpdate.java
M fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeModifyStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/iceberg-merge.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition-sort.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
M tests/query_test/test_iceberg.py
17 files changed, 745 insertions(+), 329 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/21988/4
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 4
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Zoltan Borok-Nagy (Code Review)" <ge...@cloudera.org>.
Zoltan Borok-Nagy has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 3: Code-Review+2
(2 comments)
Thanks for applying the changes!
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h
File be/src/exec/iceberg-merge-node.h:
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h@102
PS3, Line 102: I
nit: no need for capital 'I'
http://gerrit.cloudera.org:8080/#/c/21988/3/be/src/exec/iceberg-merge-node.h@102
PS3, Line 102: )
nit: double closing parentheses
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 3
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Fri, 20 Dec 2024 13:45:59 +0000
Gerrit-HasComments: Yes
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 5: Verified+1
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 5
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 02 Jan 2025 15:02:19 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 1:
Build Successful
https://jenkins.impala.io/job/gerrit-code-review-checks/17290/ : Initial code review checks passed. Use gerrit-verify-dryrun-external or gerrit-verify-dryrun to run full precommit tests.
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 1
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Comment-Date: Tue, 29 Oct 2024 14:06:57 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 3:
Build Successful
https://jenkins.impala.io/job/gerrit-code-review-checks/17725/ : Initial code review checks passed. Use gerrit-verify-dryrun-external or gerrit-verify-dryrun to run full precommit tests.
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 3
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Wed, 18 Dec 2024 17:46:32 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Zoltan Borok-Nagy (Code Review)" <ge...@cloudera.org>.
Zoltan Borok-Nagy has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 2:
(6 comments)
The code looks great, I only found a few nits. Some additional tests could be useful.
http://gerrit.cloudera.org:8080/#/c/21988/2//COMMIT_MSG
Commit Message:
http://gerrit.cloudera.org:8080/#/c/21988/2//COMMIT_MSG@10
PS2, Line 10: statements
nit: statement's
http://gerrit.cloudera.org:8080/#/c/21988/2/be/src/exec/iceberg-merge-node.cc
File be/src/exec/iceberg-merge-node.cc:
http://gerrit.cloudera.org:8080/#/c/21988/2/be/src/exec/iceberg-merge-node.cc@211
PS2, Line 211:
nit: too much indent
http://gerrit.cloudera.org:8080/#/c/21988/2/be/src/exec/iceberg-merge-node.cc@227
PS2, Line 227:
nit: indentation is off
http://gerrit.cloudera.org:8080/#/c/21988/2/fe/src/main/cup/sql-parser.cup
File fe/src/main/cup/sql-parser.cup:
http://gerrit.cloudera.org:8080/#/c/21988/2/fe/src/main/cup/sql-parser.cup@1063
PS2, Line 1063: if (target_or_source.equals("SOURCE")) {
: parser.parseError("SOURCE", SqlParserSymbols.KW_INSERT, "UPDATE, DELETE");
: }
Could you please add comment, e.g. "User wrote WHEN NOT MATCHED BY SOURCE with INSERT operation which doesn't make sense, as there is nothing to insert."
http://gerrit.cloudera.org:8080/#/c/21988/2/fe/src/main/cup/sql-parser.cup@1073
PS2, Line 1073: int kw = SqlParserSymbols.KW_DELETE;
: if (matched.caseType().equals(TMergeCaseType.UPDATE)) {
: kw = SqlParserSymbols.KW_UPDATE;
: }
: parser.parseError("TARGET", kw, "INSERT");
Could you please add comment, e.g. "User wrote WHEN NOT MATCHED BY TARGET with DELETE/UPDATE operation which doesn't make sense, as there is nothing to delete/update."
http://gerrit.cloudera.org:8080/#/c/21988/2/testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
File testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test:
http://gerrit.cloudera.org:8080/#/c/21988/2/testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test@360
PS2, Line 360: ====
Maybe a few additional tests could be useful, just to check we don't miss anything
- target table is non-partitioned
- NOT MATCHED BY SOURCE without any predicates then DELETE/UPDATE
- NOT MATCHED BY SOURCE with multiple predicates then DELETE/UPDATE
- MERGE statement with many cases
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 2
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 21 Nov 2024 20:27:13 +0000
Gerrit-HasComments: Yes
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 5:
Build started: https://jenkins.impala.io/job/gerrit-verify-dryrun/11267/ DRY_RUN=false
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 5
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 02 Jan 2025 09:23:06 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
This change adds support for a new MERGE clause that covers the
condition when the source statement's rows do not match the target
tables rows. Example: MERGE INTO target t using source s on t.id = s.id
WHEN NOT MATCHED BY SOURCE THEN UPDATE set t.column = "a";
This change also adds support to use WHEN NOT MATCHED BY TARGET
explicitly, this is equivalent to WHEN NOT MATCHED.
Tests:
- Parser tests for the new language elements.
- Analyzer and planner test for WHEN NOT MATCHED BY SOURCE/TARGET
clauses.
- E2E tests for WHEN NOT MATCHED BY SOURCE clause.
Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Reviewed-on: http://gerrit.cloudera.org:8080/21988
Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
M be/src/exec/iceberg-merge-node.cc
M be/src/exec/iceberg-merge-node.h
M common/thrift/PlanNodes.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/MergeCase.java
M fe/src/main/java/org/apache/impala/analysis/MergeDelete.java
M fe/src/main/java/org/apache/impala/analysis/MergeInsert.java
M fe/src/main/java/org/apache/impala/analysis/MergeStmt.java
M fe/src/main/java/org/apache/impala/analysis/MergeUpdate.java
M fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeModifyStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/iceberg-merge.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition-sort.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
M tests/query_test/test_iceberg.py
17 files changed, 745 insertions(+), 329 deletions(-)
Approvals:
Impala Public Jenkins: Looks good to me, approved; Verified
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 6
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 4:
Build Successful
https://jenkins.impala.io/job/gerrit-code-review-checks/17821/ : Initial code review checks passed. Use gerrit-verify-dryrun-external or gerrit-verify-dryrun to run full precommit tests.
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 4
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Comment-Date: Thu, 02 Jan 2025 09:18:07 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Peter Rozsa (Code Review)" <ge...@cloudera.org>.
Peter Rozsa has uploaded a new patch set (#2). ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
This change adds support for a new MERGE clause that covers the
condition when the source statements rows do not match the target
tables rows. Example: MERGE INTO target t using source s on t.id = s.id
WHEN NOT MATCHED BY SOURCE THEN UPDATE set t.column = "a";
This change also adds support to use WHEN NOT MATCHED BY TARGET
explicitly, this is equivalent to WHEN NOT MATCHED.
Tests:
- Parser tests for the new language elements.
- Analyzer and planner test for WHEN NOT MATCHED BY SOURCE/TARGET
clauses.
- E2E tests for WHEN NOT MATCHED BY SOURCE clause.
Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
---
M be/src/exec/iceberg-merge-node.cc
M be/src/exec/iceberg-merge-node.h
M common/thrift/PlanNodes.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/MergeCase.java
M fe/src/main/java/org/apache/impala/analysis/MergeDelete.java
M fe/src/main/java/org/apache/impala/analysis/MergeInsert.java
M fe/src/main/java/org/apache/impala/analysis/MergeStmt.java
M fe/src/main/java/org/apache/impala/analysis/MergeUpdate.java
M fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeModifyStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/iceberg-merge.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
14 files changed, 361 insertions(+), 105 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/21988/2
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 2
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
Patch Set 2:
Build Successful
https://jenkins.impala.io/job/gerrit-code-review-checks/17291/ : Initial code review checks passed. Use gerrit-verify-dryrun-external or gerrit-verify-dryrun to run full precommit tests.
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 2
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Comment-Date: Tue, 29 Oct 2024 14:12:05 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
Posted by "Peter Rozsa (Code Review)" <ge...@cloudera.org>.
Peter Rozsa has uploaded a new patch set (#3). ( http://gerrit.cloudera.org:8080/21988 )
Change subject: IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
......................................................................
IMPALA-13362: Implement WHEN NOT MATCHED BY SOURCE syntax for MERGE statement
This change adds support for a new MERGE clause that covers the
condition when the source statement's rows do not match the target
tables rows. Example: MERGE INTO target t using source s on t.id = s.id
WHEN NOT MATCHED BY SOURCE THEN UPDATE set t.column = "a";
This change also adds support to use WHEN NOT MATCHED BY TARGET
explicitly, this is equivalent to WHEN NOT MATCHED.
Tests:
- Parser tests for the new language elements.
- Analyzer and planner test for WHEN NOT MATCHED BY SOURCE/TARGET
clauses.
- E2E tests for WHEN NOT MATCHED BY SOURCE clause.
Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
---
M be/src/exec/iceberg-merge-node.cc
M be/src/exec/iceberg-merge-node.h
M common/thrift/PlanNodes.thrift
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/MergeCase.java
M fe/src/main/java/org/apache/impala/analysis/MergeDelete.java
M fe/src/main/java/org/apache/impala/analysis/MergeInsert.java
M fe/src/main/java/org/apache/impala/analysis/MergeStmt.java
M fe/src/main/java/org/apache/impala/analysis/MergeUpdate.java
M fe/src/main/java/org/apache/impala/planner/IcebergMergeNode.java
M fe/src/test/java/org/apache/impala/analysis/AnalyzeModifyStmtsTest.java
M fe/src/test/java/org/apache/impala/analysis/ParserTest.java
M testdata/workloads/functional-planner/queries/PlannerTest/iceberg-merge.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition-sort.test
A testdata/workloads/functional-query/queries/QueryTest/iceberg-merge-partition.test
M testdata/workloads/functional-query/queries/QueryTest/iceberg-merge.test
M tests/query_test/test_iceberg.py
17 files changed, 745 insertions(+), 329 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/88/21988/3
--
To view, visit http://gerrit.cloudera.org:8080/21988
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia0e0607682a616ef6ad9eccf499dc0c5c9278c5f
Gerrit-Change-Number: 21988
Gerrit-PatchSet: 3
Gerrit-Owner: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pr...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <bo...@cloudera.com>