summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-25 11:58:54 +0200
committerjonmv <venstad@gmail.com>2022-10-26 12:07:18 +0200
commitb381a19dbcb4309c99310d3dc4a8c448e6a6daec (patch)
tree6fd01dff26781f4e61dbc645e585ede749995928 /container-search
parent2c39e2bc5b7d6d517761b148e468021527c366f5 (diff)
Serialise as a composite item for now
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/MultiRangeItem.java4
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/MultiTermItem.java5
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/query/MultiRangeItemTestCase.java4
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)