static int columnPrecision()

in kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/JdbcColumn.java [298:355]


  static int columnPrecision(TTypeId tType, JdbcColumnAttributes columnAttributes)
      throws SQLException {
    int columnType = convertTTypeIdToSqlType(tType);
    // according to hiveTypeToSqlType possible options are:
    switch (columnType) {
      case NULL:
        return 0;
      case BOOLEAN:
        return 1;
      case CHAR:
      case VARCHAR:
        if (columnAttributes != null) {
          return columnAttributes.precision;
        }
        return Integer.MAX_VALUE; // hive has no max limit for strings
      case BINARY:
        return Integer.MAX_VALUE; // hive has no max limit for binary
      case TINYINT:
        return 3;
      case SMALLINT:
        return 5;
      case INTEGER:
        return 10;
      case BIGINT:
        return 19;
      case FLOAT:
        return 7;
      case DOUBLE:
        return 15;
      case DATE:
        return 10;
      case TIMESTAMP:
        return 29;
      case TIMESTAMP_WITH_TIMEZONE:
        return 31;
      case DECIMAL:
        return columnAttributes.precision;
      case OTHER:
      case JAVA_OBJECT:
        {
          switch (tType) {
            case INTERVAL_YEAR_MONTH_TYPE:
              // -yyyyyyy-mm  : should be more than enough
              return 11;
            case INTERVAL_DAY_TIME_TYPE:
              // -ddddddddd hh:mm:ss.nnnnnnnnn
              return 29;
            default:
              return Integer.MAX_VALUE;
          }
        }
      case ARRAY:
      case STRUCT:
        return Integer.MAX_VALUE;
      default:
        throw new KyuubiSQLException("Invalid column type: " + columnType);
    }
  }