ResultSet resultSet = databaseMetaData.getColumns("", _schema, tableName, null);
ResultSet resultSet = databaseMetaData.getColumns( _connection.getCatalog(), _schema, tableName, null);
    public ITableMetaData getTableMetaData(String tableName) throws DataSetException    {        ITableMetaData tableMetaData = (ITableMetaData)getTableMap().get(tableName);        if (tableMetaData != null)        {            return tableMetaData;        }        else if (!getTableMap().containsKey(tableName))        {            throw new NoSuchTableException(tableName);        }        try        {            DatabaseMetaData databaseMetaData = _connection.getMetaData();            ResultSet resultSet = databaseMetaData.getColumns("", _schema, tableName, null);            try            {                List columnList = new ArrayList();                while (resultSet.next())                {                    String columnName = resultSet.getString(4);                    int sqlType = resultSet.getInt(5);                    String sqlTypeName = resultSet.getString(6);                    int columnSize = resultSet.getInt(7);                    int nullable = resultSet.getInt(11);                    Column column = new Column(columnName, DataType.forSqlType(sqlType));                    columnList.add(column);                }                Column[] columns = (Column[])columnList.toArray(new Column[0]);                tableMetaData = new DefaultTableMetaData(tableName, columns,                        getPrimaryKeys(tableName));                getTableMap().put(tableName, tableMetaData);                return tableMetaData;            }            finally            {                resultSet.close();            }        }        catch (SQLException e)        {            throw new DataSetException(e);        }        catch (DataTypeException e)        {            throw new DataSetException(e);        }    }