|
18 | 18 | */ |
19 | 19 | package org.apache.iotdb.db.schemaengine.schemaregion.tag; |
20 | 20 |
|
| 21 | +import org.apache.iotdb.commons.path.PartialPath; |
| 22 | +import org.apache.iotdb.commons.schema.filter.impl.TagFilter; |
21 | 23 | import org.apache.iotdb.commons.schema.node.role.IMeasurementMNode; |
22 | 24 | import org.apache.iotdb.commons.schema.node.utils.IMNodeFactory; |
23 | 25 | import org.apache.iotdb.db.schemaengine.rescon.MemSchemaEngineStatistics; |
24 | 26 | import org.apache.iotdb.db.schemaengine.rescon.MemSchemaRegionStatistics; |
25 | 27 | import org.apache.iotdb.db.schemaengine.schemaregion.mtree.impl.mem.mnode.IMemMNode; |
26 | 28 | import org.apache.iotdb.db.schemaengine.schemaregion.mtree.loader.MNodeFactoryLoader; |
| 29 | +import org.apache.iotdb.db.schemaengine.schemaregion.read.req.IShowTimeSeriesPlan; |
| 30 | +import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.info.ITimeSeriesSchemaInfo; |
| 31 | +import org.apache.iotdb.db.schemaengine.schemaregion.read.resp.reader.ISchemaReader; |
27 | 32 |
|
28 | 33 | import org.apache.tsfile.enums.TSDataType; |
29 | 34 | import org.apache.tsfile.external.commons.io.FileUtils; |
|
34 | 39 | import org.junit.After; |
35 | 40 | import org.junit.Assert; |
36 | 41 | import org.junit.Test; |
| 42 | +import org.mockito.Mockito; |
37 | 43 |
|
38 | 44 | import java.io.File; |
39 | 45 | import java.nio.file.Files; |
@@ -188,6 +194,24 @@ public void concurrentAddAndRemoveIndexEventuallyReleasesAllMemory() throws Exce |
188 | 194 | Assert.assertEquals(0, regionStatistics.getRegionMemoryUsage()); |
189 | 195 | } |
190 | 196 |
|
| 197 | + @Test |
| 198 | + public void preDeletedMeasurementIsSkippedByIndexReader() throws Exception { |
| 199 | + initTagManager(); |
| 200 | + final IMeasurementMNode<?> node = newMeasurementMNode("s0"); |
| 201 | + node.setPreDeleted(true); |
| 202 | + tagManager.addIndex("key", "value", node); |
| 203 | + |
| 204 | + final IShowTimeSeriesPlan plan = Mockito.mock(IShowTimeSeriesPlan.class); |
| 205 | + Mockito.when(plan.getSchemaFilter()).thenReturn(new TagFilter("key", "value", false)); |
| 206 | + Mockito.when(plan.getPath()).thenReturn(new PartialPath("s0")); |
| 207 | + |
| 208 | + final ISchemaReader<ITimeSeriesSchemaInfo> reader = |
| 209 | + tagManager.getTimeSeriesReaderWithIndex(plan); |
| 210 | + Assert.assertFalse(reader.hasNext()); |
| 211 | + Assert.assertTrue(reader.isSuccess()); |
| 212 | + reader.close(); |
| 213 | + } |
| 214 | + |
191 | 215 | private void initTagManager() throws Exception { |
192 | 216 | tempDir = Files.createTempDirectory("tag-manager").toFile(); |
193 | 217 | regionStatistics = new MemSchemaRegionStatistics(0, new MemSchemaEngineStatistics()); |
|
0 commit comments