You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@paimon.apache.org by "liwuhen (via GitHub)" <gi...@apache.org> on 2026/07/18 13:58:39 UTC

[PR] fix(core): resolve storage config aliases to canonical keys [paimon-rust]

liwuhen opened a new pull request, #540:
URL: https://github.com/apache/paimon-rust/pull/540

   ### Purpose
   
   `normalize_storage_config` currently applies mirrored key pairs from a single
   snapshot of the normalized properties. This cannot resolve aliases that require
   more than one mirror step.
   
   For Azure, underscore aliases are declared through a dotted intermediate key:
   
   - `azure.account_name` → `azure.account.name`
   - `azure.account.name` → `azure.account-name`
   
   However, `AzdlsConfig` reads the hyphenated canonical key
   `azure.account-name`. Because newly mirrored keys are not processed again,
   `azure.account_name` is silently ignored. The same issue affects the other
   declared Azure underscore aliases.
   
   This change replaces symmetric mirroring with direct, ordered
   `alias → canonical` mappings. It also defines deterministic precedence when
   multiple forms are supplied:
   
   1. An explicitly supplied canonical key
   2. The first matching alias in declaration order
   
   For Azure, dotted aliases are declared before underscore aliases, resulting in:
   
   `canonical > dotted alias > underscore alias`
   
   ### Brief change log
   
   - Change `normalize_storage_config` from symmetric one-pass mirroring to direct
     `alias → canonical` resolution.
   - Preserve an explicitly supplied canonical value.
   - Resolve multiple aliases in declaration order.
   - Map every supported Azure dotted and underscore alias directly to the
     hyphenated key read by `AzdlsConfig`:
     - `account_name`
     - `account_key`
     - `sas_token`
     - `client_id`
     - `client_secret`
     - `tenant_id`
     - `authority_host`
   - Update the S3, COS, OBS, and GCS alias tables to follow the same directional
     mapping contract.
   
   ### Tests
   
   - Unit test `test_azdls_config_parse_underscore_aliases`
     (`storage_azdls.rs`): data-driven coverage for every declared Azure
     underscore alias and verification that each value reaches the corresponding
     `AzdlsConfig` field. **Fails on the pre-fix code.**
   - Unit test `test_azdls_config_alias_priority` (`storage_azdls.rs`): verifies
     canonical keys take precedence over aliases and dotted aliases take
     precedence over underscore aliases.
   - Existing storage configuration tests verify the directional alias conversion
     does not regress S3, COS, OBS, or GCS configuration parsing.
   - Commands run locally:
     - `CARGO_INCREMENTAL=0 cargo test -p paimon --features storage-azdls --lib storage_azdls`
     - `CARGO_INCREMENTAL=0 cargo test -p paimon --no-default-features --features storage-s3,storage-cos,storage-azdls,storage-obs,storage-gcs --lib io::storage_`
     - `cargo fmt --all -- --check`
     - `git diff --check`
   
   ### API and Format
   
   No public API or persisted data format changes.
   
   Supported external storage configuration aliases now resolve directly to the
   canonical keys consumed by each backend. When multiple forms of the same
   setting are supplied, precedence is deterministic: the canonical key wins,
   followed by aliases in declaration order.
   
   ### Documentation
   
   No documentation changes required.
   


-- 
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: issues-unsubscribe@paimon.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(core): resolve storage config aliases to canonical keys [paimon-rust]

Posted by "JingsongLi (via GitHub)" <gi...@apache.org>.
JingsongLi merged PR #540:
URL: https://github.com/apache/paimon-rust/pull/540


-- 
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: issues-unsubscribe@paimon.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org