@@ -589,7 +589,8 @@ private SlotReference getContextPartitionColumn(IncrementCheckerContext context)
589
589
private static boolean checkPartition (Collection <? extends Expression > expressionsToCheck , Plan plan ,
590
590
IncrementCheckerContext context ) {
591
591
NamedExpression partitionColumn = context .getMvPartitionColumn ();
592
- for (Expression projectSlot : expressionsToCheck ) {
592
+
593
+ OUTER_CHECK : for (Expression projectSlot : expressionsToCheck ) {
593
594
if (projectSlot .isColumnFromTable () && projectSlot .equals (partitionColumn .toSlot ())) {
594
595
continue ;
595
596
}
@@ -621,7 +622,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
621
622
String .format ("partition expression use more than one slot reference, invalid "
622
623
+ "expressionToCheckColumns is %s, partitionColumnDateColumns is %s" ,
623
624
expressionToCheckColumns , partitionColumns ));
624
- return false ;
625
+ continue ;
625
626
}
626
627
List <Expression > expressions = expressionToCheck .collectToList (Expression .class ::isInstance );
627
628
for (Expression expression : expressions ) {
@@ -630,7 +631,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
630
631
context .addFailReason (
631
632
String .format ("column to check use invalid implicit expression, invalid "
632
633
+ "expression is %s" , expression ));
633
- return false ;
634
+ continue OUTER_CHECK ;
634
635
}
635
636
}
636
637
List <Expression > partitionExpressions = partitionExpression .collectToList (
@@ -641,7 +642,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
641
642
context .addFailReason (
642
643
String .format ("partition column use invalid implicit expression, invalid "
643
644
+ "expression is %s" , expression ));
644
- return false ;
645
+ continue OUTER_CHECK ;
645
646
}
646
647
}
647
648
List <DateTrunc > expressionToCheckDataTruncList =
@@ -652,16 +653,17 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
652
653
// mv time unit level is little then query
653
654
context .addFailReason ("partition column time unit level should be "
654
655
+ "greater than sql select column" );
655
- return false ;
656
+ continue ;
656
657
}
657
658
if (!partitionColumn .isColumnFromTable ()) {
658
659
context .setMvPartitionColumn (partitionColumns .iterator ().next ());
659
660
}
660
661
if (!context .getPartitionExpression ().isPresent ()) {
661
662
context .setPartitionExpression (partitionExpression );
662
663
}
664
+ return true ;
663
665
}
664
- return true ;
666
+ return false ;
665
667
}
666
668
}
667
669
0 commit comments