@@ -665,21 +665,22 @@ object CollectObjectsToMap {
665665 * @param collClass The type of the resulting collection.
666666 */
667667 def apply (
668- keyFunction : Expression => Expression ,
669- keyInputData : Expression ,
670- keyElementType : DataType ,
671- valueFunction : Expression => Expression ,
672- valueInputData : Expression ,
673- valueElementType : DataType ,
674- collClass : Class [_]): CollectObjectsToMap = {
675- val keyLoopValue = " CollectObjectsToMap_loopValue" + curId.getAndIncrement()
676- val keyLoopIsNull = " CollectObjectsToMap_loopIsNull" + curId.getAndIncrement()
668+ keyFunction : Expression => Expression ,
669+ keyInputData : Expression ,
670+ keyElementType : DataType ,
671+ valueFunction : Expression => Expression ,
672+ valueInputData : Expression ,
673+ valueElementType : DataType ,
674+ collClass : Class [_]): CollectObjectsToMap = {
675+ val id = curId.getAndIncrement()
676+ val keyLoopValue = s " CollectObjectsToMap_keyLoopValue $id"
677+ val keyLoopIsNull = s " CollectObjectsToMap_keyLoopIsNull $id"
677678 val keyLoopVar = LambdaVariable (keyLoopValue, keyLoopIsNull, keyElementType)
678- val valueLoopValue = " CollectObjectsToMap_loopValue " + curId.getAndIncrement()
679- val valueLoopIsNull = " CollectObjectsToMap_loopIsNull " + curId.getAndIncrement()
679+ val valueLoopValue = s " CollectObjectsToMap_valueLoopValue $id "
680+ val valueLoopIsNull = s " CollectObjectsToMap_valueLoopIsNull $id "
680681 val valueLoopVar = LambdaVariable (valueLoopValue, valueLoopIsNull, valueElementType)
681- val tupleLoopVar = " CollectObjectsToMap_loopValue " + curId.getAndIncrement()
682- val builderValue = " CollectObjectsToMap_builderValue" + curId.getAndIncrement()
682+ val tupleLoopVar = s " CollectObjectsToMap_tupleLoopValue $id "
683+ val builderValue = s " CollectObjectsToMap_builderValue $id "
683684 CollectObjectsToMap (
684685 keyLoopValue, keyLoopIsNull, keyElementType, keyFunction(keyLoopVar), keyInputData,
685686 valueLoopValue, valueLoopIsNull, valueElementType, valueFunction(valueLoopVar),
@@ -720,19 +721,19 @@ object CollectObjectsToMap {
720721 * @param builderValue The name of the builder variable used to construct the resulting collection.
721722 */
722723case class CollectObjectsToMap private (
723- keyLoopValue : String ,
724- keyLoopIsNull : String ,
725- keyLoopVarDataType : DataType ,
726- keyLambdaFunction : Expression ,
727- keyInputData : Expression ,
728- valueLoopValue : String ,
729- valueLoopIsNull : String ,
730- valueLoopVarDataType : DataType ,
731- valueLambdaFunction : Expression ,
732- valueInputData : Expression ,
733- tupleLoopValue : String ,
734- collClass : Class [_],
735- builderValue : String ) extends Expression with NonSQLExpression {
724+ keyLoopValue : String ,
725+ keyLoopIsNull : String ,
726+ keyLoopVarDataType : DataType ,
727+ keyLambdaFunction : Expression ,
728+ keyInputData : Expression ,
729+ valueLoopValue : String ,
730+ valueLoopIsNull : String ,
731+ valueLoopVarDataType : DataType ,
732+ valueLambdaFunction : Expression ,
733+ valueInputData : Expression ,
734+ tupleLoopValue : String ,
735+ collClass : Class [_],
736+ builderValue : String ) extends Expression with NonSQLExpression {
736737
737738 override def nullable : Boolean = keyInputData.nullable
738739
0 commit comments