Repository: spark
Updated Branches:
  refs/heads/master c5cc41468 -> 64262ed99


[SPARK-6483][SQL]Improve ScalaUdf called performance.

As issue [SPARK-6483](https://issues.apache.org/jira/browse/SPARK-6483) 
description, ScalaUdf is low performance because of calling *asInstanceOf* to 
convert per record.
With this, the performance of ScalaUdf is the same as other case.
thank lianhuiwang for telling me how to resolve this problem.

Author: zzcclp <xm_...@sina.com>

Closes #5154 from zzcclp/SPARK-6483 and squashes the following commits:

5ac6e09 [zzcclp] Add a newline at the end of source file
cc6868e [zzcclp] Fix for fail on unit test.
0a8cdc3 [zzcclp] indention issue
b73836a [zzcclp] Access Seq[Expression] element by :: operator, and update the 
code gen script.
7763848 [zzcclp] rebase from master


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/64262ed9
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/64262ed9
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/64262ed9

Branch: refs/heads/master
Commit: 64262ed99912e780b51f240a14dc98fc3cdf916d
Parents: c5cc414
Author: zzcclp <xm_...@sina.com>
Authored: Wed Mar 25 19:11:04 2015 +0800
Committer: Cheng Lian <l...@databricks.com>
Committed: Wed Mar 25 19:11:04 2015 +0800

----------------------------------------------------------------------
 .../sql/catalyst/expressions/ScalaUdf.scala     | 1016 ++++++++++++------
 1 file changed, 661 insertions(+), 355 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/64262ed9/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ScalaUdf.scala
----------------------------------------------------------------------
diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ScalaUdf.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ScalaUdf.scala
index 1fd5ce3..389dc4f 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ScalaUdf.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ScalaUdf.scala
@@ -39,363 +39,669 @@ case class ScalaUdf(function: AnyRef, dataType: DataType, 
children: Seq[Expressi
 
     (1 to 22).map { x =>
       val anys = (1 to x).map(x => "Any").reduce(_ + ", " + _)
-      val evals = (0 to x - 1).map(x => s"    
ScalaReflection.convertToScala(children($x).eval(input), 
children($x).dataType)").reduce(_ + ",\n    " + _)
-
-    s"""
-    case $x =>
-      function.asInstanceOf[($anys) => Any](
-    $evals)
-    """
+      val childs = (0 to x - 1).map(x => s"val child$x = 
children($x)").reduce(_ + "\n      " + _)
+      val evals = (0 to x - 1).map(x => 
s"ScalaReflection.convertToScala(child$x.eval(input), 
child$x.dataType)").reduce(_ + ",\n          " + _)
+
+      s"""    case $x =>
+      val func = function.asInstanceOf[($anys) => Any]
+      $childs
+      (input: Row) => {
+        func(
+          $evals)
+      }
+      """
     }.foreach(println)
 
   */
-
-  override def eval(input: Row): Any = {
-    val result = children.size match {
-      case 0 => function.asInstanceOf[() => Any]()
-      case 1 =>
-        function.asInstanceOf[(Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType))
-
-
-      case 2 =>
-        function.asInstanceOf[(Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType))
-
-
-      case 3 =>
-        function.asInstanceOf[(Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType))
-
-
-      case 4 =>
-        function.asInstanceOf[(Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType))
-
-
-      case 5 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType))
-
-
-      case 6 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType))
-
-
-      case 7 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType))
-
-
-      case 8 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType))
-
-
-      case 9 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any) => 
Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType))
-
-
-      case 10 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType))
-
-
-      case 11 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType))
-
-
-      case 12 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType))
-
-
-      case 13 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType))
-
-
-      case 14 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType))
-
-
-      case 15 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType))
-
-
-      case 16 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType))
-
-
-      case 17 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType))
-
-
-      case 18 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType),
-          ScalaReflection.convertToScala(children(17).eval(input), 
children(17).dataType))
-
-
-      case 19 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType),
-          ScalaReflection.convertToScala(children(17).eval(input), 
children(17).dataType),
-          ScalaReflection.convertToScala(children(18).eval(input), 
children(18).dataType))
-
-
-      case 20 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType),
-          ScalaReflection.convertToScala(children(17).eval(input), 
children(17).dataType),
-          ScalaReflection.convertToScala(children(18).eval(input), 
children(18).dataType),
-          ScalaReflection.convertToScala(children(19).eval(input), 
children(19).dataType))
-
-
-      case 21 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType),
-          ScalaReflection.convertToScala(children(17).eval(input), 
children(17).dataType),
-          ScalaReflection.convertToScala(children(18).eval(input), 
children(18).dataType),
-          ScalaReflection.convertToScala(children(19).eval(input), 
children(19).dataType),
-          ScalaReflection.convertToScala(children(20).eval(input), 
children(20).dataType))
-
-
-      case 22 =>
-        function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any](
-          ScalaReflection.convertToScala(children(0).eval(input), 
children(0).dataType),
-          ScalaReflection.convertToScala(children(1).eval(input), 
children(1).dataType),
-          ScalaReflection.convertToScala(children(2).eval(input), 
children(2).dataType),
-          ScalaReflection.convertToScala(children(3).eval(input), 
children(3).dataType),
-          ScalaReflection.convertToScala(children(4).eval(input), 
children(4).dataType),
-          ScalaReflection.convertToScala(children(5).eval(input), 
children(5).dataType),
-          ScalaReflection.convertToScala(children(6).eval(input), 
children(6).dataType),
-          ScalaReflection.convertToScala(children(7).eval(input), 
children(7).dataType),
-          ScalaReflection.convertToScala(children(8).eval(input), 
children(8).dataType),
-          ScalaReflection.convertToScala(children(9).eval(input), 
children(9).dataType),
-          ScalaReflection.convertToScala(children(10).eval(input), 
children(10).dataType),
-          ScalaReflection.convertToScala(children(11).eval(input), 
children(11).dataType),
-          ScalaReflection.convertToScala(children(12).eval(input), 
children(12).dataType),
-          ScalaReflection.convertToScala(children(13).eval(input), 
children(13).dataType),
-          ScalaReflection.convertToScala(children(14).eval(input), 
children(14).dataType),
-          ScalaReflection.convertToScala(children(15).eval(input), 
children(15).dataType),
-          ScalaReflection.convertToScala(children(16).eval(input), 
children(16).dataType),
-          ScalaReflection.convertToScala(children(17).eval(input), 
children(17).dataType),
-          ScalaReflection.convertToScala(children(18).eval(input), 
children(18).dataType),
-          ScalaReflection.convertToScala(children(19).eval(input), 
children(19).dataType),
-          ScalaReflection.convertToScala(children(20).eval(input), 
children(20).dataType),
-          ScalaReflection.convertToScala(children(21).eval(input), 
children(21).dataType))
-
-    }
-    // scalastyle:on
-
-    ScalaReflection.convertToCatalyst(result, dataType)
+  
+  val f = children.size match {
+    case 0 => 
+      val func = function.asInstanceOf[() => Any]
+      (input: Row) => {
+        func()
+      }
+      
+    case 1 =>
+      val func = function.asInstanceOf[(Any) => Any]
+      val child0 = children(0)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType))
+      }
+      
+    case 2 =>
+      val func = function.asInstanceOf[(Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType))
+      }
+      
+    case 3 =>
+      val func = function.asInstanceOf[(Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType))
+      }
+      
+    case 4 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType))
+      }
+      
+    case 5 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType))
+      }
+      
+    case 6 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType))
+      }
+      
+    case 7 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any) => 
Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType))
+      }
+      
+    case 8 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType))
+      }
+      
+    case 9 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType))
+      }
+      
+    case 10 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType))
+      }
+      
+    case 11 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType))
+      }
+      
+    case 12 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType))
+      }
+      
+    case 13 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType))
+      }
+      
+    case 14 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType))
+      }
+      
+    case 15 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType))
+      }
+      
+    case 16 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType))
+      }
+      
+    case 17 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType))
+      }
+      
+    case 18 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      val child17 = children(17)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType),
+          ScalaReflection.convertToScala(child17.eval(input), 
child17.dataType))
+      }
+      
+    case 19 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      val child17 = children(17)
+      val child18 = children(18)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType),
+          ScalaReflection.convertToScala(child17.eval(input), 
child17.dataType),
+          ScalaReflection.convertToScala(child18.eval(input), 
child18.dataType))
+      }
+      
+    case 20 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      val child17 = children(17)
+      val child18 = children(18)
+      val child19 = children(19)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType),
+          ScalaReflection.convertToScala(child17.eval(input), 
child17.dataType),
+          ScalaReflection.convertToScala(child18.eval(input), 
child18.dataType),
+          ScalaReflection.convertToScala(child19.eval(input), 
child19.dataType))
+      }
+      
+    case 21 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      val child17 = children(17)
+      val child18 = children(18)
+      val child19 = children(19)
+      val child20 = children(20)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType),
+          ScalaReflection.convertToScala(child17.eval(input), 
child17.dataType),
+          ScalaReflection.convertToScala(child18.eval(input), 
child18.dataType),
+          ScalaReflection.convertToScala(child19.eval(input), 
child19.dataType),
+          ScalaReflection.convertToScala(child20.eval(input), 
child20.dataType))
+      }
+      
+    case 22 =>
+      val func = function.asInstanceOf[(Any, Any, Any, Any, Any, Any, Any, 
Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) => 
Any]
+      val child0 = children(0)
+      val child1 = children(1)
+      val child2 = children(2)
+      val child3 = children(3)
+      val child4 = children(4)
+      val child5 = children(5)
+      val child6 = children(6)
+      val child7 = children(7)
+      val child8 = children(8)
+      val child9 = children(9)
+      val child10 = children(10)
+      val child11 = children(11)
+      val child12 = children(12)
+      val child13 = children(13)
+      val child14 = children(14)
+      val child15 = children(15)
+      val child16 = children(16)
+      val child17 = children(17)
+      val child18 = children(18)
+      val child19 = children(19)
+      val child20 = children(20)
+      val child21 = children(21)
+      (input: Row) => {
+        func(
+          ScalaReflection.convertToScala(child0.eval(input), child0.dataType),
+          ScalaReflection.convertToScala(child1.eval(input), child1.dataType),
+          ScalaReflection.convertToScala(child2.eval(input), child2.dataType),
+          ScalaReflection.convertToScala(child3.eval(input), child3.dataType),
+          ScalaReflection.convertToScala(child4.eval(input), child4.dataType),
+          ScalaReflection.convertToScala(child5.eval(input), child5.dataType),
+          ScalaReflection.convertToScala(child6.eval(input), child6.dataType),
+          ScalaReflection.convertToScala(child7.eval(input), child7.dataType),
+          ScalaReflection.convertToScala(child8.eval(input), child8.dataType),
+          ScalaReflection.convertToScala(child9.eval(input), child9.dataType),
+          ScalaReflection.convertToScala(child10.eval(input), 
child10.dataType),
+          ScalaReflection.convertToScala(child11.eval(input), 
child11.dataType),
+          ScalaReflection.convertToScala(child12.eval(input), 
child12.dataType),
+          ScalaReflection.convertToScala(child13.eval(input), 
child13.dataType),
+          ScalaReflection.convertToScala(child14.eval(input), 
child14.dataType),
+          ScalaReflection.convertToScala(child15.eval(input), 
child15.dataType),
+          ScalaReflection.convertToScala(child16.eval(input), 
child16.dataType),
+          ScalaReflection.convertToScala(child17.eval(input), 
child17.dataType),
+          ScalaReflection.convertToScala(child18.eval(input), 
child18.dataType),
+          ScalaReflection.convertToScala(child19.eval(input), 
child19.dataType),
+          ScalaReflection.convertToScala(child20.eval(input), 
child20.dataType),
+          ScalaReflection.convertToScala(child21.eval(input), 
child21.dataType))
+      }
   }
+  
+  // scalastyle:on
+  
+  override def eval(input: Row): Any = 
ScalaReflection.convertToCatalyst(f(input), dataType)
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to