/** * Find column definition. * * @param columnName column name * @param shardingTableMetaData sharding table meta data * @return column definition */ public Optional<ColumnDefinitionSegment> findColumnDefinition(final String columnName, final ShardingTableMetaData shardingTableMetaData) { Optional<ColumnDefinitionSegment> result = findColumnDefinitionFromMetaData(columnName, shardingTableMetaData); return result.isPresent() ? result : findColumnDefinitionFromCurrentAddClause(columnName); }
@Override public void fill(final AddColumnDefinitionSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { AlterTableStatement alterTableStatement = (AlterTableStatement) sqlStatement; if (!alterTableStatement.findColumnDefinitionFromMetaData(sqlSegment.getColumnDefinition().getColumnName(), shardingTableMetaData).isPresent()) { alterTableStatement.getAddedColumnDefinitions().add(sqlSegment.getColumnDefinition()); } if (sqlSegment.getColumnPosition().isPresent()) { alterTableStatement.getChangedPositionColumns().add(sqlSegment.getColumnPosition().get()); } } }