This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 9d5744b0a57 Move DatabaseDialectIdentifierHandler to database and add
impl for databases (#37755)
9d5744b0a57 is described below
commit 9d5744b0a5712015117dbfbc61904a95af87548b
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Jan 16 21:09:06 2026 +0800
Move DatabaseDialectIdentifierHandler to database and add impl for
databases (#37755)
* Move DatabaseDialectIdentifierHandler to database and add impl for
databases
* Fix checkstyle
---
.../DatabaseDialectIdentifierHandler.java | 2 +-
...ClickHouseDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../DorisDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../FirebirdDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../H2DatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../HiveDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../MariaDBDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../MySQLDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../OpenGaussDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../OracleDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
...PostgreSQLDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../PrestoDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../SQLServerDatabaseDialectIdentifierHandler.java | 25 +++++++++++-----------
...ata.identifier.DatabaseDialectIdentifierHandler | 18 ++++++++++++++++
.../identifier/ShardingSphereIdentifier.java | 1 +
26 files changed, 374 insertions(+), 145 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/identifier/DatabaseDialectIdentifierHandler.java
similarity index 94%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/identifier/DatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..0577988db1f 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/identifier/DatabaseDialectIdentifierHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.core.metadata.identifier;
import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/clickhouse/src/main/java/org/apache/shardingsphere/database/connector/clickhouse/identifier/ClickHouseDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/clickhouse/src/main/java/org/apache/shardingsphere/database/connector/clickhouse/identifier/ClickHouseDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..9d5761efa87 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/clickhouse/src/main/java/org/apache/shardingsphere/database/connector/clickhouse/identifier/ClickHouseDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.clickhouse.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for ClickHouse.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class ClickHouseDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return true;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "ClickHouse";
+ }
}
diff --git
a/database/connector/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..d5c96d76b64
--- /dev/null
+++
b/database/connector/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.clickhouse.identifier.ClickHouseDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/doris/src/main/java/org/apache/shardingsphere/database/connector/doris/identifier/DorisDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/doris/src/main/java/org/apache/shardingsphere/database/connector/doris/identifier/DorisDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..e4f91e94b70 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/doris/src/main/java/org/apache/shardingsphere/database/connector/doris/identifier/DorisDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.doris.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for Doris.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class DorisDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "Doris";
+ }
}
diff --git
a/database/connector/dialect/doris/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/doris/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..936b97c96c6
--- /dev/null
+++
b/database/connector/dialect/doris/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.doris.identifier.DorisDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/identifier/FirebirdDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/identifier/FirebirdDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..bcd62ecee33 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/identifier/FirebirdDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.firebird.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for Firebird.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class FirebirdDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "Firebird";
+ }
}
diff --git
a/database/connector/dialect/firebird/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/firebird/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..bddf84310a2
--- /dev/null
+++
b/database/connector/dialect/firebird/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.firebird.identifier.FirebirdDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/h2/src/main/java/org/apache/shardingsphere/database/connector/h2/identifier/H2DatabaseDialectIdentifierHandler.java
similarity index 62%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/h2/src/main/java/org/apache/shardingsphere/database/connector/h2/identifier/H2DatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..7173b6856bc 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/h2/src/main/java/org/apache/shardingsphere/database/connector/h2/identifier/H2DatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.h2.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for H2.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class H2DatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "H2";
+ }
}
diff --git
a/database/connector/dialect/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..d1c55569111
--- /dev/null
+++
b/database/connector/dialect/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.h2.identifier.H2DatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/identifier/HiveDatabaseDialectIdentifierHandler.java
similarity index 62%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/identifier/HiveDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..a9df1d9ec66 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/identifier/HiveDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.hive.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for Hive.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class HiveDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "Hive";
+ }
}
diff --git
a/database/connector/dialect/hive/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/hive/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..bbf66f355be
--- /dev/null
+++
b/database/connector/dialect/hive/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.hive.identifier.HiveDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/mariadb/src/main/java/org/apache/shardingsphere/database/connector/mariadb/identifier/MariaDBDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/mariadb/src/main/java/org/apache/shardingsphere/database/connector/mariadb/identifier/MariaDBDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..8036aab9b9d 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/mariadb/src/main/java/org/apache/shardingsphere/database/connector/mariadb/identifier/MariaDBDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.mariadb.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for MariaDB.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class MariaDBDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "MariaDB";
+ }
}
diff --git
a/database/connector/dialect/mariadb/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/mariadb/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..6e043cad8cf
--- /dev/null
+++
b/database/connector/dialect/mariadb/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.mariadb.identifier.MariaDBDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/mysql/src/main/java/org/apache/shardingsphere/database/connector/mysql/identifier/MySQLDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/mysql/src/main/java/org/apache/shardingsphere/database/connector/mysql/identifier/MySQLDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..13f6d1bfea2 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/mysql/src/main/java/org/apache/shardingsphere/database/connector/mysql/identifier/MySQLDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.mysql.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for MySQL.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class MySQLDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "MySQL";
+ }
}
diff --git
a/database/connector/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..83b30f5f46e
--- /dev/null
+++
b/database/connector/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.mysql.identifier.MySQLDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/opengauss/src/main/java/org/apache/shardingsphere/database/connector/opengauss/identifier/OpenGaussDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/opengauss/src/main/java/org/apache/shardingsphere/database/connector/opengauss/identifier/OpenGaussDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..4dbed2e15bf 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/opengauss/src/main/java/org/apache/shardingsphere/database/connector/opengauss/identifier/OpenGaussDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.opengauss.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for openGauss.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class OpenGaussDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return true;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "openGauss";
+ }
}
diff --git
a/database/connector/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..4dd98b9d273
--- /dev/null
+++
b/database/connector/dialect/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.opengauss.identifier.OpenGaussDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/identifier/OracleDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/identifier/OracleDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..5f821688757 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/oracle/src/main/java/org/apache/shardingsphere/database/connector/oracle/identifier/OracleDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.oracle.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for Oracle.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class OracleDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "Oracle";
+ }
}
diff --git
a/database/connector/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..01e52fab108
--- /dev/null
+++
b/database/connector/dialect/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.oracle.identifier.OracleDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/postgresql/src/main/java/org/apache/shardingsphere/database/connector/postgresql/identifier/PostgreSQLDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/postgresql/src/main/java/org/apache/shardingsphere/database/connector/postgresql/identifier/PostgreSQLDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..dca8f0f2389 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/postgresql/src/main/java/org/apache/shardingsphere/database/connector/postgresql/identifier/PostgreSQLDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.postgresql.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for PostgreSQL.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class PostgreSQLDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return true;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "PostgreSQL";
+ }
}
diff --git
a/database/connector/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..b991a7531e1
--- /dev/null
+++
b/database/connector/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.postgresql.identifier.PostgreSQLDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/presto/src/main/java/org/apache/shardingsphere/database/connector/presto/identifier/PrestoDatabaseDialectIdentifierHandler.java
similarity index 61%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
copy to
database/connector/dialect/presto/src/main/java/org/apache/shardingsphere/database/connector/presto/identifier/PrestoDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..5888d823dcc 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/presto/src/main/java/org/apache/shardingsphere/database/connector/presto/identifier/PrestoDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.presto.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for Presto.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class PrestoDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "Presto";
+ }
}
diff --git
a/database/connector/dialect/presto/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/presto/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..d9e78b04152
--- /dev/null
+++
b/database/connector/dialect/presto/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.presto.identifier.PrestoDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
b/database/connector/dialect/sqlserver/src/main/java/org/apache/shardingsphere/database/connector/sqlserver/identifier/SQLServerDatabaseDialectIdentifierHandler.java
similarity index 61%
rename from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
rename to
database/connector/dialect/sqlserver/src/main/java/org/apache/shardingsphere/database/connector/sqlserver/identifier/SQLServerDatabaseDialectIdentifierHandler.java
index 13cf8aaa55b..c87c0eb9393 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/DatabaseDialectIdentifierHandler.java
+++
b/database/connector/dialect/sqlserver/src/main/java/org/apache/shardingsphere/database/connector/sqlserver/identifier/SQLServerDatabaseDialectIdentifierHandler.java
@@ -15,21 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.identifier;
+package org.apache.shardingsphere.database.connector.sqlserver.identifier;
-import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPI;
-import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
/**
- * Database dialect identifier handler.
+ * Database dialect identifier handler for SQLServer.
*/
-@SingletonSPI
-public interface DatabaseDialectIdentifierHandler extends DatabaseTypedSPI {
+public final class SQLServerDatabaseDialectIdentifierHandler implements
DatabaseDialectIdentifierHandler {
- /**
- * Whether identifier is case-sensitive.
- *
- * @return is case-sensitive or insensitive
- */
- boolean isCaseSensitive();
+ @Override
+ public boolean isCaseSensitive() {
+ return false;
+ }
+
+ @Override
+ public String getDatabaseType() {
+ return "SQLServer";
+ }
}
diff --git
a/database/connector/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
b/database/connector/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
new file mode 100644
index 00000000000..a9784ea3cd4
--- /dev/null
+++
b/database/connector/dialect/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+
+org.apache.shardingsphere.database.connector.sqlserver.identifier.SQLServerDatabaseDialectIdentifierHandler
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/ShardingSphereIdentifier.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/ShardingSphereIdentifier.java
index f9ff3784800..25dc1bf018d 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/ShardingSphereIdentifier.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/identifier/ShardingSphereIdentifier.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.infra.metadata.identifier;
import com.cedarsoftware.util.CaseInsensitiveMap.CaseInsensitiveString;
import
org.apache.shardingsphere.database.connector.core.metadata.database.enums.QuoteCharacter;
+import
org.apache.shardingsphere.database.connector.core.metadata.identifier.DatabaseDialectIdentifierHandler;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;