This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/object_type in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2684d4ff0a3f889b4a373ccc087fe0365d3b8cf0 Author: Caideyipi <[email protected]> AuthorDate: Tue Dec 16 09:16:11 2025 +0800 Optimized the error message & prevented stack printing of information_schema selection when the cluster is closing (#16905) * DL * ancient-IT (cherry picked from commit c77bb57cb2e9e99f2511c7bb59894773f873b720) --- .../java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java | 6 ++++++ .../planner/distribute/TableDistributedPlanGenerator.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java index 748a6937bcf..5eaf230b600 100644 --- a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java +++ b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java @@ -1229,6 +1229,12 @@ public class IoTDBTableIT { } catch (final SQLException e) { assertEquals("701: The system view does not support show create.", e.getMessage()); } + try { + statement.execute("show create table information_schema.tables"); + fail(); + } catch (final SQLException e) { + assertEquals("701: The system view does not support show create.", e.getMessage()); + } try { statement.execute("create or replace view a () as root.b.**"); fail(); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java index 069d1df7469..e13d09de4a5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/distribute/TableDistributedPlanGenerator.java @@ -23,6 +23,7 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation; import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet; import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot; import org.apache.iotdb.common.rpc.thrift.TTimePartitionSlot; +import org.apache.iotdb.commons.exception.IoTDBRuntimeException; import org.apache.iotdb.commons.partition.DataPartition; import org.apache.iotdb.commons.partition.SchemaPartition; import org.apache.iotdb.commons.schema.table.TsTable; @@ -100,6 +101,7 @@ import org.apache.iotdb.db.queryengine.plan.relational.sql.ast.SymbolReference; import org.apache.iotdb.db.queryengine.plan.statement.component.Ordering; import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache; import org.apache.iotdb.db.schemaengine.table.DataNodeTreeViewSchemaUtils; +import org.apache.iotdb.rpc.TSStatusCode; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; @@ -1004,7 +1006,11 @@ public class TableDistributedPlanGenerator List<TDataNodeLocation> dataNodeLocations = dataNodeLocationSupplier.getDataNodeLocations( node.getQualifiedObjectName().getObjectName()); - checkArgument(!dataNodeLocations.isEmpty(), "DataNodeLocations shouldn't be empty"); + if (dataNodeLocations.isEmpty()) { + throw new IoTDBRuntimeException( + "No available dataNodes, may be the cluster is closing", + TSStatusCode.NO_AVAILABLE_REPLICA.getStatusCode()); + } List<PlanNode> resultTableScanNodeList = new ArrayList<>(); dataNodeLocations.forEach(
