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 f6cd1f9 [IOTDB-1035] Fix bug in getDeviceTimeseriesMetadata when
querying non-exist device (#2150)
f6cd1f9 is described below
commit f6cd1f95fd58b7772c8e850e5496361a9875fcff
Author: Zesong Sun <[email protected]>
AuthorDate: Wed Dec 2 12:06:48 2020 +0800
[IOTDB-1035] Fix bug in getDeviceTimeseriesMetadata when querying non-exist
device (#2150)
---
.../apache/iotdb/tsfile/read/TsFileSequenceReader.java | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 16f932e..432b70b 100644
---
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -601,7 +601,7 @@ public class TsFileSequenceReader implements AutoCloseable {
private List<TimeseriesMetadata> getDeviceTimeseriesMetadata(String device)
throws IOException {
MetadataIndexNode metadataIndexNode = tsFileMetaData.getMetadataIndex();
Pair<MetadataIndexEntry, Long> metadataIndexPair = getMetadataAndEndOffset(
- metadataIndexNode, device, MetadataIndexNodeType.INTERNAL_DEVICE,
false);
+ metadataIndexNode, device, MetadataIndexNodeType.INTERNAL_DEVICE,
true);
if (metadataIndexPair == null) {
return Collections.emptyList();
}
@@ -634,17 +634,15 @@ public class TsFileSequenceReader implements
AutoCloseable {
*/
private Pair<MetadataIndexEntry, Long>
getMetadataAndEndOffset(MetadataIndexNode metadataIndex,
String name, MetadataIndexNodeType type, boolean exactSearch) throws
IOException {
- Pair<MetadataIndexEntry, Long> childIndexEntry = metadataIndex
- .getChildIndexEntry(name, exactSearch);
- if (childIndexEntry == null) {
- return null;
- }
if (!metadataIndex.getNodeType().equals(type)) {
- return childIndexEntry;
+ return metadataIndex.getChildIndexEntry(name, exactSearch);
+ } else {
+ Pair<MetadataIndexEntry, Long> childIndexEntry = metadataIndex
+ .getChildIndexEntry(name, false);
+ ByteBuffer buffer = readData(childIndexEntry.left.getOffset(),
childIndexEntry.right);
+ return
getMetadataAndEndOffset(MetadataIndexNode.deserializeFrom(buffer), name, type,
+ false);
}
- ByteBuffer buffer = readData(childIndexEntry.left.getOffset(),
childIndexEntry.right);
- return getMetadataAndEndOffset(MetadataIndexNode.deserializeFrom(buffer),
name, type,
- exactSearch);
}
/**