aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2019-05-31 12:34:11 +0200
committerOlli Virtanen <olli.virtanen@oath.com>2019-05-31 12:34:11 +0200
commitf52b851a284f770cecffe7c49b8699a6d6b58dc7 (patch)
tree97b5a4b3ab55416c42a1a604f108df6b8f2ee3a6 /container-search/src
parentdf0d8f4a1a42cb0d6fa45cf059b0d63f915f2230 (diff)
Decode slime trace from protobuf message
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
index 39a1587afea..13041aa4035 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java
@@ -5,6 +5,8 @@ import ai.vespa.searchlib.searchprotocol.protobuf.SearchProtocol.StringProperty;
import ai.vespa.searchlib.searchprotocol.protobuf.SearchProtocol.TensorProperty;
import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
+import com.yahoo.data.access.simple.Value;
+import com.yahoo.data.access.slime.SlimeAdapter;
import com.yahoo.document.GlobalId;
import com.yahoo.fs4.GetDocSumsPacket;
import com.yahoo.io.GrowableByteBuffer;
@@ -23,6 +25,7 @@ import com.yahoo.search.query.Sorting.Order;
import com.yahoo.search.result.Coverage;
import com.yahoo.search.result.Relevance;
import com.yahoo.searchlib.aggregation.Grouping;
+import com.yahoo.slime.BinaryFormat;
import com.yahoo.vespa.objects.BufferSerializer;
import java.nio.ByteBuffer;
@@ -221,7 +224,12 @@ public class ProtobufSerialization {
if(sorting != null) {
result.hits().setSorted(true);
}
-
+ var slimeTrace = protobuf.getSlimeTrace();
+ if (slimeTrace != null && !slimeTrace.isEmpty()) {
+ var traces = new Value.ArrayValue();
+ traces.add(new SlimeAdapter(BinaryFormat.decode(slimeTrace.toByteArray()).get()));
+ query.trace(traces, query.getTraceLevel());
+ }
return result;
}