Skip to content

Commit cfa0ca1

Browse files
committed
Add support for "fetch_latest_metadata" option
- Add option - CHANGELOG.md Closes #465
1 parent 00dee2b commit cfa0ca1

19 files changed

+240
-10
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@
1212
- Bump testcontainers-java-tarantool version to 1.2.0 ([#442](https://github.com/tarantool/cartridge-java/issues/442))
1313
- Bump netty version to 4.1.104.Final ([#446](https://github.com/tarantool/cartridge-java/issues/446))
1414
- Bump msgpack-java version to 0.9.6
15+
- Add support for crud `yield_every` option ([#458](https://github.com/tarantool/cartridge-java/pull/468))
16+
- Add support for crud `force_map_call` option ([#459](https://github.com/tarantool/cartridge-java/pull/469))
17+
- Add support for crud `fullscan` option ([#460](https://github.com/tarantool/cartridge-java/pull/470))
18+
- Add support for crud `prefer_replica` option ([#461](https://github.com/tarantool/cartridge-java/pull/471))
19+
- Add support for crud `balance` option ([#462](https://github.com/tarantool/cartridge-java/pull/472))
20+
- Add support for crud `vshard_router` option ([#463](https://github.com/tarantool/cartridge-java/pull/473))
21+
- Add support for crud `fetch_latest_metadata` option ([#465](https://github.com/tarantool/cartridge-java/pull/474))
1522

1623
### Features
1724

src/main/java/io/tarantool/driver/api/space/options/DeleteOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.tarantool.driver.api.space.options;
22

33
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
4+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithTimeoutOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithVshardRouterOptions;
@@ -13,5 +14,5 @@
1314
*/
1415
public interface DeleteOptions<T extends DeleteOptions<T>>
1516
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
16-
OperationWithVshardRouterOptions<T> {
17+
OperationWithVshardRouterOptions<T>, OperationWithFetchLatestMetadataOptions<T> {
1718
}

src/main/java/io/tarantool/driver/api/space/options/InsertManyOptions.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.tarantool.driver.api.space.options;
22

3+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
34
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithRollbackOnErrorOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithStopOnErrorOptions;
@@ -13,5 +14,6 @@
1314
*/
1415
public interface InsertManyOptions<T extends InsertManyOptions<T>>
1516
extends OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>, OperationWithRollbackOnErrorOptions<T>,
16-
OperationWithStopOnErrorOptions<T>, OperationWithVshardRouterOptions<T> {
17+
OperationWithStopOnErrorOptions<T>, OperationWithVshardRouterOptions<T>,
18+
OperationWithFetchLatestMetadataOptions<T> {
1719
}

src/main/java/io/tarantool/driver/api/space/options/InsertOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.tarantool.driver.api.space.options;
22

33
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
4+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithTimeoutOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithVshardRouterOptions;
@@ -13,5 +14,5 @@
1314
*/
1415
public interface InsertOptions<T extends InsertOptions<T>>
1516
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
16-
OperationWithVshardRouterOptions<T> {
17+
OperationWithVshardRouterOptions<T>, OperationWithFetchLatestMetadataOptions<T> {
1718
}

src/main/java/io/tarantool/driver/api/space/options/ReplaceManyOptions.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.tarantool.driver.api.space.options;
22

3+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
34
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithRollbackOnErrorOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithStopOnErrorOptions;
@@ -13,5 +14,6 @@
1314
*/
1415
public interface ReplaceManyOptions<T extends ReplaceManyOptions<T>>
1516
extends OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>, OperationWithRollbackOnErrorOptions<T>,
16-
OperationWithStopOnErrorOptions<T>, OperationWithVshardRouterOptions<T> {
17+
OperationWithStopOnErrorOptions<T>, OperationWithVshardRouterOptions<T>,
18+
OperationWithFetchLatestMetadataOptions<T> {
1719
}

src/main/java/io/tarantool/driver/api/space/options/ReplaceOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.tarantool.driver.api.space.options;
22

33
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
4+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithTimeoutOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithVshardRouterOptions;
@@ -13,5 +14,5 @@
1314
*/
1415
public interface ReplaceOptions<T extends ReplaceOptions<T>>
1516
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
16-
OperationWithVshardRouterOptions<T> {
17+
OperationWithVshardRouterOptions<T>, OperationWithFetchLatestMetadataOptions<T> {
1718
}

src/main/java/io/tarantool/driver/api/space/options/SelectOptions.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.tarantool.driver.api.space.options.crud.OperationWithBalanceOptions;
44
import io.tarantool.driver.api.space.options.crud.OperationWithBatchSizeOptions;
55
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
6+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
78
import io.tarantool.driver.api.space.options.crud.OperationWithFullScanOptions;
89
import io.tarantool.driver.api.space.options.crud.OperationWithForceMapCallOptions;
@@ -24,5 +25,6 @@ public interface SelectOptions<T extends SelectOptions<T>>
2425
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
2526
OperationWithModeOptions<T>, OperationWithBatchSizeOptions<T>, OperationWithYieldEveryOptions<T>,
2627
OperationWithForceMapCallOptions<T>, OperationWithFullScanOptions<T>, OperationWithPreferReplicaOptions<T>,
27-
OperationWithBalanceOptions<T>, OperationWithVshardRouterOptions<T> {
28+
OperationWithBalanceOptions<T>, OperationWithVshardRouterOptions<T>,
29+
OperationWithFetchLatestMetadataOptions<T> {
2830
}

src/main/java/io/tarantool/driver/api/space/options/UpdateOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.tarantool.driver.api.space.options;
22

33
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
4+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithTimeoutOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithVshardRouterOptions;
@@ -13,5 +14,5 @@
1314
*/
1415
public interface UpdateOptions<T extends UpdateOptions<T>>
1516
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
16-
OperationWithVshardRouterOptions<T> {
17+
OperationWithVshardRouterOptions<T>, OperationWithFetchLatestMetadataOptions<T> {
1718
}

src/main/java/io/tarantool/driver/api/space/options/UpsertOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.tarantool.driver.api.space.options;
22

33
import io.tarantool.driver.api.space.options.crud.OperationWithBucketIdOptions;
4+
import io.tarantool.driver.api.space.options.crud.OperationWithFetchLatestMetadataOptions;
45
import io.tarantool.driver.api.space.options.crud.OperationWithFieldsOptions;
56
import io.tarantool.driver.api.space.options.crud.OperationWithTimeoutOptions;
67
import io.tarantool.driver.api.space.options.crud.OperationWithVshardRouterOptions;
@@ -13,5 +14,5 @@
1314
*/
1415
public interface UpsertOptions<T extends UpsertOptions<T>>
1516
extends OperationWithBucketIdOptions<T>, OperationWithTimeoutOptions<T>, OperationWithFieldsOptions<T>,
16-
OperationWithVshardRouterOptions<T> {
17+
OperationWithVshardRouterOptions<T>, OperationWithFetchLatestMetadataOptions<T> {
1718
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package io.tarantool.driver.api.space.options.crud;
2+
3+
import java.util.Optional;
4+
5+
import io.tarantool.driver.api.space.options.Options;
6+
import io.tarantool.driver.api.space.options.Self;
7+
import io.tarantool.driver.api.space.options.crud.enums.ProxyOption;
8+
9+
/**
10+
* Base interface for all operation options that may have a configurable "fetch_latest_metadata" option.
11+
*
12+
* @author Belonogov Nikolay
13+
*/
14+
public interface OperationWithFetchLatestMetadataOptions<T extends OperationWithFetchLatestMetadataOptions<T>>
15+
extends Options, Self<T> {
16+
17+
/**
18+
* Sets "fetch_latest_metadata" option value to true. Guarantees the up-to-date metadata (space format) in first
19+
* return value, otherwise it may not take into account the latest migration of the data format. Performance
20+
* overhead is up to 15%. False by default.
21+
* @return this options instance.
22+
*/
23+
default T fetchLatestMetadata() {
24+
addOption(ProxyOption.FETCH_LATEST_METADATA, true);
25+
return self();
26+
}
27+
28+
/**
29+
* @return "fetch_latest_metadata" option value.
30+
*/
31+
default Optional<Boolean> getFetchLatestMetadata() {
32+
return getOption(ProxyOption.FETCH_LATEST_METADATA, Boolean.class);
33+
}
34+
}

0 commit comments

Comments
 (0)