@@ -580,7 +580,8 @@ private SlotReference getContextPartitionColumn(IncrementCheckerContext context)
580
580
private static boolean checkPartition (Collection <? extends Expression > expressionsToCheck , Plan plan ,
581
581
IncrementCheckerContext context ) {
582
582
NamedExpression partitionColumn = context .getMvPartitionColumn ();
583
- for (Expression projectSlot : expressionsToCheck ) {
583
+
584
+ OUTER_CHECK : for (Expression projectSlot : expressionsToCheck ) {
584
585
if (projectSlot .isColumnFromTable () && projectSlot .equals (partitionColumn .toSlot ())) {
585
586
continue ;
586
587
}
@@ -612,7 +613,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
612
613
String .format ("partition expression use more than one slot reference, invalid "
613
614
+ "expressionToCheckColumns is %s, partitionColumnDateColumns is %s" ,
614
615
expressionToCheckColumns , partitionColumns ));
615
- return false ;
616
+ continue ;
616
617
}
617
618
List <Expression > expressions = expressionToCheck .collectToList (Expression .class ::isInstance );
618
619
for (Expression expression : expressions ) {
@@ -621,7 +622,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
621
622
context .addFailReason (
622
623
String .format ("column to check use invalid implicit expression, invalid "
623
624
+ "expression is %s" , expression ));
624
- return false ;
625
+ continue OUTER_CHECK ;
625
626
}
626
627
}
627
628
List <Expression > partitionExpressions = partitionExpression .collectToList (
@@ -632,7 +633,7 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
632
633
context .addFailReason (
633
634
String .format ("partition column use invalid implicit expression, invalid "
634
635
+ "expression is %s" , expression ));
635
- return false ;
636
+ continue OUTER_CHECK ;
636
637
}
637
638
}
638
639
List <DateTrunc > expressionToCheckDataTruncList =
@@ -643,16 +644,17 @@ private static boolean checkPartition(Collection<? extends Expression> expressio
643
644
// mv time unit level is little then query
644
645
context .addFailReason ("partition column time unit level should be "
645
646
+ "greater than sql select column" );
646
- return false ;
647
+ continue ;
647
648
}
648
649
if (!partitionColumn .isColumnFromTable ()) {
649
650
context .setMvPartitionColumn (partitionColumns .iterator ().next ());
650
651
}
651
652
if (!context .getPartitionExpression ().isPresent ()) {
652
653
context .setPartitionExpression (partitionExpression );
653
654
}
655
+ return true ;
654
656
}
655
- return true ;
657
+ return false ;
656
658
}
657
659
}
658
660
0 commit comments