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

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


The following commit(s) were added to refs/heads/master by this push:
     new ecdf0d77bc1 Fixed the device NPE for table view in view device & Added 
semantic check to prohibit the last data query for prefix paths with "*" & 
Refactored metric log of tag number
ecdf0d77bc1 is described below

commit ecdf0d77bc15574e6066ca0c8095af8fbd04b21d
Author: Caideyipi <[email protected]>
AuthorDate: Wed Jun 18 14:46:09 2025 +0800

    Fixed the device NPE for table view in view device & Added semantic check 
to prohibit the last data query for prefix paths with "*" & Refactored metric 
log of tag number
---
 .../java/org/apache/iotdb/db/auth/BasicAuthorityCache.java |  2 +-
 .../db/protocol/thrift/impl/ClientRPCServiceImpl.java      |  7 +++++++
 .../operator/schema/source/TableDeviceQuerySource.java     | 14 +++++++++++---
 .../java/org/apache/iotdb/metrics/utils/MetricInfo.java    |  3 ++-
 4 files changed, 21 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/BasicAuthorityCache.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/BasicAuthorityCache.java
index 66c1e4e26a0..bcff1df36b8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/BasicAuthorityCache.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/BasicAuthorityCache.java
@@ -76,7 +76,7 @@ public class BasicAuthorityCache implements IAuthorCache {
    * initialized.
    */
   @Override
-  public boolean invalidateCache(String userName, String roleName) {
+  public boolean invalidateCache(final String userName, final String roleName) 
{
     if (userName != null) {
       if (userCache.getIfPresent(userName) != null) {
         Set<String> roleSet = userCache.getIfPresent(userName).getRoleSet();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
index 7c11bb54b38..87870c35b80 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/ClientRPCServiceImpl.java
@@ -946,6 +946,13 @@ public class ClientRPCServiceImpl implements 
IClientRPCServiceWithHandler {
       // 1. Map<Device, String[] measurements> 
ISchemaFetcher.getAllSensors(prefix) ~= 50ms
 
       final PartialPath prefixPath = new 
PartialPath(req.getPrefixes().toArray(new String[0]));
+      if (prefixPath.hasWildcard()) {
+        RpcUtils.getTSExecuteStatementResp(
+            new TSStatus(TSStatusCode.SEMANTIC_ERROR.getStatusCode())
+                .setMessage(
+                    "The \"executeFastLastDataQueryForOnePrefixPath\" dos not 
support wildcards."));
+      }
+
       final Map<TableId, Map<IDeviceID, Map<String, Pair<TSDataType, 
TimeValuePair>>>> resultMap =
           new HashMap<>();
       int sensorNum = 0;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceQuerySource.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceQuerySource.java
index 6261a4220c8..5492f63218d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceQuerySource.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/source/TableDeviceQuerySource.java
@@ -129,8 +129,12 @@ public class TableDeviceQuerySource implements 
ISchemaSource<IDeviceSchemaInfo>
         }
 
         if (Objects.isNull(filter)) {
-          if (innerHasNext()) {
-            next = deviceReader.next();
+          while (innerHasNext()) {
+            final IDeviceSchemaInfo device = deviceReader.next();
+            if (device.isAligned() == null) {
+              continue;
+            }
+            next = device;
             return true;
           }
           return false;
@@ -142,7 +146,11 @@ public class TableDeviceQuerySource implements 
ISchemaSource<IDeviceSchemaInfo>
         }
 
         while (innerHasNext() && !filter.hasNext()) {
-          filter.addBatch(deviceReader.next());
+          final IDeviceSchemaInfo device = deviceReader.next();
+          if (device.isAligned() == null) {
+            continue;
+          }
+          filter.addBatch(device);
         }
 
         if (!filter.hasNext()) {
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
index e223aac1708..416a143dc6e 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
@@ -51,7 +51,8 @@ public class MetricInfo {
         this.tags.put(tags[i], tags[i + 1]);
       }
     } else {
-      logger.error("The size of metric tags should be even, but was {}.", 
String.join(",", tags));
+      logger.error(
+          "The size of metric tags should be even, but was odd, tags: {}.", 
String.join(",", tags));
     }
     this.metaInfo = new MetaInfo(type, this.tags.keySet());
   }

Reply via email to