Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-27790 Support ANSI SQL INTERVAL types
  3. SPARK-37161

RowToColumnConverter support AnsiIntervalType

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.3.0
    • 3.3.0
    • SQL
    • None

    Description

      currently, we have RowToColumnConverter for all data types except AnsiIntervalType

      // code placeholder
      val core = dataType match {
        case BinaryType => BinaryConverter
        case BooleanType => BooleanConverter
        case ByteType => ByteConverter
        case ShortType => ShortConverter
        case IntegerType | DateType => IntConverter
        case FloatType => FloatConverter
        case LongType | TimestampType => LongConverter
        case DoubleType => DoubleConverter
        case StringType => StringConverter
        case CalendarIntervalType => CalendarConverter
        case at: ArrayType => ArrayConverter(getConverterForType(at.elementType, at.containsNull))
        case st: StructType => new StructConverter(st.fields.map(
          (f) => getConverterForType(f.dataType, f.nullable)))
        case dt: DecimalType => new DecimalConverter(dt)
        case mt: MapType => MapConverter(getConverterForType(mt.keyType, nullable = false),
          getConverterForType(mt.valueType, mt.valueContainsNull))
        case unknown => throw QueryExecutionErrors.unsupportedDataTypeError(unknown.toString)
      }
      
      if (nullable) {
        dataType match {
          case CalendarIntervalType => new StructNullableTypeConverter(core)
          case st: StructType => new StructNullableTypeConverter(core)
          case _ => new BasicNullableTypeConverter(core)
        }
      } else {
        core
      }
      
      

       

      Attachments

        Activity

          People

            xiaopenglei PengLei
            xiaopenglei PengLei
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: