This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/develop by this push:
new 59b8d0baf Add TableDeviceChunkMetadata for tabel model
59b8d0baf is described below
commit 59b8d0baf03fd3854f52f9fd2e04be2a419e0390
Author: Jackie Tien <[email protected]>
AuthorDate: Sun Jan 26 14:19:23 2025 +0800
Add TableDeviceChunkMetadata for tabel model
---
...data.java => AbstractAlignedChunkMetadata.java} | 27 +---
.../AbstractAlignedTimeSeriesMetadata.java | 13 +-
.../tsfile/file/metadata/AlignedChunkMetadata.java | 166 +--------------------
.../file/metadata/AlignedTimeSeriesMetadata.java | 8 +-
...Metadata.java => TableDeviceChunkMetadata.java} | 26 +---
...ata.java => TableDeviceTimeSeriesMetadata.java} | 14 +-
.../apache/tsfile/read/TsFileSequenceReader.java | 6 +-
.../reader/block/DeviceOrderedTsBlockReader.java | 2 +-
.../reader/block/SingleDeviceTsBlockReader.java | 4 +-
.../read/reader/series/FileSeriesReader.java | 5 +-
.../org/apache/tsfile/tableview/TableViewTest.java | 34 -----
11 files changed, 47 insertions(+), 258 deletions(-)
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
similarity index 85%
copy from
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
copy to
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
index c92443be1..4bbc28581 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedChunkMetadata.java
@@ -29,29 +29,22 @@ import java.io.Serializable;
import java.util.List;
import java.util.Optional;
-public class AlignedChunkMetadata implements IChunkMetadata {
+public abstract class AbstractAlignedChunkMetadata implements IChunkMetadata {
// ChunkMetadata for time column
- private final IChunkMetadata timeChunkMetadata;
+ protected final IChunkMetadata timeChunkMetadata;
// ChunkMetadata for all subSensors in the vector
- private final List<IChunkMetadata> valueChunkMetadataList;
+ protected final List<IChunkMetadata> valueChunkMetadataList;
/** ChunkLoader of metadata, used to create IChunkReader */
private IChunkLoader chunkLoader;
- public AlignedChunkMetadata(
+ AbstractAlignedChunkMetadata(
IChunkMetadata timeChunkMetadata, List<IChunkMetadata>
valueChunkMetadataList) {
this.timeChunkMetadata = timeChunkMetadata;
this.valueChunkMetadataList = valueChunkMetadataList;
}
- @Override
- public Statistics<? extends Serializable> getStatistics() {
- return valueChunkMetadataList.size() == 1 && valueChunkMetadataList.get(0)
!= null
- ? valueChunkMetadataList.get(0).getStatistics()
- : timeChunkMetadata.getStatistics();
- }
-
@Override
public Statistics<? extends Serializable> getTimeStatistics() {
return timeChunkMetadata.getStatistics();
@@ -77,18 +70,6 @@ public class AlignedChunkMetadata implements IChunkMetadata {
return valueChunkMetadataList.size();
}
- @Override
- public boolean timeAllSelected() {
- for (int index = 0; index < getMeasurementCount(); index++) {
- if (!hasNullValue(index)) {
- // When there is any value page point number that is the same as the
time page,
- // it means that all timestamps in time page will be selected.
- return true;
- }
- }
- return false;
- }
-
@Override
public boolean isModified() {
return timeChunkMetadata.isModified();
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedTimeSeriesMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedTimeSeriesMetadata.java
index f9762f07e..f793f7c5d 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedTimeSeriesMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AbstractAlignedTimeSeriesMetadata.java
@@ -112,7 +112,7 @@ public abstract class AbstractAlignedTimeSeriesMetadata
implements ITimeSeriesMe
return chunkMetadataLoader.loadChunkMetadataList(this);
}
- public List<AlignedChunkMetadata> getCopiedChunkMetadataList() {
+ public List<AbstractAlignedChunkMetadata> getCopiedChunkMetadataList() {
List<IChunkMetadata> timeChunkMetadata =
timeseriesMetadata.getCopiedChunkMetadataList();
List<List<IChunkMetadata>> valueChunkMetadataList = new ArrayList<>();
for (TimeseriesMetadata metadata : valueTimeseriesMetadataList) {
@@ -122,7 +122,7 @@ public abstract class AbstractAlignedTimeSeriesMetadata
implements ITimeSeriesMe
return getAlignedChunkMetadata(timeChunkMetadata, valueChunkMetadataList);
}
- public List<AlignedChunkMetadata> getChunkMetadataList() {
+ public List<AbstractAlignedChunkMetadata> getChunkMetadataList() {
List<IChunkMetadata> timeChunkMetadata =
timeseriesMetadata.getChunkMetadataList();
List<List<IChunkMetadata>> valueChunkMetadataList = new ArrayList<>();
for (TimeseriesMetadata metadata : valueTimeseriesMetadataList) {
@@ -133,9 +133,9 @@ public abstract class AbstractAlignedTimeSeriesMetadata
implements ITimeSeriesMe
}
/** Notice: if all the value chunks is empty chunk, then return empty list.
*/
- private List<AlignedChunkMetadata> getAlignedChunkMetadata(
+ private List<AbstractAlignedChunkMetadata> getAlignedChunkMetadata(
List<IChunkMetadata> timeChunkMetadata, List<List<IChunkMetadata>>
valueChunkMetadataList) {
- List<AlignedChunkMetadata> res = new ArrayList<>();
+ List<AbstractAlignedChunkMetadata> res = new ArrayList<>();
for (int i = 0; i < timeChunkMetadata.size(); i++) {
// only need time column
if (valueTimeseriesMetadataList.isEmpty()) {
@@ -160,11 +160,14 @@ public abstract class AbstractAlignedTimeSeriesMetadata
implements ITimeSeriesMe
}
abstract void constructAlignedChunkMetadata(
- List<AlignedChunkMetadata> res,
+ List<AbstractAlignedChunkMetadata> res,
IChunkMetadata timeChunkMetadata,
List<IChunkMetadata> chunkMetadataList,
boolean exits);
+ abstract AbstractAlignedChunkMetadata constructOnlyTimeChunkMetadata(
+ IChunkMetadata timeChunkMetadata);
+
@Override
public void setChunkMetadataLoader(IChunkMetadataLoader chunkMetadataLoader)
{
this.chunkMetadataLoader = chunkMetadataLoader;
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
index c92443be1..81df89ca2 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedChunkMetadata.java
@@ -19,30 +19,16 @@
package org.apache.tsfile.file.metadata;
-import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.metadata.statistics.Statistics;
-import org.apache.tsfile.read.common.TimeRange;
-import org.apache.tsfile.read.controller.IChunkLoader;
-import java.io.OutputStream;
import java.io.Serializable;
import java.util.List;
-import java.util.Optional;
-public class AlignedChunkMetadata implements IChunkMetadata {
-
- // ChunkMetadata for time column
- private final IChunkMetadata timeChunkMetadata;
- // ChunkMetadata for all subSensors in the vector
- private final List<IChunkMetadata> valueChunkMetadataList;
-
- /** ChunkLoader of metadata, used to create IChunkReader */
- private IChunkLoader chunkLoader;
+public class AlignedChunkMetadata extends AbstractAlignedChunkMetadata {
public AlignedChunkMetadata(
IChunkMetadata timeChunkMetadata, List<IChunkMetadata>
valueChunkMetadataList) {
- this.timeChunkMetadata = timeChunkMetadata;
- this.valueChunkMetadataList = valueChunkMetadataList;
+ super(timeChunkMetadata, valueChunkMetadataList);
}
@Override
@@ -52,31 +38,6 @@ public class AlignedChunkMetadata implements IChunkMetadata {
: timeChunkMetadata.getStatistics();
}
- @Override
- public Statistics<? extends Serializable> getTimeStatistics() {
- return timeChunkMetadata.getStatistics();
- }
-
- @Override
- public Optional<Statistics<? extends Serializable>> getMeasurementStatistics(
- int measurementIndex) {
- IChunkMetadata chunkMetadata =
valueChunkMetadataList.get(measurementIndex);
- return Optional.ofNullable(chunkMetadata == null ? null :
chunkMetadata.getStatistics());
- }
-
- @Override
- public boolean hasNullValue(int measurementIndex) {
- long rowCount = getTimeStatistics().getCount();
- Optional<Statistics<? extends Serializable>> statistics =
- getMeasurementStatistics(measurementIndex);
- return statistics.map(stat -> stat.hasNullValue(rowCount)).orElse(true);
- }
-
- @Override
- public int getMeasurementCount() {
- return valueChunkMetadataList.size();
- }
-
@Override
public boolean timeAllSelected() {
for (int index = 0; index < getMeasurementCount(); index++) {
@@ -88,127 +49,4 @@ public class AlignedChunkMetadata implements IChunkMetadata
{
}
return false;
}
-
- @Override
- public boolean isModified() {
- return timeChunkMetadata.isModified();
- }
-
- @Override
- public void setModified(boolean modified) {
- timeChunkMetadata.setModified(modified);
- for (IChunkMetadata v : valueChunkMetadataList) {
- if (v != null) {
- v.setModified(modified);
- }
- }
- }
-
- @Override
- public boolean isSeq() {
- return timeChunkMetadata.isSeq();
- }
-
- @Override
- public void setSeq(boolean seq) {
- timeChunkMetadata.setSeq(seq);
- for (IChunkMetadata v : valueChunkMetadataList) {
- if (v != null) {
- v.setSeq(seq);
- }
- }
- }
-
- @Override
- public long getVersion() {
- return timeChunkMetadata.getVersion();
- }
-
- @Override
- public void setVersion(long version) {
- timeChunkMetadata.setVersion(version);
- for (IChunkMetadata valueChunkMetadata : valueChunkMetadataList) {
- if (valueChunkMetadata != null) {
- valueChunkMetadata.setVersion(version);
- }
- }
- }
-
- @Override
- public long getOffsetOfChunkHeader() {
- return timeChunkMetadata.getOffsetOfChunkHeader();
- }
-
- @Override
- public long getStartTime() {
- return timeChunkMetadata.getStartTime();
- }
-
- @Override
- public long getEndTime() {
- return timeChunkMetadata.getEndTime();
- }
-
- @Override
- public IChunkLoader getChunkLoader() {
- return chunkLoader;
- }
-
- @Override
- public boolean needSetChunkLoader() {
- return chunkLoader == null;
- }
-
- @Override
- public void setChunkLoader(IChunkLoader chunkLoader) {
- this.chunkLoader = chunkLoader;
- }
-
- @Override
- public void setClosed(boolean closed) {
- timeChunkMetadata.setClosed(closed);
- for (IChunkMetadata chunkMetadata : valueChunkMetadataList) {
- if (chunkMetadata != null) {
- chunkMetadata.setClosed(closed);
- }
- }
- }
-
- @Override
- public TSDataType getDataType() {
- return timeChunkMetadata.getDataType();
- }
-
- @Override
- public String getMeasurementUid() {
- return timeChunkMetadata.getMeasurementUid();
- }
-
- @Override
- public void insertIntoSortedDeletions(TimeRange timeRange) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<TimeRange> getDeleteIntervalList() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int serializeTo(OutputStream outputStream, boolean
serializeStatistic) {
- throw new UnsupportedOperationException("VectorChunkMetadata doesn't
support serial method");
- }
-
- @Override
- public byte getMask() {
- return 0;
- }
-
- public IChunkMetadata getTimeChunkMetadata() {
- return timeChunkMetadata;
- }
-
- public List<IChunkMetadata> getValueChunkMetadataList() {
- return valueChunkMetadataList;
- }
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedTimeSeriesMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedTimeSeriesMetadata.java
index ba5cbce41..7e1e5bf08 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedTimeSeriesMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/AlignedTimeSeriesMetadata.java
@@ -21,6 +21,7 @@ package org.apache.tsfile.file.metadata;
import org.apache.tsfile.file.metadata.statistics.Statistics;
+import java.util.Collections;
import java.util.List;
public class AlignedTimeSeriesMetadata extends
AbstractAlignedTimeSeriesMetadata {
@@ -55,7 +56,7 @@ public class AlignedTimeSeriesMetadata extends
AbstractAlignedTimeSeriesMetadata
@Override
void constructAlignedChunkMetadata(
- List<AlignedChunkMetadata> res,
+ List<AbstractAlignedChunkMetadata> res,
IChunkMetadata timeChunkMetadata,
List<IChunkMetadata> chunkMetadataList,
boolean exits) {
@@ -63,4 +64,9 @@ public class AlignedTimeSeriesMetadata extends
AbstractAlignedTimeSeriesMetadata
res.add(new AlignedChunkMetadata(timeChunkMetadata, chunkMetadataList));
}
}
+
+ @Override
+ AbstractAlignedChunkMetadata constructOnlyTimeChunkMetadata(IChunkMetadata
timeChunkMetadata) {
+ return new AlignedChunkMetadata(timeChunkMetadata,
Collections.emptyList());
+ }
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
similarity index 54%
copy from
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
copy to
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
index 8614a5326..8daeffc5d 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceChunkMetadata.java
@@ -21,30 +21,18 @@ package org.apache.tsfile.file.metadata;
import org.apache.tsfile.file.metadata.statistics.Statistics;
+import java.io.Serializable;
import java.util.List;
-public class TableDeviceMetadata extends AbstractAlignedTimeSeriesMetadata {
+public class TableDeviceChunkMetadata extends AbstractAlignedChunkMetadata {
- public TableDeviceMetadata(
- TimeseriesMetadata timeseriesMetadata, List<TimeseriesMetadata>
valueTimeseriesMetadataList) {
- super(timeseriesMetadata, valueTimeseriesMetadataList);
+ public TableDeviceChunkMetadata(
+ IChunkMetadata timeChunkMetadata, List<IChunkMetadata>
valueChunkMetadataList) {
+ super(timeChunkMetadata, valueChunkMetadataList);
}
- /**
- * If the vector contains only one sub sensor, just return the sub sensor's
Statistics Otherwise,
- * return the Statistics of the time column.
- */
@Override
- public Statistics getStatistics() {
- return timeseriesMetadata.getStatistics();
- }
-
- @Override
- void constructAlignedChunkMetadata(
- List<AlignedChunkMetadata> res,
- IChunkMetadata timeChunkMetadata,
- List<IChunkMetadata> chunkMetadataList,
- boolean exits) {
- res.add(new AlignedChunkMetadata(timeChunkMetadata, chunkMetadataList));
+ public Statistics<? extends Serializable> getStatistics() {
+ return timeChunkMetadata.getStatistics();
}
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceTimeSeriesMetadata.java
similarity index 76%
rename from
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
rename to
java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceTimeSeriesMetadata.java
index 8614a5326..debacf5ba 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceMetadata.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/file/metadata/TableDeviceTimeSeriesMetadata.java
@@ -21,11 +21,12 @@ package org.apache.tsfile.file.metadata;
import org.apache.tsfile.file.metadata.statistics.Statistics;
+import java.util.Collections;
import java.util.List;
-public class TableDeviceMetadata extends AbstractAlignedTimeSeriesMetadata {
+public class TableDeviceTimeSeriesMetadata extends
AbstractAlignedTimeSeriesMetadata {
- public TableDeviceMetadata(
+ public TableDeviceTimeSeriesMetadata(
TimeseriesMetadata timeseriesMetadata, List<TimeseriesMetadata>
valueTimeseriesMetadataList) {
super(timeseriesMetadata, valueTimeseriesMetadataList);
}
@@ -41,10 +42,15 @@ public class TableDeviceMetadata extends
AbstractAlignedTimeSeriesMetadata {
@Override
void constructAlignedChunkMetadata(
- List<AlignedChunkMetadata> res,
+ List<AbstractAlignedChunkMetadata> res,
IChunkMetadata timeChunkMetadata,
List<IChunkMetadata> chunkMetadataList,
boolean exits) {
- res.add(new AlignedChunkMetadata(timeChunkMetadata, chunkMetadataList));
+ res.add(new TableDeviceChunkMetadata(timeChunkMetadata,
chunkMetadataList));
+ }
+
+ @Override
+ AbstractAlignedChunkMetadata constructOnlyTimeChunkMetadata(IChunkMetadata
timeChunkMetadata) {
+ return new TableDeviceChunkMetadata(timeChunkMetadata,
Collections.emptyList());
}
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
index 3f7a171b4..3961053bd 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/read/TsFileSequenceReader.java
@@ -52,7 +52,7 @@ import org.apache.tsfile.file.metadata.IDeviceID;
import org.apache.tsfile.file.metadata.ITimeSeriesMetadata;
import org.apache.tsfile.file.metadata.MeasurementMetadataIndexEntry;
import org.apache.tsfile.file.metadata.MetadataIndexNode;
-import org.apache.tsfile.file.metadata.TableDeviceMetadata;
+import org.apache.tsfile.file.metadata.TableDeviceTimeSeriesMetadata;
import org.apache.tsfile.file.metadata.TableSchema;
import org.apache.tsfile.file.metadata.TimeseriesMetadata;
import org.apache.tsfile.file.metadata.TsFileMetadata;
@@ -916,7 +916,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (valueTimeseriesMetadataList != null &&
!valueTimeseriesMetadataList.isEmpty()) {
if
(this.tsFileMetaData.getTableSchemaMap().containsKey(device.getTableName())) {
resultTimeseriesMetadataList.add(
- new TableDeviceMetadata(timeColumnMetadata,
valueTimeseriesMetadataList));
+ new TableDeviceTimeSeriesMetadata(timeColumnMetadata,
valueTimeseriesMetadataList));
} else {
resultTimeseriesMetadataList.add(
new AlignedTimeSeriesMetadata(timeColumnMetadata,
valueTimeseriesMetadataList));
@@ -2670,7 +2670,7 @@ public class TsFileSequenceReader implements
AutoCloseable {
new AlignedTimeSeriesMetadata(timeseriesMetadata,
valueTimeseriesMetadataList);
} else {
alignedTimeSeriesMetadata =
- new TableDeviceMetadata(timeseriesMetadata,
valueTimeseriesMetadataList);
+ new TableDeviceTimeSeriesMetadata(timeseriesMetadata,
valueTimeseriesMetadataList);
}
List<AlignedChunkMetadata> chunkMetadataList = new ArrayList<>();
for (IChunkMetadata chunkMetadata :
readIChunkMetaDataList(alignedTimeSeriesMetadata)) {
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/DeviceOrderedTsBlockReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/DeviceOrderedTsBlockReader.java
index 30ddca8f4..e78e63622 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/DeviceOrderedTsBlockReader.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/DeviceOrderedTsBlockReader.java
@@ -72,7 +72,7 @@ public class DeviceOrderedTsBlockReader implements
TsBlockReader {
} catch (IOException e) {
LOGGER.error("Failed to construct reader for {}", nextTask, e);
}
- if (currentReader.hasNext()) {
+ if (currentReader != null && currentReader.hasNext()) {
return true;
}
}
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/SingleDeviceTsBlockReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/SingleDeviceTsBlockReader.java
index 6b6d25011..174cdfd9a 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/SingleDeviceTsBlockReader.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/block/SingleDeviceTsBlockReader.java
@@ -20,7 +20,7 @@
package org.apache.tsfile.read.reader.block;
import org.apache.tsfile.block.column.Column;
-import org.apache.tsfile.file.metadata.AlignedChunkMetadata;
+import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata;
import org.apache.tsfile.file.metadata.IChunkMetadata;
import org.apache.tsfile.read.common.BatchData;
import org.apache.tsfile.read.common.block.TsBlock;
@@ -107,7 +107,7 @@ public class SingleDeviceTsBlockReader implements
TsBlockReader {
AbstractFileSeriesReader seriesReader =
new FileSeriesReader(chunkLoader, chunkMetadataList, timeFilter,
false);
if (seriesReader.hasNextBatch()) {
- if (chunkMetadata instanceof AlignedChunkMetadata) {
+ if (chunkMetadata instanceof AbstractAlignedChunkMetadata) {
final List<String> currentChunkMeasurementNames =
seriesReader.getCurrentChunkMeasurementNames();
List<List<Integer>> posInResult = new ArrayList<>();
diff --git
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/FileSeriesReader.java
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/FileSeriesReader.java
index bb6b38108..9fa26c829 100644
---
a/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/FileSeriesReader.java
+++
b/java/tsfile/src/main/java/org/apache/tsfile/read/reader/series/FileSeriesReader.java
@@ -19,7 +19,7 @@
package org.apache.tsfile.read.reader.series;
-import org.apache.tsfile.file.metadata.AlignedChunkMetadata;
+import org.apache.tsfile.file.metadata.AbstractAlignedChunkMetadata;
import org.apache.tsfile.file.metadata.ChunkMetadata;
import org.apache.tsfile.file.metadata.IChunkMetadata;
import org.apache.tsfile.read.common.Chunk;
@@ -60,7 +60,8 @@ public class FileSeriesReader extends
AbstractFileSeriesReader {
this.chunkReader = new ChunkReader(chunk, filter);
currentChunkMeasurementNames.add(chunkMetaData.getMeasurementUid());
} else {
- AlignedChunkMetadata alignedChunkMetadata = (AlignedChunkMetadata)
chunkMetaData;
+ AbstractAlignedChunkMetadata alignedChunkMetadata =
+ (AbstractAlignedChunkMetadata) chunkMetaData;
Chunk timeChunk =
chunkLoader.loadChunk((ChunkMetadata)
(alignedChunkMetadata.getTimeChunkMetadata()));
List<Chunk> valueChunkList = new ArrayList<>();
diff --git
a/java/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
b/java/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
index 851a126a3..16454fb2a 100644
--- a/java/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
+++ b/java/tsfile/src/test/java/org/apache/tsfile/tableview/TableViewTest.java
@@ -20,7 +20,6 @@
package org.apache.tsfile.tableview;
import org.apache.tsfile.enums.TSDataType;
-import org.apache.tsfile.exception.read.ReadProcessException;
import org.apache.tsfile.exception.write.WriteProcessException;
import org.apache.tsfile.file.metadata.IDeviceID;
import org.apache.tsfile.file.metadata.IDeviceID.Factory;
@@ -109,39 +108,6 @@ public class TableViewTest {
testWrite(testTableSchema);
}
- public static void main(String[] args) throws IOException,
ReadProcessException {
- File testFile =
- new File(
-
"C:\\Users\\JT\\Downloads\\sequence-root.test_g_0-1-2714-1729258251084-4-0-0.tsfile");
- TsFileSequenceReader sequenceReader = new
TsFileSequenceReader(testFile.getAbsolutePath());
- TableQueryExecutor tableQueryExecutor =
- new TableQueryExecutor(
- new MetadataQuerierByFileImpl(sequenceReader),
- new CachedChunkLoaderImpl(sequenceReader),
- TableQueryOrdering.DEVICE);
-
- final TsBlockReader reader =
- tableQueryExecutor.query("table_5", Arrays.asList("s_0"), null, null,
null);
- assertTrue(reader.hasNext());
- int cnt = 0;
- while (reader.hasNext()) {
- final TsBlock result = reader.next();
- for (int i = 0; i < result.getPositionCount(); i++) {
- String col = result.getColumn(0).getObject(i).toString();
- StringBuilder builder = new StringBuilder(col);
- for (int j = 1; j < result.getValueColumns().length; j++) {
- if (result.getColumn(j).isNull(i)) {
-
builder.append(",").append(result.getColumn(j).getObject(i).toString());
- } else {
- builder.append(",").append("null");
- }
- }
- System.out.println(result.getTimeByIndex(i) + "\t" +
builder.toString());
- }
- cnt += result.getPositionCount();
- }
- }
-
public static void writeTsFile(TableSchema tableSchema, File file)
throws IOException, WriteProcessException {
try (TsFileWriter writer = new TsFileWriter(file)) {