This is an automated email from the ASF dual-hosted git repository.

terrymanu 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 68c5aed0502 Refactor MCP database capability option implementations 
(#39119)
68c5aed0502 is described below

commit 68c5aed0502e88bca41046403cd7615a04cfc22f
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Jul 15 11:19:22 2026 +0800

    Refactor MCP database capability option implementations (#39119)
    
    Remove the redundant abstract base class and let each dialect option
    implement MCPDatabaseCapabilityOption directly while preserving behavior.
---
 .../AbstractMCPDatabaseCapabilityOption.java       | 43 ----------------------
 .../ClickHouseMCPDatabaseCapabilityOption.java     | 14 +++++--
 .../FirebirdMCPDatabaseCapabilityOption.java       | 14 +++++--
 .../dialect/HiveMCPDatabaseCapabilityOption.java   | 14 +++++--
 .../MariaDBMCPDatabaseCapabilityOption.java        | 14 +++++--
 .../dialect/MySQLMCPDatabaseCapabilityOption.java  | 14 +++++--
 .../OpenGaussMCPDatabaseCapabilityOption.java      | 14 +++++--
 .../dialect/OracleMCPDatabaseCapabilityOption.java | 14 +++++--
 .../PostgreSQLMCPDatabaseCapabilityOption.java     | 14 +++++--
 .../dialect/PrestoMCPDatabaseCapabilityOption.java | 14 +++++--
 .../SQLServerMCPDatabaseCapabilityOption.java      | 14 +++++--
 11 files changed, 110 insertions(+), 73 deletions(-)

diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/AbstractMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/AbstractMCPDatabaseCapabilityOption.java
deleted file mode 100644
index bbf286abf0d..00000000000
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/AbstractMCPDatabaseCapabilityOption.java
+++ /dev/null
@@ -1,43 +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.mcp.support.database.capability.dialect;
-
-import lombok.AccessLevel;
-import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
-
-/**
- * Common base implementation for MCP database capability options.
- */
-@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
-abstract class AbstractMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
-    
-    private final String type;
-    
-    private final boolean explainSupported;
-    
-    @Override
-    public final String getType() {
-        return type;
-    }
-    
-    @Override
-    public final boolean isExplainSupported() {
-        return explainSupported;
-    }
-}
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/ClickHouseMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/ClickHouseMCPDatabaseCapabilityOption.java
index e86713afa7f..bc8db20341f 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/ClickHouseMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/ClickHouseMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for ClickHouse.
  */
-public final class ClickHouseMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class ClickHouseMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public ClickHouseMCPDatabaseCapabilityOption() {
-        super("ClickHouse", true);
+    @Override
+    public String getType() {
+        return "ClickHouse";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/FirebirdMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/FirebirdMCPDatabaseCapabilityOption.java
index e4a763904e6..d16030391ef 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/FirebirdMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/FirebirdMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for Firebird.
  */
-public final class FirebirdMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class FirebirdMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return false;
+    }
     
-    public FirebirdMCPDatabaseCapabilityOption() {
-        super("Firebird", false);
+    @Override
+    public String getType() {
+        return "Firebird";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/HiveMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/HiveMCPDatabaseCapabilityOption.java
index 216b534ef24..e22b46f510e 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/HiveMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/HiveMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for Hive.
  */
-public final class HiveMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class HiveMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public HiveMCPDatabaseCapabilityOption() {
-        super("Hive", true);
+    @Override
+    public String getType() {
+        return "Hive";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MariaDBMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MariaDBMCPDatabaseCapabilityOption.java
index 41e27a0ffe1..031bf25af48 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MariaDBMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MariaDBMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for MariaDB.
  */
-public final class MariaDBMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class MariaDBMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public MariaDBMCPDatabaseCapabilityOption() {
-        super("MariaDB", true);
+    @Override
+    public String getType() {
+        return "MariaDB";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MySQLMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MySQLMCPDatabaseCapabilityOption.java
index 2e444dacbad..4ad45ca1366 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MySQLMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/MySQLMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for MySQL.
  */
-public final class MySQLMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class MySQLMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public MySQLMCPDatabaseCapabilityOption() {
-        super("MySQL", true);
+    @Override
+    public String getType() {
+        return "MySQL";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OpenGaussMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OpenGaussMCPDatabaseCapabilityOption.java
index 82a03c34b25..9bd5bef07d8 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OpenGaussMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OpenGaussMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for openGauss.
  */
-public final class OpenGaussMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class OpenGaussMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public OpenGaussMCPDatabaseCapabilityOption() {
-        super("openGauss", true);
+    @Override
+    public String getType() {
+        return "openGauss";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OracleMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OracleMCPDatabaseCapabilityOption.java
index 3bb5e65ee8e..96affc869f6 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OracleMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/OracleMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for Oracle.
  */
-public final class OracleMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class OracleMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return false;
+    }
     
-    public OracleMCPDatabaseCapabilityOption() {
-        super("Oracle", false);
+    @Override
+    public String getType() {
+        return "Oracle";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PostgreSQLMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PostgreSQLMCPDatabaseCapabilityOption.java
index f6a6aebdd24..41cee057bce 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PostgreSQLMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PostgreSQLMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for PostgreSQL.
  */
-public final class PostgreSQLMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class PostgreSQLMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public PostgreSQLMCPDatabaseCapabilityOption() {
-        super("PostgreSQL", true);
+    @Override
+    public String getType() {
+        return "PostgreSQL";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PrestoMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PrestoMCPDatabaseCapabilityOption.java
index cb9a6ea48fd..0318ac2388a 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PrestoMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/PrestoMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for Presto.
  */
-public final class PrestoMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class PrestoMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return true;
+    }
     
-    public PrestoMCPDatabaseCapabilityOption() {
-        super("Presto", true);
+    @Override
+    public String getType() {
+        return "Presto";
     }
 }
diff --git 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/SQLServerMCPDatabaseCapabilityOption.java
 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/SQLServerMCPDatabaseCapabilityOption.java
index a39aff11ea6..18914674073 100644
--- 
a/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/SQLServerMCPDatabaseCapabilityOption.java
+++ 
b/mcp/support/src/main/java/org/apache/shardingsphere/mcp/support/database/capability/dialect/SQLServerMCPDatabaseCapabilityOption.java
@@ -17,12 +17,20 @@
 
 package org.apache.shardingsphere.mcp.support.database.capability.dialect;
 
+import 
org.apache.shardingsphere.mcp.support.database.capability.MCPDatabaseCapabilityOption;
+
 /**
  * MCP database capability option for SQLServer.
  */
-public final class SQLServerMCPDatabaseCapabilityOption extends 
AbstractMCPDatabaseCapabilityOption {
+public final class SQLServerMCPDatabaseCapabilityOption implements 
MCPDatabaseCapabilityOption {
+    
+    @Override
+    public boolean isExplainSupported() {
+        return false;
+    }
     
-    public SQLServerMCPDatabaseCapabilityOption() {
-        super("SQLServer", false);
+    @Override
+    public String getType() {
+        return "SQLServer";
     }
 }

Reply via email to