提交 50f1cbbf 编写于 作者: T terrymanu

for #2567, remove EncryptInsertOptimizedStatement.addInsertValue()

上级 9661bba4
......@@ -27,6 +27,7 @@ import org.apache.shardingsphere.core.rule.EncryptRule;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
/**
......@@ -44,7 +45,8 @@ public final class EncryptInsertOptimizeEngine implements EncryptOptimizeEngine<
Collection<String> columnNames = sqlStatement.useDefaultColumns() ? tableMetas.getAllColumnNames(sqlStatement.getTable().getTableName()) : sqlStatement.getColumnNames();
int derivedColumnCount = encryptRule.getAssistedQueryAndPlainColumnCount(sqlStatement.getTable().getTableName());
for (Collection<ExpressionSegment> each : sqlStatement.getAllValueExpressions()) {
InsertValue insertValue = result.addInsertValue(encryptDerivedColumnNames, each, derivedColumnCount, parameters, parametersOffset);
InsertValue insertValue = createInsertValue(columnNames, encryptDerivedColumnNames, each, derivedColumnCount, parameters, parametersOffset);
result.getInsertValues().add(insertValue);
Object[] currentParameters = insertValue.getParameters();
if (encryptRule.containsQueryAssistedColumn(sqlStatement.getTable().getTableName())) {
fillAssistedQueryInsertValue(encryptRule, Arrays.asList(currentParameters), sqlStatement.getTable().getTableName(), columnNames, insertValue);
......@@ -57,6 +59,13 @@ public final class EncryptInsertOptimizeEngine implements EncryptOptimizeEngine<
return result;
}
private InsertValue createInsertValue(final Collection<String> columnNames, final Collection<String> derivedColumnNames, final Collection<ExpressionSegment> assignments,
final int derivedColumnsCount, final List<Object> parameters, final int parametersOffset) {
List<String> allColumnNames = new LinkedList<>(columnNames);
allColumnNames.addAll(derivedColumnNames);
return new InsertValue(allColumnNames, assignments, derivedColumnsCount, parameters, parametersOffset);
}
private void fillAssistedQueryInsertValue(final EncryptRule encryptRule,
final List<Object> parameters, final String tableName, final Collection<String> columnNames, final InsertValue insertValue) {
for (String each : columnNames) {
......
......@@ -24,7 +24,6 @@ import org.apache.shardingsphere.core.metadata.table.TableMetas;
import org.apache.shardingsphere.core.optimize.api.segment.InsertValue;
import org.apache.shardingsphere.core.optimize.api.segment.Tables;
import org.apache.shardingsphere.core.optimize.api.statement.InsertOptimizedStatement;
import org.apache.shardingsphere.core.parse.sql.segment.dml.expr.ExpressionSegment;
import org.apache.shardingsphere.core.parse.sql.statement.SQLStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dml.InsertStatement;
......@@ -56,25 +55,6 @@ public final class EncryptInsertOptimizedStatement implements InsertOptimizedSta
columnNames = sqlStatement.useDefaultColumns() ? tableMetas.getAllColumnNames(sqlStatement.getTable().getTableName()) : sqlStatement.getColumnNames();
}
/**
* Add insert value.
*
* @param derivedColumnNames derived column names
* @param assignments assignments
* @param derivedColumnsCount derived columns count
* @param parameters SQL parameters
* @param parametersOffset offset of SQL parameters
* @return insert value
*/
public InsertValue addInsertValue(final Collection<String> derivedColumnNames, final Collection<ExpressionSegment> assignments,
final int derivedColumnsCount, final List<Object> parameters, final int parametersOffset) {
List<String> allColumnNames = new LinkedList<>(columnNames);
allColumnNames.addAll(derivedColumnNames);
InsertValue result = new InsertValue(allColumnNames, assignments, derivedColumnsCount, parameters, parametersOffset);
insertValues.add(result);
return result;
}
@Override
public SQLStatement getSQLStatement() {
return sqlStatement;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册