This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 2851518 Rename onDuplicateKeyUpdateParameters (#6791)
2851518 is described below
commit 28515180dea608b87cb174858aced73cd4fa4371
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Aug 11 18:49:55 2020 +0800
Rename onDuplicateKeyUpdateParameters (#6791)
* Add todo
* Add todo
* Rename onDuplicateKeyUpdateParameters to genericParameterBuilder
* Rename onDuplicateKeyUpdateParameters to genericParameterBuilder
* Add GroupedParameterBuilder.buildBroadcastParameters
* Move buildBroadcastParameters into getParameters
---
...OnDuplicateKeyUpdateValueParameterRewriter.java | 8 +++----
.../infra/rewrite/context/SQLRewriteContext.java | 3 ++-
.../rewrite/engine/GenericSQLRewriteEngine.java | 24 +------------------
.../rewrite/engine/RouteSQLRewriteEngine.java | 20 +++++-----------
.../builder/impl/GroupedParameterBuilder.java | 8 +++----
.../builder/impl/GroupedParameterBuilderTest.java | 28 +++++++++++-----------
6 files changed, 31 insertions(+), 60 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
index 1b39abc..3c088af 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/impl/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
@@ -56,7 +56,7 @@ public final class
EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter exten
encryptorOptional.ifPresent(encryptor -> {
Object plainColumnValue =
onDuplicateKeyUpdateValueContext.getValue(columnIndex);
Object cipherColumnValue =
encryptorOptional.get().encrypt(plainColumnValue);
-
groupedParameterBuilder.getOnDuplicateKeyUpdateParametersBuilder().addReplacedParameters(columnIndex,
cipherColumnValue);
+
groupedParameterBuilder.getGenericParameterBuilder().addReplacedParameters(columnIndex,
cipherColumnValue);
Collection<Object> addedParameters = new LinkedList<>();
if (encryptor instanceof QueryAssistedEncryptAlgorithm) {
Optional<String> assistedColumnName =
getEncryptRule().findAssistedQueryColumn(tableName, encryptLogicColumnName);
@@ -67,10 +67,10 @@ public final class
EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter exten
addedParameters.add(plainColumnValue);
}
if (!addedParameters.isEmpty()) {
- if
(!groupedParameterBuilder.getOnDuplicateKeyUpdateParametersBuilder().getAddedIndexAndParameters().containsKey(columnIndex
+ 1)) {
-
groupedParameterBuilder.getOnDuplicateKeyUpdateParametersBuilder().getAddedIndexAndParameters().put(columnIndex
+ 1, new LinkedList<>());
+ if
(!groupedParameterBuilder.getGenericParameterBuilder().getAddedIndexAndParameters().containsKey(columnIndex
+ 1)) {
+
groupedParameterBuilder.getGenericParameterBuilder().getAddedIndexAndParameters().put(columnIndex
+ 1, new LinkedList<>());
}
-
groupedParameterBuilder.getOnDuplicateKeyUpdateParametersBuilder().getAddedIndexAndParameters().get(columnIndex
+ 1).addAll(addedParameters);
+
groupedParameterBuilder.getGenericParameterBuilder().getAddedIndexAndParameters().get(columnIndex
+ 1).addAll(addedParameters);
}
});
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java
index 1b96d76..a603f79 100644
---
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java
+++
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/context/SQLRewriteContext.java
@@ -62,7 +62,8 @@ public final class SQLRewriteContext {
this.parameters = parameters;
addSQLTokenGenerators(new
DefaultTokenGeneratorBuilder().getSQLTokenGenerators());
parameterBuilder = sqlStatementContext instanceof
InsertStatementContext
- ? new GroupedParameterBuilder(((InsertStatementContext)
sqlStatementContext).getGroupedParameters(), ((InsertStatementContext)
sqlStatementContext).getOnDuplicateKeyUpdateParameters())
+ ? new GroupedParameterBuilder(
+ ((InsertStatementContext)
sqlStatementContext).getGroupedParameters(), ((InsertStatementContext)
sqlStatementContext).getOnDuplicateKeyUpdateParameters())
: new StandardParameterBuilder(parameters);
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
index 48b56b8..5f6d946 100644
---
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
+++
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
@@ -20,14 +20,8 @@ package org.apache.shardingsphere.infra.rewrite.engine;
import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
import
org.apache.shardingsphere.infra.rewrite.engine.result.GenericSQLRewriteResult;
import org.apache.shardingsphere.infra.rewrite.engine.result.SQLRewriteUnit;
-import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilder;
-import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
-import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
import org.apache.shardingsphere.infra.rewrite.sql.impl.DefaultSQLBuilder;
-import java.util.LinkedList;
-import java.util.List;
-
/**
* Generic SQL rewrite engine.
*/
@@ -40,22 +34,6 @@ public final class GenericSQLRewriteEngine {
* @return SQL rewrite result
*/
public GenericSQLRewriteResult rewrite(final SQLRewriteContext
sqlRewriteContext) {
- return new GenericSQLRewriteResult(new SQLRewriteUnit(new
DefaultSQLBuilder(sqlRewriteContext).toSQL(),
getParameters(sqlRewriteContext.getParameterBuilder())));
- }
-
- private List<Object> getParameters(final ParameterBuilder
parameterBuilder) {
- if (parameterBuilder instanceof StandardParameterBuilder) {
- return parameterBuilder.getParameters();
- }
-
- List<Object> onDuplicateKeyUpdateParameters =
((GroupedParameterBuilder)
parameterBuilder).getOnDuplicateKeyUpdateParametersBuilder().getParameters();
- if (onDuplicateKeyUpdateParameters.isEmpty()) {
- return parameterBuilder.getParameters();
- }
-
- List<Object> result = new LinkedList<>();
- result.addAll(parameterBuilder.getParameters());
- result.addAll(onDuplicateKeyUpdateParameters);
- return result;
+ return new GenericSQLRewriteResult(new SQLRewriteUnit(new
DefaultSQLBuilder(sqlRewriteContext).toSQL(),
sqlRewriteContext.getParameterBuilder().getParameters()));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
index fd0f7f3..e33fd90 100644
---
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
+++
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
@@ -58,28 +58,20 @@ public final class RouteSQLRewriteEngine {
if (parameterBuilder instanceof StandardParameterBuilder) {
return parameterBuilder.getParameters();
}
-
- if (routeResult.getOriginalDataNodes().isEmpty()) {
- List<Object> onDuplicateKeyUpdateParameters =
((GroupedParameterBuilder)
parameterBuilder).getOnDuplicateKeyUpdateParametersBuilder().getParameters();
- if (onDuplicateKeyUpdateParameters.isEmpty()) {
- return parameterBuilder.getParameters();
- }
-
- List<Object> result = new LinkedList<>();
- result.addAll(parameterBuilder.getParameters());
- result.addAll(onDuplicateKeyUpdateParameters);
- return result;
- }
+ return routeResult.getOriginalDataNodes().isEmpty()
+ ? ((GroupedParameterBuilder) parameterBuilder).getParameters()
: buildRouteParameters((GroupedParameterBuilder) parameterBuilder, routeResult,
routeUnit);
+ }
+ private List<Object> buildRouteParameters(final GroupedParameterBuilder
parameterBuilder, final RouteResult routeResult, final RouteUnit routeUnit) {
List<Object> result = new LinkedList<>();
int count = 0;
for (Collection<DataNode> each : routeResult.getOriginalDataNodes()) {
if (isInSameDataNode(each, routeUnit)) {
- result.addAll(((GroupedParameterBuilder)
parameterBuilder).getParameters(count));
+ result.addAll(parameterBuilder.getParameters(count));
}
count++;
}
- result.addAll(((GroupedParameterBuilder)
parameterBuilder).getOnDuplicateKeyUpdateParametersBuilder().getParameters());
+
result.addAll(parameterBuilder.getGenericParameterBuilder().getParameters());
return result;
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilder.java
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilder.java
index 1b4da5c..b9457b9 100644
---
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilder.java
+++
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/main/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilder.java
@@ -35,18 +35,17 @@ public final class GroupedParameterBuilder implements
ParameterBuilder {
private final List<StandardParameterBuilder> parameterBuilders;
@Getter
- private final StandardParameterBuilder
onDuplicateKeyUpdateParametersBuilder;
+ private final StandardParameterBuilder genericParameterBuilder;
@Setter
private String derivedColumnName;
- public GroupedParameterBuilder(final List<List<Object>> groupedParameters,
final List<Object> onDuplicateKeyUpdateParameters) {
+ public GroupedParameterBuilder(final List<List<Object>> groupedParameters,
final List<Object> genericParameters) {
parameterBuilders = new ArrayList<>(groupedParameters.size());
for (List<Object> each : groupedParameters) {
parameterBuilders.add(new StandardParameterBuilder(each));
}
-
- onDuplicateKeyUpdateParametersBuilder = new
StandardParameterBuilder(onDuplicateKeyUpdateParameters);
+ genericParameterBuilder = new
StandardParameterBuilder(genericParameters);
}
@Override
@@ -55,6 +54,7 @@ public final class GroupedParameterBuilder implements
ParameterBuilder {
for (int i = 0; i < parameterBuilders.size(); i++) {
result.addAll(getParameters(i));
}
+ result.addAll(genericParameterBuilder.getParameters());
return result;
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilderTest.java
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilderTest.java
index f3ee41f..ee901d1 100644
---
a/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-rewrite/shardingsphere-infra-rewrite-engine/src/test/java/org/apache/shardingsphere/infra/rewrite/parameter/builder/impl/GroupedParameterBuilderTest.java
@@ -36,32 +36,32 @@ public final class GroupedParameterBuilderTest {
}
@Test
- public void assertGetParametersWithOnDuplicateKeyParameters() {
- GroupedParameterBuilder actual = new
GroupedParameterBuilder(createGroupedParameters(),
createOnDuplicateKeyUpdateParameters());
- assertThat(actual.getParameters(), is(Arrays.<Object>asList(3, 4, 5,
6)));
-
assertThat(actual.getOnDuplicateKeyUpdateParametersBuilder().getParameters(),
is(Arrays.<Object>asList(7, 8)));
+ public void assertGetParametersWithGenericParameters() {
+ GroupedParameterBuilder actual = new
GroupedParameterBuilder(createGroupedParameters(), createGenericParameters());
+ assertThat(actual.getParameters(), is(Arrays.<Object>asList(3, 4, 5,
6, 7, 8)));
+ assertThat(actual.getGenericParameterBuilder().getParameters(),
is(Arrays.<Object>asList(7, 8)));
}
@Test
- public void assertGetOnDuplicateKeyParametersWithModify() {
- GroupedParameterBuilder actual = new GroupedParameterBuilder(new
LinkedList<>(), createOnDuplicateKeyUpdateParameters());
-
actual.getOnDuplicateKeyUpdateParametersBuilder().addReplacedParameters(0, 77);
-
actual.getOnDuplicateKeyUpdateParametersBuilder().addReplacedParameters(1, 88);
-
actual.getOnDuplicateKeyUpdateParametersBuilder().addAddedParameters(0,
Arrays.asList(66, -1));
-
actual.getOnDuplicateKeyUpdateParametersBuilder().addAddedParameters(2,
Arrays.asList(99, 110));
-
actual.getOnDuplicateKeyUpdateParametersBuilder().addRemovedParameters(1);
-
assertThat(actual.getOnDuplicateKeyUpdateParametersBuilder().getParameters(),
is(Arrays.<Object>asList(66, 77, 88, 99, 110)));
+ public void assertGetGenericParametersWithModify() {
+ GroupedParameterBuilder actual = new GroupedParameterBuilder(new
LinkedList<>(), createGenericParameters());
+ actual.getGenericParameterBuilder().addReplacedParameters(0, 77);
+ actual.getGenericParameterBuilder().addReplacedParameters(1, 88);
+ actual.getGenericParameterBuilder().addAddedParameters(0,
Arrays.asList(66, -1));
+ actual.getGenericParameterBuilder().addAddedParameters(2,
Arrays.asList(99, 110));
+ actual.getGenericParameterBuilder().addRemovedParameters(1);
+ assertThat(actual.getGenericParameterBuilder().getParameters(),
is(Arrays.<Object>asList(66, 77, 88, 99, 110)));
}
@Test
public void assertGetDerivedColumnName() {
- GroupedParameterBuilder actual = new
GroupedParameterBuilder(createGroupedParameters(),
createOnDuplicateKeyUpdateParameters());
+ GroupedParameterBuilder actual = new
GroupedParameterBuilder(createGroupedParameters(), createGenericParameters());
String derivedColumnName = "derivedColumnName";
actual.setDerivedColumnName(derivedColumnName);
assertThat(actual.getDerivedColumnName(),
is(Optional.of(derivedColumnName)));
}
- private List<Object> createOnDuplicateKeyUpdateParameters() {
+ private List<Object> createGenericParameters() {
return new LinkedList<>(Arrays.asList(7, 8));
}