def toStructField()

in spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/model/GeoPackageField.scala [30:60]


  def toStructField(tableType: TableType): StructField = {
    dataType match {
      case startsWith: String if startsWith.startsWith(GeoPackageType.TEXT) =>
        StructField(name, StringType)
      case startsWith: String if startsWith.startsWith(GeoPackageType.BLOB) => {
        if (tableType == TableType.TILES) {
          return StructField(name, RasterUDT)
        }

        StructField(name, BinaryType)
      }
      case GeoPackageType.INTEGER | GeoPackageType.INT | GeoPackageType.SMALLINT |
          GeoPackageType.TINY_INT | GeoPackageType.MEDIUMINT =>
        StructField(name, IntegerType)
      case GeoPackageType.POINT => StructField(name, GeometryUDT)
      case GeoPackageType.LINESTRING => StructField(name, GeometryUDT)
      case GeoPackageType.POLYGON => StructField(name, GeometryUDT)
      case GeoPackageType.GEOMETRY => StructField(name, GeometryUDT)
      case GeoPackageType.MULTIPOINT => StructField(name, GeometryUDT)
      case GeoPackageType.MULTILINESTRING => StructField(name, GeometryUDT)
      case GeoPackageType.MULTIPOLYGON => StructField(name, GeometryUDT)
      case GeoPackageType.GEOMETRYCOLLECTION => StructField(name, GeometryUDT)
      case GeoPackageType.REAL => StructField(name, DoubleType)
      case GeoPackageType.BOOLEAN => StructField(name, BooleanType)
      case GeoPackageType.DATE => StructField(name, DateType)
      case GeoPackageType.DATETIME => StructField(name, TimestampType)
      case GeoPackageType.FLOAT => StructField(name, FloatType)
      case GeoPackageType.DOUBLE => StructField(name, DoubleType)
      case _ => StructField(name, StringType)
    }
  }