[ https://issues.apache.org/jira/browse/FLINK-7339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Flink Jira Bot updated FLINK-7339: ---------------------------------- Labels: stale-assigned (was: ) > aggregationToString fails when user defined aggregation contains constants > -------------------------------------------------------------------------- > > Key: FLINK-7339 > URL: https://issues.apache.org/jira/browse/FLINK-7339 > Project: Flink > Issue Type: Bug > Components: API / DataStream, Table SQL / API > Affects Versions: 1.3.1 > Reporter: Stefano Bortoli > Assignee: Fabian Hueske > Priority: Major > Labels: stale-assigned > > Issue related to FLINK-7338, when the user defined aggregation contains a > constant it breaks the aggregation translation to string, which are mapped 1 > to 1 to the input fields. > OverAggregates.scala aggregationToString function fails to find a parameter > of the function among the input fields, and therefore throws a > RuntimeException. > {code} > private[flink] def aggregationToString( > inputType: RelDataType, > rowType: RelDataType, > namedAggregates: Seq[CalcitePair[AggregateCall, String]]): String = { > val inFields = inputType.getFieldNames.asScala > val outFields = rowType.getFieldNames.asScala > val aggStrings = namedAggregates.map(_.getKey).map( > a => s"${a.getAggregation}(${ > if (a.getArgList.size() > 0) { > // ERROR HAPPENS HERE! > a.getArgList.asScala.map(inFields(_)).mkString(", ") > } else { > "*" > } > })") > (inFields ++ aggStrings).zip(outFields).map { > case (f, o) => if (f == o) { > f > } else { > s"$f AS $o" > } > }.mkString(", ") > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)