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) {