src/main/java/com/aoindustries/dbc/meta/Table.java
public List<Column> getColumns() throws SQLException {
		synchronized(getColumnsLock) {
			if(getColumnsCache==null) {
				SortedMap<String,Column> columnMap = getColumnMap();
				List<Column> newColumns = new ArrayList<>(columnMap.size());
				for(int i=0; i<columnMap.size(); i++) newColumns.add(null);
				for(Column column : columnMap.values()) {
					int ordinalPosition = column.getOrdinalPosition();
					if(newColumns.set(ordinalPosition-1, column)!=null) throw new SQLException("Duplicate ordinal position: "+ordinalPosition);
				}
				for(int i=0; i<newColumns.size(); i++) {
					if(newColumns.get(i)==null) throw new SQLException("Missing ordinal position: "+(i+1));
				}
				getColumnsCache = AoCollections.optimalUnmodifiableList(newColumns);
			}
			return getColumnsCache;
		}
	}
public List<Column> getColumns() throws SQLException {
		synchronized(getColumnsLock) {
			if(getColumnsCache==null) {
				SortedMap<String,Column> columnMap = getColumnMap();
				List<Column> newColumns = new ArrayList<>(columnMap.size());
				for(int i=0; i<columnMap.size(); i++) newColumns.add(null);
				for(Column column : columnMap.values()) {
					int ordinalPosition = column.getOrdinalPosition();
					if(newColumns.set(ordinalPosition-1, column)!=null) throw new SQLException("Duplicate ordinal position: "+ordinalPosition);
				}
				for(int i=0; i<newColumns.size(); i++) {
					if(newColumns.get(i)==null) throw new SQLException("Missing ordinal position: "+(i+1));
				}
				getColumnsCache = AoCollections.optimalUnmodifiableList(newColumns);
			}
			return getColumnsCache;
		}
	}
Gets all columns for this schema in their ordinal position order.
Column with ordinal position one is at index zero.

@see  #getColumnMap()