diff options
author | jonmv <venstad@gmail.com> | 2022-10-25 11:58:54 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-10-26 12:07:18 +0200 |
commit | b381a19dbcb4309c99310d3dc4a8c448e6a6daec (patch) | |
tree | 6fd01dff26781f4e61dbc645e585ede749995928 /container-search | |
parent | 2c39e2bc5b7d6d517761b148e468021527c366f5 (diff) |
Serialise as a composite item for now
Diffstat (limited to 'container-search')
3 files changed, 11 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java index 8839ead7977..ff40b6f66bc 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java @@ -7,7 +7,6 @@ import com.yahoo.prelude.query.textualrepresentation.Discloser; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Comparator; -import java.util.ConcurrentModificationException; import java.util.List; import java.util.Objects; import java.util.function.BiConsumer; @@ -324,7 +323,8 @@ public class MultiRangeItem<Type extends Number> extends MultiTermItem { return Objects.hash(super.hashCode(), type, startIndex, endIndex, startInclusive, endInclusive, sortedRanges()); } - Item asCompositeItem() { + @Override + protected Item asCompositeItem() { OrItem root = new OrItem(); if (startIndex.equals(endIndex)) { for (Range<Type> range : sortedRanges()) { diff --git a/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java b/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java index 01034605186..801eb861940 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java @@ -48,6 +48,8 @@ abstract class MultiTermItem extends SimpleTaggableItem { /** Encode all wrapped terms to the buffer. */ abstract void encodeTerms(ByteBuffer buffer); + abstract protected Item asCompositeItem(); + @Override public final ItemType getItemType() { return ItemType.MULTI_TERM; @@ -60,6 +62,9 @@ abstract class MultiTermItem extends SimpleTaggableItem { @Override public final int encode(ByteBuffer buffer) { + // TODO: Remove once backend support deserialisation of this type. + if (getClass() == MultiRangeItem.class) return asCompositeItem().encode(buffer); + super.encodeThis(buffer); byte metadata = 0; metadata |= (operatorType().code << 5) & 0b11100000; diff --git a/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java index 9f8e76e7c45..f71c30af00b 100644 --- a/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java @@ -3,6 +3,7 @@ package com.yahoo.prelude.query; import com.yahoo.prelude.query.MultiRangeItem.NumberType; import com.yahoo.prelude.query.MultiRangeItem.Range; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.nio.ByteBuffer; @@ -209,6 +210,7 @@ public class MultiRangeItemTestCase { } @Test + @Disabled public void testDoublePointsSerialization() { ByteBuffer pointsBuffer = ByteBuffer.allocate(25); MultiRangeItem<Double> pointsItem = MultiRangeItem.overPoints(NumberType.DOUBLE, "i", EXCLUSIVE, INCLUSIVE) @@ -232,6 +234,7 @@ public class MultiRangeItemTestCase { } @Test + @Disabled public void testDoubleRangesSerialization() { ByteBuffer rangesBuffer = ByteBuffer.allocate(59); MultiRangeItem<Double> rangesItem = MultiRangeItem.overRanges(NumberType.DOUBLE, "i", INCLUSIVE, "j", EXCLUSIVE) @@ -263,6 +266,7 @@ public class MultiRangeItemTestCase { } @Test + @Disabled public void testIntegerRangesSerialization() { ByteBuffer rangesBuffer = ByteBuffer.allocate(24); MultiRangeItem<Integer> rangesItem = MultiRangeItem.overRanges(NumberType.INTEGER, "start", INCLUSIVE, "end", EXCLUSIVE) |