Problem
The REST config response currently deserializes only defaults. If a REST server returns an overrides map, serde ignores it and client-provided options incorrectly take precedence.
For example, given:
{
"defaults": {"data-token.enabled": "false"},
"overrides": {"data-token.enabled": "true"}
}
a client option of data-token.enabled=false remains false. This differs from the Java Paimon REST client semantics and can disable server-required behavior.
The Java client also accepts missing or null config maps and filters null values after merging. In particular, a null value in overrides removes a value supplied by defaults or the client.
Expected behavior
Match the Java REST client semantics:
defaults < client options < overrides
- Missing or null
defaults / overrides maps behave as empty maps.
- Entries whose final merged value is null are removed.
- Responses without an
overrides field remain backward compatible.
Problem
The REST config response currently deserializes only
defaults. If a REST server returns anoverridesmap, serde ignores it and client-provided options incorrectly take precedence.For example, given:
{ "defaults": {"data-token.enabled": "false"}, "overrides": {"data-token.enabled": "true"} }a client option of
data-token.enabled=falseremains false. This differs from the Java Paimon REST client semantics and can disable server-required behavior.The Java client also accepts missing or null config maps and filters null values after merging. In particular, a null value in
overridesremoves a value supplied by defaults or the client.Expected behavior
Match the Java REST client semantics:
defaults/overridesmaps behave as empty maps.overridesfield remain backward compatible.