Skip to content

Commit

Permalink
[BugFix] Fix for npe NormalizePredicateRule (backport #52326) (#53088)
Browse files Browse the repository at this point in the history
Co-authored-by: Kishore Kumar M V <[email protected]>
  • Loading branch information
mergify[bot] and ikishore authored Nov 21, 2024
1 parent ac98db9 commit 307a91e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@ private Optional<ScalarOperator> getOptimizedCompoundTree(CompoundPredicateOpera
parent.setCompoundTreeUniqueLeaves(compoundTreeUniqueLeaves);

// this tree can be optimized
if (compoundTreeUniqueLeaves.size() != parent.getCompoundTreeLeafNodeNumber()) {
if (compoundTreeUniqueLeaves != null &&
compoundTreeUniqueLeaves.size() != parent.getCompoundTreeLeafNodeNumber()) {
ScalarOperator newTree = Utils.createCompound(parent.getCompoundType(),
compoundTreeUniqueLeaves.stream().map(
node -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,20 @@ public void testCompound1() {
ScalarOperator res =
operatorRewriter.rewrite(compoundPredicateOperator, Lists.newArrayList(new NormalizePredicateRule()));
}

@Test
public void testCompound2() {
InPredicateOperator inOp = new InPredicateOperator(
false,
ConstantOperator.createInt(1063),
new ColumnRefOperator(0, Type.INT, "col1", false),
new ColumnRefOperator(1, Type.INT, "col2", false),
new ColumnRefOperator(2, Type.INT, "col3", false),
new ColumnRefOperator(3, Type.INT, "col4", false)
);

ScalarOperatorRewriter operatorRewriter = new ScalarOperatorRewriter();
ScalarOperator res =
operatorRewriter.rewrite(inOp, Lists.newArrayList(new NormalizePredicateRule()));
}
}

0 comments on commit 307a91e

Please sign in to comment.