@Override public void fill(final DropPrimaryKeySegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { ((AlterTableStatement) sqlStatement).setDropPrimaryKey(true); } }
private SQLStatement getDDLStatement() { return new DDLStatement(); }
/** * 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); }
private void refreshTableMetaData(final AlterTableStatement alterTableStatement) { String logicTableName = alterTableStatement.getTables().getSingleTableName(); TableMetaData newTableMetaData = TableMetaDataFactory.newInstance(alterTableStatement, getMetaData().getTable().get(logicTableName)); Optional<String> newTableName = alterTableStatement.getNewTableName(); if (newTableName.isPresent()) { getMetaData().getTable().put(newTableName.get(), newTableMetaData); getMetaData().getTable().remove(logicTableName); } else { getMetaData().getTable().put(logicTableName, newTableMetaData); } }
/** * 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); }
private void refreshTableMetaData(final ShardingContext shardingContext, final DropTableStatement dropTableStatement) { for (String each : dropTableStatement.getTables().getTableNames()) { shardingContext.getMetaData().getTable().remove(each); } } }
private void refreshTableMetaData(final ShardingContext shardingContext, final CreateTableStatement createTableStatement) { shardingContext.getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
@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()); } } }
private void fill(final ConstraintDefinitionSegment sqlSegment, final AlterTableStatement alterTableStatement, final ShardingTableMetaData shardingTableMetaData) { for (String each : sqlSegment.getPrimaryKeyColumnNames()) { Optional<ColumnDefinitionSegment> modifiedColumn = alterTableStatement.findColumnDefinition(each, shardingTableMetaData); if (modifiedColumn.isPresent()) { modifiedColumn.get().setPrimaryKey(true); alterTableStatement.getModifiedColumnDefinitions().put(each, modifiedColumn.get()); } } } }
@Override public void fill(final ColumnDefinitionSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { ((CreateTableStatement) sqlStatement).getColumnDefinitions().add(sqlSegment); } }
@Override public void fill(final RenameTableSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { ((AlterTableStatement) sqlStatement).setNewTableName(sqlSegment.getNewTableName()); } }
@Override public void fill(final DropColumnDefinitionSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { ((AlterTableStatement) sqlStatement).getDroppedColumnNames().add(sqlSegment.getColumnName()); } }
private void refreshTableMetaData(final AlterTableStatement alterTableStatement) { String logicTableName = alterTableStatement.getTables().getSingleTableName(); TableMetaData newTableMetaData = TableMetaDataFactory.newInstance(alterTableStatement, getMetaData().getTable().get(logicTableName)); Optional<String> newTableName = alterTableStatement.getNewTableName(); if (newTableName.isPresent()) { getMetaData().getTable().put(newTableName.get(), newTableMetaData); getMetaData().getTable().remove(logicTableName); } else { getMetaData().getTable().put(logicTableName, newTableMetaData); } }
private void refreshTableMetaData(final DropTableStatement dropTableStatement) { for (String each : dropTableStatement.getTables().getTableNames()) { getMetaData().getTable().remove(each); } } }
private void refreshTableMetaData(final CreateTableStatement createTableStatement) { getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
@Override public void fill(final RenameColumnSegment sqlSegment, final SQLStatement sqlStatement, final String sql, final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData) { AlterTableStatement alterTableStatement = (AlterTableStatement) sqlStatement; Optional<ColumnDefinitionSegment> oldColumnDefinition = alterTableStatement.findColumnDefinition(sqlSegment.getOldColumnName(), shardingTableMetaData); if (!oldColumnDefinition.isPresent()) { return; } oldColumnDefinition.get().setColumnName(sqlSegment.getColumnName()); alterTableStatement.getModifiedColumnDefinitions().put(sqlSegment.getOldColumnName(), oldColumnDefinition.get()); } }
/** * 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 void refreshTableMetaData(final DropTableStatement dropTableStatement) { for (String each : dropTableStatement.getTables().getTableNames()) { getMetaData().getTable().remove(each); } } }
private void refreshTableMetaData(final CreateTableStatement createTableStatement) { getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
private void fill(final ConstraintDefinitionSegment sqlSegment, final CreateTableStatement createTableStatement) { for (ColumnDefinitionSegment each : createTableStatement.getColumnDefinitions()) { if (sqlSegment.getPrimaryKeyColumnNames().contains(each.getColumnName())) { each.setPrimaryKey(true); } } }