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

shuwenwei pushed a commit to branch table_disk_usage_statistics_with_cache
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit d4d641cda311656fcfc3c8c1c7101facb0846805
Author: shuwenwei <[email protected]>
AuthorDate: Wed Feb 4 15:06:35 2026 +0800

    fix
---
 .../InformationSchemaContentSupplierFactory.java   | 24 ++++++++++++++++++++--
 .../plan/planner/TableOperatorGenerator.java       | 19 +----------------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
index 782f5acc184..aaeabf14401 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/relational/InformationSchemaContentSupplierFactory.java
@@ -116,6 +116,7 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -139,6 +140,7 @@ import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.NODE_T
 import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.NODE_TYPE_CONFIG_NODE;
 import static 
org.apache.iotdb.commons.schema.column.ColumnHeaderConstant.NODE_TYPE_DATA_NODE;
 import static org.apache.iotdb.commons.schema.table.TsTable.TTL_PROPERTY;
+import static 
org.apache.iotdb.db.queryengine.plan.analyze.PredicateUtils.convertPredicateToFilter;
 import static 
org.apache.iotdb.db.queryengine.plan.execution.config.TableConfigTaskVisitor.canShowDB;
 import static 
org.apache.iotdb.db.queryengine.plan.execution.config.TableConfigTaskVisitor.canShowTable;
 import static 
org.apache.iotdb.db.queryengine.plan.execution.config.metadata.ShowFunctionsTask.BINARY_MAP;
@@ -158,8 +160,7 @@ public class InformationSchemaContentSupplierFactory {
       final OperatorContext context,
       final List<TSDataType> dataTypes,
       final UserEntity userEntity,
-      final InformationSchemaTableScanNode node,
-      final Filter pushDownFilter) {
+      final InformationSchemaTableScanNode node) {
     String tableName = node.getQualifiedObjectName().getObjectName();
     try {
       switch (tableName) {
@@ -196,6 +197,25 @@ public class InformationSchemaContentSupplierFactory {
         case InformationSchema.DATA_NODES:
           return new DataNodesSupplier(dataTypes, userEntity);
         case InformationSchema.TABLE_DISK_USAGE:
+          Filter pushDownFilter = null;
+          if (!InformationSchema.getColumnsSupportPushDownPredicate(
+                      node.getQualifiedObjectName().getObjectName())
+                  .isEmpty()
+              && node.getPushDownPredicate() != null) {
+            Map<String, Integer> measurementColumnsIndexMap =
+                new HashMap<>(node.getOutputColumnNames().size());
+            for (int i = 0; i < node.getOutputColumnNames().size(); i++) {
+              
measurementColumnsIndexMap.put(node.getOutputColumnNames().get(i), i);
+            }
+            pushDownFilter =
+                convertPredicateToFilter(
+                    node.getPushDownPredicate(),
+                    measurementColumnsIndexMap,
+                    node.getAssignments(),
+                    null,
+                    context.getSessionInfo().getZoneId(),
+                    TimestampPrecisionUtils.currPrecision);
+          }
           return new TableDiskUsageSupplier(
               dataTypes,
               userEntity,
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
index ca7e5ad7fb8..63705c78910 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/TableOperatorGenerator.java
@@ -1310,22 +1310,6 @@ public class TableOperatorGenerator extends 
PlanVisitor<Operator, LocalExecution
                 node.getPlanNodeId(),
                 InformationSchemaTableScanOperator.class.getSimpleName());
 
-    Filter pushDownFilter = null;
-    if (node.getPushDownPredicate() != null) {
-      Map<String, Integer> measurementColumnsIndexMap =
-          new HashMap<>(node.getOutputColumnNames().size());
-      for (int i = 0; i < node.getOutputColumnNames().size(); i++) {
-        measurementColumnsIndexMap.put(node.getOutputColumnNames().get(i), i);
-      }
-      pushDownFilter =
-          convertPredicateToFilter(
-              node.getPushDownPredicate(),
-              measurementColumnsIndexMap,
-              node.getAssignments(),
-              null,
-              context.getZoneId(),
-              TimestampPrecisionUtils.currPrecision);
-    }
     final List<TSDataType> dataTypes =
         node.getOutputSymbols().stream()
             .map(symbol -> 
getTSDataType(context.getTypeProvider().getTableModelType(symbol)))
@@ -1342,8 +1326,7 @@ public class TableOperatorGenerator extends 
PlanVisitor<Operator, LocalExecution
                 .getFragmentInstanceContext()
                 .getSessionInfo()
                 .getUserEntity(),
-            node,
-            pushDownFilter));
+            node));
   }
 
   @Override

Reply via email to