|
@@ -63,8 +63,12 @@ public:
|
|
|
{
|
|
|
if (results)
|
|
|
throw MakeThorException(TE_UnexpectedMultipleSlaveResults, "Received greater than one result from slaves");
|
|
|
- const void *result = (const void *)mb.readDirect(sz);
|
|
|
IHThorRemoteResultArg *helper = (IHThorRemoteResultArg *)queryHelper();
|
|
|
+ Owned<IRowInterfaces> resultRowIf = createRowInterfaces(helper->queryOutputMeta(), queryActivityId(), queryCodeContext());
|
|
|
+ CThorStreamDeserializerSource mds(sz, mb.readDirect(sz));
|
|
|
+ RtlDynamicRowBuilder rowBuilder(resultRowIf->queryRowAllocator());
|
|
|
+ size32_t sz = resultRowIf->queryRowDeserializer()->deserialize(rowBuilder, mds);
|
|
|
+ OwnedConstThorRow result = rowBuilder.finalizeRowClear(sz);
|
|
|
helper->sendResult(result);
|
|
|
results = true;
|
|
|
}
|