This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new c1693f8715 Allow adding exception to TransferableBlock without
converting it to DataBlock (#11456)
c1693f8715 is described below
commit c1693f8715465a9ef42a815bdd4001ac1967596e
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Tue Aug 29 13:29:22 2023 -0700
Allow adding exception to TransferableBlock without converting it to
DataBlock (#11456)
---
.../apache/pinot/query/runtime/QueryRunner.java | 2 +-
.../query/runtime/blocks/TransferableBlock.java | 47 +++++++++++++++-------
.../runtime/executor/OpChainSchedulerService.java | 4 +-
.../query/runtime/operator/AggregateOperator.java | 6 +--
.../query/runtime/operator/HashJoinOperator.java | 2 +-
.../runtime/blocks/TransferableBlockUtilsTest.java | 2 +-
.../runtime/operator/AggregateOperatorTest.java | 2 +-
.../query/runtime/operator/FilterOperatorTest.java | 10 ++---
.../runtime/operator/HashJoinOperatorTest.java | 21 ++++------
.../operator/MailboxReceiveOperatorTest.java | 12 +++---
.../operator/SortedMailboxReceiveOperatorTest.java | 12 +++---
.../runtime/operator/TransformOperatorTest.java | 7 +---
.../operator/WindowAggregateOperatorTest.java | 2 +-
13 files changed, 64 insertions(+), 65 deletions(-)
diff --git
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/QueryRunner.java
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/QueryRunner.java
index 021af52f80..06b70fdf31 100644
---
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/QueryRunner.java
+++
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/QueryRunner.java
@@ -161,7 +161,7 @@ public class QueryRunner {
if (pipelineBreakerResult != null && pipelineBreakerResult.getErrorBlock()
!= null) {
TransferableBlock errorBlock = pipelineBreakerResult.getErrorBlock();
LOGGER.error("Error executing pipeline breaker for request: {}, stage:
{}, sending error block: {}", requestId,
- distributedStagePlan.getStageId(),
errorBlock.getDataBlock().getExceptions());
+ distributedStagePlan.getStageId(), errorBlock.getExceptions());
int receiverStageId = ((MailboxSendNode)
distributedStagePlan.getStageRoot()).getReceiverStageId();
MailboxMetadata mailboxMetadata =
distributedStagePlan.getStageMetadata().getWorkerMetadataList()
.get(distributedStagePlan.getServer().workerId()).getMailBoxInfosMap().get(receiverStageId);
diff --git
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
index 69787f595b..f6bc4968f4 100644
---
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
+++
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/blocks/TransferableBlock.java
@@ -18,6 +18,7 @@
*/
package org.apache.pinot.query.runtime.blocks;
+import com.google.common.base.Preconditions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -26,6 +27,7 @@ import org.apache.pinot.common.datablock.DataBlock;
import org.apache.pinot.common.datablock.DataBlockUtils;
import org.apache.pinot.common.datablock.MetadataBlock;
import org.apache.pinot.common.datablock.RowDataBlock;
+import org.apache.pinot.common.response.ProcessingException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.core.common.Block;
import org.apache.pinot.core.common.ObjectSerDeUtils;
@@ -33,6 +35,7 @@ import
org.apache.pinot.core.common.datablock.DataBlockBuilder;
import org.apache.pinot.query.runtime.operator.OperatorStats;
import org.apache.pinot.query.runtime.operator.utils.OperatorUtils;
+
/**
* A {@code TransferableBlock} is a wrapper around {@link DataBlock} for
transferring data using
* {@link org.apache.pinot.common.proto.Mailbox}.
@@ -42,14 +45,18 @@ public class TransferableBlock implements Block {
private final DataSchema _dataSchema;
private final int _numRows;
- private DataBlock _dataBlock;
private List<Object[]> _container;
+ private DataBlock _dataBlock;
+ private Map<Integer, String> _errCodeToExceptionMap;
- public TransferableBlock(List<Object[]> container, DataSchema dataSchema,
DataBlock.Type containerType) {
+ public TransferableBlock(List<Object[]> container, DataSchema dataSchema,
DataBlock.Type type) {
_container = container;
_dataSchema = dataSchema;
- _type = containerType;
+ Preconditions.checkArgument(type == DataBlock.Type.ROW || type ==
DataBlock.Type.COLUMNAR,
+ "Container cannot be used to construct block of type: %s", type);
+ _type = type;
_numRows = _container.size();
+ _errCodeToExceptionMap = new HashMap<>();
}
public TransferableBlock(DataBlock dataBlock) {
@@ -58,6 +65,7 @@ public class TransferableBlock implements Block {
_type = dataBlock instanceof ColumnarDataBlock ? DataBlock.Type.COLUMNAR
: dataBlock instanceof RowDataBlock ? DataBlock.Type.ROW :
DataBlock.Type.METADATA;
_numRows = _dataBlock.getNumberOfRows();
+ _errCodeToExceptionMap = null;
}
public Map<String, OperatorStats> getResultMetadata() {
@@ -107,18 +115,13 @@ public class TransferableBlock implements Block {
public DataBlock getDataBlock() {
if (_dataBlock == null) {
try {
- switch (_type) {
- case ROW:
- _dataBlock = DataBlockBuilder.buildFromRows(_container,
_dataSchema);
- break;
- case COLUMNAR:
- _dataBlock = DataBlockBuilder.buildFromColumns(_container,
_dataSchema);
- break;
- case METADATA:
- throw new UnsupportedOperationException("Metadata block cannot be
constructed from container");
- default:
- throw new UnsupportedOperationException("Unable to build from
container with type: " + _type);
+ if (_type == DataBlock.Type.ROW) {
+ _dataBlock = DataBlockBuilder.buildFromRows(_container, _dataSchema);
+ } else {
+ _dataBlock = DataBlockBuilder.buildFromColumns(_container,
_dataSchema);
}
+ _dataBlock.getExceptions().putAll(_errCodeToExceptionMap);
+ _errCodeToExceptionMap = null;
} catch (Exception e) {
throw new RuntimeException("Unable to create DataBlock", e);
}
@@ -126,6 +129,22 @@ public class TransferableBlock implements Block {
return _dataBlock;
}
+ public Map<Integer, String> getExceptions() {
+ return _dataBlock != null ? _dataBlock.getExceptions() :
_errCodeToExceptionMap;
+ }
+
+ public void addException(ProcessingException processingException) {
+ addException(processingException.getErrorCode(),
processingException.getMessage());
+ }
+
+ public void addException(int errCode, String errMsg) {
+ if (_dataBlock != null) {
+ _dataBlock.addException(errCode, errMsg);
+ } else {
+ _errCodeToExceptionMap.put(errCode, errMsg);
+ }
+ }
+
/**
* Return the type of block (one of ROW, COLUMNAR, or METADATA).
*
diff --git
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainSchedulerService.java
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainSchedulerService.java
index 3b0eb65130..440c79200b 100644
---
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainSchedulerService.java
+++
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/executor/OpChainSchedulerService.java
@@ -60,7 +60,7 @@ public class OpChainSchedulerService {
if (result.isErrorBlock()) {
returnedErrorBlock = result;
LOGGER.error("({}): Completed erroneously {} {}", operatorChain,
operatorChain.getStats(),
- result.getDataBlock().getExceptions());
+ result.getExceptions());
} else {
LOGGER.debug("({}): Completed {}", operatorChain,
operatorChain.getStats());
}
@@ -71,7 +71,7 @@ public class OpChainSchedulerService {
_submittedOpChainMap.remove(operatorChain.getId());
if (returnedErrorBlock != null || thrown != null) {
if (thrown == null) {
- thrown = new RuntimeException("Error block " +
returnedErrorBlock.getDataBlock().getExceptions());
+ thrown = new RuntimeException("Error block " +
returnedErrorBlock.getExceptions());
}
operatorChain.cancel(thrown);
} else if (isFinished) {
diff --git
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
index b481bf1206..55e9ce4102 100644
---
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
+++
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
@@ -34,7 +34,6 @@ import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.request.Literal;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.request.context.FunctionContext;
-import org.apache.pinot.common.response.ProcessingException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.core.common.BlockValSet;
import org.apache.pinot.core.query.aggregation.function.AggregationFunction;
@@ -194,12 +193,9 @@ public class AggregateOperator extends MultiStageOperator {
} else {
TransferableBlock dataBlock = new TransferableBlock(rows,
_resultSchema, DataBlock.Type.ROW);
if (_groupByExecutor.isNumGroupsLimitReached()) {
- ProcessingException resourceLimitExceededException =
- new
ProcessingException(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE);
- resourceLimitExceededException.setMessage(
+
dataBlock.addException(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE,
String.format("Reached numGroupsLimit of: %d for group-by,
ignoring the extra groups",
_groupByExecutor.getNumGroupsLimit()));
-
dataBlock.getDataBlock().addException(resourceLimitExceededException);
}
return dataBlock;
}
diff --git
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
index 81bb644f81..46391dbcff 100644
---
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
+++
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
@@ -312,7 +312,7 @@ public class HashJoinOperator extends MultiStageOperator {
private TransferableBlock setPartialResultExceptionToBlock(TransferableBlock
block) {
if (_resourceLimitExceededException != null) {
- block.getDataBlock().addException(_resourceLimitExceededException);
+ block.addException(_resourceLimitExceededException);
}
return block;
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/blocks/TransferableBlockUtilsTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/blocks/TransferableBlockUtilsTest.java
index 80374646a6..13369fcaf4 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/blocks/TransferableBlockUtilsTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/blocks/TransferableBlockUtilsTest.java
@@ -99,7 +99,7 @@ public class TransferableBlockUtilsTest {
TransferableBlockUtils.splitBlock(new
TransferableBlock(nonSplittableBlock), DataBlock.Type.METADATA,
4 * 1024 * 1024);
Assert.assertTrue(transferableBlocks.hasNext());
- Assert.assertEquals(transferableBlocks.next().getDataBlock(),
nonSplittableBlock);
+ Assert.assertSame(transferableBlocks.next().getDataBlock(),
nonSplittableBlock);
Assert.assertFalse(transferableBlocks.hasNext());
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
index f75fcd9fbb..63a94b56d1 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
@@ -224,7 +224,7 @@ public class AggregateOperatorTest {
// Then:
Assert.assertTrue(block.isErrorBlock(), "expected ERROR block from invalid
computation");
-
Assert.assertTrue(block.getDataBlock().getExceptions().get(1000).contains("String
cannot be cast to class"),
+ Assert.assertTrue(block.getExceptions().get(1000).contains("String cannot
be cast to class"),
"expected it to fail with class cast exception");
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/FilterOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/FilterOperatorTest.java
index e854037f1b..3a3a716ee3 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/FilterOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/FilterOperatorTest.java
@@ -21,7 +21,6 @@ package org.apache.pinot.query.runtime.operator;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.apache.calcite.sql.SqlKind;
-import org.apache.pinot.common.datablock.DataBlock;
import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.query.planner.logical.RexExpression;
@@ -65,8 +64,7 @@ public class FilterOperatorTest {
new FilterOperator(OperatorTestUtil.getDefaultContext(),
_upstreamOperator, inputSchema, booleanLiteral);
TransferableBlock errorBlock = op.getNextBlock();
Assert.assertTrue(errorBlock.isErrorBlock());
- DataBlock error = errorBlock.getDataBlock();
-
Assert.assertTrue(error.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("filterError"));
+
Assert.assertTrue(errorBlock.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("filterError"));
}
@Test
@@ -132,8 +130,7 @@ public class FilterOperatorTest {
new FilterOperator(OperatorTestUtil.getDefaultContext(),
_upstreamOperator, inputSchema, booleanLiteral);
TransferableBlock errorBlock = op.getNextBlock();
Assert.assertTrue(errorBlock.isErrorBlock());
- DataBlock data = errorBlock.getDataBlock();
-
Assert.assertTrue(data.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("cast"));
+
Assert.assertTrue(errorBlock.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("cast"));
}
@Test
@@ -147,8 +144,7 @@ public class FilterOperatorTest {
FilterOperator op = new
FilterOperator(OperatorTestUtil.getDefaultContext(), _upstreamOperator,
inputSchema, ref0);
TransferableBlock errorBlock = op.getNextBlock();
Assert.assertTrue(errorBlock.isErrorBlock());
- DataBlock data = errorBlock.getDataBlock();
-
Assert.assertTrue(data.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("cast"));
+
Assert.assertTrue(errorBlock.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("cast"));
}
@Test
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
index 730ccf9f67..f67ea76072 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
@@ -29,7 +29,6 @@ import org.apache.calcite.rel.core.JoinRelType;
import org.apache.calcite.rel.hint.PinotHintOptions;
import org.apache.calcite.rel.hint.RelHint;
import org.apache.calcite.sql.SqlKind;
-import org.apache.pinot.common.datablock.MetadataBlock;
import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.query.planner.logical.RexExpression;
@@ -346,8 +345,7 @@ public class HashJoinOperatorTest {
new HashJoinOperator(OperatorTestUtil.getDefaultContext(),
_leftOperator, _rightOperator, leftSchema, node);
TransferableBlock result = join.nextBlock();
Assert.assertTrue(result.isErrorBlock());
- MetadataBlock errorBlock = (MetadataBlock) result.getDataBlock();
-
Assert.assertTrue(errorBlock.getExceptions().get(1000).contains("notEquals"));
+ Assert.assertTrue(result.getExceptions().get(1000).contains("notEquals"));
}
@Test
@@ -567,8 +565,8 @@ public class HashJoinOperatorTest {
TransferableBlock result = join.nextBlock();
Assert.assertTrue(result.isErrorBlock());
-
Assert.assertTrue(result.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE)
- .contains("testInnerJoinRightError"));
+ Assert.assertTrue(
+
result.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("testInnerJoinRightError"));
}
@Test
@@ -598,8 +596,7 @@ public class HashJoinOperatorTest {
TransferableBlock result = join.nextBlock();
Assert.assertTrue(result.isErrorBlock());
-
Assert.assertTrue(result.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE)
- .contains("testInnerJoinLeftError"));
+
Assert.assertTrue(result.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("testInnerJoinLeftError"));
}
@Test
@@ -634,9 +631,8 @@ public class HashJoinOperatorTest {
TransferableBlock result = join.nextBlock();
Assert.assertTrue(result.isErrorBlock());
- Assert.assertTrue(
-
result.getDataBlock().getExceptions().get(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE)
- .contains("reach number of rows limit"));
+
Assert.assertTrue(result.getExceptions().get(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE)
+ .contains("reach number of rows limit"));
}
@Test
@@ -672,9 +668,8 @@ public class HashJoinOperatorTest {
TransferableBlock result = join.nextBlock();
Assert.assertFalse(result.isErrorBlock());
Assert.assertEquals(result.getNumRows(), 1);
- Assert.assertTrue(
-
result.getDataBlock().getExceptions().get(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE)
- .contains("reach number of rows limit"));
+
Assert.assertTrue(result.getExceptions().get(QueryException.SERVER_RESOURCE_LIMIT_EXCEEDED_ERROR_CODE)
+ .contains("reach number of rows limit"));
}
}
// TODO: Add more inequi join tests.
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/MailboxReceiveOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/MailboxReceiveOperatorTest.java
index e9c8661ff9..6e3fa310a9 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/MailboxReceiveOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/MailboxReceiveOperatorTest.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.calcite.rel.RelDistribution;
-import org.apache.pinot.common.datablock.MetadataBlock;
import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.query.mailbox.MailboxIdUtils;
@@ -120,10 +119,9 @@ public class MailboxReceiveOperatorTest {
_stageMetadata1);
try (MailboxReceiveOperator receiveOp = new
MailboxReceiveOperator(context, RelDistribution.Type.SINGLETON, 1)) {
Thread.sleep(100L);
- TransferableBlock mailbox = receiveOp.nextBlock();
- assertTrue(mailbox.isErrorBlock());
- MetadataBlock errorBlock = (MetadataBlock) mailbox.getDataBlock();
-
assertTrue(errorBlock.getExceptions().containsKey(QueryException.EXECUTION_TIMEOUT_ERROR_CODE));
+ TransferableBlock block = receiveOp.nextBlock();
+ assertTrue(block.isErrorBlock());
+
assertTrue(block.getExceptions().containsKey(QueryException.EXECUTION_TIMEOUT_ERROR_CODE));
}
}
@@ -168,7 +166,7 @@ public class MailboxReceiveOperatorTest {
try (MailboxReceiveOperator receiveOp = new
MailboxReceiveOperator(context, RelDistribution.Type.SINGLETON, 1)) {
TransferableBlock block = receiveOp.nextBlock();
assertTrue(block.isErrorBlock());
-
assertTrue(block.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
+
assertTrue(block.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
}
}
@@ -235,7 +233,7 @@ public class MailboxReceiveOperatorTest {
1)) {
TransferableBlock block = receiveOp.nextBlock();
assertTrue(block.isErrorBlock());
-
assertTrue(block.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
+
assertTrue(block.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
}
}
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/SortedMailboxReceiveOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/SortedMailboxReceiveOperatorTest.java
index 0c6e60561d..4de9e3d4c6 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/SortedMailboxReceiveOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/SortedMailboxReceiveOperatorTest.java
@@ -28,7 +28,6 @@ import java.util.stream.Stream;
import org.apache.calcite.rel.RelDistribution;
import org.apache.calcite.rel.RelFieldCollation.Direction;
import org.apache.calcite.rel.RelFieldCollation.NullDirection;
-import org.apache.pinot.common.datablock.MetadataBlock;
import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.query.mailbox.MailboxIdUtils;
@@ -143,10 +142,9 @@ public class SortedMailboxReceiveOperatorTest {
RelDistribution.Type.SINGLETON, DATA_SCHEMA, COLLATION_KEYS,
COLLATION_DIRECTIONS, COLLATION_NULL_DIRECTIONS,
false, 1)) {
Thread.sleep(100L);
- TransferableBlock mailbox = receiveOp.nextBlock();
- assertTrue(mailbox.isErrorBlock());
- MetadataBlock errorBlock = (MetadataBlock) mailbox.getDataBlock();
-
assertTrue(errorBlock.getExceptions().containsKey(QueryException.EXECUTION_TIMEOUT_ERROR_CODE));
+ TransferableBlock block = receiveOp.nextBlock();
+ assertTrue(block.isErrorBlock());
+
assertTrue(block.getExceptions().containsKey(QueryException.EXECUTION_TIMEOUT_ERROR_CODE));
}
}
@@ -194,7 +192,7 @@ public class SortedMailboxReceiveOperatorTest {
false, 1)) {
TransferableBlock block = receiveOp.nextBlock();
assertTrue(block.isErrorBlock());
-
assertTrue(block.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
+
assertTrue(block.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
}
}
@@ -238,7 +236,7 @@ public class SortedMailboxReceiveOperatorTest {
COLLATION_NULL_DIRECTIONS, false, 1)) {
TransferableBlock block = receiveOp.nextBlock();
assertTrue(block.isErrorBlock());
-
assertTrue(block.getDataBlock().getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
+
assertTrue(block.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains(errorMessage));
}
}
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/TransformOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/TransformOperatorTest.java
index ea58592128..c5b1eaf5a5 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/TransformOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/TransformOperatorTest.java
@@ -22,7 +22,6 @@ import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.pinot.common.datablock.DataBlock;
import org.apache.pinot.common.exception.QueryException;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.query.planner.logical.RexExpression;
@@ -161,8 +160,7 @@ public class TransformOperatorTest {
TransferableBlock result = op.nextBlock();
Assert.assertTrue(result.isErrorBlock());
- DataBlock data = result.getDataBlock();
-
Assert.assertTrue(data.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("ArithmeticFunctions"));
+
Assert.assertTrue(result.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("ArithmeticFunctions"));
}
@Test
@@ -181,8 +179,7 @@ public class TransformOperatorTest {
_upstreamOp, resultSchema, ImmutableList.of(boolLiteral,
strLiteral), upStreamSchema);
TransferableBlock result = op.nextBlock();
Assert.assertTrue(result.isErrorBlock());
- DataBlock data = result.getDataBlock();
-
Assert.assertTrue(data.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("transformError"));
+
Assert.assertTrue(result.getExceptions().get(QueryException.UNKNOWN_ERROR_CODE).contains("transformError"));
}
@Test
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/WindowAggregateOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/WindowAggregateOperatorTest.java
index d9c8bdc91e..a38ad8ea91 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/WindowAggregateOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/WindowAggregateOperatorTest.java
@@ -638,7 +638,7 @@ public class WindowAggregateOperatorTest {
// Then:
Assert.assertTrue(block.isErrorBlock(), "expected ERROR block from invalid
computation");
-
Assert.assertTrue(block.getDataBlock().getExceptions().get(1000).contains("String
cannot be cast to class"),
+ Assert.assertTrue(block.getExceptions().get(1000).contains("String cannot
be cast to class"),
"expected it to fail with class cast exception");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]