public List<ColumnInfo> getNumericOrStringTypeColumns(TableInfo table, int numCols) {
   List<ColumnInfo> columns = table.getColumnList();
   int colCnt = columns.size();
   List<ColumnInfo> partColumns = new ArrayList<ColumnInfo>();
   for (int i = 0; i < numCols; i++) {
     ColumnInfo col = null;
     boolean f = false;
     for (int j = 0; j < 10 && !f; j++) {
       col = columns.get(random.nextInt(colCnt));
       if ((col.getColumnType() == Types.INTEGER
               || col.getColumnType() == Types.DOUBLE
               || col.getColumnType() == Types.FLOAT
               || col.getColumnType() == Types.SMALLINT
               || col.getColumnType() == Types.BIGINT
               || col.getColumnType() == Types.DECIMAL
               || col.getColumnType() == Types.NUMERIC
               || col.getColumnType() == Types.REAL
               || col.getColumnType() == Types.CHAR
               || col.getColumnType() == Types.LONGNVARCHAR
               || col.getColumnType() == Types.VARCHAR)
           && !partColumns.contains(col)) {
         f = true;
       }
     }
     if (f) partColumns.add(col);
   }
   return partColumns;
 }
 public List<ColumnInfo> getNonClobBlobXmlTypeColumns(TableInfo table, int numCols) {
   List<ColumnInfo> columns = table.getColumnList();
   int colCnt = columns.size();
   List<ColumnInfo> partColumns = new ArrayList<ColumnInfo>();
   for (int i = 0; i < numCols; i++) {
     ColumnInfo col = null;
     boolean f = false;
     for (int j = 0; j < 10 && !f; j++) {
       col = columns.get(random.nextInt(colCnt));
       if (col.getColumnType() != Types.BLOB
           && col.getColumnType() != Types.CLOB
           && col.getColumnType() != Types.SQLXML
           && !partColumns.contains(col)) {
         f = true;
       }
     }
     if (f) partColumns.add(col);
   }
   return partColumns;
 }
 public List<ColumnInfo> getDateTypeColumns(TableInfo table, int numCols) {
   List<ColumnInfo> columns = table.getColumnList();
   int colCnt = columns.size();
   List<ColumnInfo> partColumns = new ArrayList<ColumnInfo>();
   for (int i = 0; i < numCols; i++) {
     ColumnInfo col = null;
     boolean f = false;
     for (int j = 0; j < 10 && !f; j++) {
       col = columns.get(random.nextInt(colCnt));
       if ((col.getColumnType() == Types.DATE
               || col.getColumnType() == Types.TIME
               || col.getColumnType() == Types.TIMESTAMP)
           && !partColumns.contains(col)) {
         f = true;
       }
     }
     if (f) partColumns.add(col);
   }
   return partColumns;
 }