This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new c9066c72e87 Add optional responseData to TSStatus and RpcUtils helpers 
(#17328)
c9066c72e87 is described below

commit c9066c72e87ea24fc4a3a0460e9024206a89d365
Author: Zhenyu Luo <[email protected]>
AuthorDate: Fri Mar 20 14:36:58 2026 +0800

    Add optional responseData to TSStatus and RpcUtils helpers (#17328)
    
    - Extend TSStatus Thrift struct with optional binary responseData field
    - Add getStatus overloads in RpcUtils for status with message and payload
    
    Made-with: Cursor
---
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   | 33 ++++++++++++++++++++++
 .../thrift-commons/src/main/thrift/common.thrift   |  1 +
 2 files changed, 34 insertions(+)

diff --git 
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java 
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
index 7a7c7a5ed44..a4cc34a81b9 100644
--- a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
+++ b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
@@ -30,6 +30,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Proxy;
+import java.nio.ByteBuffer;
 import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
 import java.time.Instant;
@@ -221,6 +222,38 @@ public class RpcUtils {
     return status;
   }
 
+  /**
+   * Build a {@link TSStatus} with code, optional message and optional binary 
payload (Thrift {@code
+   * binary} maps to {@link ByteBuffer}).
+   *
+   * @param tsStatusCode status code
+   * @param message optional message; if null, message field is left unset
+   * @param responseData optional serialized payload; if null, responseData 
field is left unset
+   */
+  public static TSStatus getStatus(
+      final TSStatusCode tsStatusCode, final String message, final ByteBuffer 
responseData) {
+    return getStatus(tsStatusCode.getStatusCode(), message, responseData);
+  }
+
+  /**
+   * Build a {@link TSStatus} with code, optional message and optional binary 
payload.
+   *
+   * @param code status code
+   * @param message optional message; if null, message field is left unset
+   * @param responseData optional serialized payload; if null, responseData 
field is left unset
+   */
+  public static TSStatus getStatus(
+      final int code, final String message, final ByteBuffer responseData) {
+    final TSStatus status = new TSStatus(code);
+    if (message != null) {
+      status.setMessage(message);
+    }
+    if (responseData != null) {
+      status.setResponseData(responseData);
+    }
+    return status;
+  }
+
   public static TSExecuteStatementResp getTSExecuteStatementResp(TSStatusCode 
tsStatusCode) {
     TSStatus status = getStatus(tsStatusCode);
     return getTSExecuteStatementResp(status);
diff --git a/iotdb-protocol/thrift-commons/src/main/thrift/common.thrift 
b/iotdb-protocol/thrift-commons/src/main/thrift/common.thrift
index d1db4cf6090..c0f4cf4f665 100644
--- a/iotdb-protocol/thrift-commons/src/main/thrift/common.thrift
+++ b/iotdb-protocol/thrift-commons/src/main/thrift/common.thrift
@@ -34,6 +34,7 @@ struct TSStatus {
   3: optional list<TSStatus> subStatus
   4: optional TEndPoint redirectNode
   5: optional bool needRetry
+  6: optional binary responseData
 }
 
 enum TConsensusGroupType {

Reply via email to