in externals/kyuubi-flink-sql-engine/src/main/scala/org/apache/kyuubi/engine/flink/operation/GetColumns.scala [143:172]
private def toJavaSQLType(flinkType: LogicalType): Int = flinkType.getClass match {
case c: Class[_] if c == classOf[NullType] => java.sql.Types.NULL
case c: Class[_] if c == classOf[BooleanType] => java.sql.Types.BOOLEAN
case c: Class[_] if c == classOf[TinyIntType] => java.sql.Types.TINYINT
case c: Class[_] if c == classOf[SmallIntType] => java.sql.Types.SMALLINT
case c: Class[_] if c == classOf[IntType] => java.sql.Types.INTEGER
case c: Class[_] if c == classOf[BigIntType] => java.sql.Types.BIGINT
case c: Class[_] if c == classOf[FloatType] => java.sql.Types.FLOAT
case c: Class[_] if c == classOf[DoubleType] => java.sql.Types.DOUBLE
case c: Class[_] if c == classOf[CharType] => java.sql.Types.CHAR
case c: Class[_] if c == classOf[VarCharType] => java.sql.Types.VARCHAR
case c: Class[_] if c == classOf[DecimalType] => java.sql.Types.DECIMAL
case c: Class[_] if c == classOf[DateType] => java.sql.Types.DATE
case c: Class[_] if c == classOf[TimestampType] => java.sql.Types.TIMESTAMP
case c: Class[_] if c == classOf[DayTimeIntervalType] => java.sql.Types.OTHER
case c: Class[_] if c == classOf[YearMonthIntervalType] => java.sql.Types.OTHER
case c: Class[_] if c == classOf[ZonedTimestampType] => java.sql.Types.TIMESTAMP
case c: Class[_] if c == classOf[TimeType] => java.sql.Types.TIME
case c: Class[_] if c == classOf[BinaryType] => java.sql.Types.BINARY
case c: Class[_] if c == classOf[VarBinaryType] => java.sql.Types.BINARY
case c: Class[_] if c == classOf[ArrayType] => java.sql.Types.ARRAY
case c: Class[_] if c == classOf[MapType] => java.sql.Types.JAVA_OBJECT
case c: Class[_] if c == classOf[MultisetType] => java.sql.Types.JAVA_OBJECT
case c: Class[_] if c == classOf[StructuredType] => java.sql.Types.STRUCT
case c: Class[_] if c == classOf[DistinctType] => java.sql.Types.OTHER
case c: Class[_] if c == classOf[RawType[_]] => java.sql.Types.OTHER
case c: Class[_] if c == classOf[RowType] => java.sql.Types.STRUCT
case c: Class[_] if c == classOf[SymbolType[_]] => java.sql.Types.OTHER
case _ => java.sql.Types.OTHER
}