Skip to content

Commit e814a71

Browse files
committed
Added support of part_bytes_limit in QueryService
1 parent 27d51bd commit e814a71

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

query/src/main/java/tech/ydb/query/impl/SessionImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ GrpcReadStream<YdbQuery.ExecuteQueryResponsePart> createGrpcStream(
200200
request.setPoolId(resourcePool);
201201
}
202202

203+
if (settings.getPartBytesLimit() >= 0) {
204+
request.setResponsePartLimitBytes(settings.getPartBytesLimit());
205+
}
206+
203207
if (tx != null) {
204208
request.setTxControl(tx);
205209
}

query/src/main/java/tech/ydb/query/settings/ExecuteQuerySettings.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class ExecuteQuerySettings extends BaseRequestSettings {
1313
private final boolean concurrentResultSets;
1414
private final String resourcePool;
1515
private final GrpcFlowControl flowControl;
16+
private final long partBytesLimit;
1617

1718
private ExecuteQuerySettings(Builder builder) {
1819
super(builder);
@@ -21,6 +22,7 @@ private ExecuteQuerySettings(Builder builder) {
2122
this.concurrentResultSets = builder.concurrentResultSets;
2223
this.resourcePool = builder.resourcePool;
2324
this.flowControl = builder.flowControl;
25+
this.partBytesLimit = builder.partBytesLimit;
2426
}
2527

2628
public QueryExecMode getExecMode() {
@@ -47,6 +49,10 @@ public GrpcFlowControl getGrpcFlowControl() {
4749
return flowControl;
4850
}
4951

52+
public long getPartBytesLimit() {
53+
return partBytesLimit;
54+
}
55+
5056
public static Builder newBuilder() {
5157
return new Builder();
5258
}
@@ -57,6 +63,7 @@ public static class Builder extends BaseBuilder<Builder> {
5763
private boolean concurrentResultSets = false;
5864
private String resourcePool = null;
5965
private GrpcFlowControl flowControl = null;
66+
private long partBytesLimit = -1;
6067

6168
public Builder withExecMode(QueryExecMode mode) {
6269
this.execMode = mode;
@@ -92,6 +99,16 @@ public Builder withGrpcFlowControl(GrpcFlowControl ctrl) {
9299
return this;
93100
}
94101

102+
/**
103+
* Allows to set size limitation (in bytes) for one result part
104+
* @param limit maximum length if one result set part
105+
* @return builder
106+
*/
107+
public Builder withPartBytesLimit(long limit) {
108+
this.partBytesLimit = limit;
109+
return this;
110+
}
111+
95112
@Override
96113
public ExecuteQuerySettings build() {
97114
return new ExecuteQuerySettings(this);

0 commit comments

Comments
 (0)