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

Reply via email to