提交 fe0888df 编写于 作者: T terrymanu

for #2900, Rename ShardingTableMetaData to ShardingSphereShardingTableMetaData

上级 f8fde1a1
......@@ -20,7 +20,7 @@ package org.apache.shardingsphere.core.metadata;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
/**
* ShardingSphere meta data.
......@@ -33,5 +33,5 @@ public final class ShardingSphereMetaData {
private final ShardingSphereDataSourceMetaData dataSource;
private final ShardingTableMetaData table;
private final ShardingSphereTableMetaData table;
}
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.core.metadata.table;
import com.google.common.base.Optional;
import lombok.Getter;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import java.util.Collection;
import java.util.Collections;
......@@ -27,19 +27,18 @@ import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
/**
* Sharding table meta data.
* ShardingSphere table meta data.
*
* @author panjuan
* @author zhaojun
* @author zhangliang
* @author panjuan
*/
@Getter
public final class ShardingTableMetaData {
public final class ShardingSphereTableMetaData {
private final Map<String, TableMetaData> tables;
public ShardingTableMetaData(final Map<String, TableMetaData> tables) {
public ShardingSphereTableMetaData(final Map<String, TableMetaData> tables) {
this.tables = new ConcurrentHashMap<>(tables);
}
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.apache.shardingsphere.core.metadata.table;
package org.apache.shardingsphere.core.metadata.table.impl;
import lombok.EqualsAndHashCode;
import lombok.Getter;
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
package org.apache.shardingsphere.core.metadata.table;
package org.apache.shardingsphere.core.metadata.table.impl;
import lombok.EqualsAndHashCode;
import lombok.Getter;
......
......@@ -17,9 +17,9 @@
package org.apache.shardingsphere.core.fixture;
import org.apache.shardingsphere.core.route.hook.RoutingHook;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.route.SQLRouteResult;
import org.apache.shardingsphere.core.route.hook.RoutingHook;
/**
* Routing hook fixture.
......@@ -33,7 +33,7 @@ public class RoutingHookFixture implements RoutingHook {
}
@Override
public void finishSuccess(final SQLRouteResult sqlRouteResult, final ShardingTableMetaData shardingTableMetaData) {
public void finishSuccess(final SQLRouteResult sqlRouteResult, final ShardingSphereTableMetaData tableMetaData) {
}
@Override
......
......@@ -21,7 +21,7 @@ import com.google.common.base.Optional;
import lombok.SneakyThrows;
import org.apache.shardingsphere.core.execute.ShardingExecuteEngine;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.rule.TableRule;
import org.apache.shardingsphere.spi.database.DataSourceMetaData;
......
......@@ -25,8 +25,8 @@ import org.apache.shardingsphere.core.execute.ShardingExecuteEngine;
import org.apache.shardingsphere.core.execute.ShardingExecuteGroup;
import org.apache.shardingsphere.core.execute.ShardingGroupExecuteCallback;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.rule.DataNode;
import org.apache.shardingsphere.core.rule.ShardingDataSourceNames;
import org.apache.shardingsphere.core.rule.ShardingRule;
......
......@@ -22,7 +22,7 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.merge.dal.DALMergeEngine;
import org.apache.shardingsphere.core.merge.dql.DQLMergeEngine;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.statement.dml.ShardingSelectOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.core.route.SQLRouteResult;
......@@ -47,18 +47,18 @@ public final class MergeEngineFactory {
* @param databaseType database type
* @param shardingRule sharding rule
* @param routeResult SQL route result
* @param shardingTableMetaData sharding table meta Data
* @param tableMetaData sharding table meta Data
* @param queryResults query results
* @return merge engine instance
* @throws SQLException SQL exception
*/
public static MergeEngine newInstance(final DatabaseType databaseType, final ShardingRule shardingRule,
final SQLRouteResult routeResult, final ShardingTableMetaData shardingTableMetaData, final List<QueryResult> queryResults) throws SQLException {
final SQLRouteResult routeResult, final ShardingSphereTableMetaData tableMetaData, final List<QueryResult> queryResults) throws SQLException {
if (routeResult.getShardingStatement() instanceof ShardingSelectOptimizedStatement) {
return new DQLMergeEngine(databaseType, routeResult, queryResults);
}
if (routeResult.getShardingStatement().getSQLStatement() instanceof DALStatement) {
return new DALMergeEngine(shardingRule, queryResults, (DALStatement) routeResult.getShardingStatement().getSQLStatement(), shardingTableMetaData);
return new DALMergeEngine(shardingRule, queryResults, (DALStatement) routeResult.getShardingStatement().getSQLStatement(), tableMetaData);
}
return new TransparentMergeEngine(queryResults);
}
......
......@@ -27,7 +27,7 @@ import org.apache.shardingsphere.core.merge.dal.show.ShowIndexMergedResult;
import org.apache.shardingsphere.core.merge.dal.show.ShowOtherMergedResult;
import org.apache.shardingsphere.core.merge.dal.show.ShowTableStatusMergedResult;
import org.apache.shardingsphere.core.merge.dal.show.ShowTablesMergedResult;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.parse.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dal.dialect.mysql.ShowCreateTableStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dal.dialect.mysql.ShowDatabasesStatement;
......@@ -54,7 +54,7 @@ public final class DALMergeEngine implements MergeEngine {
private final DALStatement dalStatement;
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
@Override
public MergedResult merge() throws SQLException {
......@@ -62,16 +62,16 @@ public final class DALMergeEngine implements MergeEngine {
return new ShowDatabasesMergedResult();
}
if (dalStatement instanceof ShowTableStatusStatement) {
return new ShowTableStatusMergedResult(shardingRule, queryResults, shardingTableMetaData);
return new ShowTableStatusMergedResult(shardingRule, queryResults, tableMetaData);
}
if (dalStatement instanceof ShowTablesStatement) {
return new ShowTablesMergedResult(shardingRule, queryResults, shardingTableMetaData);
return new ShowTablesMergedResult(shardingRule, queryResults, tableMetaData);
}
if (dalStatement instanceof ShowCreateTableStatement) {
return new ShowCreateTableMergedResult(shardingRule, queryResults, shardingTableMetaData);
return new ShowCreateTableMergedResult(shardingRule, queryResults, tableMetaData);
}
if (dalStatement instanceof ShowIndexStatement) {
return new ShowIndexMergedResult(shardingRule, queryResults, shardingTableMetaData);
return new ShowIndexMergedResult(shardingRule, queryResults, tableMetaData);
}
return new ShowOtherMergedResult(queryResults.get(0));
}
......
......@@ -21,7 +21,7 @@ import com.google.common.base.Optional;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.merge.dql.common.MemoryMergedResult;
import org.apache.shardingsphere.core.merge.dql.common.MemoryQueryResultRow;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.rule.TableRule;
......@@ -46,13 +46,13 @@ public abstract class LogicTablesMergedResult extends MemoryMergedResult {
private final Set<String> tableNames = new HashSet<>();
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
public LogicTablesMergedResult(final Map<String, Integer> labelAndIndexMap,
final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingTableMetaData shardingTableMetaData) throws SQLException {
final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingSphereTableMetaData tableMetaData) throws SQLException {
super(labelAndIndexMap);
this.shardingRule = shardingRule;
this.shardingTableMetaData = shardingTableMetaData;
this.tableMetaData = tableMetaData;
memoryResultSetRows = init(queryResults);
}
......@@ -64,7 +64,7 @@ public abstract class LogicTablesMergedResult extends MemoryMergedResult {
String actualTableName = memoryResultSetRow.getCell(1).toString();
Optional<TableRule> tableRule = shardingRule.findTableRuleByActualTable(actualTableName);
if (!tableRule.isPresent()) {
if (shardingRule.getTableRules().isEmpty() || shardingTableMetaData.containsTable(actualTableName) && tableNames.add(actualTableName)) {
if (shardingRule.getTableRules().isEmpty() || tableMetaData.containsTable(actualTableName) && tableNames.add(actualTableName)) {
result.add(memoryResultSetRow);
}
} else if (tableNames.add(tableRule.get().getLogicTable())) {
......
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.merge.dal.show;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.merge.dql.common.MemoryQueryResultRow;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import java.sql.SQLException;
......@@ -41,8 +41,8 @@ public final class ShowCreateTableMergedResult extends LogicTablesMergedResult {
LABEL_AND_INDEX_MAP.put("Create Table", 2);
}
public ShowCreateTableMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingTableMetaData shardingTableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, shardingTableMetaData);
public ShowCreateTableMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingSphereTableMetaData tableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, tableMetaData);
}
@Override
......
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.core.merge.dal.show;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import java.sql.SQLException;
......@@ -51,7 +51,7 @@ public final class ShowIndexMergedResult extends LogicTablesMergedResult {
LABEL_AND_INDEX_MAP.put("Index_comment", 13);
}
public ShowIndexMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingTableMetaData shardingTableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, shardingTableMetaData);
public ShowIndexMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingSphereTableMetaData tableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, tableMetaData);
}
}
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.core.merge.dal.show;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import java.sql.SQLException;
......@@ -55,7 +55,7 @@ public final class ShowTableStatusMergedResult extends LogicTablesMergedResult {
LABEL_AND_INDEX_MAP.put("Comment", 17);
}
public ShowTableStatusMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingTableMetaData shardingTableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, shardingTableMetaData);
public ShowTableStatusMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingSphereTableMetaData tableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, tableMetaData);
}
}
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.merge.dal.show;
import org.apache.shardingsphere.core.constant.ShardingConstant;
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import java.sql.SQLException;
......@@ -41,8 +41,8 @@ public final class ShowTablesMergedResult extends LogicTablesMergedResult {
LABEL_AND_INDEX_MAP.put("Tables_in_" + ShardingConstant.LOGIC_SCHEMA_NAME, 1);
}
public ShowTablesMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingTableMetaData shardingTableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, shardingTableMetaData);
public ShowTablesMergedResult(final ShardingRule shardingRule, final List<QueryResult> queryResults, final ShardingSphereTableMetaData tableMetaData) throws SQLException {
super(LABEL_AND_INDEX_MAP, shardingRule, queryResults, tableMetaData);
}
/**
......
......@@ -24,9 +24,9 @@ import org.apache.shardingsphere.api.config.sharding.strategy.ComplexShardingStr
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.merge.fixture.ComplexKeysShardingAlgorithmFixture;
import org.apache.shardingsphere.core.merge.fixture.TestQueryResult;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.junit.Before;
import org.junit.Test;
......@@ -53,7 +53,7 @@ public final class ShowCreateTableMergedResultTest {
private ResultSet resultSet;
private ShardingTableMetaData shardingTableMetaData;
private ShardingSphereTableMetaData tableMetaData;
@Before
public void setUp() throws SQLException {
......@@ -64,7 +64,7 @@ public final class ShowCreateTableMergedResultTest {
shardingRule = new ShardingRule(shardingRuleConfig, Lists.newArrayList("ds"));
Map<String, TableMetaData> tableMetaDataMap = new HashMap<>(1, 1);
tableMetaDataMap.put("table", new TableMetaData(Collections.<ColumnMetaData>emptyList(), Collections.<String>emptySet()));
shardingTableMetaData = new ShardingTableMetaData(tableMetaDataMap);
tableMetaData = new ShardingSphereTableMetaData(tableMetaDataMap);
resultSet = mock(ResultSet.class);
ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class);
when(resultSet.getMetaData()).thenReturn(resultSetMetaData);
......@@ -81,7 +81,7 @@ public final class ShowCreateTableMergedResultTest {
@Test
public void assertNextForEmptyQueryResult() throws SQLException {
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, new ArrayList<QueryResult>(), shardingTableMetaData);
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, new ArrayList<QueryResult>(), tableMetaData);
assertFalse(showCreateTableMergedResult.next());
}
......@@ -96,7 +96,7 @@ public final class ShowCreateTableMergedResultTest {
+ " `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n"
+ " PRIMARY KEY (`id`)\n"
+ ") ENGINE=InnoDB AUTO_INCREMENT=121 DEFAULT CHARSET=utf8 COLLATE=utf8_bin");
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, queryResults, shardingTableMetaData);
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, queryResults, tableMetaData);
assertTrue(showCreateTableMergedResult.next());
}
......@@ -111,7 +111,7 @@ public final class ShowCreateTableMergedResultTest {
+ " `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n"
+ " PRIMARY KEY (`id`)\n"
+ ") ENGINE=InnoDB AUTO_INCREMENT=121 DEFAULT CHARSET=utf8 COLLATE=utf8_bin");
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, queryResults, shardingTableMetaData);
ShowCreateTableMergedResult showCreateTableMergedResult = new ShowCreateTableMergedResult(shardingRule, queryResults, tableMetaData);
assertTrue(showCreateTableMergedResult.next());
}
}
......@@ -24,9 +24,9 @@ import org.apache.shardingsphere.api.config.sharding.strategy.ComplexShardingStr
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.merge.fixture.ComplexKeysShardingAlgorithmFixture;
import org.apache.shardingsphere.core.merge.fixture.TestQueryResult;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.junit.Before;
import org.junit.Test;
......@@ -53,7 +53,7 @@ public final class ShowTablesMergedResultTest {
private ResultSet resultSet;
private ShardingTableMetaData shardingTableMetaData;
private ShardingSphereTableMetaData tableMetaData;
@Before
public void setUp() throws SQLException {
......@@ -64,7 +64,7 @@ public final class ShowTablesMergedResultTest {
shardingRule = new ShardingRule(shardingRuleConfig, Lists.newArrayList("ds"));
Map<String, TableMetaData> tableMetaDataMap = new HashMap<>(1, 1);
tableMetaDataMap.put("table", new TableMetaData(Collections.<ColumnMetaData>emptyList(), Collections.<String>emptySet()));
shardingTableMetaData = new ShardingTableMetaData(tableMetaDataMap);
tableMetaData = new ShardingSphereTableMetaData(tableMetaDataMap);
resultSet = mock(ResultSet.class);
ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class);
when(resultSet.getMetaData()).thenReturn(resultSetMetaData);
......@@ -81,28 +81,28 @@ public final class ShowTablesMergedResultTest {
@Test
public void assertNextForEmptyQueryResult() throws SQLException {
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, new ArrayList<QueryResult>(), shardingTableMetaData);
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, new ArrayList<QueryResult>(), tableMetaData);
assertFalse(showTablesMergedResult.next());
}
@Test
public void assertNextForActualTableNameInTableRule() throws SQLException {
when(resultSet.getObject(1)).thenReturn("table_0");
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, shardingTableMetaData);
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, tableMetaData);
assertTrue(showTablesMergedResult.next());
}
@Test
public void assertNextForActualTableNameNotInTableRuleWithDefaultDataSource() throws SQLException {
when(resultSet.getObject(1)).thenReturn("table");
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, shardingTableMetaData);
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, tableMetaData);
assertTrue(showTablesMergedResult.next());
}
@Test
public void assertNextForActualTableNameNotInTableRuleWithoutDefaultDataSource() throws SQLException {
when(resultSet.getObject(1)).thenReturn("table_3");
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, shardingTableMetaData);
ShowTablesMergedResult showTablesMergedResult = new ShowTablesMergedResult(shardingRule, queryResults, tableMetaData);
assertFalse(showTablesMergedResult.next());
}
}
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.api.engine;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.statement.OptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
import org.apache.shardingsphere.core.rule.BaseRule;
......@@ -39,11 +39,11 @@ public interface OptimizeEngine<R extends BaseRule, T extends SQLStatement> {
* Optimize.
*
* @param rule rule
* @param shardingTableMetaData table meta data
* @param tableMetaData table meta data of ShardingSphere
* @param sql SQL
* @param parameters SQL parameters
* @param sqlStatement SQL statement
* @return optimized statement
*/
OptimizedStatement optimize(R rule, ShardingTableMetaData shardingTableMetaData, String sql, List<Object> parameters, T sqlStatement);
OptimizedStatement optimize(R rule, ShardingSphereTableMetaData tableMetaData, String sql, List<Object> parameters, T sqlStatement);
}
......@@ -21,7 +21,7 @@ import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import lombok.ToString;
import org.apache.shardingsphere.core.exception.ShardingException;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.parse.sql.segment.dml.column.ColumnSegment;
import org.apache.shardingsphere.core.parse.sql.segment.generic.AliasAvailable;
import org.apache.shardingsphere.core.parse.sql.segment.generic.TableAvailable;
......@@ -142,10 +142,10 @@ public final class Tables {
* Find table name.
*
* @param columnSegment column segment
* @param shardingTableMetaData sharding table meta data
* @param tableMetaData table meta data of ShardingSphere
* @return table name
*/
public Optional<String> findTableName(final ColumnSegment columnSegment, final ShardingTableMetaData shardingTableMetaData) {
public Optional<String> findTableName(final ColumnSegment columnSegment, final ShardingSphereTableMetaData tableMetaData) {
if (isSingleTable()) {
return Optional.of(getSingleTableName());
}
......@@ -153,12 +153,12 @@ public final class Tables {
Optional<Table> table = find(columnSegment.getOwner().get().getTableName());
return table.isPresent() ? Optional.of(table.get().getName()) : Optional.<String>absent();
}
return findTableNameFromMetaData(columnSegment.getName(), shardingTableMetaData);
return findTableNameFromMetaData(columnSegment.getName(), tableMetaData);
}
private Optional<String> findTableNameFromMetaData(final String columnName, final ShardingTableMetaData shardingTableMetaData) {
private Optional<String> findTableNameFromMetaData(final String columnName, final ShardingSphereTableMetaData tableMetaData) {
for (String each : getTableNames()) {
if (shardingTableMetaData.containsColumn(each, columnName)) {
if (tableMetaData.containsColumn(each, columnName)) {
return Optional.of(each);
}
}
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.encrypt.engine;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.engine.OptimizeEngine;
import org.apache.shardingsphere.core.optimize.encrypt.statement.EncryptOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
......@@ -35,5 +35,5 @@ import java.util.List;
public interface EncryptOptimizeEngine<T extends SQLStatement> extends OptimizeEngine<EncryptRule, T> {
@Override
EncryptOptimizedStatement optimize(EncryptRule encryptRule, ShardingTableMetaData shardingTableMetaData, String sql, List<Object> parameters, T sqlStatement);
EncryptOptimizedStatement optimize(EncryptRule encryptRule, ShardingSphereTableMetaData tableMetaData, String sql, List<Object> parameters, T sqlStatement);
}
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.encrypt.engine;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.statement.EncryptTransparentOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
import org.apache.shardingsphere.core.rule.EncryptRule;
......@@ -33,7 +33,7 @@ public final class EncryptTransparentOptimizeEngine implements EncryptOptimizeEn
@Override
public EncryptTransparentOptimizedStatement optimize(final EncryptRule rule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final SQLStatement sqlStatement) {
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final SQLStatement sqlStatement) {
return new EncryptTransparentOptimizedStatement(sqlStatement);
}
}
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.encrypt.engine.dml;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.InsertValue;
import org.apache.shardingsphere.core.optimize.encrypt.engine.EncryptOptimizeEngine;
import org.apache.shardingsphere.core.optimize.encrypt.segment.EncryptInsertColumns;
......@@ -39,14 +39,14 @@ import java.util.List;
public final class EncryptInsertOptimizeEngine implements EncryptOptimizeEngine<InsertStatement> {
@Override
public EncryptInsertOptimizedStatement optimize(final EncryptRule encryptRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final InsertStatement sqlStatement) {
public EncryptInsertOptimizedStatement optimize(final EncryptRule encryptRule,
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final InsertStatement sqlStatement) {
InsertValueEngine insertValueEngine = new InsertValueEngine();
EncryptInsertOptimizedStatement result = new EncryptInsertOptimizedStatement(
sqlStatement, new EncryptInsertColumns(encryptRule, shardingTableMetaData, sqlStatement), insertValueEngine.createInsertValues(sqlStatement));
sqlStatement, new EncryptInsertColumns(encryptRule, tableMetaData, sqlStatement), insertValueEngine.createInsertValues(sqlStatement));
int derivedColumnsCount = encryptRule.getAssistedQueryAndPlainColumnCount(sqlStatement.getTable().getTableName());
int parametersCount = 0;
Collection<String> columnNames = getColumnNames(shardingTableMetaData, sqlStatement);
Collection<String> columnNames = getColumnNames(tableMetaData, sqlStatement);
for (InsertValue each : result.getValues()) {
Object[] currentParameters = each.getParameters(parameters, parametersCount, derivedColumnsCount);
Collection<String> encryptDerivedColumnNames = encryptRule.getAssistedQueryAndPlainColumns(sqlStatement.getTable().getTableName());
......@@ -85,7 +85,7 @@ public final class EncryptInsertOptimizeEngine implements EncryptOptimizeEngine<
}
}
private Collection<String> getColumnNames(final ShardingTableMetaData shardingTableMetaData, final InsertStatement sqlStatement) {
return sqlStatement.useDefaultColumns() ? shardingTableMetaData.getAllColumnNames(sqlStatement.getTable().getTableName()) : sqlStatement.getColumnNames();
private Collection<String> getColumnNames(final ShardingSphereTableMetaData tableMetaData, final InsertStatement sqlStatement) {
return sqlStatement.useDefaultColumns() ? tableMetaData.getAllColumnNames(sqlStatement.getTable().getTableName()) : sqlStatement.getColumnNames();
}
}
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.encrypt.engine.dml;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.engine.EncryptOptimizeEngine;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.EncryptConditions;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.engine.WhereClauseEncryptConditionEngine;
......@@ -35,9 +35,9 @@ import java.util.List;
public final class EncryptWhereOptimizeEngine implements EncryptOptimizeEngine<DMLStatement> {
@Override
public EncryptConditionOptimizedStatement optimize(final EncryptRule encryptRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final DMLStatement sqlStatement) {
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(encryptRule, shardingTableMetaData);
public EncryptConditionOptimizedStatement optimize(final EncryptRule encryptRule,
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final DMLStatement sqlStatement) {
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(encryptRule, tableMetaData);
return new EncryptConditionOptimizedStatement(sqlStatement, new EncryptConditions(encryptConditionEngine.createEncryptConditions(sqlStatement)));
}
}
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.optimize.encrypt.segment;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.InsertColumns;
import org.apache.shardingsphere.core.parse.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.core.rule.EncryptRule;
......@@ -41,13 +41,13 @@ public final class EncryptInsertColumns implements InsertColumns {
@Getter
private final Collection<String> regularColumnNames;
public EncryptInsertColumns(final EncryptRule encryptRule, final ShardingTableMetaData shardingTableMetaData, final InsertStatement insertStatement) {
public EncryptInsertColumns(final EncryptRule encryptRule, final ShardingSphereTableMetaData tableMetaData, final InsertStatement insertStatement) {
assistedQueryAndPlainColumnNames = encryptRule.getAssistedQueryAndPlainColumns(insertStatement.getTable().getTableName());
regularColumnNames = insertStatement.useDefaultColumns() ? getRegularColumnNamesFromMetaData(encryptRule, shardingTableMetaData, insertStatement) : insertStatement.getColumnNames();
regularColumnNames = insertStatement.useDefaultColumns() ? getRegularColumnNamesFromMetaData(encryptRule, tableMetaData, insertStatement) : insertStatement.getColumnNames();
}
private Collection<String> getRegularColumnNamesFromMetaData(final EncryptRule encryptRule, final ShardingTableMetaData shardingTableMetaData, final InsertStatement insertStatement) {
Collection<String> allColumnNames = shardingTableMetaData.getAllColumnNames(insertStatement.getTable().getTableName());
private Collection<String> getRegularColumnNamesFromMetaData(final EncryptRule encryptRule, final ShardingSphereTableMetaData tableMetaData, final InsertStatement insertStatement) {
Collection<String> allColumnNames = tableMetaData.getAllColumnNames(insertStatement.getTable().getTableName());
Collection<String> result = new LinkedHashSet<>(allColumnNames.size() - assistedQueryAndPlainColumnNames.size());
String tableName = insertStatement.getTable().getTableName();
for (String each : allColumnNames) {
......
......@@ -20,7 +20,7 @@ package org.apache.shardingsphere.core.optimize.encrypt.segment.condition.engine
import com.google.common.base.Optional;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.core.exception.ShardingException;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.Tables;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.EncryptCondition;
import org.apache.shardingsphere.core.parse.sql.segment.dml.expr.ExpressionSegment;
......@@ -52,7 +52,7 @@ public final class WhereClauseEncryptConditionEngine {
private final EncryptRule encryptRule;
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
/**
* Create encrypt conditions.
......@@ -96,7 +96,7 @@ public final class WhereClauseEncryptConditionEngine {
}
private Optional<EncryptCondition> createEncryptCondition(final PredicateSegment predicateSegment, final Tables tables) {
Optional<String> tableName = tables.findTableName(predicateSegment.getColumn(), shardingTableMetaData);
Optional<String> tableName = tables.findTableName(predicateSegment.getColumn(), tableMetaData);
if (!tableName.isPresent() || !encryptRule.getShardingEncryptor(tableName.get(), predicateSegment.getColumn().getName()).isPresent()) {
return Optional.absent();
}
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.engine.OptimizeEngine;
import org.apache.shardingsphere.core.optimize.sharding.statement.ShardingOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
......@@ -35,5 +35,5 @@ import java.util.List;
public interface ShardingOptimizeEngine<T extends SQLStatement> extends OptimizeEngine<ShardingRule, T> {
@Override
ShardingOptimizedStatement optimize(ShardingRule shardingRule, ShardingTableMetaData shardingTableMetaData, String sql, List<Object> parameters, T sqlStatement);
ShardingOptimizedStatement optimize(ShardingRule shardingRule, ShardingSphereTableMetaData tableMetaData, String sql, List<Object> parameters, T sqlStatement);
}
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.statement.ShardingTransparentOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
import org.apache.shardingsphere.core.rule.ShardingRule;
......@@ -33,7 +33,7 @@ public final class ShardingTransparentOptimizeEngine implements ShardingOptimize
@Override
public ShardingTransparentOptimizedStatement optimize(final ShardingRule rule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final SQLStatement sqlStatement) {
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final SQLStatement sqlStatement) {
return new ShardingTransparentOptimizedStatement(sqlStatement);
}
}
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.optimize.sharding.engnie.ddl;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.Tables;
import org.apache.shardingsphere.core.optimize.sharding.engnie.ShardingOptimizeEngine;
import org.apache.shardingsphere.core.optimize.sharding.statement.ddl.ShardingDropIndexOptimizedStatement;
......@@ -40,20 +40,20 @@ import java.util.List;
public final class ShardingDropIndexOptimizeEngine implements ShardingOptimizeEngine<DropIndexStatement> {
@Override
public ShardingDropIndexOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final DropIndexStatement sqlStatement) {
public ShardingDropIndexOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final DropIndexStatement sqlStatement) {
Tables tables = new Tables(sqlStatement);
return new ShardingDropIndexOptimizedStatement(sqlStatement, tables, getTableNames(shardingTableMetaData, sqlStatement, tables));
return new ShardingDropIndexOptimizedStatement(sqlStatement, tables, getTableNames(tableMetaData, sqlStatement, tables));
}
private Collection<String> getTableNames(final ShardingTableMetaData shardingTableMetaData, final DropIndexStatement sqlStatement, final Tables tables) {
return tables.isEmpty() ? getTableNames(shardingTableMetaData, sqlStatement) : Collections.singletonList(tables.getSingleTableName());
private Collection<String> getTableNames(final ShardingSphereTableMetaData tableMetaData, final DropIndexStatement sqlStatement, final Tables tables) {
return tables.isEmpty() ? getTableNames(tableMetaData, sqlStatement) : Collections.singletonList(tables.getSingleTableName());
}
private Collection<String> getTableNames(final ShardingTableMetaData shardingTableMetaData, final DropIndexStatement sqlStatement) {
private Collection<String> getTableNames(final ShardingSphereTableMetaData tableMetaData, final DropIndexStatement sqlStatement) {
Collection<String> result = new LinkedList<>();
for (IndexSegment each : sqlStatement.getIndexes()) {
Optional<String> tableName = shardingTableMetaData.getLogicTableName(each.getName());
Optional<String> tableName = tableMetaData.getLogicTableName(each.getName());
Preconditions.checkState(tableName.isPresent(), "Cannot find table for index name `%s` from sharding rule.", each.getName());
result.add(tableName.get());
}
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.EncryptConditions;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.engine.WhereClauseEncryptConditionEngine;
import org.apache.shardingsphere.core.optimize.sharding.engnie.ShardingOptimizeEngine;
......@@ -37,10 +37,10 @@ import java.util.List;
public final class ShardingDeleteOptimizeEngine implements ShardingOptimizeEngine<DeleteStatement> {
@Override
public ShardingConditionOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final DeleteStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, shardingTableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), shardingTableMetaData);
public ShardingConditionOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final DeleteStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, tableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), tableMetaData);
return new ShardingConditionOptimizedStatement(sqlStatement,
new ShardingConditions(shardingConditionEngine.createShardingConditions(sqlStatement, parameters)),
new EncryptConditions(encryptConditionEngine.createEncryptConditions(sqlStatement)));
......
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import com.google.common.base.Optional;
import org.apache.shardingsphere.core.exception.ShardingException;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.InsertValue;
import org.apache.shardingsphere.core.optimize.sharding.engnie.ShardingOptimizeEngine;
import org.apache.shardingsphere.core.optimize.sharding.segment.condition.ShardingCondition;
......@@ -51,10 +51,10 @@ public final class ShardingInsertOptimizeEngine implements ShardingOptimizeEngin
@Override
public ShardingInsertOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final InsertStatement sqlStatement) {
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final InsertStatement sqlStatement) {
InsertClauseShardingConditionEngine shardingConditionEngine = new InsertClauseShardingConditionEngine(shardingRule);
Collection<String> derivedColumnNames = shardingRule.getEncryptRule().getAssistedQueryColumns(sqlStatement.getTable().getTableName());
ShardingInsertColumns insertColumns = new ShardingInsertColumns(shardingRule, shardingTableMetaData, sqlStatement, derivedColumnNames);
ShardingInsertColumns insertColumns = new ShardingInsertColumns(shardingRule, tableMetaData, sqlStatement, derivedColumnNames);
InsertValueEngine insertValueEngine = new InsertValueEngine();
Collection<InsertValue> insertValues = insertValueEngine.createInsertValues(sqlStatement);
Optional<GeneratedKey> generatedKey = GeneratedKey.getGenerateKey(shardingRule, parameters, sqlStatement, insertColumns, insertValues);
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.EncryptCondition;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.engine.WhereClauseEncryptConditionEngine;
import org.apache.shardingsphere.core.optimize.sharding.engnie.ShardingOptimizeEngine;
......@@ -48,12 +48,12 @@ public final class ShardingSelectOptimizeEngine implements ShardingOptimizeEngin
@Override
public ShardingSelectOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final SelectStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, shardingTableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), shardingTableMetaData);
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final SelectStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, tableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), tableMetaData);
GroupByEngine groupByEngine = new GroupByEngine();
OrderByEngine orderByEngine = new OrderByEngine();
SelectItemsEngine selectItemsEngine = new SelectItemsEngine(shardingTableMetaData);
SelectItemsEngine selectItemsEngine = new SelectItemsEngine(tableMetaData);
PaginationEngine paginationEngine = new PaginationEngine();
List<ShardingCondition> shardingConditions = shardingConditionEngine.createShardingConditions(sqlStatement, parameters);
List<EncryptCondition> encryptConditions = encryptConditionEngine.createEncryptConditions(sqlStatement);
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.EncryptConditions;
import org.apache.shardingsphere.core.optimize.encrypt.segment.condition.engine.WhereClauseEncryptConditionEngine;
import org.apache.shardingsphere.core.optimize.sharding.engnie.ShardingOptimizeEngine;
......@@ -37,10 +37,10 @@ import java.util.List;
public final class ShardingUpdateOptimizeEngine implements ShardingOptimizeEngine<UpdateStatement> {
@Override
public ShardingConditionOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingTableMetaData shardingTableMetaData, final String sql, final List<Object> parameters, final UpdateStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, shardingTableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), shardingTableMetaData);
public ShardingConditionOptimizedStatement optimize(final ShardingRule shardingRule,
final ShardingSphereTableMetaData tableMetaData, final String sql, final List<Object> parameters, final UpdateStatement sqlStatement) {
WhereClauseShardingConditionEngine shardingConditionEngine = new WhereClauseShardingConditionEngine(shardingRule, tableMetaData);
WhereClauseEncryptConditionEngine encryptConditionEngine = new WhereClauseEncryptConditionEngine(shardingRule.getEncryptRule(), tableMetaData);
return new ShardingConditionOptimizedStatement(sqlStatement,
new ShardingConditions(shardingConditionEngine.createShardingConditions(sqlStatement, parameters)),
new EncryptConditions(encryptConditionEngine.createEncryptConditions(sqlStatement)));
......
......@@ -21,7 +21,7 @@ import com.google.common.base.Optional;
import com.google.common.collect.Range;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.core.exception.ShardingException;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.Column;
import org.apache.shardingsphere.core.optimize.api.segment.Tables;
import org.apache.shardingsphere.core.optimize.sharding.segment.condition.AlwaysFalseRouteValue;
......@@ -58,7 +58,7 @@ public final class WhereClauseShardingConditionEngine {
private final ShardingRule shardingRule;
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
/**
* Create sharding conditions.
......@@ -102,7 +102,7 @@ public final class WhereClauseShardingConditionEngine {
private Map<Column, Collection<RouteValue>> createRouteValueMap(final Tables tables, final AndPredicate andPredicate, final List<Object> parameters) {
Map<Column, Collection<RouteValue>> result = new HashMap<>();
for (PredicateSegment each : andPredicate.getPredicates()) {
Optional<String> tableName = tables.findTableName(each.getColumn(), shardingTableMetaData);
Optional<String> tableName = tables.findTableName(each.getColumn(), tableMetaData);
if (!tableName.isPresent() || !shardingRule.isShardingColumn(each.getColumn().getName(), tableName.get())) {
continue;
}
......
......@@ -19,7 +19,7 @@ package org.apache.shardingsphere.core.optimize.sharding.segment.insert;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.InsertColumns;
import org.apache.shardingsphere.core.parse.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.core.rule.EncryptRule;
......@@ -43,15 +43,15 @@ public final class ShardingInsertColumns implements InsertColumns {
private final Collection<String> regularColumnNames;
public ShardingInsertColumns(
final ShardingRule shardingRule, final ShardingTableMetaData shardingTableMetaData, final InsertStatement insertStatement, final Collection<String> derivedColumnNames) {
final ShardingRule shardingRule, final ShardingSphereTableMetaData tableMetaData, final InsertStatement insertStatement, final Collection<String> derivedColumnNames) {
generateKeyColumnName = shardingRule.findGenerateKeyColumnName(insertStatement.getTable().getTableName()).orNull();
regularColumnNames = insertStatement.useDefaultColumns()
? getRegularColumnNamesFromMetaData(shardingRule.getEncryptRule(), shardingTableMetaData, insertStatement, derivedColumnNames) : getRegularColumnNamesFromSQLStatement(insertStatement);
? getRegularColumnNamesFromMetaData(shardingRule.getEncryptRule(), tableMetaData, insertStatement, derivedColumnNames) : getRegularColumnNamesFromSQLStatement(insertStatement);
}
private Collection<String> getRegularColumnNamesFromMetaData(
final EncryptRule encryptRule, final ShardingTableMetaData shardingTableMetaData, final InsertStatement insertStatement, final Collection<String> derivedColumnNames) {
Collection<String> allColumnNames = shardingTableMetaData.getAllColumnNames(insertStatement.getTable().getTableName());
private Collection<String> getRegularColumnNamesFromMetaData(final EncryptRule encryptRule,
final ShardingSphereTableMetaData tableMetaData, final InsertStatement insertStatement, final Collection<String> derivedColumnNames) {
Collection<String> allColumnNames = tableMetaData.getAllColumnNames(insertStatement.getTable().getTableName());
Collection<String> result = new LinkedHashSet<>(allColumnNames.size() - derivedColumnNames.size());
String tableName = insertStatement.getTable().getTableName();
for (String each : allColumnNames) {
......
......@@ -22,7 +22,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.parse.sql.segment.generic.TableSegment;
import java.util.ArrayList;
......@@ -40,7 +40,7 @@ import java.util.List;
@RequiredArgsConstructor
@Getter
@Setter
@ToString(exclude = "shardingTableMetaData")
@ToString(exclude = "tableMetaData")
public final class SelectItems {
private final int startIndex;
......@@ -53,7 +53,7 @@ public final class SelectItems {
private final Collection<TableSegment> tables;
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
/**
* Judge is unqualified shorthand item or not.
......@@ -139,7 +139,7 @@ public final class SelectItems {
private Collection<String> getQualifiedShorthandColumnLabels(final String owner) {
for (TableSegment each : tables) {
if (owner.equalsIgnoreCase(each.getAlias().or(each.getTableName()))) {
return shardingTableMetaData.get(each.getTableName()).getColumns().keySet();
return tableMetaData.get(each.getTableName()).getColumns().keySet();
}
}
return Collections.emptyList();
......@@ -148,7 +148,7 @@ public final class SelectItems {
private Collection<String> getUnqualifiedShorthandColumnLabels() {
Collection<String> result = new LinkedList<>();
for (TableSegment each : tables) {
result.addAll(shardingTableMetaData.get(each.getTableName()).getColumns().keySet());
result.addAll(tableMetaData.get(each.getTableName()).getColumns().keySet());
}
return result;
}
......
......@@ -20,7 +20,7 @@ package org.apache.shardingsphere.core.optimize.sharding.segment.select.item.eng
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.segment.Table;
import org.apache.shardingsphere.core.optimize.api.segment.Tables;
import org.apache.shardingsphere.core.optimize.sharding.segment.select.groupby.GroupBy;
......@@ -51,7 +51,7 @@ import java.util.LinkedList;
@RequiredArgsConstructor
public final class SelectItemsEngine {
private final ShardingTableMetaData shardingTableMetaData;
private final ShardingSphereTableMetaData tableMetaData;
private final SelectItemEngine selectItemEngine = new SelectItemEngine();
......@@ -68,7 +68,7 @@ public final class SelectItemsEngine {
SelectItemsSegment selectItemsSegment = selectStatement.getSelectItems();
Collection<SelectItem> items = getSelectItemList(sql, selectItemsSegment);
SelectItems result = new SelectItems(
selectItemsSegment.getStartIndex(), selectItemsSegment.getStopIndex(), selectItemsSegment.isDistinctRow(), items, selectStatement.getTables(), shardingTableMetaData);
selectItemsSegment.getStartIndex(), selectItemsSegment.getStopIndex(), selectItemsSegment.isDistinctRow(), items, selectStatement.getTables(), tableMetaData);
Tables tables = new Tables(selectStatement);
result.getItems().addAll(getDerivedGroupByColumns(tables, items, groupBy));
result.getItems().addAll(getDerivedOrderByColumns(tables, items, orderBy));
......@@ -172,7 +172,7 @@ public final class SelectItemsEngine {
private boolean isSameSelectItem(final Tables tables, final ShorthandSelectItem shorthandSelectItem, final ColumnOrderByItemSegment orderItem) {
Preconditions.checkState(shorthandSelectItem.getOwner().isPresent());
Optional<Table> table = tables.find(shorthandSelectItem.getOwner().get());
return table.isPresent() && shardingTableMetaData.containsColumn(table.get().getName(), orderItem.getColumn().getName());
return table.isPresent() && tableMetaData.containsColumn(table.get().getName(), orderItem.getColumn().getName());
}
private boolean containsItemInSelectItems(final Collection<SelectItem> items, final OrderByItemSegment orderItem) {
......
......@@ -21,7 +21,7 @@ import org.apache.shardingsphere.api.config.encrypt.EncryptColumnRuleConfigurati
import org.apache.shardingsphere.api.config.encrypt.EncryptRuleConfiguration;
import org.apache.shardingsphere.api.config.encrypt.EncryptTableRuleConfiguration;
import org.apache.shardingsphere.api.config.encrypt.EncryptorRuleConfiguration;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.engine.dml.EncryptInsertOptimizeEngine;
import org.apache.shardingsphere.core.optimize.encrypt.statement.EncryptInsertOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.segment.dml.assignment.AssignmentSegment;
......@@ -94,7 +94,7 @@ public final class EncryptInsertOptimizeEngineTest {
public void assertInsertStatementWithValuesWithPlaceHolderWithEncrypt() {
InsertStatement insertStatement = createInsertStatementWithValuesWithPlaceHolderWithEncrypt();
EncryptInsertOptimizeEngine optimizeEngine = new EncryptInsertOptimizeEngine();
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingTableMetaData.class), "", parametersWithValues, insertStatement);
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingSphereTableMetaData.class), "", parametersWithValues, insertStatement);
assertThat(actual.getUnits().size(), is(1));
assertThat(actual.getUnits().get(0).getParameters().length, is(2));
assertThat(actual.getUnits().get(0).getParameters()[0], is((Object) 1));
......@@ -114,7 +114,7 @@ public final class EncryptInsertOptimizeEngineTest {
public void assertInsertStatementWithValuesWithoutPlaceHolderWithQueryEncrypt() {
InsertStatement insertStatement = createInsertStatementWithValuesWithoutPlaceHolderWithQueryEncrypt();
EncryptInsertOptimizeEngine optimizeEngine = new EncryptInsertOptimizeEngine();
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingTableMetaData.class), "", parametersWithoutValues, insertStatement);
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingSphereTableMetaData.class), "", parametersWithoutValues, insertStatement);
assertThat(actual.getUnits().size(), is(1));
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
assertThat(actual.getUnits().get(0).getColumnValue("col1"), is((Object) 1));
......@@ -137,7 +137,7 @@ public final class EncryptInsertOptimizeEngineTest {
public void assertInsertStatementWithSetWithoutPlaceHolderWithEncrypt() {
InsertStatement insertStatement = createInsertStatementWithSetWithoutPlaceHolderWithEncrypt();
EncryptInsertOptimizeEngine optimizeEngine = new EncryptInsertOptimizeEngine();
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingTableMetaData.class), "", parametersWithoutValues, insertStatement);
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingSphereTableMetaData.class), "", parametersWithoutValues, insertStatement);
assertThat(actual.getUnits().size(), is(1));
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
assertThat(actual.getUnits().get(0).getColumnValue("col1"), is((Object) 1));
......@@ -159,7 +159,7 @@ public final class EncryptInsertOptimizeEngineTest {
public void assertInsertStatementWithSetWithPlaceHolderWithQueryEncrypt() {
InsertStatement insertStatement = createInsertStatementWithSetWithPlaceHolderWithQueryEncrypt();
EncryptInsertOptimizeEngine optimizeEngine = new EncryptInsertOptimizeEngine();
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingTableMetaData.class), "", parametersWithValues, insertStatement);
EncryptInsertOptimizedStatement actual = optimizeEngine.optimize(encryptRule, mock(ShardingSphereTableMetaData.class), "", parametersWithValues, insertStatement);
assertThat(actual.getUnits().size(), is(1));
assertThat(actual.getUnits().get(0).getParameters().length, is(4));
assertThat(actual.getUnits().get(0).getParameters()[0], is((Object) 1));
......
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie.ddl;
import com.google.common.base.Optional;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.statement.ddl.ShardingDropIndexOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.core.parse.sql.segment.generic.TableSegment;
......@@ -44,26 +44,26 @@ public final class ShardingDropIndexOptimizeEngineTest {
private DropIndexStatement dropIndexStatement;
@Mock
private ShardingTableMetaData shardingTableMetaData;
private ShardingSphereTableMetaData tableMetaData;
@Before
public void setUp() {
dropIndexStatement = new DropIndexStatement();
dropIndexStatement.getIndexes().add(new IndexSegment(0, 0, "idx"));
when(shardingTableMetaData.getLogicTableName("idx")).thenReturn(Optional.of("meta_tbl"));
when(tableMetaData.getLogicTableName("idx")).thenReturn(Optional.of("meta_tbl"));
}
@Test
public void assertOptimizeWithTableName() {
dropIndexStatement.getAllSQLSegments().add(new TableSegment(0, 0, "tbl"));
ShardingDropIndexOptimizedStatement actual = new ShardingDropIndexOptimizeEngine().optimize(mock(ShardingRule.class), shardingTableMetaData, "", Collections.emptyList(), dropIndexStatement);
ShardingDropIndexOptimizedStatement actual = new ShardingDropIndexOptimizeEngine().optimize(mock(ShardingRule.class), tableMetaData, "", Collections.emptyList(), dropIndexStatement);
assertThat(actual.getSQLStatement(), is((SQLStatement) dropIndexStatement));
assertThat(actual.getTableNames().iterator().next(), is("tbl"));
}
@Test
public void assertOptimizeWithoutTableName() {
ShardingDropIndexOptimizedStatement actual = new ShardingDropIndexOptimizeEngine().optimize(mock(ShardingRule.class), shardingTableMetaData, "", Collections.emptyList(), dropIndexStatement);
ShardingDropIndexOptimizedStatement actual = new ShardingDropIndexOptimizeEngine().optimize(mock(ShardingRule.class), tableMetaData, "", Collections.emptyList(), dropIndexStatement);
assertThat(actual.getSQLStatement(), is((SQLStatement) dropIndexStatement));
assertThat(actual.getTableNames().iterator().next(), is("meta_tbl"));
}
......
......@@ -18,7 +18,7 @@
package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import com.google.common.base.Preconditions;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.statement.dml.ShardingInsertOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.segment.dml.assignment.AssignmentSegment;
import org.apache.shardingsphere.core.parse.sql.segment.dml.assignment.InsertValuesSegment;
......@@ -166,7 +166,7 @@ public final class ShardingInsertOptimizeEngineTest {
@Test
public void assertOptimizeInsertValuesWithPlaceholderWithGeneratedKey() {
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholder);
shardingRule, mock(ShardingSphereTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholder);
assertThat(actual.getUnits().get(0).getParameters().length, is(3));
assertThat(actual.getUnits().get(1).getParameters().length, is(3));
assertThat(actual.getUnits().get(0).getParameters()[0], CoreMatchers.<Object>is(10));
......@@ -180,7 +180,7 @@ public final class ShardingInsertOptimizeEngineTest {
@Test
public void assertOptimizeInsertValuesWithPlaceholderWithGeneratedKeyWithEncrypt() {
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholderWithEncrypt);
shardingRule, mock(ShardingSphereTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholderWithEncrypt);
assertThat(actual.getUnits().get(1).getParameters().length, is(3));
assertThat(actual.getUnits().get(0).getParameters()[0], CoreMatchers.<Object>is(10));
assertThat(actual.getUnits().get(0).getParameters()[1], CoreMatchers.<Object>is("init"));
......@@ -193,7 +193,7 @@ public final class ShardingInsertOptimizeEngineTest {
@Test
public void assertOptimizeInsertValuesWithPlaceholderWithoutGeneratedKey() {
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholder);
shardingRule, mock(ShardingSphereTableMetaData.class), "", insertValuesParameters, insertValuesStatementWithPlaceholder);
assertThat(actual.getUnits().get(0).getParameters().length, is(3));
assertThat(actual.getUnits().get(1).getParameters().length, is(3));
assertThat(actual.getUnits().get(0).getParameters()[0], CoreMatchers.<Object>is(10));
......@@ -209,7 +209,7 @@ public final class ShardingInsertOptimizeEngineTest {
insertValuesStatementWithoutPlaceholderWithQueryEncrypt.getValues().add(
new InsertValuesSegment(0, 0, Arrays.<ExpressionSegment>asList(new LiteralExpressionSegment(1, 2, 12), new LiteralExpressionSegment(3, 4, "a"))));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", Collections.emptyList(), insertValuesStatementWithoutPlaceholderWithQueryEncrypt);
shardingRule, mock(ShardingSphereTableMetaData.class), "", Collections.emptyList(), insertValuesStatementWithoutPlaceholderWithQueryEncrypt);
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
}
......@@ -220,7 +220,7 @@ public final class ShardingInsertOptimizeEngineTest {
insertValuesStatementWithoutPlaceholder.getValues().add(
new InsertValuesSegment(0, 0, Arrays.<ExpressionSegment>asList(new LiteralExpressionSegment(1, 2, 12), new LiteralExpressionSegment(3, 4, "a"))));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", Collections.emptyList(), insertValuesStatementWithoutPlaceholder);
shardingRule, mock(ShardingSphereTableMetaData.class), "", Collections.emptyList(), insertValuesStatementWithoutPlaceholder);
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
}
......@@ -230,7 +230,7 @@ public final class ShardingInsertOptimizeEngineTest {
AssignmentSegment assignmentSegment2 = new AssignmentSegment(0, 0, new ColumnSegment(0, 0, "col2"), new ParameterMarkerExpressionSegment(3, 4, 1));
insertSetStatementWithPlaceholder.setSetAssignment(new SetAssignmentsSegment(0, 0, Arrays.asList(assignmentSegment1, assignmentSegment2)));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", insertSetParameters, insertSetStatementWithPlaceholder);
shardingRule, mock(ShardingSphereTableMetaData.class), "", insertSetParameters, insertSetStatementWithPlaceholder);
assertThat(actual.getUnits().get(0).getParameters().length, is(3));
assertThat(actual.getUnits().get(0).getParameters()[0], CoreMatchers.<Object>is(12));
assertThat(actual.getUnits().get(0).getParameters()[1], CoreMatchers.<Object>is("a"));
......@@ -243,7 +243,7 @@ public final class ShardingInsertOptimizeEngineTest {
AssignmentSegment assignmentSegment2 = new AssignmentSegment(0, 0, new ColumnSegment(0, 0, "col2"), new ParameterMarkerExpressionSegment(3, 4, 1));
insertSetStatementWithPlaceholderWithQueryEncrypt.setSetAssignment(new SetAssignmentsSegment(0, 0, Arrays.asList(assignmentSegment1, assignmentSegment2)));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", insertSetParameters, insertSetStatementWithPlaceholderWithQueryEncrypt);
shardingRule, mock(ShardingSphereTableMetaData.class), "", insertSetParameters, insertSetStatementWithPlaceholderWithQueryEncrypt);
assertThat(actual.getUnits().get(0).getParameters().length, is(4));
assertThat(actual.getUnits().get(0).getParameters()[0], CoreMatchers.<Object>is(12));
assertThat(actual.getUnits().get(0).getParameters()[1], CoreMatchers.<Object>is("a"));
......@@ -255,7 +255,7 @@ public final class ShardingInsertOptimizeEngineTest {
AssignmentSegment assignmentSegment2 = new AssignmentSegment(0, 0, new ColumnSegment(0, 0, "col2"), new LiteralExpressionSegment(3, 4, "a"));
insertSetStatementWithoutPlaceholder.setSetAssignment(new SetAssignmentsSegment(0, 0, Arrays.asList(assignmentSegment1, assignmentSegment2)));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", Collections.emptyList(), insertSetStatementWithoutPlaceholder);
shardingRule, mock(ShardingSphereTableMetaData.class), "", Collections.emptyList(), insertSetStatementWithoutPlaceholder);
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
}
......@@ -265,7 +265,7 @@ public final class ShardingInsertOptimizeEngineTest {
AssignmentSegment assignmentSegment2 = new AssignmentSegment(0, 0, new ColumnSegment(0, 0, "col2"), new LiteralExpressionSegment(3, 4, "a"));
insertSetStatementWithoutPlaceholderWithEncrypt.setSetAssignment(new SetAssignmentsSegment(0, 0, Arrays.asList(assignmentSegment1, assignmentSegment2)));
ShardingInsertOptimizedStatement actual = new ShardingInsertOptimizeEngine().optimize(
shardingRule, mock(ShardingTableMetaData.class), "", Collections.emptyList(), insertSetStatementWithoutPlaceholderWithEncrypt);
shardingRule, mock(ShardingSphereTableMetaData.class), "", Collections.emptyList(), insertSetStatementWithoutPlaceholderWithEncrypt);
assertThat(actual.getUnits().get(0).getParameters().length, is(0));
}
}
......@@ -19,9 +19,9 @@ package org.apache.shardingsphere.core.optimize.sharding.engnie.dml;
import com.google.common.base.Optional;
import com.google.common.collect.Range;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.segment.condition.ShardingCondition;
import org.apache.shardingsphere.core.optimize.sharding.segment.condition.ShardingConditions;
import org.apache.shardingsphere.core.optimize.sharding.segment.select.item.SelectItems;
......@@ -70,7 +70,7 @@ public final class ShardingSelectOptimizeEngineTest {
private ShardingRule shardingRule;
@Mock
private ShardingTableMetaData shardingTableMetaData;
private ShardingSphereTableMetaData tableMetaData;
private SelectStatement selectStatement;
......@@ -96,7 +96,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertTrue(shardingConditions.isAlwaysFalse());
}
......@@ -113,7 +113,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertTrue(shardingConditions.isAlwaysFalse());
}
......@@ -130,7 +130,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertTrue(shardingConditions.isAlwaysFalse());
}
......@@ -147,7 +147,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertFalse(shardingConditions.isAlwaysFalse());
ShardingCondition shardingCondition = shardingConditions.getConditions().get(0);
RouteValue shardingValue = shardingCondition.getRouteValues().get(0);
......@@ -170,7 +170,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertFalse(shardingConditions.isAlwaysFalse());
ShardingCondition shardingCondition = shardingConditions.getConditions().get(0);
RouteValue shardingValue = shardingCondition.getRouteValues().get(0);
......@@ -193,7 +193,7 @@ public final class ShardingSelectOptimizeEngineTest {
WhereSegment whereSegment = new WhereSegment(0, 0, 0);
whereSegment.getAndPredicates().addAll(andPredicates);
selectStatement.setWhere(whereSegment);
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
ShardingConditions shardingConditions = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getShardingConditions();
assertFalse(shardingConditions.isAlwaysFalse());
ShardingCondition shardingCondition = shardingConditions.getConditions().get(0);
RouteValue shardingValue = shardingCondition.getRouteValues().get(0);
......@@ -210,10 +210,10 @@ public final class ShardingSelectOptimizeEngineTest {
@Test
public void assertOptimizeWithShorthandItems() {
when(shardingTableMetaData.get("tbl")).thenReturn(createTableMetaData());
when(tableMetaData.get("tbl")).thenReturn(createTableMetaData());
selectStatement.setSelectItems(createSelectItemsSegment());
selectStatement.getTables().add(new TableSegment(0, 0, "tbl"));
SelectItems selectItems = new ShardingSelectOptimizeEngine().optimize(shardingRule, shardingTableMetaData, "", Collections.emptyList(), selectStatement).getSelectItems();
SelectItems selectItems = new ShardingSelectOptimizeEngine().optimize(shardingRule, tableMetaData, "", Collections.emptyList(), selectStatement).getSelectItems();
assertThat(selectItems.getColumnLabels().size(), is(2));
assertThat(selectItems.getColumnLabels().get(0), is("id"));
assertThat(selectItems.getColumnLabels().get(1), is("user_id"));
......
......@@ -17,9 +17,9 @@
package org.apache.shardingsphere.core.optimize.sharding.segment.select.item;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.parse.core.constant.AggregationType;
import org.apache.shardingsphere.core.parse.sql.segment.generic.TableSegment;
import org.junit.Test;
......@@ -38,39 +38,39 @@ public final class SelectItemsTest {
@Test
public void assertUnqualifiedShorthandItemWithEmptyItems() {
SelectItems selectItems = new SelectItems(0, 0, true, Collections.<SelectItem>emptySet(), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.<SelectItem>emptySet(), Collections.<TableSegment>emptyList(), createTableMetaData());
assertFalse(selectItems.isUnqualifiedShorthandItem());
}
@Test
public void assertUnqualifiedShorthandItemWithWrongSelectItem() {
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton((SelectItem) getColumnSelectItem()), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton((SelectItem) getColumnSelectItem()), Collections.<TableSegment>emptyList(), createTableMetaData());
assertFalse(selectItems.isUnqualifiedShorthandItem());
}
@Test
public void assertUnqualifiedShorthandItemWithWrongShortSelectItem() {
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton((SelectItem) getShorthandSelectItem()), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton((SelectItem) getShorthandSelectItem()), Collections.<TableSegment>emptyList(), createTableMetaData());
assertFalse(selectItems.isUnqualifiedShorthandItem());
}
@Test
public void assertUnqualifiedShorthandItem() {
SelectItem selectItem = new ShorthandSelectItem(null);
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData());
assertTrue(selectItems.isUnqualifiedShorthandItem());
}
@Test
public void assertFindAliasWithOutAlias() {
SelectItems selectItems = new SelectItems(0, 0, true, Collections.<SelectItem>emptyList(), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.<SelectItem>emptyList(), Collections.<TableSegment>emptyList(), createTableMetaData());
assertFalse(selectItems.findAlias("").isPresent());
}
@Test
public void assertFindAlias() {
SelectItem selectItem = getColumnSelectItemWithAlias();
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData());
SelectItems selectItems = new SelectItems(0, 0, true, Collections.singleton(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData());
assertTrue(selectItems.findAlias(selectItem.getExpression()).isPresent());
}
......@@ -78,7 +78,7 @@ public final class SelectItemsTest {
public void assertGetAggregationSelectItems() {
SelectItem aggregationSelectItem = getAggregationSelectItem();
List<AggregationSelectItem> items = new SelectItems(0, 0, true,
Arrays.asList(aggregationSelectItem, getColumnSelectItem()), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getAggregationSelectItems();
Arrays.asList(aggregationSelectItem, getColumnSelectItem()), Collections.<TableSegment>emptyList(), createTableMetaData()).getAggregationSelectItems();
assertTrue(items.contains(aggregationSelectItem));
assertEquals(items.size(), 1);
}
......@@ -87,7 +87,7 @@ public final class SelectItemsTest {
public void assertGetAggregationDistinctSelectItems() {
SelectItem aggregationDistinctSelectItem = getAggregationDistinctSelectItem();
List<AggregationDistinctSelectItem> items = new SelectItems(0, 0, true,
Arrays.asList(aggregationDistinctSelectItem, getColumnSelectItem()), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getAggregationDistinctSelectItems();
Arrays.asList(aggregationDistinctSelectItem, getColumnSelectItem()), Collections.<TableSegment>emptyList(), createTableMetaData()).getAggregationDistinctSelectItems();
assertTrue(items.contains(aggregationDistinctSelectItem));
assertEquals(items.size(), 1);
}
......@@ -96,7 +96,7 @@ public final class SelectItemsTest {
public void assertGetColumnLabelWithShorthandSelectItem() {
SelectItem selectItem = getShorthandSelectItem();
List<String> columnLabels = new SelectItems(
0, 0, true, Collections.singletonList(selectItem), Collections.singletonList(new TableSegment(0, 0, "table")), createShardingTableMetaData()).getColumnLabels();
0, 0, true, Collections.singletonList(selectItem), Collections.singletonList(new TableSegment(0, 0, "table")), createTableMetaData()).getColumnLabels();
assertEquals(columnLabels, Arrays.asList("id", "name"));
}
......@@ -104,70 +104,70 @@ public final class SelectItemsTest {
public void assertGetColumnLabelWithShorthandSelectItem2() {
SelectItem selectItem = getShorthandSelectItemWithOutOwner();
List<String> columnLabels = new SelectItems(
0, 0, true, Collections.singletonList(selectItem), Collections.singletonList(new TableSegment(0, 0, "table")), createShardingTableMetaData()).getColumnLabels();
0, 0, true, Collections.singletonList(selectItem), Collections.singletonList(new TableSegment(0, 0, "table")), createTableMetaData()).getColumnLabels();
assertEquals(columnLabels, Arrays.asList("id", "name"));
}
@Test
public void assertGetColumnLabelsWithCommonSelectItem() {
SelectItem selectItem = getColumnSelectItem();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getColumnLabel()));
}
@Test
public void assertGetColumnLabelsWithCommonSelectItemAlias() {
SelectItem selectItem = getColumnSelectItemWithAlias();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getAlias().or("")));
}
@Test
public void assertGetColumnLabelsWithExpressionSelectItem() {
SelectItem selectItem = getExpressionSelectItem();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getColumnLabel()));
}
@Test
public void assertGetColumnLabelsWithExpressionSelectItemAlias() {
SelectItem selectItem = getExpressionSelectItemWithAlias();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getAlias().or("")));
}
@Test
public void assertGetColumnLabelsWithDerivedSelectItem() {
SelectItem selectItem = getDerivedSelectItem();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getColumnLabel()));
}
@Test
public void assertGetColumnLabelsWithDerivedSelectItemAlias() {
SelectItem selectItem = getDerivedSelectItemWithAlias();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getAlias().or("")));
}
@Test
public void assertGetColumnLabelsWithAggregationSelectItem() {
SelectItem selectItem = getAggregationSelectItem();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getColumnLabel()));
}
@Test
public void assertGetColumnLabelsWithAggregationDistinctSelectItem() {
SelectItem selectItem = getAggregationDistinctSelectItem();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createShardingTableMetaData()).getColumnLabels();
List<String> columnLabels = new SelectItems(0, 0, true, Collections.singletonList(selectItem), Collections.<TableSegment>emptyList(), createTableMetaData()).getColumnLabels();
assertTrue(columnLabels.contains(selectItem.getColumnLabel()));
}
private ShardingTableMetaData createShardingTableMetaData() {
private ShardingSphereTableMetaData createTableMetaData() {
Map<String, TableMetaData> tables = new HashMap<>(1, 1);
tables.put("table", new TableMetaData(Arrays.asList(new ColumnMetaData("id", "number", true), new ColumnMetaData("name", "varchar", false)), Collections.<String>emptyList()));
return new ShardingTableMetaData(tables);
return new ShardingSphereTableMetaData(tables);
}
private ShorthandSelectItem getShorthandSelectItem() {
......
......@@ -22,7 +22,7 @@ import org.apache.shardingsphere.api.config.encrypt.EncryptRuleConfiguration;
import org.apache.shardingsphere.api.config.encrypt.EncryptTableRuleConfiguration;
import org.apache.shardingsphere.api.config.encrypt.EncryptorRuleConfiguration;
import org.apache.shardingsphere.core.database.DatabaseTypes;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.encrypt.EncryptOptimizeEngineFactory;
import org.apache.shardingsphere.core.optimize.encrypt.statement.EncryptOptimizedStatement;
import org.apache.shardingsphere.core.parse.SQLParseEngine;
......@@ -335,7 +335,8 @@ public final class EncryptSQLRewriteEngineTest {
private SQLUnit getSQLUnit(final String sql, final List<Object> parameters, final boolean isQueryWithCipherColumn) {
// TODO panjuan: should mock sqlStatement, do not call parse module on rewrite test case
SQLStatement sqlStatement = parseEngine.parse(sql, false);
EncryptOptimizedStatement encryptStatement = EncryptOptimizeEngineFactory.newInstance(sqlStatement).optimize(encryptRule, mock(ShardingTableMetaData.class), sql, parameters, sqlStatement);
EncryptOptimizedStatement encryptStatement = EncryptOptimizeEngineFactory.newInstance(sqlStatement)
.optimize(encryptRule, mock(ShardingSphereTableMetaData.class), sql, parameters, sqlStatement);
SQLRewriteEngine sqlRewriteEngine = new SQLRewriteEngine(encryptRule, encryptStatement, sql, parameters, isQueryWithCipherColumn);
return sqlRewriteEngine.generateSQL();
}
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.route.hook;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.route.SQLRouteResult;
/**
......@@ -38,9 +38,9 @@ public interface RoutingHook {
* Handle when routing finished success.
*
* @param sqlRouteResult sql route result
* @param shardingTableMetaData sharding table meta data
* @param tableMetaData table meta data of ShardingSphere
*/
void finishSuccess(SQLRouteResult sqlRouteResult, ShardingTableMetaData shardingTableMetaData);
void finishSuccess(SQLRouteResult sqlRouteResult, ShardingSphereTableMetaData tableMetaData);
/**
* Handle when routing finished failure.
......
......@@ -17,7 +17,7 @@
package org.apache.shardingsphere.core.route.hook;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.route.SQLRouteResult;
import org.apache.shardingsphere.core.spi.NewInstanceServiceLoader;
......@@ -44,9 +44,9 @@ public final class SPIRoutingHook implements RoutingHook {
}
@Override
public void finishSuccess(final SQLRouteResult sqlRouteResult, final ShardingTableMetaData shardingTableMetaData) {
public void finishSuccess(final SQLRouteResult sqlRouteResult, final ShardingSphereTableMetaData tableMetaData) {
for (RoutingHook each : routingHooks) {
each.finishSuccess(sqlRouteResult, shardingTableMetaData);
each.finishSuccess(sqlRouteResult, tableMetaData);
}
}
......
......@@ -25,9 +25,9 @@ import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStra
import org.apache.shardingsphere.api.hint.HintManager;
import org.apache.shardingsphere.core.database.DatabaseTypes;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.optimize.sharding.statement.dml.ShardingSelectOptimizedStatement;
import org.apache.shardingsphere.core.parse.SQLParseEngine;
import org.apache.shardingsphere.core.route.fixture.HintShardingAlgorithmFixture;
......@@ -90,10 +90,10 @@ public final class DatabaseTest {
private ShardingSphereMetaData getMetaDataForAllRoutingSQL() {
ColumnMetaData idColumnMetaData = new ColumnMetaData("id", "int", true);
ColumnMetaData nameColumnMetaData = new ColumnMetaData("user_id", "int", false);
ShardingTableMetaData shardingTableMetaData = mock(ShardingTableMetaData.class);
when(shardingTableMetaData.get("tesT")).thenReturn(new TableMetaData(Arrays.asList(idColumnMetaData, nameColumnMetaData), Arrays.asList("id", "user_id")));
ShardingSphereTableMetaData tableMetaData = mock(ShardingSphereTableMetaData.class);
when(tableMetaData.get("tesT")).thenReturn(new TableMetaData(Arrays.asList(idColumnMetaData, nameColumnMetaData), Arrays.asList("id", "user_id")));
ShardingSphereMetaData result = mock(ShardingSphereMetaData.class);
when(result.getTable()).thenReturn(shardingTableMetaData);
when(result.getTable()).thenReturn(tableMetaData);
return result;
}
......@@ -114,10 +114,10 @@ public final class DatabaseTest {
private ShardingSphereMetaData getMetaDataForPagination() {
ColumnMetaData idColumnMetaData = new ColumnMetaData("id", "int", true);
ColumnMetaData nameColumnMetaData = new ColumnMetaData("user_id", "int", false);
ShardingTableMetaData shardingTableMetaData = mock(ShardingTableMetaData.class);
when(shardingTableMetaData.get("tbl_pagination")).thenReturn(new TableMetaData(Arrays.asList(idColumnMetaData, nameColumnMetaData), Arrays.asList("id", "user_id")));
ShardingSphereTableMetaData tableMetaData = mock(ShardingSphereTableMetaData.class);
when(tableMetaData.get("tbl_pagination")).thenReturn(new TableMetaData(Arrays.asList(idColumnMetaData, nameColumnMetaData), Arrays.asList("id", "user_id")));
ShardingSphereMetaData result = mock(ShardingSphereMetaData.class);
when(result.getTable()).thenReturn(shardingTableMetaData);
when(result.getTable()).thenReturn(tableMetaData);
return result;
}
......@@ -135,7 +135,7 @@ public final class DatabaseTest {
ShardingRule rule = new ShardingRule(shardingRuleConfig, dataSourceMap.keySet());
String originSQL = "select city_id from t_user where city_id in (?,?) limit 5,10";
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
when(metaData.getTable()).thenReturn(mock(ShardingTableMetaData.class));
when(metaData.getTable()).thenReturn(mock(ShardingSphereTableMetaData.class));
SQLParseEngine parseEngine = new SQLParseEngine(DatabaseTypes.getActualDatabaseType("MySQL"));
SQLRouteResult actual = new PreparedStatementRoutingEngine(originSQL, rule, metaData, DatabaseTypes.getActualDatabaseType("MySQL"), parseEngine).route(Lists.<Object>newArrayList(13, 173));
assertThat(((ShardingSelectOptimizedStatement) actual.getShardingStatement()).getPagination().getActualOffset(), is(5));
......
......@@ -24,9 +24,9 @@ import org.apache.shardingsphere.api.config.sharding.strategy.InlineShardingStra
import org.apache.shardingsphere.core.database.DatabaseTypes;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.parse.SQLParseEngine;
import org.apache.shardingsphere.core.route.PreparedStatementRoutingEngine;
import org.apache.shardingsphere.core.route.SQLRouteResult;
......@@ -48,7 +48,7 @@ public abstract class AbstractSQLRouteTest {
protected final SQLRouteResult assertRoute(final String sql, final List<Object> parameters) {
ShardingRule shardingRule = createShardingRule();
ShardingSphereMetaData metaData = new ShardingSphereMetaData(buildDataSourceMetaData(), buildShardingTableMetaData());
ShardingSphereMetaData metaData = new ShardingSphereMetaData(buildDataSourceMetaData(), buildTableMetaData());
SQLParseEngine parseEngine = new SQLParseEngine(DatabaseTypes.getActualDatabaseType("MySQL"));
PreparedStatementRoutingEngine engine = new PreparedStatementRoutingEngine(sql, shardingRule, metaData, DatabaseTypes.getActualDatabaseType("MySQL"), parseEngine);
SQLRouteResult result = engine.route(parameters);
......@@ -111,13 +111,13 @@ public abstract class AbstractSQLRouteTest {
return result;
}
private ShardingTableMetaData buildShardingTableMetaData() {
private ShardingSphereTableMetaData buildTableMetaData() {
Map<String, TableMetaData> tableMetaDataMap = new HashMap<>(3, 1);
tableMetaDataMap.put("t_order", new TableMetaData(Arrays.asList(new ColumnMetaData("order_id", "int", true), new ColumnMetaData("user_id", "int", false),
new ColumnMetaData("status", "int", false)), Collections.<String>emptySet()));
tableMetaDataMap.put("t_order_item", new TableMetaData(Arrays.asList(new ColumnMetaData("item_id", "int", true), new ColumnMetaData("order_id", "int", false),
new ColumnMetaData("user_id", "int", false), new ColumnMetaData("status", "varchar", false),
new ColumnMetaData("c_date", "timestamp", false)), Collections.<String>emptySet()));
return new ShardingTableMetaData(tableMetaDataMap);
return new ShardingSphereTableMetaData(tableMetaDataMap);
}
}
......@@ -19,9 +19,9 @@ package org.apache.shardingsphere.shardingjdbc.jdbc.core.context;
import com.google.common.base.Optional;
import lombok.Getter;
import org.apache.shardingsphere.core.metadata.table.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.TableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.ColumnMetaData;
import org.apache.shardingsphere.core.metadata.table.impl.TableMetaData;
import org.apache.shardingsphere.core.rule.EncryptRule;
import org.apache.shardingsphere.spi.database.DatabaseType;
......@@ -46,14 +46,14 @@ import java.util.Set;
@Getter
public final class EncryptRuntimeContext extends AbstractRuntimeContext<EncryptRule> {
private final ShardingTableMetaData metaData;
private final ShardingSphereTableMetaData metaData;
public EncryptRuntimeContext(final DataSource dataSource, final EncryptRule rule, final Properties props, final DatabaseType databaseType) throws SQLException {
super(rule, props, databaseType);
metaData = createEncryptTableMetaData(dataSource, rule);
}
private ShardingTableMetaData createEncryptTableMetaData(final DataSource dataSource, final EncryptRule encryptRule) throws SQLException {
private ShardingSphereTableMetaData createEncryptTableMetaData(final DataSource dataSource, final EncryptRule encryptRule) throws SQLException {
Map<String, TableMetaData> tables = new LinkedHashMap<>();
try (Connection connection = dataSource.getConnection()) {
for (String each : encryptRule.getEncryptTableNames()) {
......@@ -62,7 +62,7 @@ public final class EncryptRuntimeContext extends AbstractRuntimeContext<EncryptR
}
}
}
return new ShardingTableMetaData(tables);
return new ShardingSphereTableMetaData(tables);
}
private boolean isTableExist(final Connection connection, final String tableName) throws SQLException {
......
......@@ -22,7 +22,7 @@ import org.apache.shardingsphere.core.constant.properties.ShardingPropertiesCons
import org.apache.shardingsphere.core.execute.metadata.TableMetaDataInitializer;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.shardingjdbc.jdbc.core.datasource.metadata.CachedDatabaseMetaData;
import org.apache.shardingsphere.shardingjdbc.jdbc.metadata.JDBCTableMetaDataConnectionManager;
......@@ -70,8 +70,8 @@ public final class ShardingRuntimeContext extends AbstractRuntimeContext<Shardin
private ShardingSphereMetaData createMetaData(final Map<String, DataSource> dataSourceMap, final ShardingRule shardingRule, final DatabaseType databaseType) throws SQLException {
ShardingSphereDataSourceMetaData dataSourceMetaData = new ShardingSphereDataSourceMetaData(getDataSourceURLs(dataSourceMap), databaseType);
ShardingTableMetaData shardingTableMetaData = new ShardingTableMetaData(getTableMetaDataInitializer(dataSourceMap, dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, shardingTableMetaData);
ShardingSphereTableMetaData tableMetaData = new ShardingSphereTableMetaData(getTableMetaDataInitializer(dataSourceMap, dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, tableMetaData);
}
private Map<String, String> getDataSourceURLs(final Map<String, DataSource> dataSourceMap) throws SQLException {
......
......@@ -24,7 +24,7 @@ import org.apache.shardingsphere.api.config.encrypt.EncryptRuleConfiguration;
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.EncryptRule;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.util.ConfigurationLogger;
......@@ -59,8 +59,8 @@ public final class EncryptSchema extends LogicSchema {
private ShardingSphereMetaData createMetaData() {
ShardingSphereDataSourceMetaData dataSourceMetaData = new ShardingSphereDataSourceMetaData(getDataSourceURLs(getDataSources()), LogicSchemas.getInstance().getDatabaseType());
ShardingTableMetaData shardingTableMetaData = new ShardingTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, shardingTableMetaData);
ShardingSphereTableMetaData tableMetaData = new ShardingSphereTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, tableMetaData);
}
/**
......
......@@ -23,7 +23,7 @@ import org.apache.shardingsphere.api.config.masterslave.MasterSlaveRuleConfigura
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.rule.MasterSlaveRule;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.util.ConfigurationLogger;
......@@ -66,8 +66,8 @@ public final class MasterSlaveSchema extends LogicSchema {
private ShardingSphereMetaData createMetaData() {
ShardingSphereDataSourceMetaData dataSourceMetaData = new ShardingSphereDataSourceMetaData(getDataSourceURLs(getDataSources()), LogicSchemas.getInstance().getDatabaseType());
ShardingTableMetaData shardingTableMetaData = new ShardingTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, shardingTableMetaData);
ShardingSphereTableMetaData tableMetaData = new ShardingSphereTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, tableMetaData);
}
/**
......
......@@ -23,7 +23,7 @@ import lombok.Getter;
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.optimize.api.statement.OptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.core.parse.sql.statement.ddl.AlterTableStatement;
......@@ -76,8 +76,8 @@ public final class ShardingSchema extends LogicSchema {
private ShardingSphereMetaData createMetaData() {
ShardingSphereDataSourceMetaData dataSourceMetaData = new ShardingSphereDataSourceMetaData(getDataSourceURLs(getDataSources()), LogicSchemas.getInstance().getDatabaseType());
ShardingTableMetaData shardingTableMetaData = new ShardingTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, shardingTableMetaData);
ShardingSphereTableMetaData tableMetaData = new ShardingSphereTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, tableMetaData);
}
/**
......
......@@ -21,7 +21,7 @@ import lombok.Getter;
import org.apache.shardingsphere.api.config.sharding.ShardingRuleConfiguration;
import org.apache.shardingsphere.core.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.core.metadata.datasource.ShardingSphereDataSourceMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingTableMetaData;
import org.apache.shardingsphere.core.metadata.table.ShardingSphereTableMetaData;
import org.apache.shardingsphere.core.parse.SQLParseEngine;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.shardingproxy.backend.schema.LogicSchema;
......@@ -56,7 +56,7 @@ public final class TransparentSchema extends LogicSchema {
private ShardingSphereMetaData createMetaData() {
ShardingSphereDataSourceMetaData dataSourceMetaData = new ShardingSphereDataSourceMetaData(getDataSourceURLs(getDataSources()), LogicSchemas.getInstance().getDatabaseType());
ShardingTableMetaData shardingTableMetaData = new ShardingTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, shardingTableMetaData);
ShardingSphereTableMetaData tableMetaData = new ShardingSphereTableMetaData(getTableMetaDataInitializer(dataSourceMetaData).load(shardingRule));
return new ShardingSphereMetaData(dataSourceMetaData, tableMetaData);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册