Skip to content

[rust] Lookup result decodes every row with the latest schema, ignoring per-row schema id #508

@fresh-borzoni

Description

@fresh-borzoni

Search before asking

  • I searched in the issues and found nothing similar.

Description

Every row stored in Fluss carries a 2-byte schema id prefix. The client's LookupResult currently ignores that id and decodes every row with self.row_type (the latest schema of the table). If a row was written under an older schema version, decoding it under the latest RowType produces wrong field values.
This affects both Lookuper::lookup (single row) and PrefixKeyLookuper::lookup (multiple rows, any of which could be from any write time).

Willingness to contribute

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions