Is your feature request related to a problem or challenge?
By the REST spec, a REST catalog may return the rest-page-size property in a /v1/config response. The catalog client is then supposed to use it and provide it along with list requests via the ?pageSize query parameter.
Today, the Rust RestCatalog client doesn't look at the rest-page-size property and never sends a pageSize query parameter. It therefore depends on the catalog server to implement an implicit default page size.
Describe the solution you'd like
The spec already prescribes this fairly precisely.
We'd use a precedence order similar to other properties:
- catalog default from
/v1/config: {"defaults": {"rest-page-size": "1000"}} (if provided)
- overridden by client side config:
with_page_size(1000) (else None or some client-side default1)
- overridden by catalog overrides from
v1/config: {"overrides": {"rest-page-size": "1000"}} (if provided)
Willingness to contribute
I can contribute to this feature independently
Is your feature request related to a problem or challenge?
By the REST spec, a REST catalog may return the
rest-page-sizeproperty in a/v1/configresponse. The catalog client is then supposed to use it and provide it along with list requests via the?pageSizequery parameter.Today, the Rust
RestCatalogclient doesn't look at therest-page-sizeproperty and never sends apageSizequery parameter. It therefore depends on the catalog server to implement an implicit default page size.Describe the solution you'd like
The spec already prescribes this fairly precisely.
We'd use a precedence order similar to other properties:
/v1/config:{"defaults": {"rest-page-size": "1000"}}(if provided)with_page_size(1000)(elseNoneor some client-side default1)v1/config:{"overrides": {"rest-page-size": "1000"}}(if provided)Willingness to contribute
I can contribute to this feature independently
Footnotes
IIUC only
iceberg-gocurrently sets a client-side default (20). Java and Python don't. ↩