src/main/java/com/aoindustries/dbc/meta/Table.java
public SortedMap<String,Column> getColumnMap() throws SQLException {
		synchronized(getColumnMapLock) {
			if(getColumnMapCache==null) {
				SortedMap<String,Column> newColumnMap = new TreeMap<>(DatabaseMetaData.getCollator());
				try (ResultSet results = schema.getCatalog().getMetaData().getMetaData().getColumns(schema.getCatalog().getName(), schema.getName(), name, null)) {
					while(results.next()) {
						Column newColumn = new Column(
							this,
							results.getString("COLUMN_NAME"),
							results.getInt("DATA_TYPE"),
							results.getString("TYPE_NAME"),
							getInteger(results, "COLUMN_SIZE"),
							getInteger(results, "DECIMAL_DIGITS"),
							results.getInt("NULLABLE"),
							results.getString("COLUMN_DEF"),
							getInteger(results, "CHAR_OCTET_LENGTH"),
							results.getInt("ORDINAL_POSITION"),
							results.getString("IS_NULLABLE"),
							results.getString("IS_AUTOINCREMENT")
						);
						if(newColumnMap.put(newColumn.getName(), newColumn)!=null) throw new AssertionError("Duplicate column: "+newColumn);
					}
				}
				getColumnMapCache = AoCollections.optimalUnmodifiableSortedMap(newColumnMap);
			}
			return getColumnMapCache;
		}
	}
public SortedMap<String,Column> getColumnMap() throws SQLException {
		synchronized(getColumnMapLock) {
			if(getColumnMapCache==null) {
				SortedMap<String,Column> newColumnMap = new TreeMap<>(DatabaseMetaData.getCollator());
				try (ResultSet results = schema.getCatalog().getMetaData().getMetaData().getColumns(schema.getCatalog().getName(), schema.getName(), name, null)) {
					while(results.next()) {
						Column newColumn = new Column(
							this,
							results.getString("COLUMN_NAME"),
							results.getInt("DATA_TYPE"),
							results.getString("TYPE_NAME"),
							getInteger(results, "COLUMN_SIZE"),
							getInteger(results, "DECIMAL_DIGITS"),
							results.getInt("NULLABLE"),
							results.getString("COLUMN_DEF"),
							getInteger(results, "CHAR_OCTET_LENGTH"),
							results.getInt("ORDINAL_POSITION"),
							results.getString("IS_NULLABLE"),
							results.getString("IS_AUTOINCREMENT")
						);
						if(newColumnMap.put(newColumn.getName(), newColumn)!=null) throw new AssertionError("Duplicate column: "+newColumn);
					}
				}
				getColumnMapCache = AoCollections.optimalUnmodifiableSortedMap(newColumnMap);
			}
			return getColumnMapCache;
		}
	}
Gets all columns for this schema keyed by unique name.

@see  java.sql.DatabaseMetaData#getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String)