Skip to content

Commit 7bf7b29

Browse files
committed
[MINOR] Avoid code duplication for nullable in Higher Order function
1 parent 6193a20 commit 7bf7b29

File tree

1 file changed

+2
-12
lines changed

1 file changed

+2
-12
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/higherOrderFunctions.scala

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ trait HigherOrderFunction extends Expression with ExpectsInputTypes {
155155
*/
156156
trait SimpleHigherOrderFunction extends HigherOrderFunction {
157157

158+
override def nullable: Boolean = argument.nullable
159+
158160
def argument: Expression
159161

160162
override def arguments: Seq[Expression] = argument :: Nil
@@ -217,8 +219,6 @@ case class ArrayTransform(
217219
function: Expression)
218220
extends ArrayBasedSimpleHigherOrderFunction with CodegenFallback {
219221

220-
override def nullable: Boolean = argument.nullable
221-
222222
override def dataType: ArrayType = ArrayType(function.dataType, function.nullable)
223223

224224
override def bind(f: (Expression, Seq[(DataType, Boolean)]) => LambdaFunction): ArrayTransform = {
@@ -287,8 +287,6 @@ case class MapFilter(
287287
copy(function = f(function, (keyType, false) :: (valueType, valueContainsNull) :: Nil))
288288
}
289289

290-
override def nullable: Boolean = argument.nullable
291-
292290
override def nullSafeEval(inputRow: InternalRow, argumentValue: Any): Any = {
293291
val m = argumentValue.asInstanceOf[MapData]
294292
val f = functionForEval
@@ -328,8 +326,6 @@ case class ArrayFilter(
328326
function: Expression)
329327
extends ArrayBasedSimpleHigherOrderFunction with CodegenFallback {
330328

331-
override def nullable: Boolean = argument.nullable
332-
333329
override def dataType: DataType = argument.dataType
334330

335331
override def functionType: AbstractDataType = BooleanType
@@ -375,8 +371,6 @@ case class ArrayExists(
375371
function: Expression)
376372
extends ArrayBasedSimpleHigherOrderFunction with CodegenFallback {
377373

378-
override def nullable: Boolean = argument.nullable
379-
380374
override def dataType: DataType = BooleanType
381375

382376
override def functionType: AbstractDataType = BooleanType
@@ -516,8 +510,6 @@ case class TransformKeys(
516510
function: Expression)
517511
extends MapBasedSimpleHigherOrderFunction with CodegenFallback {
518512

519-
override def nullable: Boolean = argument.nullable
520-
521513
@transient lazy val MapType(keyType, valueType, valueContainsNull) = argument.dataType
522514

523515
override def dataType: DataType = MapType(function.dataType, valueType, valueContainsNull)
@@ -568,8 +560,6 @@ case class TransformValues(
568560
function: Expression)
569561
extends MapBasedSimpleHigherOrderFunction with CodegenFallback {
570562

571-
override def nullable: Boolean = argument.nullable
572-
573563
@transient lazy val MapType(keyType, valueType, valueContainsNull) = argument.dataType
574564

575565
override def dataType: DataType = MapType(keyType, function.dataType, function.nullable)

0 commit comments

Comments
 (0)