wenhaozhao011-cmd opened a new pull request, #8989:
URL: https://github.com/apache/paimon/pull/8989
ConfigResponse only declared the "defaults" field. Since JSON.from_json maps
declared dataclass fields only, the "overrides" map returned by GET /v1/config
was dropped during deserialization. merge() also applied server defaults on top
of the client options.
Both behaviors diverge from the Java implementation in
paimon-api/src/main/java/org/apache/paimon/rest/responses/ConfigResponse.java,
where overrides is parsed and the merge priority is defaults -> client
properties -> overrides. As a result, any option a REST server enforces through
overrides is silently lost in the Python client.
For example, a server returning overrides {"data-token.enabled": "true"}
cannot enable data token mode: RESTCatalog.data_token_enabled stays at its
default False, so file_io_for_data() falls back to file_io_from_options()
instead of using RESTTokenFileIO.
Declare overrides as an optional field, omitted on serialization when absent
so servers that do not return it are unaffected, and align merge() with the
Java behavior, including dropping null values.
### Purpose
### Tests
--
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]