summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-31 13:51:36 +0200
committerGitHub <noreply@github.com>2019-05-31 13:51:36 +0200
commit43447b731685de84d813c81bf042142588f0aeac (patch)
tree806a2943a7d80268051aa559eb33bf1640913f03 /container-search
parente06788f411d2c618d7e9d2c5b07c508215fe9165 (diff)
parentf52b851a284f770cecffe7c49b8699a6d6b58dc7 (diff)
Merge pull request #9625 from vespa-engine/ollivir/deserialize-slime-trace
Decode slime trace from protobuf message
Diffstat (limited to 'container-search')
-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;
}