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 <17555551+jackie-ji...@users.noreply.github.com>
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: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to