code: public int getPrecision(int param) throws SQLException {
  
          checkRange(param);
  
          Type type = rmd.columnTypes[--param];
  
          if (type.isDateTimeType()) {
              return type.displaySize();
          } else {
              long size = type.precision;
  
              if (size > Integer.MAX_VALUE) {
                  size = 0;
              }
  
              return (int) size;
          }
      }
docs: Retrieves the designated parameter's specified column size.
  
  <P>The returned value represents the maximum column size for the given parameter.
  For numeric data, this is the maximum precision.  For character data, this is the length in characters.
  For datetime datatypes, this is the length in characters of the String representation (assuming the
  maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes.  For the ROWID datatype,
  this is the length in bytes. 0 is returned for data types where the
  column size is not applicable.
  
  @param param the first parameter is 1, the second is 2, ...
  @return precision
  @exception SQLException if a database access error occurs
  @since JDK 1.4, HSQLDB 1.7.2