liuyongvs commented on code in PR #24015:
URL: https://github.com/apache/flink/pull/24015#discussion_r1439142391
##########
flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/agg/AggsHandlerCodeGenerator.scala:
##########
@@ -1230,8 +1232,26 @@ class AggsHandlerCodeGenerator(
needReset: Boolean = false,
needEmitValue: Boolean = false): Unit = {
// check and validate the needed methods
+ aggBufferCodeGens.zipWithIndex.foreach {
+ case (aggBufferCodeGen, index) =>
+ aggBufferCodeGen.checkNeededMethods(
+ needAccumulate,
+ needRetract && aggCallNeedRetractions(index),
+ needMerge,
Review Comment:
needRetract && index < aggCallNeedRetractions.length &&
aggCallNeedRetractions(index)
1. if needRetract is true, aggCallNeedRetractions can not be null, because
it will be set by needRetract(aggCallNeedRetractions: Array[Boolean]) and we
should add index < aggCallNeedRetractions.length because aggCalls have basic
functions , while aggBufferCodeGens have
countStar/distinct code function
3. if needRetract is false, although aggCallNeedRetractions is null, but
needRetract is false, will not run the logical of
aggCallNeedRetractions(index),. so it will not throw NPE or OutofBoundArray
Exception
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]