Change the interface for Iceberg inserts with the catalog#100334
Change the interface for Iceberg inserts with the catalog#100334
Conversation
|
Workflow [PR], commit [b479af7] Summary: ❌
AI ReviewSummaryThis PR migrates Findings
Tests
ClickHouse Rules
Final Verdict
|
|
|
||
| #endif | ||
| #if USE_AVRO | ||
| if ((*settings)[DataLakeStorageSetting::storage_catalog_type].changed || (*settings)[DataLakeStorageSetting::storage_aws_access_key_id].changed) |
There was a problem hiding this comment.
storage_aws_access_key_id, but the exception text says storage_catalog_url is deprecated. As written, storage_catalog_url can still be provided without triggering this error, so a deprecated setting is silently ignored.
Please either:
- check
storage_catalog_urlhere (likely intended), or - update both the validation and message so they match the actual deprecated set.
|
|
||
| #endif | ||
| #if USE_AVRO | ||
| if ((*settings)[DataLakeStorageSetting::storage_catalog_type].changed || (*settings)[DataLakeStorageSetting::storage_aws_access_key_id].changed) |
There was a problem hiding this comment.
❌ This validation is applied during storage construction for both CREATE and ATTACH paths (via configuration->getCatalog(...)). As a result, tables created in older versions with explicit storage_catalog_* settings can fail to attach after upgrade, which is a backward-incompatible startup/query regression.
Please gate this check so it does not reject existing metadata on ATTACH (or behind compatibility), and enforce it only for new CREATE statements.
415d00e to
d073d01
Compare
| @@ -151,23 +153,16 @@ def create_clickhouse_iceberg_database( | |||
| def create_clickhouse_iceberg_table( | |||
| started_cluster, node, database_name, table_name, schema, additional_settings={} | |||
There was a problem hiding this comment.
❌ This line is a Python syntax error: the f-string expression starts with {" , ...} due to nested double quotes, so the module fails to parse (f-string: expecting '}').
This breaks test collection for this integration suite.
Please build the suffix without nested quote collisions, for example:
settings_suffix = ""
if additional_settings:
settings_suffix = "SETTINGS " + ",".join(
k + "=" + repr(v) for k, v in additional_settings.items()
)|
|
||
| settings.update(additional_settings) | ||
| settings_suffix = "" if len(additional_settings) == 0 else f"SETTINGS {",".join((k+"="+repr(v) for k, v in additional_settings.items()))}" | ||
|
|
There was a problem hiding this comment.
❌ Same syntax issue as in test_database_iceberg: this f-string cannot be parsed because of nested double quotes inside the expression (f-string: expecting '}').
As written, the test_database_glue module also fails to import/collect.
Please construct settings_suffix without nested quote collisions (same fix pattern as above).
d073d01 to
b479af7
Compare
| 'minio_access_key', | ||
| 'minio_secret_key' | ||
| ) | ||
| SETTINGS |
There was a problem hiding this comment.
IcebergS3 tables with "necessary settings", but both examples now omit catalog settings entirely.
Please update the surrounding text to match the new interface (for example, explain that catalog routing now comes from the DataLakeCatalog database context) so users do not try obsolete storage_catalog_* settings.
LLVM Coverage Report
Changed lines: 87.18% (34/39) | lost baseline coverage: 12 line(s) · Uncovered code |
|
Hi @scanhex12 @divanik — while reviewing this PR I found the following:
Happy to discuss — close anything that's wrong or already addressed. |
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Change the interface for Iceberg inserts with the catalog.
Deprecate settings: storage_catalog_type, storage_aws_access_key_id, etc.
Documentation entry for user-facing changes