You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/06/25 00:52:45 UTC

[shardingsphere] branch master updated: Fix sql federation NPE (#26411)

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

duanzhengqiang 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 7bbde757a60 Fix sql federation NPE (#26411)
7bbde757a60 is described below

commit 7bbde757a60e732070bdfe0eed0b0349d393a5e3
Author: ZhangCheng <ch...@apache.org>
AuthorDate: Sun Jun 25 08:52:38 2023 +0800

    Fix sql federation NPE (#26411)
---
 .../shardingsphere/sqlfederation/engine/SQLFederationEngine.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
index c614cc699ad..555c38451ad 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
@@ -197,7 +197,8 @@ public final class SQLFederationEngine implements AutoCloseable {
         TableScanExecutorContext executorContext = new TableScanExecutorContext(databaseName, schemaName, metaData.getProps(), federationContext);
         EnumerablePushDownTableScanExecutor pushDownTableScanExecutor =
                 new EnumerablePushDownTableScanExecutor(prepareEngine, jdbcExecutor, callback, optimizerContext, metaData.getGlobalRuleMetaData(), executorContext, statistics);
-        for (String each : federationContext.getQueryContext().getSqlStatementContext().getTablesContext().getTableNames()) {
+        // TODO register only the required tables
+        for (String each : metaData.getDatabase(databaseName).getSchema(schemaName).getAllTableNames()) {
             Table table = sqlFederationSchema.getTable(each);
             if (table instanceof SQLFederationTable) {
                 ((SQLFederationTable) table).setPushDownTableScanExecutor(pushDownTableScanExecutor);