thswlsqls opened a new issue, #17059:
URL: https://github.com/apache/iceberg/issues/17059

   **Apache Iceberg version**
   main @ 035fc1e40
   
   **Query engine**
   N/A — catalog-level, engine-agnostic
   
   **Please describe the bug**
   `BigQueryMetastoreCatalog.removeProperties()` sends two BigQuery API GET 
requests where one suffices. It calls `namespaceExists()` 
(`bigquery/src/main/java/org/apache/iceberg/gcp/bigquery/BigQueryMetastoreCatalog.java`
 line 270, via `loadNamespaceMetadata()` → `client.load()`) before delegating 
to `client.removeParameters()`, but 
`BigQueryMetastoreClientImpl.removeParameters()` 
(`BigQueryMetastoreClientImpl.java` line 266) already performs the same 
existence check internally with its own `load()` call. The sibling method 
`setProperties()` (line 265) calls `client.setParameters()` only, with a single 
internal `load()`. `GlueCatalog.removeProperties()` and 
`HiveCatalog.removeProperties()` both check existence exactly once, matching 
their own `setProperties()`. Only the BigQuery implementation performs the 
redundant round trip.
   
   **Steps to reproduce**
   Call `catalog.removeProperties(existingNamespace, properties)` on a 
`BigQueryMetastoreCatalog` and observe two `client.load()`/GET calls, versus 
one for `setProperties()` with the same namespace.
   
   **Additional context**
   Fix: drop the `namespaceExists()` pre-check; `client.removeParameters()`'s 
internal check already covers it.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to