Skip to content

Commit 6df40f0

Browse files
committed
change javadoc
1 parent 51257f2 commit 6df40f0

File tree

9 files changed

+142
-85
lines changed

9 files changed

+142
-85
lines changed

query/src/main/java/tech/ydb/query/script/ScriptClient.java

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package tech.ydb.query.script;
22

3+
import java.util.concurrent.CompletableFuture;
4+
5+
import javax.annotation.Nonnull;
6+
import javax.annotation.Nullable;
7+
38
import tech.ydb.core.Result;
49
import tech.ydb.core.Status;
510
import tech.ydb.core.operation.Operation;
@@ -10,11 +15,6 @@
1015
import tech.ydb.query.script.settings.FindScriptSettings;
1116
import tech.ydb.table.query.Params;
1217

13-
14-
import javax.annotation.Nullable;
15-
16-
import java.util.concurrent.CompletableFuture;
17-
1818
/**
1919
* High-level API for executing YQL scripts and retrieving their results.
2020
* <p>
@@ -27,27 +27,21 @@
2727
* <li>fetchQueryScriptStatus - wait for script execution</li>
2828
* <li>fetchQueryScriptResult - fetch script result if necessary</li>
2929
* </ul>
30-
* </p>
31-
* Example with fetch
32-
* <p>
33-
* <ul>
34-
* <li> Operation<Status> operation = scriptClient.startQueryScript("select...",Params.of(...), executeScriptSettings).join()</li>
35-
* <li>Status status = scriptClient.fetchQueryScriptStatus(operation, 1).join()</li>
36-
* <li>Result<ScriptResultPart> resultPartResult = scriptClient.fetchQueryScriptResult(operation, null, fetchScriptSettings).join()</li>
37-
* <li>ResultSetReader reader = scriptResultPart.getResultSetReader()</li>
38-
* <li>reader.next()</li>
39-
* </ul>
40-
* </p>
41-
*
42-
* * Example without fetch
43-
* * <p>
44-
* * <ul>
45-
* * <li> Status status =
46-
* scriptClient.startQueryScript("select...",Params.of(...), executeScriptSettings)
47-
* .thenCompose(p -> scriptClient.fetchQueryScriptStatus(p, 1))
48-
* .join()</li>
49-
* * </ul>
50-
* * </p>
30+
* <p>Example with fetch
31+
* <pre>{@code
32+
* Operation<Status> operation = scriptClient.startQueryScript("select...",Params.of(...), executeScriptSettings).join())
33+
* Status status = scriptClient.fetchQueryScriptStatus(operation, 1).join()
34+
* Result< ScriptResultPart> resultPartResult = scriptClient.fetchQueryScriptResult(operation, null, fetchScriptSettings).join()
35+
* ResultSetReader reader = scriptResultPart.getResultSetReader()
36+
* reader.next()
37+
* }</pre>
38+
* <p>Example without fetch
39+
* <pre>{@code
40+
* Status status = scriptClient.startQueryScript("select...",Params.of(...), executeScriptSettings)
41+
* .thenCompose(p -> scriptClient.fetchQueryScriptStatus(p, 1))
42+
* .join()
43+
* }</pre>
44+
* <p>Author: Evgeny Kuvardin
5145
*/
5246
public interface ScriptClient {
5347

@@ -91,7 +85,8 @@ default CompletableFuture<Status> fetchQueryScriptStatus(Operation<Status> opera
9185
* @param settings fetch configuration
9286
* @return future resolving to result part containing a result set fragment
9387
*/
94-
CompletableFuture<Result<ScriptResultPart>> fetchQueryScriptResult(Operation<Status> operation,
95-
@Nullable ScriptResultPart previous, FetchScriptSettings settings);
88+
CompletableFuture<Result<ScriptResultPart>> fetchQueryScriptResult(@Nonnull Operation<Status> operation,
89+
@Nullable ScriptResultPart previous,
90+
FetchScriptSettings settings);
9691

9792
}

query/src/main/java/tech/ydb/query/script/ScriptRpc.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package tech.ydb.query.script;
22

3+
import java.util.concurrent.CompletableFuture;
4+
35
import tech.ydb.core.Result;
46
import tech.ydb.core.Status;
57
import tech.ydb.core.grpc.GrpcRequestSettings;
68
import tech.ydb.core.operation.Operation;
79
import tech.ydb.proto.query.YdbQuery;
810

9-
import java.util.concurrent.CompletableFuture;
10-
1111
/**
1212
* Low-level RPC interface for executing YQL scripts and fetching their results using gRPC.
1313
* <p>

query/src/main/java/tech/ydb/query/script/impl/ScriptClientImpl.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
package tech.ydb.query.script.impl;
22

3+
import java.util.UUID;
4+
import java.util.concurrent.CompletableFuture;
5+
6+
import javax.annotation.Nonnull;
7+
import javax.annotation.Nullable;
8+
import javax.annotation.WillNotClose;
9+
310
import com.google.protobuf.Duration;
411

512
import tech.ydb.core.Result;
@@ -13,19 +20,20 @@
1320
import tech.ydb.query.script.ScriptRpc;
1421
import tech.ydb.query.script.result.ScriptResultPart;
1522
import tech.ydb.query.script.settings.ExecuteScriptSettings;
16-
import tech.ydb.query.script.settings.FindScriptSettings;
1723
import tech.ydb.query.script.settings.FetchScriptSettings;
24+
import tech.ydb.query.script.settings.FindScriptSettings;
1825
import tech.ydb.query.settings.QueryExecMode;
1926
import tech.ydb.query.settings.QueryStatsMode;
2027
import tech.ydb.table.query.Params;
2128

22-
import javax.annotation.Nonnull;
23-
import javax.annotation.Nullable;
24-
import javax.annotation.WillNotClose;
25-
26-
import java.util.UUID;
27-
import java.util.concurrent.CompletableFuture;
28-
29+
/**
30+
* Default implementation of {@link ScriptClient} using {@link ScriptRpc} for RPC calls.
31+
* <p>
32+
* Handles script execution lifecycle: starting scripts, polling their status,
33+
* and retrieving result sets in streaming fashion.
34+
*
35+
* <p>Author: Evgeny Kuvardin
36+
*/
2937
public class ScriptClientImpl implements ScriptClient {
3038

3139
private final ScriptRpc scriptRpc;
@@ -74,7 +82,8 @@ public CompletableFuture<Operation<Status>> startQueryScript(String query,
7482

7583
@Override
7684
public CompletableFuture<Result<ScriptResultPart>> fetchQueryScriptResult(@Nonnull Operation<Status> operation,
77-
@Nullable ScriptResultPart previous, FetchScriptSettings settings) {
85+
@Nullable ScriptResultPart previous,
86+
FetchScriptSettings settings) {
7887
YdbQuery.FetchScriptResultsRequest.Builder requestBuilder = YdbQuery.FetchScriptResultsRequest.newBuilder();
7988

8089
if (previous != null && previous.getNextFetchToken() != null) {

query/src/main/java/tech/ydb/query/script/impl/ScriptRpcImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package tech.ydb.query.script.impl;
22

3+
import java.util.concurrent.CompletableFuture;
4+
5+
import javax.annotation.WillNotClose;
6+
37
import tech.ydb.core.Result;
48
import tech.ydb.core.Status;
59
import tech.ydb.core.grpc.GrpcRequestSettings;
@@ -12,17 +16,14 @@
1216
import tech.ydb.proto.query.v1.QueryServiceGrpc;
1317
import tech.ydb.query.script.ScriptRpc;
1418

15-
import javax.annotation.WillNotClose;
16-
17-
import java.util.concurrent.CompletableFuture;
18-
1919
/**
2020
* Default gRPC-based implementation of {@link ScriptRpc}.
2121
* <p>
2222
* Uses {@link GrpcTransport} to communicate with YDB QueryService and OperationService.
2323
* Provides async unary calls for executing scripts and retrieving results or operation metadata.
24+
*
25+
* <p>Author: Evgeny Kuvardin
2426
*/
25-
2627
public class ScriptRpcImpl implements ScriptRpc {
2728

2829
private final GrpcTransport transport;

query/src/main/java/tech/ydb/query/script/result/ScriptResultPart.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@
55
import tech.ydb.table.result.ResultSetReader;
66
import tech.ydb.table.result.impl.ProtoValueReaders;
77

8+
/**
9+
* Represents a single portion of script execution results.
10+
* <p>
11+
* Contains:
12+
* <ul>
13+
* <li>a result set reader for the retrieved rows</li>
14+
* <li>index of the result set within the script</li>
15+
* <li>fetch token for retrieving the next portion</li>
16+
* <li>issues returned by the server</li>
17+
* </ul>
18+
*/
819
public class ScriptResultPart {
920
private final ResultSetReader resultSetReader;
1021
private final long resultSetIndex;

query/src/main/java/tech/ydb/query/script/settings/ExecuteScriptSettings.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
import tech.ydb.query.settings.QueryStatsMode;
88

99
/**
10-
* Settings for configuring script execution requests.
10+
* Settings controlling execution of a YQL script.
1111
* <p>
12-
* Used by {@code QuerySession.executeScript(...)} and similar APIs.
12+
* Used to specify execution mode, statistics collection level,
13+
* result TTL, and resource pool assignment.
1314
*
1415
* <p>Author: Evgeny Kuvardin
1516
*/

query/src/main/java/tech/ydb/query/script/settings/FetchScriptSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
/**
66
* Settings for configuring the fetch phase of a previously executed YQL script.
7+
* Take a note that script should be executed successfully before fetch result
78
* <p>
89
* These settings define which operation results to fetch, pagination options,
910
* row limits, and which result set index to retrieve.
@@ -44,6 +45,9 @@ public long getSetResultSetIndex() {
4445
return setResultSetIndex;
4546
}
4647

48+
/**
49+
* Creates a new builder configured for asynchronous operation requests.
50+
*/
4751
public static Builder newBuilder() {
4852
return new Builder();
4953
}

query/src/main/java/tech/ydb/query/script/settings/FindScriptSettings.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
import tech.ydb.core.settings.OperationSettings;
44

5+
/**
6+
* Settings for retrieving metadata of a previously started script operation.
7+
* <p>
8+
* Extends {@link OperationSettings} and enables async fetching by default.
9+
*
10+
* <p>Author: Evgeny Kuvardin
11+
*/
512
public class FindScriptSettings extends OperationSettings {
613

714
private FindScriptSettings(Builder builder) {

0 commit comments

Comments
 (0)