Search before asking
Description
The Python binding already exposes a Lookuper for primary-key lookups, and prefix scan is essentially the same shape with two small differences: it takes a list of column names up front (telling Fluss which prefix to scan by), and it returns a list of rows instead of an Optional single row. So the work is mostly mirroring the existing class, wrap the core PrefixKeyLookuper type from Rust, accept a Python dict/tuple as the prefix key, and call the existing row-to-dict helper in a loop to convert the multi-row result into list[dict].
Then a small entry point on the Python Table to actually create one, a few lines in the .pyi stubs so type-checkers see it, and a couple of integration tests covering the happy path and the validation errors that Rust already raises.
Willingness to contribute
Search before asking
Description
The Python binding already exposes a Lookuper for primary-key lookups, and prefix scan is essentially the same shape with two small differences: it takes a list of column names up front (telling Fluss which prefix to scan by), and it returns a list of rows instead of an Optional single row. So the work is mostly mirroring the existing class, wrap the core PrefixKeyLookuper type from Rust, accept a Python dict/tuple as the prefix key, and call the existing row-to-dict helper in a loop to convert the multi-row result into list[dict].
Then a small entry point on the Python Table to actually create one, a few lines in the .pyi stubs so type-checkers see it, and a couple of integration tests covering the happy path and the validation errors that Rust already raises.
Willingness to contribute