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 7965e042eb8 Refactor set operator tests to use
BlockListMultiStageOperator instead of mocks (#16601)
7965e042eb8 is described below
commit 7965e042eb809846aad795bd9ea8764af361b4b9
Author: Yash Mayya <[email protected]>
AuthorDate: Sat Aug 16 03:04:33 2025 +0530
Refactor set operator tests to use BlockListMultiStageOperator instead of
mocks (#16601)
---
.../operator/set/IntersectAllOperatorTest.java | 72 ++++++--------
.../operator/set/IntersectOperatorTest.java | 100 +++++++++-----------
.../runtime/operator/set/MinusAllOperatorTest.java | 73 ++++++--------
.../runtime/operator/set/MinusOperatorTest.java | 105 +++++++++------------
.../runtime/operator/set/UnionAllOperatorTest.java | 73 +++++---------
.../runtime/operator/set/UnionOperatorTest.java | 75 +++++----------
6 files changed, 196 insertions(+), 302 deletions(-)
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectAllOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectAllOperatorTest.java
index b052d532650..2c3f53c19f9 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectAllOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectAllOperatorTest.java
@@ -22,59 +22,34 @@ import com.google.common.collect.ImmutableList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class IntersectAllOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
-
@Test
public void testIntersectAllOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col"},
new DataSchema.ColumnDataType[]{DataSchema.ColumnDataType.INT});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1}, new
Object[]{2}, new Object[]{3}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1}, new Object[]{2},
new Object[]{4}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(3)
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(4)
+ .buildWithEos();
IntersectAllOperator intersectOperator =
- new IntersectAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
@@ -94,16 +69,23 @@ public class IntersectAllOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col"},
new DataSchema.ColumnDataType[]{DataSchema.ColumnDataType.INT});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1}, new
Object[]{2}, new Object[]{2}, new Object[]{3},
- new Object[]{3}, new Object[]{3}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{2}, new Object[]{3},
new Object[]{3}, new Object[]{4}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(2)
+ .addRow(3)
+ .addRow(3)
+ .addRow(3)
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(2)
+ .addRow(3)
+ .addRow(3)
+ .addRow(4)
+ .buildWithEos();
IntersectAllOperator intersectOperator =
- new IntersectAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectOperatorTest.java
index 4252d0a895a..648c76f8b71 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/IntersectOperatorTest.java
@@ -22,59 +22,35 @@ import com.google.common.collect.ImmutableList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.ErrorMseBlock;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class IntersectOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
@Test
public void testIntersectOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{3, "CC"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{4, "DD"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(4, "DD")
+ .buildWithEos();
IntersectOperator intersectOperator =
- new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
@@ -94,17 +70,25 @@ public class IntersectOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{3, "CC"},
- new Object[]{1, "AA"}, new Object[]{2, "BB"}, new Object[]{3,
"CC"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{4, "DD"},
- new Object[]{1, "AA"}, new Object[]{2, "BB"}, new Object[]{4,
"DD"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(4, "CC")
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(4, "DD")
+ .buildWithEos();
IntersectOperator intersectOperator =
- new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
@@ -124,14 +108,15 @@ public class IntersectOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
right operator")));
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in right operator")));
IntersectOperator intersectOperator =
- new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
@@ -146,14 +131,15 @@ public class IntersectOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
left operator")));
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in left operator")));
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(3, "aa")
+ .addRow(4, "bb")
+ .buildWithEos();
IntersectOperator intersectOperator =
- new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new IntersectOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = intersectOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusAllOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusAllOperatorTest.java
index 869c4277b39..00a975faf15 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusAllOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusAllOperatorTest.java
@@ -22,58 +22,35 @@ import com.google.common.collect.ImmutableList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class MinusAllOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
@Test
public void testExceptAllOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col"}, new
DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1}, new
Object[]{2}, new Object[]{3}, new Object[]{4}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1}, new Object[]{2},
new Object[]{5}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(3)
+ .addRow(4)
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(5)
+ .buildWithEos();
MinusAllOperator minusOperator =
- new MinusAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
@@ -93,16 +70,24 @@ public class MinusAllOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col"}, new
DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1}, new
Object[]{2}, new Object[]{2}, new Object[]{2},
- new Object[]{3}, new Object[]{3}, new Object[]{3}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{2}, new Object[]{3},
new Object[]{3}, new Object[]{4}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1)
+ .addRow(2)
+ .addRow(2)
+ .addRow(2)
+ .addRow(3)
+ .addRow(3)
+ .addRow(3)
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(2)
+ .addRow(3)
+ .addRow(3)
+ .addRow(4)
+ .buildWithEos();
MinusAllOperator minusOperator =
- new MinusAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusOperatorTest.java
index 967164eb126..28ac9dd15fe 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/MinusOperatorTest.java
@@ -22,60 +22,36 @@ import com.google.common.collect.ImmutableList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.ErrorMseBlock;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class MinusOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
@Test
public void testExceptOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{3, "CC"},
- new Object[]{4, "DD"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{5, "EE"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .addRow(4, "DD")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(5, "EE")
+ .buildWithEos();
MinusOperator minusOperator =
- new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
@@ -95,18 +71,27 @@ public class MinusOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{3, "CC"},
- new Object[]{4, "DD"}, new Object[]{1, "AA"}, new Object[]{2,
"BB"}, new Object[]{3, "CC"},
- new Object[]{4, "DD"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}, new Object[]{5, "EE"},
- new Object[]{1, "AA"}, new Object[]{2, "BB"}, new Object[]{5,
"EE"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .addRow(4, "DD")
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(3, "CC")
+ .addRow(4, "DD")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(5, "EE")
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .addRow(5, "EE")
+ .buildWithEos();
MinusOperator minusOperator =
- new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
@@ -126,14 +111,15 @@ public class MinusOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
right operator")));
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in right operator")));
MinusOperator minusOperator =
- new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
@@ -148,14 +134,15 @@ public class MinusOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
left operator")));
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in left operator")));
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(3, "aa")
+ .addRow(4, "bb")
+ .buildWithEos();
MinusOperator minusOperator =
- new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new MinusOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = minusOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionAllOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionAllOperatorTest.java
index 3299a84fee7..fdfc494c1a9 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionAllOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionAllOperatorTest.java
@@ -23,59 +23,34 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.ErrorMseBlock;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class UnionAllOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
@Test
public void testUnionOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock()).thenReturn(
- OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}, new Object[]{5, "cc"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(3, "aa")
+ .addRow(4, "bb")
+ .addRow(5, "cc")
+ .buildWithEos();
UnionAllOperator unionAllOperator =
- new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
List<Object[]> resultRows = new ArrayList<>();
MseBlock result = unionAllOperator.nextBlock();
@@ -99,14 +74,15 @@ public class UnionAllOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
right operator")));
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in right operator")));
UnionAllOperator unionAllOperator =
- new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = unionAllOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
@@ -121,14 +97,15 @@ public class UnionAllOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
left operator")));
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in left operator")));
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(3, "aa")
+ .addRow(4, "bb")
+ .buildWithEos();
UnionAllOperator unionAllOperator =
- new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionAllOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = unionAllOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
diff --git
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionOperatorTest.java
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionOperatorTest.java
index cfb9f55ed49..971bbb34062 100644
---
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionOperatorTest.java
+++
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/set/UnionOperatorTest.java
@@ -23,60 +23,35 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.pinot.common.utils.DataSchema;
-import org.apache.pinot.query.routing.VirtualServerAddress;
import org.apache.pinot.query.runtime.blocks.ErrorMseBlock;
import org.apache.pinot.query.runtime.blocks.MseBlock;
-import org.apache.pinot.query.runtime.blocks.SuccessMseBlock;
+import org.apache.pinot.query.runtime.operator.BlockListMultiStageOperator;
import org.apache.pinot.query.runtime.operator.MultiStageOperator;
import org.apache.pinot.query.runtime.operator.OperatorTestUtil;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class UnionOperatorTest {
- private AutoCloseable _mocks;
-
- @Mock
- private MultiStageOperator _leftOperator;
-
- @Mock
- private MultiStageOperator _rightOperator;
-
- @Mock
- private VirtualServerAddress _serverAddress;
-
- @BeforeMethod
- public void setUp() {
- _mocks = MockitoAnnotations.openMocks(this);
- Mockito.when(_serverAddress.toString()).thenReturn(new
VirtualServerAddress("mock", 80, 0).toString());
- }
-
- @AfterMethod
- public void tearDown()
- throws Exception {
- _mocks.close();
- }
@Test
public void testUnionOperator() {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}, new Object[]{5, "cc"},
- new Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(3, "aa")
+ .addRow(4, "bb")
+ .addRow(5, "cc")
+ .addRow(2, "BB")
+ .buildWithEos();
UnionOperator unionOperator =
- new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
List<Object[]> resultRows = new ArrayList<>();
MseBlock result = unionOperator.nextBlock();
@@ -98,14 +73,15 @@ public class UnionOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{1, "AA"}, new
Object[]{2, "BB"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
right operator")));
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in right operator")));
UnionOperator unionOperator =
- new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = unionOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
@@ -120,14 +96,15 @@ public class UnionOperatorTest {
DataSchema schema = new DataSchema(new String[]{"int_col", "string_col"},
new DataSchema.ColumnDataType[]{
DataSchema.ColumnDataType.INT, DataSchema.ColumnDataType.STRING
});
- Mockito.when(_leftOperator.nextBlock())
- .thenReturn(ErrorMseBlock.fromException(new RuntimeException("Error in
left operator")));
- Mockito.when(_rightOperator.nextBlock())
- .thenReturn(OperatorTestUtil.block(schema, new Object[]{3, "aa"}, new
Object[]{4, "bb"}))
- .thenReturn(SuccessMseBlock.INSTANCE);
+ MultiStageOperator leftOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .buildWithError(ErrorMseBlock.fromException(new
RuntimeException("Error in left operator")));
+ MultiStageOperator rightOperator = new
BlockListMultiStageOperator.Builder(schema)
+ .addRow(1, "AA")
+ .addRow(2, "BB")
+ .buildWithEos();
UnionOperator unionOperator =
- new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(_leftOperator, _rightOperator),
+ new UnionOperator(OperatorTestUtil.getTracingContext(),
ImmutableList.of(leftOperator, rightOperator),
schema);
MseBlock result = unionOperator.nextBlock();
// Keep calling nextBlock until we get an EoS block
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]