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());
}