Peter Rozsa has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/24682 )

Change subject: IMPALA-15310: Finalize REST catalog INSERT
......................................................................


Patch Set 11:

(3 comments)

In most places this is a bolted-on solution rather than a generalized
one. The following are hooks grafted onto the existing Iceberg/REST-catalog 
flow,
not general abstractions:
  - the opaque finalizer id (really just the REST catalog name)
  - the reused TUpdateCatalogRequest routed by field presence
  - the provider-derived capability flag
  - the per-statement DML gating (OperationType.INSERT_INTO +
    hand-wired ensureNonInsertDmlSupported calls)

http://gerrit.cloudera.org:8080/#/c/24682/11/common/thrift/CatalogService.thrift
File common/thrift/CatalogService.thrift:

http://gerrit.cloudera.org:8080/#/c/24682/11/common/thrift/CatalogService.thrift@314
PS11, Line 314:   // Identifies the metadata provider that owns 
coordinator-side Iceberg DML
This is a semantic overload: one struct now means two different destinations 
depending on whether one optional field is set. The routing decision lives in 
client-request-state.cc as an if (__isset.iceberg_dml_finalizer_id). It works, 
but it's a bolted-on branch on a shared message. A cleaner model would be a 
distinct request type (or a required destination enum) so the routing is 
explicit in the type rather than inferred from field presence. Given the 
coordinator already fully populates the struct, this may be acceptable, but 
it's the kind of thing that accumulates.


http://gerrit.cloudera.org:8080/#/c/24682/11/fe/src/main/java/org/apache/impala/analysis/Analyzer.java
File fe/src/main/java/org/apache/impala/analysis/Analyzer.java:

http://gerrit.cloudera.org:8080/#/c/24682/11/fe/src/main/java/org/apache/impala/analysis/Analyzer.java@322
PS11, Line 322:     INSERT_INTO,
OperationType is a table-access-capability axis: READ, WRITE, ANY. The commit 
added INSERT_INTO, which is a SQL-statement distinction, not a capability 
distinction. ensureTableWriteSupported should be extended instead.


http://gerrit.cloudera.org:8080/#/c/24682/11/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java
File 
java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java:

http://gerrit.cloudera.org:8080/#/c/24682/11/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@148
PS11, Line 148:   private void prepareWriteTestTable(Catalog catalog, String 
tableName)
The test table creation should live in the test files. The test server is 
already a REST-capable server and the python test code is capable of calling 
the create table endpoint without any problems. It would keep the test server 
clean, and give the capabilities to future tests to create tables in catalogs



--
To view, visit http://gerrit.cloudera.org:8080/24682
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7d17216fb8d12e5bd007b93cb9b3bc153438213b
Gerrit-Change-Number: 24682
Gerrit-PatchSet: 11
Gerrit-Owner: Aleksandr Efimov <[email protected]>
Gerrit-Reviewer: Aleksandr Efimov <[email protected]>
Gerrit-Reviewer: Daniel Becker <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>
Gerrit-Reviewer: Noemi Pap-Takacs <[email protected]>
Gerrit-Reviewer: Peter Rozsa <[email protected]>
Gerrit-Reviewer: Zoltan Borok-Nagy <[email protected]>
Gerrit-Comment-Date: Tue, 08 Sep 2026 15:27:00 +0000
Gerrit-HasComments: Yes

Reply via email to