@@ -59,20 +59,16 @@ trait InvokeLike extends Expression with NonSQLExpression {
5959 def prepareArguments (ctx : CodegenContext ): (String , String , String ) = {
6060
6161 val resultIsNull = if (needNullCheck) {
62- val resultIsNull = ctx.freshName(" resultIsNull" )
63- ctx.addMutableState(" boolean" , resultIsNull, " " )
64- resultIsNull
62+ ctx.freshName(" resultIsNull" )
6563 } else {
6664 " false"
6765 }
6866 val argValues = arguments.map { e =>
69- val argValue = ctx.freshName(" argValue" )
70- ctx.addMutableState(ctx.javaType(e.dataType), argValue, " " )
71- argValue
67+ ctx.freshName(" argValue" )
7268 }
7369
7470 val argCodes = if (needNullCheck) {
75- val reset = s " $resultIsNull = false; "
71+ val reset = s " boolean $resultIsNull = false; "
7672 val argCodes = arguments.zipWithIndex.map { case (e, i) =>
7773 val expr = e.genCode(ctx)
7874 val updateResultIsNull = if (e.nullable) {
@@ -81,6 +77,7 @@ trait InvokeLike extends Expression with NonSQLExpression {
8177 " "
8278 }
8379 s """
80+ ${ctx.javaType(e.dataType)} ${argValues(i)} = ${ctx.defaultValue(e.dataType)};
8481 if (! $resultIsNull) {
8582 ${expr.code}
8683 $updateResultIsNull
@@ -94,11 +91,11 @@ trait InvokeLike extends Expression with NonSQLExpression {
9491 val expr = e.genCode(ctx)
9592 s """
9693 ${expr.code}
97- ${argValues(i)} = ${expr.value};
94+ ${ctx.javaType(e.dataType)} ${ argValues(i)} = ${expr.value};
9895 """
9996 }
10097 }
101- val argCode = ctx.splitExpressions(ctx. INPUT_ROW , argCodes )
98+ val argCode = argCodes.mkString( " \n " )
10299
103100 (argCode, argValues.mkString(" , " ), resultIsNull)
104101 }
0 commit comments