diff --git a/src/main/java/ru/rt/restream/reindexer/binding/Consts.java b/src/main/java/ru/rt/restream/reindexer/binding/Consts.java index d4ae0e9..56044f6 100644 --- a/src/main/java/ru/rt/restream/reindexer/binding/Consts.java +++ b/src/main/java/ru/rt/restream/reindexer/binding/Consts.java @@ -75,7 +75,7 @@ public final class Consts { public static final int QUERY_RESULT_EXPLAIN = 2; public static final int QUERY_RESULT_SHARDING_VERSION = 3; public static final int QUERY_RESULT_SHARD_ID = 4; - // incarnation tags are not supported int java connector + // incarnation tags are not supported in java connector public static final int QUERY_RESULT_INCARNATION_TAGS = 5; public static final int QUERY_RESULT_RANK_FORMAT = 6; @@ -117,7 +117,7 @@ public final class Consts { public static final long BINDING_CAPABILITY_QR_IDLE_TIMEOUTS = 1; public static final long BINDING_CAPABILITY_RESULTS_WITH_SHARD_IDS = 1 << 1; - // incarnation tags are not supported int java connector + // incarnation tags are not supported in java connector public static final long BINDING_CAPABILITY_NAMESPACE_INCARNATIONS = 1 << 2; public static final long BINDING_CAPABILITY_COMPLEX_RANK = 1 << 3; diff --git a/src/main/java/ru/rt/restream/reindexer/binding/QueryResultReader.java b/src/main/java/ru/rt/restream/reindexer/binding/QueryResultReader.java index edbd89e..0b32b0f 100644 --- a/src/main/java/ru/rt/restream/reindexer/binding/QueryResultReader.java +++ b/src/main/java/ru/rt/restream/reindexer/binding/QueryResultReader.java @@ -29,6 +29,7 @@ import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_AGGREGATION; import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_END; import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_EXPLAIN; +import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_INCARNATION_TAGS; import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_RANK_FORMAT; import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_SHARDING_VERSION; import static ru.rt.restream.reindexer.binding.Consts.QUERY_RESULT_SHARD_ID; @@ -125,6 +126,18 @@ public QueryResult read(byte[] rawQueryResult) { case QUERY_RESULT_SHARD_ID: queryResult.setShardId((int) buffer.getVarUInt()); break; + case QUERY_RESULT_INCARNATION_TAGS: + // Read the result from the buffer, but do not use it - + // incarnation tags are not supported in java connector. + int shardsCnt = (int) buffer.getVarUInt(); + for (int i = 0; i < shardsCnt; i++) { + int shardId = (int) buffer.getVarInt(); + int nsCnt = (int) buffer.getVarUInt(); + for (int j = 0; j < nsCnt; j++) { + buffer.getVarInt(); + } + } + break; case QUERY_RESULT_RANK_FORMAT: int format = (int) buffer.getVarUInt(); if (format != RANK_FORMAT_SINGLE_FLOAT) { diff --git a/src/main/java/ru/rt/restream/reindexer/binding/cproto/PhysicalConnection.java b/src/main/java/ru/rt/restream/reindexer/binding/cproto/PhysicalConnection.java index be24487..048a232 100644 --- a/src/main/java/ru/rt/restream/reindexer/binding/cproto/PhysicalConnection.java +++ b/src/main/java/ru/rt/restream/reindexer/binding/cproto/PhysicalConnection.java @@ -48,6 +48,7 @@ import static ru.rt.restream.reindexer.binding.Consts.APP_PROPERTY_NAME; import static ru.rt.restream.reindexer.binding.Consts.BINDING_CAPABILITY_COMPLEX_RANK; +import static ru.rt.restream.reindexer.binding.Consts.BINDING_CAPABILITY_NAMESPACE_INCARNATIONS; import static ru.rt.restream.reindexer.binding.Consts.BINDING_CAPABILITY_RESULTS_WITH_SHARD_IDS; import static ru.rt.restream.reindexer.binding.Consts.DEF_APP_NAME; import static ru.rt.restream.reindexer.binding.Consts.REINDEXER_VERSION; @@ -124,7 +125,9 @@ public PhysicalConnection(String host, int port, String user, String password, S -1, // expectedClusterID REINDEXER_VERSION, getAppName(), - BINDING_CAPABILITY_RESULTS_WITH_SHARD_IDS | BINDING_CAPABILITY_COMPLEX_RANK); + BINDING_CAPABILITY_RESULTS_WITH_SHARD_IDS + | BINDING_CAPABILITY_COMPLEX_RANK + | BINDING_CAPABILITY_NAMESPACE_INCARNATIONS); } catch (Exception e) { onError(e); throw new NetworkException(e);