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]
