feat: add binary row serializers and blob implementation by lszskye · Pull Request #31 · apache/paimon-cpp · GitHub
Skip to content

feat: add binary row serializers and blob implementation - #31

Merged
leaves12138 merged 2 commits into
apache:mainfrom
lszskye:p2-7
Jun 1, 2026
Merged

feat: add binary row serializers and blob implementation#31
leaves12138 merged 2 commits into
apache:mainfrom
lszskye:p2-7

Conversation

@lszskye

@lszskye lszskye commented May 29, 2026

Copy link
Copy Markdown
Collaborator

Purpose

Introduce serialization infrastructure for Paimon's binary row format, including BinaryRowSerializer, BinarySerializerUtils, RowCompactedSerializer, and the Blob implementation.

Changes

BinaryRowSerializer

  • Serializes/deserializes BinaryRow

BinarySerializerUtils

  • Utility class for converting InternalRow, InternalArray, InternalMap into their binary counterparts (BinaryRow, BinaryArray, BinaryMap)

RowCompactedSerializer

  • Compact serialization format for InternalRow, using bitset-based null tracking and variable-length integer encoding
  • Provides SerializeToBytes() / Deserialize() for row-level serialization

Blob

  • Implementation of Blob class for managing blob descriptors and blob data

Tests

  • BinaryRowSerializerTest
  • BinarySerializerUtilsTest
  • RowCompactedSerializerTest

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the PR. I found two blockers that should be fixed before merge: one compile-time missing include and one moved-from unique_ptr dereference risk in Blob construction.

Comment thread src/paimon/common/data/serializer/row_compacted_serializer.h
Comment thread src/paimon/common/data/blob.cpp Outdated

@leaves12138 leaves12138 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Re-reviewed the latest head. The Blob construction no longer uses the descriptor after moving it, so the unspecified argument evaluation issue is resolved. I am not treating the var_length_int_utils dependency as a blocker per the planned follow-up. I did not find other blockers in this pass.

@leaves12138
leaves12138 merged commit 80c3563 into apache:main Jun 1, 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.

2 participants