Zoltan Borok-Nagy has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/22353 )

Change subject: IMPALA-13586: Initial support for Iceberg REST Catalogs
......................................................................


Patch Set 2:

(35 comments)

Thanks for the comments!

http://gerrit.cloudera.org:8080/#/c/22353/2/be/src/common/global-flags.cc
File be/src/common/global-flags.cc:

http://gerrit.cloudera.org:8080/#/c/22353/2/be/src/common/global-flags.cc@437
PS2, Line 437: DEFINE_string(iceberg_rest_warehouse_location, "", "Iceberg REST 
catalog warehouse location.");
> line too long (95 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/iceberg/IcebergRESTCatalog.java
File fe/src/main/java/org/apache/impala/catalog/iceberg/IcebergRESTCatalog.java:

http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/iceberg/IcebergRESTCatalog.java@116
PS2, Line 116:                          Map<String, String> properties) throws 
IcebergTableLoadingException {
> line too long (94 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java
File fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java:

http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@103
PS2, Line 103: import static 
org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.ACCESSTYPE_READONLY;
> line too long (95 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@189
PS2, Line 189:         LOG.info(e.toString());
> Could be LOG.error or warning
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@231
PS2, Line 231: "invalid state"
> It could be something more descriptive
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@277
PS2, Line 277: PartitionRef
> This cast is not needed
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@300
PS2, Line 300: TableMetaRefImpl
> This cast is not needed
Most of this method is unneded.


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@315
PS2, Line 315:     List<Partition> parts = Collections.emptyList();
> As 'parts' is always empty, the for loop above can be removed
Most of this method is unneded.


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@346
PS2, Line 346:                                                        
FileMetadataLoader loader) {
> nit: formatting
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@489
PS2, Line 489:                                               String partName, 
Partition msPartition, ListMap<TNetworkAddress> hostIndex)
> line too long (121 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@541
PS2, Line 541:                                  ImmutableList<FileDescriptor> 
fds, ImmutableList<FileDescriptor> insertFds,
> line too long (108 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@597
PS2, Line 597:       return false; /* Incremental stats not supported in direct 
mode */
> nit: iceberg?
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@613
PS2, Line 613: DirectMetaProvider
> nit: IcebergMetaProvider
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@634
PS2, Line 634:           msTable.getPartitionKeysSize(), 
Lists.newArrayList(msTable.getSd().getLocation()));
> line too long (93 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@691
PS2, Line 691:                                                   TableMetaRef 
table, Map<PartitionRef, PartitionMetadata> metas) throws TException {
> line too long (133 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@718
PS2, Line 718:                                                       
TableParams params, Table msTable) throws TException {
> line too long (108 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@727
PS2, Line 727:       org.apache.iceberg.Table apiTable, 
ListMap<TNetworkAddress> hostIndex) throws TException {
> line too long (96 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/catalog/local/IcebergMetaProvider.java@740
PS2, Line 740: Invalid
> It could be more verbose
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/service/FeCatalogManager.java
File fe/src/main/java/org/apache/impala/service/FeCatalogManager.java:

http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/service/FeCatalogManager.java@182
PS2, Line 182:       return null;
> It could use an empty response object instead of null
I'm leaning towards null as it expresses better that nothing happened.


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/service/Frontend.java
File fe/src/main/java/org/apache/impala/service/Frontend.java:

http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/service/Frontend.java@1126
PS2, Line 1126: !=
> It should be checked with equals() or isEmpty()
Added null-check and isEmpty()


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java
File fe/src/main/java/org/apache/impala/util/IcebergUtil.java:

http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@132
PS2, Line 132:   public static final String ICEBERG_REST_WAREHOUSE_LOCATION = 
"iceberg_rest_warehouse_location";
> line too long (97 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@1060
PS2, Line 1060: ContentFile
> nit: indentation
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@1070
PS2, Line 1070:   private static int 
createIcebergMetadata(org.apache.iceberg.Table iceTbl, FlatBufferBuilder fbb,
> line too long (98 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@1115
PS2, Line 1115:   private static int 
createPartitionKeys(org.apache.iceberg.Table iceTbl, FlatBufferBuilder fbb,
> line too long (96 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@1137
PS2, Line 1137: __HIVE_DEFAULT_PARTITION__
> It could be a new constant or DEFAULT_NULL_PARTITION_KEY_VALUE could be reu
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/fe/src/main/java/org/apache/impala/util/IcebergUtil.java@1236
PS2, Line 1236:         ICEBERG_REST_URI, ICEBERG_REST_USER_ID, 
ICEBERG_REST_USER_SECRET, ICEBERG_REST_WAREHOUSE_LOCATION));
> line too long (108 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/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/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@54
PS2, Line 54:   static final String WAREHOUSE_LOCATION = 
"hdfs://localhost:20500/test-warehouse/iceberg_test/hadoop_catalog";
> line too long (111 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@54
PS2, Line 54: WAREHOUSE_LOCATION
> This location could be calculated from environment variables,
That's a good idea, I also removed the SkipIf from the python test, so we can 
try this test on multiple storage systems.


http://gerrit.cloudera.org:8080/#/c/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@66
PS2, Line 66:   public void start(boolean join) throws Exception {
> This assignment hides the member variable, if 'catalog' is not needed elsew
Yeah, seems like the member is not needed.


http://gerrit.cloudera.org:8080/#/c/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@115
PS2, Line 115: warn
> Could be trace with a conditional before
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@121
PS2, Line 121:          // use Map so that Jackson doesn't try to instantiate 
ImmutableMap from payload.getClass()
> line too long (99 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/java/iceberg-rest-catalog-test/src/main/java/org/apache/iceberg/rest/IcebergRestCatalogTest.java@128
PS2, Line 128:            String.format("Failed to serialize and deserialize 
%s: %s", description, payload), e);
> line too long (97 > 90)
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/testdata/bin/run-iceberg-rest-server.sh
File testdata/bin/run-iceberg-rest-server.sh:

http://gerrit.cloudera.org:8080/#/c/22353/2/testdata/bin/run-iceberg-rest-server.sh@24
PS2, Line 24: mvn -f "java/iceberg-rest-catalog-test/pom.xml" exec:java \
> It could redirect its output to the logs/ folder
This script can be invoked from the command line for manual testing. But in the 
python test I switched from PIPE to stdout/stderr.


http://gerrit.cloudera.org:8080/#/c/22353/2/tests/custom_cluster/test_iceberg_rest_catalog.py
File tests/custom_cluster/test_iceberg_rest_catalog.py:

http://gerrit.cloudera.org:8080/#/c/22353/2/tests/custom_cluster/test_iceberg_rest_catalog.py@23
PS2, Line 23: import sys
> flake8: F401 'sys' imported but unused
Done


http://gerrit.cloudera.org:8080/#/c/22353/2/tests/custom_cluster/test_iceberg_rest_catalog.py@28
PS2, Line 28: "
> flake8: E225 missing whitespace around operator
Done



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

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I1722b898b568d2f5689002f2b9bef59320cb088c
Gerrit-Change-Number: 22353
Gerrit-PatchSet: 2
Gerrit-Owner: Zoltan Borok-Nagy <borokna...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Kurt Deschler <kdesc...@cloudera.com>
Gerrit-Reviewer: Peter Rozsa <pro...@cloudera.com>
Gerrit-Reviewer: Zoltan Borok-Nagy <borokna...@cloudera.com>
Gerrit-Comment-Date: Tue, 04 Mar 2025 16:54:44 +0000
Gerrit-HasComments: Yes

Reply via email to