jackylee-ch opened a new pull request, #908: URL: https://github.com/apache/paimon-rust/pull/908
`ensure_loaded` started from `index_meta.options()` and then wrote the table's stripped `lumina.*` options over it, so a table option beat the value the index was built with. The build side rewrites some of these keys deliberately: `validate_and_cap_pq_m` caps `encoding.pq.m` at the column's dimension and persists the capped value. So `'lumina.encoding.pq.m' = '64'` on a 32-dimension column built the index with m=32 and opened the searcher with m=64. Java's order is table, then `indexMeta.options()`, then per-query (`LuminaVectorGlobalIndexReader:377-378`, `:253-255`). Rust had no query layer left at the reader — both read paths fold the per-query map into the table options first — so inverting the merge alone would demote per-query options too. `search_options_for_query` puts them back on top. A table-level `diskann.search.beam_width` no longer wins: `build_lumina_options` records it in the metadata, as Java's writer does. A query option still overrides it. -- 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]
