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

iamhucong 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 370a94d20f5 Minor refactor SQLStatementCompiler logic (#39082)
370a94d20f5 is described below

commit 370a94d20f5a55f87b564b4f31ff65deccebb681
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Jul 13 12:58:50 2026 +0800

    Minor refactor SQLStatementCompiler logic (#39082)
---
 .../compiler/compiler/SQLStatementCompiler.java       | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/compiler/SQLStatementCompiler.java
 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/compiler/SQLStatementCompiler.java
index 52be6860f53..1063516ad7b 100644
--- 
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/compiler/SQLStatementCompiler.java
+++ 
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/compiler/SQLStatementCompiler.java
@@ -50,14 +50,17 @@ public final class SQLStatementCompiler {
      * @return SQL federation execution plan
      */
     public SQLFederationExecutionPlan compile(final SQLStatement sqlStatement, 
final String databaseType) {
-        
RelMetadataQueryBase.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.DEFAULT);
-        SqlNode sqlNode = SQLNodeConverterEngine.convert(sqlStatement);
-        RelNode logicalPlan = converter.convertQuery(sqlNode, true, true).rel;
-        RelDataType resultColumnType = converter.getValidatedNodeType(sqlNode);
-        RelNode rewrittenPlan = rewrite(logicalPlan, databaseType);
-        RelNode physicalPlan = optimize(rewrittenPlan, converter, 
databaseType);
-        RelMetadataQueryBase.THREAD_PROVIDERS.remove();
-        return new SQLFederationExecutionPlan(physicalPlan, resultColumnType);
+        try {
+            
RelMetadataQueryBase.THREAD_PROVIDERS.set(JaninoRelMetadataProvider.DEFAULT);
+            SqlNode sqlNode = SQLNodeConverterEngine.convert(sqlStatement);
+            RelNode logicalPlan = converter.convertQuery(sqlNode, true, 
true).rel;
+            RelDataType resultColumnType = 
converter.getValidatedNodeType(sqlNode);
+            RelNode rewrittenPlan = rewrite(logicalPlan, databaseType);
+            RelNode physicalPlan = optimize(rewrittenPlan, converter, 
databaseType);
+            return new SQLFederationExecutionPlan(physicalPlan, 
resultColumnType);
+        } finally {
+            RelMetadataQueryBase.THREAD_PROVIDERS.remove();
+        }
     }
     
     private RelNode rewrite(final RelNode logicalPlan, final String 
databaseType) {

Reply via email to