Github user maropu commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22512#discussion_r227609747
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/InternalRow.scala ---
    @@ -143,4 +144,24 @@ object InternalRow {
         case u: UserDefinedType[_] => getAccessor(u.sqlType)
         case _ => (input, ordinal) => input.get(ordinal, dataType)
       }
    +
    +  /**
    +   * Returns a writer for an `InternalRow` with given data type.
    +   */
    +  def getWriter(ordinal: Int, dt: DataType): (InternalRow, Any) => Unit = 
dt match {
    +    case BooleanType => (input, v) => input.setBoolean(ordinal, 
v.asInstanceOf[Boolean])
    +    case ByteType => (input, v) => input.setByte(ordinal, 
v.asInstanceOf[Byte])
    +    case ShortType => (input, v) => input.setShort(ordinal, 
v.asInstanceOf[Short])
    +    case IntegerType | DateType => (input, v) => input.setInt(ordinal, 
v.asInstanceOf[Int])
    +    case LongType | TimestampType => (input, v) => input.setLong(ordinal, 
v.asInstanceOf[Long])
    +    case FloatType => (input, v) => input.setFloat(ordinal, 
v.asInstanceOf[Float])
    +    case DoubleType => (input, v) => input.setDouble(ordinal, 
v.asInstanceOf[Double])
    +    case DecimalType.Fixed(precision, _) =>
    +      (input, v) => input.setDecimal(ordinal, v.asInstanceOf[Decimal], 
precision)
    +    case CalendarIntervalType | BinaryType | _: ArrayType | StringType | 
_: StructType |
    +         _: MapType | _: ObjectType | _: UserDefinedType[_] =>
    +      (input, v) => input.update(ordinal, v)
    +    case NullType => (input, v) => {}
    --- End diff --
    
    ok


---

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

Reply via email to