Github user mgaido91 commented on a diff in the pull request: https://github.com/apache/spark/pull/19480#discussion_r144284488 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala --- @@ -798,10 +830,35 @@ class CodegenContext { | ${makeSplitFunction(body)} |} """.stripMargin - addNewFunction(name, code) + addNewFunctionInternal(name, code, inlineToOuterClass = false) } - foldFunctions(functions.map(name => s"$name(${arguments.map(_._2).mkString(", ")})")) + val outerClassFunctions = functions + .filter(_.subclassName.isEmpty) + .map(_.functionName) + + val innerClassFunctions = functions + .filter(_.subclassName.isDefined) + .foldLeft(Map.empty[(String, String), Seq[String]]) { case (acc, f) => + val key = (f.subclassName.get, f.subclassInstance.get) + acc.updated(key, acc.getOrElse(key, Seq.empty[String]) ++ Seq(f.functionName)) + } + .map { case ((subclassName, subclassInstance), subclassFunctions) => --- End diff -- you're right, even though this is very unlikely. We might also think of a threshold maybe. Which is the right approach according to you?
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org