Commit ece48628 authored by tristaZero's avatar tristaZero
Browse files

modify fillWithQueryAssistedColumn()

parent da50a913
Loading
Loading
Loading
Loading
+6 −7
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.core.optimize.engine.sharding.insert;
package org.apache.shardingsphere.core.optimize.engine.sharding.insert;


import com.google.common.base.Optional;
import com.google.common.base.Optional;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.core.optimize.GeneratedKey;
import org.apache.shardingsphere.core.optimize.GeneratedKey;
import org.apache.shardingsphere.core.optimize.condition.ShardingCondition;
import org.apache.shardingsphere.core.optimize.condition.ShardingCondition;
@@ -148,17 +147,17 @@ public final class InsertOptimizeEngine implements OptimizeEngine {
    }
    }
    
    
    private void fillWithQueryAssistedColumn(final InsertColumnValues insertColumnValues, final int insertColumnValueIndex) {
    private void fillWithQueryAssistedColumn(final InsertColumnValues insertColumnValues, final int insertColumnValueIndex) {
        String assistedColumnName = null;
        Collection<String> assistedColumnNames = new LinkedList<>();
        for (String each : insertColumnValues.getColumnNames()) {
        for (String each : insertColumnValues.getColumnNames()) {
            InsertColumnValue insertColumnValue = insertColumnValues.getColumnValues().get(insertColumnValueIndex);
            InsertColumnValue insertColumnValue = insertColumnValues.getColumnValues().get(insertColumnValueIndex);
            Optional<String> assistedColumnNameOptional = shardingRule.getShardingEncryptorEngine().getAssistedQueryColumn(insertStatement.getTables().getSingleTableName(), each);
            Optional<String> assistedColumnName = shardingRule.getShardingEncryptorEngine().getAssistedQueryColumn(insertStatement.getTables().getSingleTableName(), each);
            if (assistedColumnNameOptional.isPresent()) {
            if (assistedColumnName.isPresent()) {
                assistedColumnName = assistedColumnNameOptional.get();
                assistedColumnNames.add(assistedColumnName.get());
                fillWithColumnValue(insertColumnValue, (Comparable<?>) insertColumnValue.getColumnValue(each));
                fillWithColumnValue(insertColumnValue, (Comparable<?>) insertColumnValue.getColumnValue(each));
            }
            }
        }
        }
        if (!Strings.isNullOrEmpty(assistedColumnName)) {
        if (!assistedColumnNames.isEmpty()) {
            insertColumnValues.getColumnNames().add(assistedColumnName);
            insertColumnValues.getColumnNames().addAll(assistedColumnNames);
        }
        }
    }
    }