Skip to content

feat(native): Add customSerializedValue routing for binary connector deserialization#155

Open
20001020ycx wants to merge 5 commits into
masterfrom
yscope/feat/custom-serialized-value-routing
Open

feat(native): Add customSerializedValue routing for binary connector deserialization#155
20001020ycx wants to merge 5 commits into
masterfrom
yscope/feat/custom-serialized-value-routing

Conversation

@20001020ycx
Copy link
Copy Markdown

@20001020ycx 20001020ycx commented Apr 22, 2026

Description

Add customSerializedValue routing in from_json() for all 10 connector handle types. When customSerializedValue is present in the incoming JSON, the routing Base64-decodes it and dispatches to ConnectorProtocol::deserialize() instead of the default JSON-to-struct parsing.

Motivation and Context

Enables C++ plugin connectors to use binary serialization codecs instead of JSON, as proposed in prestodb/rfcs#49.

This is the C++ worker-side counterpart to the Java ConnectorCodec / CodecSerializer pipeline (prestodb#26257).

Test Plan

  • Build presto_server with the changes
  • End-to-end tested with a customized connector using binary serialization codecs on the Java side, loaded as a native plugin via plugin-dir

Release Notes

== NO RELEASE NOTE ==

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 22, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4b6d0efa-d659-41c1-a095-146a199ef724

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yscope/feat/custom-serialized-value-routing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@20001020ycx 20001020ycx force-pushed the yscope/feat/custom-serialized-value-routing branch 5 times, most recently from bb977a3 to b25d4db Compare April 22, 2026 20:01
Routes customSerializedValue in from_json() to ConnectorProtocol::deserialize()
for the 5 handle types used by the CLP connector: ColumnHandle,
ConnectorTableHandle, ConnectorTableLayoutHandle, ConnectorSplit,
ConnectorTransactionHandle.

Also adds serialize/deserialize virtuals to ConnectorProtocol.h for
ColumnHandle, and VELOX_NYI stubs to presto_protocol_core.h.
@20001020ycx 20001020ycx force-pushed the yscope/feat/custom-serialized-value-routing branch 4 times, most recently from e1eea3d to becf9fc Compare April 22, 2026 20:39
@20001020ycx 20001020ycx force-pushed the yscope/feat/custom-serialized-value-routing branch from becf9fc to 6f307dc Compare April 24, 2026 15:06
Add tests verifying that from_json() correctly routes Base64-encoded
customSerializedValue payloads to ConnectorProtocol::deserialize() for
all 10 connector handle types.
…butedProcedureHandle

Add customSerializedValue routing in ConnectorDistributedProcedureHandle.cpp.inc
and add serialize/deserialize virtuals to ConnectorProtocol and
ConnectorProtocolTemplate. Add test coverage for this handle type.
…edProcedureHandle

Add VELOX_NYI serialize/deserialize stubs to ConnectorDistributedProcedureHandle
so that the customSerializedValue routing added in the previous commit compiles.
Without these stubs, IcebergDistributedProcedureHandle fails to compile when
inheriting the ConnectorProtocol template methods.
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