This is an automated email from the ASF dual-hosted git repository. suxiaogang223 pushed a commit to branch feature/paimon-jni-write-v1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 0c85f19054232f8d3b989f7a4752c14ef7a0d432 Author: Socrates <[email protected]> AuthorDate: Wed Jul 8 15:07:20 2026 +0800 [feature](paimon) Step 1: Add Thrift definitions for Paimon write Add TPaimonTableSink, TPaimonCommitMessage, TPaimonWriteBackendType, TPaimonWriteMode to DataSinks.thrift. Register PAIMON_TABLE_SINK in TDataSinkType and TDataSink. Co-Authored-By: Claude <[email protected]> --- gensrc/thrift/DataSinks.thrift | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gensrc/thrift/DataSinks.thrift b/gensrc/thrift/DataSinks.thrift index 3a45208ea9b..50b3fe25792 100644 --- a/gensrc/thrift/DataSinks.thrift +++ b/gensrc/thrift/DataSinks.thrift @@ -46,6 +46,7 @@ enum TDataSinkType { MAXCOMPUTE_TABLE_SINK = 18, ICEBERG_DELETE_SINK = 19, ICEBERG_MERGE_SINK = 20, + PAIMON_TABLE_SINK = 21, } enum TResultSinkType { @@ -618,6 +619,35 @@ struct TMaxComputeTableSink { 18: optional i64 txn_id // FE external transaction ID for runtime block_id allocation } +enum TPaimonWriteBackendType { + JNI = 0, + FFI = 1, +} + +enum TPaimonWriteMode { + APPEND = 0, + OVERWRITE = 1, +} + +struct TPaimonCommitMessage { + 1: optional binary partition // serialized BinaryRow bytes + 2: optional i32 bucket + 3: optional binary payload // Paimon native CommitMessageSerializer bytes +} + +struct TPaimonTableSink { + 1: optional string db_name + 2: optional string tb_name + 3: optional string table_location + 4: optional map<string, string> paimon_options + 5: optional map<string, string> hadoop_config + 6: optional i32 bucket_num + 7: optional list<string> column_names + 8: optional string serialized_table // serialized Paimon Table object (base64) + 9: optional TPaimonWriteBackendType backend_type // v1 fixed to JNI + 10: optional TPaimonWriteMode write_mode // v1 fixed to APPEND +} + struct TDataSink { 1: required TDataSinkType type 2: optional TDataStreamSink stream_sink @@ -638,4 +668,5 @@ struct TDataSink { 18: optional TMaxComputeTableSink max_compute_table_sink 19: optional TIcebergDeleteSink iceberg_delete_sink 20: optional TIcebergMergeSink iceberg_merge_sink + 21: optional TPaimonTableSink paimon_table_sink } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
