This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 46338f9ba9a Merge AlwaysFailedSQLTranslator and
ConvertToUpperCaseSQLTranslator to FixtureSQLTranslator (#29335)
46338f9ba9a is described below
commit 46338f9ba9a5f229314e515d97e60d7b09375219
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Dec 9 11:05:39 2023 +0800
Merge AlwaysFailedSQLTranslator and ConvertToUpperCaseSQLTranslator to
FixtureSQLTranslator (#29335)
* Refactor CDCBackendHandler
* Refactor AbstractPipelineJob
* Refactor AbstractSimplePipelineJob
* Refactor AbstractSimplePipelineJob
* Merge AlwaysFailedSQLTranslator and ConvertToUpperCaseSQLTranslator to
FixtureSQLTranslator
---
.../sqltranslator/rule/SQLTranslatorRuleTest.java | 18 +++++-----
.../rule/fixture/AlwaysFailedSQLTranslator.java | 42 ----------------------
...QLTranslator.java => FixtureSQLTranslator.java} | 7 ++--
....shardingsphere.sqltranslator.spi.SQLTranslator | 3 +-
4 files changed, 15 insertions(+), 55 deletions(-)
diff --git
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRuleTest.java
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRuleTest.java
index f4ebd56482a..d9df7e525b5 100644
---
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRuleTest.java
+++
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRuleTest.java
@@ -46,7 +46,7 @@ class SQLTranslatorRuleTest {
DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
QueryContext queryContext = mock(QueryContext.class,
RETURNS_DEEP_STUBS);
when(queryContext.getSqlStatementContext().getDatabaseType()).thenReturn(databaseType);
- SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("CONVERT_TO_UPPER_CASE", new Properties(),
false)).translate(expected, Collections.emptyList(),
+ SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("FIXTURE", new Properties(),
false)).translate(expected, Collections.emptyList(),
queryContext, databaseType,
mock(ShardingSphereDatabase.class), mock(RuleMetaData.class));
assertThat(actual.getSql(), is(expected));
}
@@ -57,7 +57,7 @@ class SQLTranslatorRuleTest {
DatabaseType sqlParserType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
QueryContext queryContext = mock(QueryContext.class,
RETURNS_DEEP_STUBS);
when(queryContext.getSqlStatementContext().getDatabaseType()).thenReturn(sqlParserType);
- SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("CONVERT_TO_UPPER_CASE", new Properties(),
false)).translate(expected, Collections.emptyList(),
+ SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("FIXTURE", new Properties(),
false)).translate(expected, Collections.emptyList(),
queryContext, null, mock(ShardingSphereDatabase.class),
mock(RuleMetaData.class));
assertThat(actual.getSql(), is(expected));
}
@@ -69,20 +69,20 @@ class SQLTranslatorRuleTest {
QueryContext queryContext = mock(QueryContext.class,
RETURNS_DEEP_STUBS);
when(queryContext.getSqlStatementContext().getDatabaseType()).thenReturn(sqlParserType);
DatabaseType storageType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
- SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("CONVERT_TO_UPPER_CASE", new Properties(),
false)).translate(input, Collections.emptyList(),
+ SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("FIXTURE", new Properties(),
false)).translate(input, Collections.emptyList(),
queryContext, storageType, mock(ShardingSphereDatabase.class),
mock(RuleMetaData.class));
assertThat(actual.getSql(), is(input.toUpperCase(Locale.ROOT)));
}
@Test
void assertUseOriginalSQLWhenTranslatingFailed() {
- String expected = "select 1";
+ String expected = "ERROR: select 1";
DatabaseType sqlParserType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
QueryContext queryContext = mock(QueryContext.class,
RETURNS_DEEP_STUBS);
when(queryContext.getSqlStatementContext().getDatabaseType()).thenReturn(sqlParserType);
DatabaseType storageType =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
- SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("ALWAYS_FAILED", new Properties(),
true)).translate(expected, Collections.emptyList(), queryContext,
- storageType, mock(ShardingSphereDatabase.class),
mock(RuleMetaData.class));
+ SQLTranslatorContext actual = new SQLTranslatorRule(new
SQLTranslatorRuleConfiguration("FIXTURE", new Properties(), true)).translate(
+ expected, Collections.emptyList(), queryContext, storageType,
mock(ShardingSphereDatabase.class), mock(RuleMetaData.class));
assertThat(actual.getSql(), is(expected));
}
@@ -92,13 +92,13 @@ class SQLTranslatorRuleTest {
DatabaseType sqlParserType =
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
when(queryContext.getSqlStatementContext().getDatabaseType()).thenReturn(sqlParserType);
DatabaseType storageType =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
- assertThrows(UnsupportedTranslatedDatabaseException.class, () -> new
SQLTranslatorRule(new SQLTranslatorRuleConfiguration("ALWAYS_FAILED", new
Properties(), false)).translate("",
- Collections.emptyList(), queryContext, storageType,
mock(ShardingSphereDatabase.class), mock(RuleMetaData.class)));
+ assertThrows(UnsupportedTranslatedDatabaseException.class, () -> new
SQLTranslatorRule(new SQLTranslatorRuleConfiguration("FIXTURE", new
Properties(), false)).translate(
+ "ERROR: select 1", Collections.emptyList(), queryContext,
storageType, mock(ShardingSphereDatabase.class), mock(RuleMetaData.class)));
}
@Test
void assertGetConfiguration() {
- SQLTranslatorRuleConfiguration expected = new
SQLTranslatorRuleConfiguration("CONVERT_TO_UPPER_CASE", new Properties(),
false);
+ SQLTranslatorRuleConfiguration expected = new
SQLTranslatorRuleConfiguration("FIXTURE", new Properties(), false);
assertThat(new SQLTranslatorRule(expected).getConfiguration(),
is(expected));
}
}
diff --git
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/AlwaysFailedSQLTranslator.java
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/AlwaysFailedSQLTranslator.java
deleted file mode 100644
index 27cb42bcbbf..00000000000
---
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/AlwaysFailedSQLTranslator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sqltranslator.rule.fixture;
-
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import org.apache.shardingsphere.infra.session.query.QueryContext;
-import org.apache.shardingsphere.sqltranslator.context.SQLTranslatorContext;
-import
org.apache.shardingsphere.sqltranslator.exception.syntax.UnsupportedTranslatedDatabaseException;
-import org.apache.shardingsphere.sqltranslator.spi.SQLTranslator;
-
-import java.util.List;
-
-public final class AlwaysFailedSQLTranslator implements SQLTranslator {
-
- @Override
- public SQLTranslatorContext translate(final String sql, final List<Object>
parameters, final QueryContext queryContext, final DatabaseType storageType,
final ShardingSphereDatabase database,
- final RuleMetaData
globalRuleMetaData) {
- throw new UnsupportedTranslatedDatabaseException(storageType);
- }
-
- @Override
- public String getType() {
- return "ALWAYS_FAILED";
- }
-}
diff --git
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/ConvertToUpperCaseSQLTranslator.java
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/FixtureSQLTranslator.java
similarity index 81%
rename from
kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/ConvertToUpperCaseSQLTranslator.java
rename to
kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/FixtureSQLTranslator.java
index 894cbc2ee10..d87394b7f4e 100644
---
a/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/ConvertToUpperCaseSQLTranslator.java
+++
b/kernel/sql-translator/core/src/test/java/org/apache/shardingsphere/sqltranslator/rule/fixture/FixtureSQLTranslator.java
@@ -18,25 +18,28 @@
package org.apache.shardingsphere.sqltranslator.rule.fixture;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.sqltranslator.context.SQLTranslatorContext;
+import
org.apache.shardingsphere.sqltranslator.exception.syntax.UnsupportedTranslatedDatabaseException;
import org.apache.shardingsphere.sqltranslator.spi.SQLTranslator;
import java.util.List;
import java.util.Locale;
-public final class ConvertToUpperCaseSQLTranslator implements SQLTranslator {
+public final class FixtureSQLTranslator implements SQLTranslator {
@Override
public SQLTranslatorContext translate(final String sql, final List<Object>
parameters, final QueryContext queryContext, final DatabaseType storageType,
final ShardingSphereDatabase database,
final RuleMetaData
globalRuleMetaData) {
+ ShardingSpherePreconditions.checkState(!sql.startsWith("ERROR:"), ()
-> new UnsupportedTranslatedDatabaseException(storageType));
return new SQLTranslatorContext(sql.toUpperCase(Locale.ROOT),
parameters);
}
@Override
public String getType() {
- return "CONVERT_TO_UPPER_CASE";
+ return "FIXTURE";
}
}
diff --git
a/kernel/sql-translator/core/src/test/resources/META-INF/services/org.apache.shardingsphere.sqltranslator.spi.SQLTranslator
b/kernel/sql-translator/core/src/test/resources/META-INF/services/org.apache.shardingsphere.sqltranslator.spi.SQLTranslator
index a9b1a113bd4..736f891f418 100644
---
a/kernel/sql-translator/core/src/test/resources/META-INF/services/org.apache.shardingsphere.sqltranslator.spi.SQLTranslator
+++
b/kernel/sql-translator/core/src/test/resources/META-INF/services/org.apache.shardingsphere.sqltranslator.spi.SQLTranslator
@@ -15,5 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.sqltranslator.rule.fixture.AlwaysFailedSQLTranslator
-org.apache.shardingsphere.sqltranslator.rule.fixture.ConvertToUpperCaseSQLTranslator
+org.apache.shardingsphere.sqltranslator.rule.fixture.FixtureSQLTranslator