Skip to content

Commit e55f7be

Browse files
committed
Add tests
1 parent 00093c5 commit e55f7be

File tree

8 files changed

+357
-63
lines changed

8 files changed

+357
-63
lines changed

table/src/main/java/tech/ydb/table/Session.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ CompletableFuture<Result<DataQueryResult>> executeDataQuery(
9090

9191
CompletableFuture<Result<ExplainDataQueryResult>> explainDataQuery(String query, ExplainDataQuerySettings settings);
9292

93+
/**
94+
* Get global table options settings
95+
*
96+
* @param settings settings
97+
* @return global table options settings
98+
*/
9399
CompletableFuture<Result<TableOptionDescription>> describeTableOptions(DescribeTableOptionsSettings settings);
94100

95101
/**
@@ -226,6 +232,11 @@ default CompletableFuture<Status> executeBulkUpsert(String tablePath, ListValue
226232
return executeBulkUpsert(tablePath, rows, new BulkUpsertSettings());
227233
}
228234

235+
/**
236+
* Get table option settings
237+
*
238+
* @return fully described options settings
239+
*/
229240
default CompletableFuture<Result<TableOptionDescription>> describeTableOptions() {
230241
return describeTableOptions(new DescribeTableOptionsSettings());
231242
}

table/src/main/java/tech/ydb/table/description/TableOptionDescription.java

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package tech.ydb.table.description;
22

3-
import com.google.common.collect.ImmutableList;
4-
import com.google.common.collect.ImmutableMap;
5-
63
import java.util.ArrayList;
74
import java.util.List;
85
import java.util.Map;
96

7+
import com.google.common.collect.ImmutableList;
8+
import com.google.common.collect.ImmutableMap;
9+
10+
/**
11+
* Description of table options which is set globally in YDB
12+
*
13+
* @author Evgeny Kuvardin
14+
*/
1015
public class TableOptionDescription {
1116

1217
private final List<TableProfileDescription> tableProfileDescriptions;
@@ -59,6 +64,9 @@ public List<CachingPolicyDescription> getCachingPolicyPresets() {
5964
return cachingPolicyPresets;
6065
}
6166

67+
/**
68+
* Builder to construct {@link TableOptionDescription}
69+
*/
6270
public static class Builder {
6371
private List<TableProfileDescription> tableProfileDescriptions;
6472
private List<StoragePolicyDescription> storagePolicyPresets;
@@ -76,55 +84,34 @@ public void setTableProfileDescriptions(ArrayList<TableProfileDescription> table
7684
this.tableProfileDescriptions = tableProfileDescriptions;
7785
}
7886

79-
public List<StoragePolicyDescription> getStoragePolicyPresets() {
80-
return storagePolicyPresets;
81-
}
82-
8387
public void setStoragePolicyPresets(List<StoragePolicyDescription> storagePolicyPresets) {
8488
this.storagePolicyPresets = storagePolicyPresets;
8589
}
8690

87-
public List<CompactionPolicyDescription> getCompactionPolicyPresets() {
88-
return compactionPolicyPresets;
89-
}
90-
9191
public void setCompactionPolicyPresets(List<CompactionPolicyDescription> compactionPolicyPresets) {
9292
this.compactionPolicyPresets = compactionPolicyPresets;
9393
}
9494

95-
public List<PartitioningPolicyDescription> getPartitioningPolicyPresets() {
96-
return partitioningPolicyPresets;
97-
}
98-
9995
public void setPartitioningPolicyPresets(List<PartitioningPolicyDescription> partitioningPolicyPresets) {
10096
this.partitioningPolicyPresets = partitioningPolicyPresets;
10197
}
10298

103-
public List<ExecutionPolicyDescription> getExecutionPolicyPresets() {
104-
return executionPolicyPresets;
105-
}
106-
10799
public void setExecutionPolicyPresets(List<ExecutionPolicyDescription> executionPolicyPresets) {
108100
this.executionPolicyPresets = executionPolicyPresets;
109101
}
110102

111-
public List<ReplicationPolicyDescription> getReplicationPolicyPresets() {
112-
return replicationPolicyPresets;
113-
}
114-
115103
public void setReplicationPolicyPresets(List<ReplicationPolicyDescription> replicationPolicyPresets) {
116104
this.replicationPolicyPresets = replicationPolicyPresets;
117105
}
118106

119-
public List<CachingPolicyDescription> getCachingPolicyPresets() {
120-
return cachingPolicyPresets;
121-
}
122-
123107
public void setCachingPolicyPresets(List<CachingPolicyDescription> cachingPolicyPresets) {
124108
this.cachingPolicyPresets = cachingPolicyPresets;
125109
}
126110
}
127111

112+
/**
113+
* Describe profile and associated settings to it
114+
*/
128115
public static class TableProfileDescription {
129116
private final String name;
130117
private final Map<String, String> labels;
@@ -221,6 +208,9 @@ public List<String> getAllowedCachingPolicy() {
221208
return allowedCachingPolicy;
222209
}
223210

211+
/**
212+
* Builder to construct {@link TableProfileDescription}
213+
*/
224214
public static class Builder {
225215
String name;
226216
Map<String, String> labels;
@@ -302,9 +292,16 @@ public void setAllowedCachingPolicy(List<String> allowedCachingPolicy) {
302292
}
303293
}
304294

295+
/**
296+
* Describe storage policy
297+
* <p>
298+
* For example
299+
* which codec is used
300+
* where sored log an etc
301+
*/
305302
public static class StoragePolicyDescription {
306303
private final String name;
307-
private final Map<String,String> labels;
304+
private final Map<String, String> labels;
308305

309306
public StoragePolicyDescription(String name, Map<String, String> labels) {
310307
this.name = name;
@@ -320,9 +317,12 @@ public Map<String, String> getLabels() {
320317
}
321318
}
322319

320+
/**
321+
* Describe compaction policy
322+
*/
323323
public static class CompactionPolicyDescription {
324324
private final String name;
325-
private final Map<String,String> labels;
325+
private final Map<String, String> labels;
326326

327327
public CompactionPolicyDescription(String name, Map<String, String> labels) {
328328
this.name = name;
@@ -338,9 +338,15 @@ public Map<String, String> getLabels() {
338338
}
339339
}
340340

341+
/**
342+
* Describe partition policy
343+
* <p>
344+
* For example
345+
* split_threshold or is auto_split enabled
346+
*/
341347
public static class PartitioningPolicyDescription {
342348
private final String name;
343-
private final Map<String,String> labels;
349+
private final Map<String, String> labels;
344350

345351
public PartitioningPolicyDescription(String name, Map<String, String> labels) {
346352
this.name = name;
@@ -356,9 +362,15 @@ public Map<String, String> getLabels() {
356362
}
357363
}
358364

365+
/**
366+
* Describe execution policy
367+
* <p>
368+
* For example
369+
* pipeline_width or is bloom filter is used
370+
*/
359371
public static class ExecutionPolicyDescription {
360372
private final String name;
361-
private final Map<String,String> labels;
373+
private final Map<String, String> labels;
362374

363375
public ExecutionPolicyDescription(String name, Map<String, String> labels) {
364376
this.name = name;
@@ -374,9 +386,14 @@ public Map<String, String> getLabels() {
374386
}
375387
}
376388

389+
/**
390+
* Describe replication policy
391+
* <p>
392+
* For example is followers enabled
393+
*/
377394
public static class ReplicationPolicyDescription {
378395
private final String name;
379-
private final Map<String,String> labels;
396+
private final Map<String, String> labels;
380397

381398
public ReplicationPolicyDescription(String name, Map<String, String> labels) {
382399
this.name = name;
@@ -392,9 +409,12 @@ public Map<String, String> getLabels() {
392409
}
393410
}
394411

412+
/**
413+
* Describe caching policy
414+
*/
395415
public static class CachingPolicyDescription {
396416
private final String name;
397-
private final Map<String,String> labels;
417+
private final Map<String, String> labels;
398418

399419
public CachingPolicyDescription(String name, Map<String, String> labels) {
400420
this.name = name;

table/src/main/java/tech/ydb/table/impl/BaseSession.java

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,8 @@ public CompletableFuture<Result<TableDescription>> describeTable(String path, De
669669
}
670670

671671
@Override
672-
public CompletableFuture<Result<TableOptionDescription>> describeTableOptions(DescribeTableOptionsSettings settings) {
672+
public CompletableFuture<Result<TableOptionDescription>> describeTableOptions(
673+
DescribeTableOptionsSettings settings) {
673674
YdbTable.DescribeTableOptionsRequest request = YdbTable.DescribeTableOptionsRequest.newBuilder()
674675
.setOperationParams(Operation.buildParams(settings.toOperationSettings()))
675676
.build();
@@ -913,7 +914,8 @@ private static YdbTable.TransactionSettings txSettings(Transaction.Mode transact
913914
return settings.build();
914915
}
915916

916-
private static Result<TableOptionDescription> mapDescribeTableOptions(Result<YdbTable.DescribeTableOptionsResult> describeTableOptionsResult) {
917+
private static Result<TableOptionDescription> mapDescribeTableOptions(
918+
Result<YdbTable.DescribeTableOptionsResult> describeTableOptionsResult) {
917919
if (!describeTableOptionsResult.isSuccess()) {
918920
return describeTableOptionsResult.map(null);
919921
}
@@ -924,67 +926,81 @@ private static Result<TableOptionDescription> mapDescribeTableOptions(Result<Ydb
924926

925927
builder.setTableProfileDescriptions(new ArrayList<>());
926928
for (YdbTable.TableProfileDescription tableProfileDescription : describeResult.getTableProfilePresetsList()) {
927-
TableOptionDescription.TableProfileDescription.Builder descBuilder = TableOptionDescription.TableProfileDescription.newBuilder();
928-
descBuilder.setName(tableProfileDescription.getName());
929-
descBuilder.setLabels(tableProfileDescription.getLabelsMap());
930-
931-
descBuilder.setDefaultStoragePolicy(tableProfileDescription.getDefaultStoragePolicy());
932-
descBuilder.setDefaultCompactionPolicy(tableProfileDescription.getDefaultCompactionPolicy());
933-
descBuilder.setDefaultPartitioningPolicy(tableProfileDescription.getDefaultPartitioningPolicy());
934-
descBuilder.setDefaultExecutionPolicy(tableProfileDescription.getDefaultExecutionPolicy());
935-
descBuilder.setDefaultReplicationPolicy(tableProfileDescription.getDefaultReplicationPolicy());
936-
descBuilder.setDefaultCachingPolicy(tableProfileDescription.getDefaultCachingPolicy());
937-
938-
descBuilder.setAllowedStoragePolicy(tableProfileDescription.getAllowedStoragePoliciesList());
939-
descBuilder.setAllowedCompactionPolicy(tableProfileDescription.getAllowedCompactionPoliciesList());
940-
descBuilder.setAllowedPartitioningPolicy(tableProfileDescription.getAllowedPartitioningPoliciesList());
941-
descBuilder.setAllowedExecutionPolicy(tableProfileDescription.getAllowedExecutionPoliciesList());
942-
descBuilder.setAllowedReplicationPolicy(tableProfileDescription.getAllowedReplicationPoliciesList());
943-
descBuilder.setAllowedCachingPolicy(tableProfileDescription.getAllowedCachingPoliciesList());
944-
945-
TableOptionDescription.TableProfileDescription description = new TableOptionDescription.TableProfileDescription(descBuilder);
929+
TableOptionDescription.TableProfileDescription.Builder descBuilder =
930+
getDescBuilder(tableProfileDescription);
931+
932+
TableOptionDescription.TableProfileDescription description = descBuilder.build();
946933
builder.getTableProfileDescriptions().add(description);
947934
}
948935

949936
List<TableOptionDescription.StoragePolicyDescription> storagePolicyDescription = new ArrayList<>();
950937
builder.setStoragePolicyPresets(storagePolicyDescription);
951938
for (YdbTable.StoragePolicyDescription iter : describeResult.getStoragePolicyPresetsList()) {
952-
storagePolicyDescription.add(new TableOptionDescription.StoragePolicyDescription(iter.getName(), iter.getLabelsMap()));
939+
storagePolicyDescription.add(
940+
new TableOptionDescription.StoragePolicyDescription(iter.getName(), iter.getLabelsMap()));
953941
}
954942

955943
List<TableOptionDescription.CompactionPolicyDescription> compactionPolicyDescription = new ArrayList<>();
956944
builder.setCompactionPolicyPresets(compactionPolicyDescription);
957945
for (YdbTable.CompactionPolicyDescription iter : describeResult.getCompactionPolicyPresetsList()) {
958-
compactionPolicyDescription.add(new TableOptionDescription.CompactionPolicyDescription(iter.getName(), iter.getLabelsMap()));
946+
compactionPolicyDescription.add(
947+
new TableOptionDescription.CompactionPolicyDescription(iter.getName(), iter.getLabelsMap()));
959948
}
960949

961950
List<TableOptionDescription.PartitioningPolicyDescription> partitioningPolicyPresets = new ArrayList<>();
962951
builder.setPartitioningPolicyPresets(partitioningPolicyPresets);
963952
for (YdbTable.PartitioningPolicyDescription iter : describeResult.getPartitioningPolicyPresetsList()) {
964-
partitioningPolicyPresets.add(new TableOptionDescription.PartitioningPolicyDescription(iter.getName(), iter.getLabelsMap()));
953+
partitioningPolicyPresets.add(
954+
new TableOptionDescription.PartitioningPolicyDescription(iter.getName(), iter.getLabelsMap()));
965955
}
966956

967957
List<TableOptionDescription.ExecutionPolicyDescription> executionPolicyDescriptions = new ArrayList<>();
968958
builder.setExecutionPolicyPresets(executionPolicyDescriptions);
969959
for (YdbTable.ExecutionPolicyDescription iter : describeResult.getExecutionPolicyPresetsList()) {
970-
executionPolicyDescriptions.add(new TableOptionDescription.ExecutionPolicyDescription(iter.getName(), iter.getLabelsMap()));
960+
executionPolicyDescriptions.add(
961+
new TableOptionDescription.ExecutionPolicyDescription(iter.getName(), iter.getLabelsMap()));
971962
}
972963

973964
List<TableOptionDescription.ReplicationPolicyDescription> replicationPolicyPresets = new ArrayList<>();
974965
builder.setReplicationPolicyPresets(replicationPolicyPresets);
975966
for (YdbTable.ReplicationPolicyDescription iter : describeResult.getReplicationPolicyPresetsList()) {
976-
replicationPolicyPresets.add(new TableOptionDescription.ReplicationPolicyDescription(iter.getName(), iter.getLabelsMap()));
967+
replicationPolicyPresets.add(
968+
new TableOptionDescription.ReplicationPolicyDescription(iter.getName(), iter.getLabelsMap()));
977969
}
978970

979971
List<TableOptionDescription.CachingPolicyDescription> cachingPolicyPresets = new ArrayList<>();
980972
builder.setCachingPolicyPresets(cachingPolicyPresets);
981973
for (YdbTable.CachingPolicyDescription iter : describeResult.getCachingPolicyPresetsList()) {
982-
cachingPolicyPresets.add(new TableOptionDescription.CachingPolicyDescription(iter.getName(), iter.getLabelsMap()));
974+
cachingPolicyPresets.add(
975+
new TableOptionDescription.CachingPolicyDescription(iter.getName(), iter.getLabelsMap()));
983976
}
984977

985978
return Result.success(new TableOptionDescription(builder));
986979
}
987980

981+
private static TableOptionDescription.TableProfileDescription.Builder getDescBuilder(
982+
YdbTable.TableProfileDescription tableProfileDescription) {
983+
TableOptionDescription.TableProfileDescription.Builder descBuilder =
984+
TableOptionDescription.TableProfileDescription.newBuilder();
985+
descBuilder.setName(tableProfileDescription.getName());
986+
descBuilder.setLabels(tableProfileDescription.getLabelsMap());
987+
988+
descBuilder.setDefaultStoragePolicy(tableProfileDescription.getDefaultStoragePolicy());
989+
descBuilder.setDefaultCompactionPolicy(tableProfileDescription.getDefaultCompactionPolicy());
990+
descBuilder.setDefaultPartitioningPolicy(tableProfileDescription.getDefaultPartitioningPolicy());
991+
descBuilder.setDefaultExecutionPolicy(tableProfileDescription.getDefaultExecutionPolicy());
992+
descBuilder.setDefaultReplicationPolicy(tableProfileDescription.getDefaultReplicationPolicy());
993+
descBuilder.setDefaultCachingPolicy(tableProfileDescription.getDefaultCachingPolicy());
994+
995+
descBuilder.setAllowedStoragePolicy(tableProfileDescription.getAllowedStoragePoliciesList());
996+
descBuilder.setAllowedCompactionPolicy(tableProfileDescription.getAllowedCompactionPoliciesList());
997+
descBuilder.setAllowedPartitioningPolicy(tableProfileDescription.getAllowedPartitioningPoliciesList());
998+
descBuilder.setAllowedExecutionPolicy(tableProfileDescription.getAllowedExecutionPoliciesList());
999+
descBuilder.setAllowedReplicationPolicy(tableProfileDescription.getAllowedReplicationPoliciesList());
1000+
descBuilder.setAllowedCachingPolicy(tableProfileDescription.getAllowedCachingPoliciesList());
1001+
return descBuilder;
1002+
}
1003+
9881004

9891005
protected CompletableFuture<Result<DataQueryResult>> executeDataQueryInternal(
9901006
String query, YdbTable.TransactionControl txControl, Params params, ExecuteDataQuerySettings settings) {

table/src/main/java/tech/ydb/table/rpc/TableRpc.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ GrpcReadStream<ExecuteScanQueryPartialResponse> streamExecuteScanQuery(ExecuteSc
248248
* @param settings rpc call settings
249249
* @return GrpcReadStream object that allows to start and cancel the stream
250250
*/
251-
CompletableFuture<Result<YdbTable.DescribeTableOptionsResult>> describeTableOptions(YdbTable.DescribeTableOptionsRequest request,
252-
GrpcRequestSettings settings);
251+
CompletableFuture<Result<YdbTable.DescribeTableOptionsResult>> describeTableOptions(
252+
YdbTable.DescribeTableOptionsRequest request,
253+
GrpcRequestSettings settings);
253254
}
254255

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package tech.ydb.table.settings;
22

33
/**
4+
* Setting for describe able options.
45
*
6+
* @author Evgeny Kuvardin
57
*/
6-
public class DescribeTableOptionsSettings extends RequestSettings<DescribeTableSettings> {
8+
public class DescribeTableOptionsSettings extends RequestSettings<DescribeTableOptionsSettings> {
79

810
}

table/src/test/java/tech/ydb/table/SessionStub.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import tech.ydb.core.grpc.GrpcReadStream;
1010
import tech.ydb.core.utils.FutureTools;
1111
import tech.ydb.table.description.TableDescription;
12+
import tech.ydb.table.description.TableOptionDescription;
1213
import tech.ydb.table.query.DataQuery;
1314
import tech.ydb.table.query.DataQueryResult;
1415
import tech.ydb.table.query.ExplainDataQueryResult;
@@ -23,6 +24,7 @@
2324
import tech.ydb.table.settings.CopyTableSettings;
2425
import tech.ydb.table.settings.CopyTablesSettings;
2526
import tech.ydb.table.settings.CreateTableSettings;
27+
import tech.ydb.table.settings.DescribeTableOptionsSettings;
2628
import tech.ydb.table.settings.DescribeTableSettings;
2729
import tech.ydb.table.settings.DropTableSettings;
2830
import tech.ydb.table.settings.ExecuteDataQuerySettings;
@@ -127,6 +129,11 @@ public CompletableFuture<Result<ExplainDataQueryResult>> explainDataQuery(
127129
return notImplemented("explainDataQuery()");
128130
}
129131

132+
@Override
133+
public CompletableFuture<Result<TableOptionDescription>> describeTableOptions(DescribeTableOptionsSettings settings) {
134+
return notImplemented("describeTableOptions()");
135+
}
136+
130137
@Override
131138
@Deprecated
132139
public CompletableFuture<Result<Transaction>> beginTransaction(

0 commit comments

Comments
 (0)