Skip to content

Conversation

@betterlmy
Copy link

What changes were proposed in this pull request?

Fix column decoder to correctly handle null values and empty strings:

  1. Numeric decoders: Always read values from stream even for null positions,
    as server sends data for all positions. Skipping null positions causes stream
    misalignment.

  2. Binary decoder: Handle empty strings (length=0) without triggering EOF error.

Why are the changes needed?

  • Previous implementation skipped reading null values, causing data stream offset errors
  • Empty string handling caused EOF error when reading 0 bytes at stream end

- Fix numeric decoders (INT32/INT64/FLOAT/DOUBLE) to always read values from stream
  even for null positions, as server sends data for all positions
- Fix binary decoder to handle empty string (length=0) without EOF error
Copilot AI review requested due to automatic review settings January 20, 2026 09:30
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes null value and empty string handling in column decoders to prevent data stream misalignment errors. The changes ensure that numeric decoders always read values from the stream regardless of null indicators, and that the binary decoder properly handles empty strings without triggering EOF errors.

Changes:

  • Removed null-skipping logic from Int32ArrayColumnDecoder (INT32, DATE, FLOAT types)
  • Removed null-skipping logic from Int64ArrayColumnDecoder (INT64, TIMESTAMP, DOUBLE types)
  • Added special handling for zero-length strings in BinaryArrayColumnDecoder to avoid EOF errors

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@betterlmy betterlmy closed this Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant