/** * New instance of table meta data. * * @param createTableStatement create table statement * @return instance of table meta data */ public static TableMetaData newInstance(final CreateTableStatement createTableStatement) { return new TableMetaData(Lists.transform(createTableStatement.getColumnDefinitions(), new Function<ColumnDefinitionSegment, ColumnMetaData>() { @Override public ColumnMetaData apply(final ColumnDefinitionSegment input) { return new ColumnMetaData(input.getColumnName(), input.getDataType(), input.isPrimaryKey()); } })); }
private Collection<TableMetaData> load(final String dataSourceName, final String catalog, final Collection<DataNode> dataNodes) throws SQLException { Collection<TableMetaData> result = new LinkedList<>(); try (Connection connection = connectionManager.getConnection(dataSourceName)) { for (DataNode each : dataNodes) { result.add(new TableMetaData( isTableExist(connection, catalog, each.getTableName()) ? getColumnMetaDataList(connection, catalog, each.getTableName()) : Collections.<ColumnMetaData>emptyList())); } } return result; }
/** * New instance of table meta data. * * @param alterTableStatement alter table statement * @param oldTableMetaData old table meta data * @return instance of table meta data */ public static TableMetaData newInstance(final AlterTableStatement alterTableStatement, final TableMetaData oldTableMetaData) { List<ColumnMetaData> result = createColumnMetaDataList(alterTableStatement.getModifiedColumnDefinitions(), alterTableStatement.isDropPrimaryKey(), oldTableMetaData); result.addAll(createColumnMetaDataList(alterTableStatement.getAddedColumnDefinitions(), alterTableStatement.isDropPrimaryKey())); changeColumnDefinitionPositions(alterTableStatement.getChangedPositionColumns(), result); dropColumnDefinitions(alterTableStatement.getDroppedColumnNames(), result); return new TableMetaData(result); }