public void testPrecisionAndScale() throws Exception {
  testPrecisionForType("TINYINT",8,-1,false);
  testPrecisionForType("TINYINT",8,-1,true);
  testPrecisionForType("SMALLINT",8,-1,false);
  testPrecisionForType("SMALLINT",8,-1,true);
  testPrecisionForType("MEDIUMINT",8,-1,false);
  testPrecisionForType("MEDIUMINT",8,-1,true);
  testPrecisionForType("INT",8,-1,false);
  testPrecisionForType("INT",8,-1,true);
  testPrecisionForType("BIGINT",8,-1,false);
  testPrecisionForType("BIGINT",8,-1,true);
  testPrecisionForType("FLOAT",8,4,false);
  testPrecisionForType("FLOAT",8,4,true);
  testPrecisionForType("DOUBLE",8,4,false);
  testPrecisionForType("DOUBLE",8,4,true);
  testPrecisionForType("DECIMAL",8,4,false);
  testPrecisionForType("DECIMAL",8,4,true);
  testPrecisionForType("DECIMAL",9,0,false);
  testPrecisionForType("DECIMAL",9,0,true);
}

public void testPrecisionAndScale ( ) throws Exception { testPrecisionForType ( "TINYINT" , 8 , - 1 , false ) ; testPrecisionForType ( "TINYINT" , 8 , - 1 , true ) ; testPrecisionForType ( "SMALLINT" , 8 , - 1 , false ) ; testPrecisionForType ( "SMALLINT" , 8 , - 1 , true ) ; testPrecisionForType ( "MEDIUMINT" , 8 , - 1 , false ) ; testPrecisionForType ( "MEDIUMINT" , 8 , - 1 , true ) ; testPrecisionForType ( "INT" , 8 , - 1 , false ) ; testPrecisionForType ( "INT" , 8 , - 1 , true ) ; testPrecisionForType ( "BIGINT" , 8 , - 1 , false ) ; testPrecisionForType ( "BIGINT" , 8 , - 1 , true ) ; testPrecisionForType ( "FLOAT" , 8 , 4 , false ) ; testPrecisionForType ( "FLOAT" , 8 , 4 , true ) ; testPrecisionForType ( "DOUBLE" , 8 , 4 , false ) ; testPrecisionForType ( "DOUBLE" , 8 , 4 , true ) ; testPrecisionForType ( "DECIMAL" , 8 , 4 , false ) ; testPrecisionForType ( "DECIMAL" , 8 , 4 , true ) ; testPrecisionForType ( "DECIMAL" , 9 , 0 , false ) ; testPrecisionForType ( "DECIMAL" , 9 , 0 , true ) ; }
tests that resultsetmetadata precision and scale methods work correctly for all numeric types .
