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 {