Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.19.0
Description
The hash collision is possible for InputSideHasNoUniqueKeyBundle. To reproduce it just launch the following test within StreamingMiniBatchJoinOperatorTest:
@Tag("miniBatchSize=6") @Test public void testInnerJoinWithNoUniqueKeyHashCollision(TestInfo testInfo) throws Exception { leftTypeInfo = InternalTypeInfo.of( RowType.of( new LogicalType[] {new IntType(), new BigIntType()}, new String[] {"id1", "val1"})); rightTypeInfo = InternalTypeInfo.of( RowType.of( new LogicalType[] {new IntType(), new BigIntType()}, new String[] {"id2", "val2"})); leftKeySelector = HandwrittenSelectorUtil.getRowDataSelector( new int[] {0}, leftTypeInfo.toRowType().getChildren().toArray(new LogicalType[0])); rightKeySelector = HandwrittenSelectorUtil.getRowDataSelector( new int[] {0}, rightTypeInfo.toRowType().getChildren().toArray(new LogicalType[0])); joinKeyTypeInfo = InternalTypeInfo.of(new IntType()); super.beforeEach(testInfo); testHarness.setStateTtlProcessingTime(1); testHarness.processElement2(insertRecord(1, 1L)); testHarness.processElement1(insertRecord(1, 4294967296L)); testHarness.processElement2(insertRecord(1, 4294967296L)); testHarness.processElement2(deleteRecord(1, 1L)); testHarness.close(); assertor.shouldEmit(testHarness, rowOfKind(RowKind.INSERT, 1, 4294967296L, 1, 4294967296L)); }