You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/05/04 08:56:28 UTC
[iotdb] branch AlignedSeriesScanOperator updated (dcbdecbca5 -> 32982622f7)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a change to branch AlignedSeriesScanOperator
in repository https://gitbox.apache.org/repos/asf/iotdb.git
from dcbdecbca5 [IOTDB-3080] Implementation of AlignedSeriesScanOperator
add a555f00b89 [IOTDB-2865] Move `PartialPath` to node-commons module (#5780)
add 223d27d16c [IOTDB-2957] User can execute SQL after signing in with a wrong password (#5778)
add c03440626d [IOTDB-2865] Move PartialPath to node-commons module (#5785)
add 85a9e90b2a fix compilation problem (#5786)
add 6348474eb0 [IOTDB-3050] Support expression evaluation with time column (#5783)
add 2b943e4cd3 fix (#5784)
add da61ab01bc [IOTDB-3078]upgrade spotless and code format version. Add instruction for spotles… (#5771)
add cca9cbc73b [IOTDB-2797][privilege] Fix root.** doesn't work (#5756)
add b090698af2 [IOTDB-3088]Implement MTreeAboveSG serialize and deserialize (#5781)
new 32982622f7 resolve conflicts and add desc test
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
README.md | 14 +
README_ZH.md | 13 +
.../cluster/client/sync/SyncClientAdaptor.java | 2 +-
.../iotdb/cluster/coordinator/Coordinator.java | 6 +-
.../cluster/log/applier/AsyncDataLogApplier.java | 4 +-
.../iotdb/cluster/log/applier/BaseApplier.java | 4 +-
.../iotdb/cluster/log/applier/DataLogApplier.java | 2 +-
.../cluster/log/logtypes/PhysicalPlanLog.java | 2 +-
.../manage/FilePartitionedSnapshotLogManager.java | 2 +-
.../log/manage/MetaSingleSnapshotLogManager.java | 2 +-
.../log/manage/PartitionedSnapshotLogManager.java | 2 +-
.../iotdb/cluster/log/snapshot/FileSnapshot.java | 4 +-
.../cluster/log/snapshot/MetaSimpleSnapshot.java | 6 +-
.../iotdb/cluster/metadata/CSchemaProcessor.java | 6 +-
.../apache/iotdb/cluster/metadata/MetaPuller.java | 4 +-
.../iotdb/cluster/partition/PartitionTable.java | 4 +-
.../cluster/query/ClusterDataQueryExecutor.java | 2 +-
.../cluster/query/ClusterPhysicalGenerator.java | 4 +-
.../iotdb/cluster/query/ClusterPlanExecutor.java | 4 +-
.../iotdb/cluster/query/ClusterPlanRouter.java | 4 +-
.../iotdb/cluster/query/LocalQueryExecutor.java | 6 +-
.../query/aggregate/ClusterAggregateExecutor.java | 2 +-
.../cluster/query/aggregate/ClusterAggregator.java | 2 +-
.../cluster/query/fill/ClusterFillExecutor.java | 2 +-
.../cluster/query/fill/ClusterPreviousFill.java | 2 +-
.../cluster/query/fill/PreviousFillArguments.java | 2 +-
.../groupby/ClusterGroupByNoVFilterDataSet.java | 2 +-
.../groupby/ClusterGroupByVFilterDataSet.java | 2 +-
.../query/groupby/MergeGroupByExecutor.java | 2 +-
.../query/last/ClusterLastQueryExecutor.java | 2 +-
.../cluster/query/reader/ClusterReaderFactory.java | 2 +-
.../cluster/query/reader/ClusterTimeGenerator.java | 2 +-
.../query/reader/mult/MultDataSourceInfo.java | 2 +-
.../handlers/caller/ShowTimeSeriesHandler.java | 4 +-
.../cluster/server/member/DataGroupMember.java | 6 +-
.../cluster/server/member/MetaGroupMember.java | 4 +-
.../iotdb/cluster/server/member/RaftMember.java | 2 +-
.../cluster/server/service/DataAsyncService.java | 4 +-
.../cluster/server/service/DataSyncService.java | 4 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 6 +-
.../apache/iotdb/cluster/utils/ClusterUtils.java | 4 +-
.../cluster/utils/nodetool/ClusterMonitor.java | 4 +-
.../cluster/client/sync/SyncClientAdaptorTest.java | 4 +-
.../org/apache/iotdb/cluster/common/IoTDBTest.java | 6 +-
.../iotdb/cluster/common/TestAsyncDataClient.java | 2 +-
.../iotdb/cluster/common/TestLogApplier.java | 4 +-
.../org/apache/iotdb/cluster/common/TestUtils.java | 4 +-
.../apache/iotdb/cluster/log/LogParserTest.java | 4 +-
.../log/applier/AsyncDataLogApplierTest.java | 4 +-
.../cluster/log/applier/DataLogApplierTest.java | 6 +-
.../cluster/log/applier/MetaLogApplierTest.java | 4 +-
.../cluster/log/logtypes/SerializeLogTest.java | 4 +-
.../FilePartitionedSnapshotLogManagerTest.java | 2 +-
.../manage/MetaSingleSnapshotLogManagerTest.java | 4 +-
.../cluster/log/snapshot/DataSnapshotTest.java | 4 +-
.../cluster/log/snapshot/FileSnapshotTest.java | 4 +-
.../log/snapshot/MetaSimpleSnapshotTest.java | 4 +-
.../log/snapshot/PartitionedSnapshotTest.java | 4 +-
.../cluster/log/snapshot/PullSnapshotTaskTest.java | 6 +-
.../cluster/partition/SlotPartitionTableTest.java | 6 +-
.../apache/iotdb/cluster/query/BaseQueryTest.java | 2 +-
.../query/ClusterAggregateExecutorTest.java | 4 +-
.../query/ClusterDataQueryExecutorTest.java | 4 +-
.../query/ClusterPhysicalGeneratorTest.java | 4 +-
.../cluster/query/ClusterPlanExecutorTest.java | 4 +-
.../cluster/query/ClusterQueryRouterTest.java | 4 +-
.../query/fill/ClusterFillExecutorTest.java | 2 +-
.../ClusterGroupByNoVFilterDataSetTest.java | 4 +-
.../groupby/ClusterGroupByVFilterDataSetTest.java | 4 +-
.../query/groupby/MergeGroupByExecutorTest.java | 4 +-
.../query/groupby/RemoteGroupByExecutorTest.java | 4 +-
.../query/last/ClusterLastQueryExecutorTest.java | 2 +-
.../query/reader/ClusterReaderFactoryTest.java | 4 +-
.../query/reader/ClusterTimeGeneratorTest.java | 4 +-
.../mult/AssignPathManagedMergeReaderTest.java | 4 +-
.../mult/MultSeriesRawDataPointReaderTest.java | 2 +-
.../reader/mult/RemoteMultSeriesReaderTest.java | 4 +-
.../server/clusterinfo/ClusterInfoServerTest.java | 2 +-
.../clusterinfo/ClusterInfoServiceImplTest.java | 4 +-
.../handlers/forwarder/ForwardPlanHandlerTest.java | 4 +-
.../iotdb/cluster/server/member/BaseMember.java | 4 +-
.../cluster/server/member/DataGroupMemberTest.java | 4 +-
.../cluster/server/member/MetaGroupMemberTest.java | 6 +-
.../iotdb/cluster/utils/SerializeUtilTest.java | 4 +-
.../confignode/persistence/ClusterSchemaInfo.java | 6 +-
.../thrift/ConfigNodeRPCServiceProcessorTest.java | 4 +-
.../iotdb/consensus/ratis/RatisConsensus.java | 75 +++--
docs/Development/ContributeGuide.md | 18 +-
.../Administration-Management/Administration.md | 2 +-
docs/UserGuide/Process-Data/Triggers.md | 2 +-
.../Administration-Management/Administration.md | 2 +-
docs/zh/UserGuide/Process-Data/Triggers.md | 2 +-
.../org/apache/iotdb/trigger/TriggerExample.java | 2 +-
.../iotdb/db/integration/IoTDBArithmeticIT.java | 4 +-
.../iotdb/db/integration/IoTDBAuthorizationIT.java | 32 ++-
.../db/integration/IoTDBContinuousQueryIT.java | 4 +-
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 4 +-
.../iotdb/db/integration/IoTDBFilePathUtilsIT.java | 4 +-
.../apache/iotdb/db/integration/IoTDBLastIT.java | 2 +-
...IoTDBLoadExternalTsFileWithTimePartitionIT.java | 4 +-
.../db/integration/IoTDBLoadExternalTsfileIT.java | 4 +-
.../integration/IoTDBManageTsFileResourceIT.java | 4 +-
.../iotdb/db/integration/IoTDBNestedQueryIT.java | 33 ++-
.../db/integration/IoTDBNewTsFileCompactionIT.java | 2 +-
.../db/integration/IoTDBRemovePartitionIT.java | 4 +-
.../iotdb/db/integration/IoTDBSelectIntoIT.java | 4 +-
.../db/integration/IoTDBSequenceDataQueryIT.java | 4 +-
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 4 +-
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 4 +-
.../db/integration/IoTDBTriggerExecutionIT.java | 4 +-
.../db/integration/IoTDBTriggerManagementIT.java | 2 +-
.../iotdb/db/integration/IoTDBUDFManagementIT.java | 2 +-
.../aligned/IoTDBLoadExternalAlignedTsFileIT.java | 4 +-
.../sync/IoTDBSyncReceiverCollectorIT.java | 2 +-
.../db/integration/sync/IoTDBSyncReceiverIT.java | 2 +-
.../sync/IoTDBSyncReceiverLoaderIT.java | 2 +-
.../db/integration/sync/IoTDBSyncSenderIT.java | 2 +-
.../apache/iotdb/session/IoTDBSessionSimpleIT.java | 4 +-
.../apache/iotdb/session/template/TemplateUT.java | 2 +-
node-commons/pom.xml | 10 +
.../commons/exception}/IllegalPathException.java | 2 +-
.../commons/exception}/MetadataException.java | 3 +-
.../apache/iotdb/commons}/path/PartialPath.java | 12 +-
.../org/apache/iotdb/commons/path/PathType.java | 25 +-
.../org/apache/iotdb/commons/utils/PathUtils.java | 98 +++++++
pom.xml | 13 +-
.../rocksdb/RSchemaReadWriteHandler.java | 4 +-
.../schemaregion/rocksdb/RSchemaRegion.java | 10 +-
.../schemaregion/rocksdb/RSchemaUtils.java | 8 +-
.../schemaregion/rocksdb/mnode/REntityMNode.java | 2 +-
.../schemaregion/rocksdb/mnode/RInternalMNode.java | 2 +-
.../schemaregion/rocksdb/mnode/RMNode.java | 6 +-
.../rocksdb/mnode/RMeasurementMNode.java | 2 +-
.../rocksdb/mnode/RStorageGroupMNode.java | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 2 +-
.../iotdb/db/auth/authorizer/BasicAuthorizer.java | 14 +
.../org/apache/iotdb/db/engine/StorageEngine.java | 6 +-
.../apache/iotdb/db/engine/StorageEngineV2.java | 2 +-
.../RewriteCrossSpaceCompactionResource.java | 2 +-
.../rewrite/task/ReadPointPerformerSubTask.java | 2 +-
.../inner/utils/MultiTsFileDeviceIterator.java | 4 +-
.../utils/SingleSeriesCompactionExecutor.java | 2 +-
.../compaction/performer/ICompactionPerformer.java | 2 +-
.../impl/ReadChunkCompactionPerformer.java | 4 +-
.../impl/ReadPointCompactionPerformer.java | 6 +-
.../engine/cq/ContinuousQuerySchemaCheckTask.java | 4 +-
.../iotdb/db/engine/cq/ContinuousQueryTask.java | 6 +-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 2 +-
.../memtable/AlignedWritableMemChunkGroup.java | 2 +-
.../apache/iotdb/db/engine/memtable/IMemTable.java | 4 +-
.../db/engine/memtable/IWritableMemChunkGroup.java | 2 +-
.../db/engine/memtable/WritableMemChunkGroup.java | 2 +-
.../iotdb/db/engine/modification/Deletion.java | 4 +-
.../iotdb/db/engine/modification/Modification.java | 2 +-
.../io/LocalTextModificationAccessor.java | 4 +-
.../selectinto/InsertTabletPlanGenerator.java | 4 +-
.../selectinto/InsertTabletPlansIterator.java | 4 +-
.../apache/iotdb/db/engine/settle/SettleTask.java | 2 +-
.../iotdb/db/engine/storagegroup/DataRegion.java | 6 +-
.../db/engine/storagegroup/TsFileProcessor.java | 6 +-
.../db/engine/storagegroup/TsFileResource.java | 2 +-
.../dataregion/HashVirtualPartitioner.java | 2 +-
.../dataregion/StorageGroupManager.java | 2 +-
.../dataregion/VirtualPartitioner.java | 2 +-
.../service/TriggerRegistrationInformation.java | 2 +-
.../service/TriggerRegistrationService.java | 4 +-
.../sink/local/LocalIoTDBConfiguration.java | 4 +-
.../trigger/sink/local/LocalIoTDBHandler.java | 4 +-
.../trigger/sink/mqtt/MQTTConfiguration.java | 2 +-
.../metadata/AcquireLockTimeoutException.java | 2 +
.../metadata/AliasAlreadyExistException.java | 1 +
.../metadata/AlignedTimeseriesException.java | 1 +
.../metadata/DataTypeMismatchException.java | 1 +
.../exception/metadata/DeleteFailedException.java | 1 +
.../metadata/IllegalParameterOfPathException.java | 1 +
.../metadata/MNodeTypeMismatchException.java | 1 +
.../metadata/PathAlreadyExistException.java | 1 +
.../exception/metadata/PathNotExistException.java | 1 +
.../SchemaDirCreationFailureException.java | 2 +
.../metadata/SeriesOverflowException.java | 1 +
.../metadata/StorageGroupAlreadySetException.java | 1 +
.../metadata/StorageGroupNotSetException.java | 1 +
.../metadata/cache/MNodeNotCachedException.java | 2 +-
.../metadata/cache/MNodeNotPinnedException.java | 2 +-
.../schemafile/RecordDuplicatedException.java | 2 +-
.../metadata/schemafile/SchemaFileNotExists.java | 2 +-
.../schemafile/SchemaPageOverflowException.java | 2 +-
.../schemafile/SegmentNotFoundException.java | 2 +-
.../schemafile/SegmentOverflowException.java | 2 +-
.../template/DifferentTemplateException.java | 2 +-
.../template/DuplicatedTemplateException.java | 2 +-
.../template/NoTemplateOnMNodeException.java | 2 +-
.../template/TemplateImcompatibeException.java | 2 +-
.../template/TemplateIsInUseException.java | 2 +-
.../template/UndefinedTemplateException.java | 2 +-
.../iotdb/db/localconfignode/LocalConfigNode.java | 4 +-
.../localconfignode/LocalDataPartitionTable.java | 2 +-
.../localconfignode/LocalSchemaPartitionTable.java | 4 +-
.../iotdb/db/metadata/LocalSchemaProcessor.java | 4 +-
.../apache/iotdb/db/metadata/MetadataConstant.java | 2 +-
.../db/metadata/cache/DataNodeSchemaCache.java | 4 +-
.../idtable/AppendOnlyDiskSchemaManager.java | 2 +-
.../apache/iotdb/db/metadata/idtable/IDTable.java | 4 +-
.../db/metadata/idtable/IDTableHashmapImpl.java | 4 +-
.../iotdb/db/metadata/idtable/IDTableManager.java | 4 +-
.../db/metadata/idtable/entry/DeviceIDFactory.java | 2 +-
.../idtable/entry/InsertMeasurementMNode.java | 2 +-
.../db/metadata/idtable/entry/SchemaEntry.java | 2 +-
.../db/metadata/idtable/entry/TimeseriesID.java | 2 +-
.../db/metadata/lastCache/LastCacheManager.java | 2 +-
.../iotdb/db/metadata/logfile/MLogWriter.java | 2 +-
.../org/apache/iotdb/db/metadata/mnode/IMNode.java | 2 +-
.../org/apache/iotdb/db/metadata/mnode/MNode.java | 2 +-
.../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 4 +-
.../iotdb/db/metadata/mtree/MTreeAboveSG.java | 92 +++++-
.../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 12 +-
.../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 12 +-
.../db/metadata/mtree/store/CachedMTreeStore.java | 4 +-
.../iotdb/db/metadata/mtree/store/IMTreeStore.java | 2 +-
.../db/metadata/mtree/store/MemMTreeStore.java | 2 +-
.../mtree/store/disk/schemafile/ISchemaFile.java | 2 +-
.../mtree/store/disk/schemafile/ISchemaPage.java | 2 +-
.../mtree/store/disk/schemafile/ISegment.java | 2 +-
.../store/disk/schemafile/MockSchemaFile.java | 2 +-
.../mtree/store/disk/schemafile/RecordUtils.java | 2 +-
.../mtree/store/disk/schemafile/SchemaFile.java | 6 +-
.../mtree/store/disk/schemafile/SchemaPage.java | 2 +-
.../mtree/store/disk/schemafile/Segment.java | 2 +-
.../db/metadata/mtree/traverser/Traverser.java | 6 +-
.../traverser/collector/CollectorTraverser.java | 4 +-
.../mtree/traverser/collector/EntityCollector.java | 4 +-
.../traverser/collector/MNodeAboveSGCollector.java | 4 +-
.../mtree/traverser/collector/MNodeCollector.java | 4 +-
.../traverser/collector/MeasurementCollector.java | 4 +-
.../traverser/collector/StorageGroupCollector.java | 4 +-
.../mtree/traverser/counter/CounterTraverser.java | 4 +-
.../mtree/traverser/counter/EntityCounter.java | 4 +-
.../counter/MNodeAboveSGLevelCounter.java | 4 +-
.../mtree/traverser/counter/MNodeLevelCounter.java | 4 +-
.../traverser/counter/MeasurementCounter.java | 4 +-
.../counter/MeasurementGroupByLevelCounter.java | 4 +-
.../traverser/counter/StorageGroupCounter.java | 4 +-
.../apache/iotdb/db/metadata/path/AlignedPath.java | 6 +-
.../iotdb/db/metadata/path/MeasurementPath.java | 6 +-
.../db/metadata/path/PathDeserializeUtil.java | 18 +-
.../db/metadata/schemaregion/ISchemaRegion.java | 4 +-
.../metadata/schemaregion/RSchemaRegionLoader.java | 2 +-
.../db/metadata/schemaregion/SchemaEngine.java | 4 +-
.../schemaregion/SchemaRegionMemoryImpl.java | 4 +-
.../schemaregion/SchemaRegionSchemaFileImpl.java | 4 +-
.../metadata/schemaregion/SchemaRegionUtils.java | 2 +-
.../storagegroup/IStorageGroupSchemaManager.java | 4 +-
.../storagegroup/StorageGroupLogWriter.java | 2 +-
.../storagegroup/StorageGroupSchemaManager.java | 4 +-
.../apache/iotdb/db/metadata/tag/TagLogFile.java | 2 +-
.../apache/iotdb/db/metadata/tag/TagManager.java | 4 +-
.../iotdb/db/metadata/template/Template.java | 28 +-
.../db/metadata/template/TemplateManager.java | 4 +-
.../db/metadata/tree/AbstractTreeVisitor.java | 2 +-
.../tree/AbstractTreeVisitorWithLimitOffset.java | 2 +-
.../db/metadata/upgrade/MetadataUpgrader.java | 4 +-
.../iotdb/db/metadata/utils/MetaFormatUtils.java | 6 +-
.../apache/iotdb/db/metadata/utils/MetaUtils.java | 77 +----
.../db/metadata/utils/ResourceByPathUtils.java | 2 +-
.../metadata/visitor/SchemaExecutionVisitor.java | 2 +-
.../db/mpp/common/filter/BasicFunctionFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/FunctionFilter.java | 2 +-
.../iotdb/db/mpp/common/filter/InFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/LikeFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/QueryFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/RegexpFilter.java | 4 +-
.../iotdb/db/mpp/common/header/ColumnHeader.java | 4 +-
.../db/mpp/common/schematree/DeviceSchemaInfo.java | 2 +-
.../db/mpp/common/schematree/PathPatternTree.java | 4 +-
.../iotdb/db/mpp/common/schematree/SchemaTree.java | 4 +-
.../visitor/SchemaTreeDeviceVisitor.java | 2 +-
.../visitor/SchemaTreeMeasurementVisitor.java | 2 +-
.../schematree/visitor/SchemaTreeVisitor.java | 2 +-
.../iotdb/db/mpp/execution/driver/DataDriver.java | 2 +-
.../db/mpp/execution/driver/DataDriverContext.java | 2 +-
.../execution/operator/process/FilterOperator.java | 4 +-
.../operator/process/TransformOperator.java | 22 +-
.../operator/schema/DevicesCountOperator.java | 4 +-
.../operator/schema/DevicesSchemaScanOperator.java | 4 +-
.../schema/LevelTimeSeriesCountOperator.java | 4 +-
.../operator/schema/SchemaFetchOperator.java | 4 +-
.../operator/schema/SchemaScanOperator.java | 2 +-
.../operator/schema/TimeSeriesCountOperator.java | 4 +-
.../schema/TimeSeriesSchemaScanOperator.java | 4 +-
.../operator/source/AlignedSeriesScanUtil.java | 2 +-
.../source/SeriesAggregateScanOperator.java | 2 +-
.../operator/source/SeriesScanOperator.java | 2 +-
.../execution/operator/source/SeriesScanUtil.java | 2 +-
.../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 2 +-
.../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 2 +-
.../mpp/plan/analyze/ClusterPartitionFetcher.java | 4 +-
.../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 2 +-
.../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 2 +-
.../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 2 +-
.../plan/analyze/StandalonePartitionFetcher.java | 4 +-
.../mpp/plan/analyze/StandaloneSchemaFetcher.java | 4 +-
.../execution/config/CountStorageGroupTask.java | 2 +-
.../plan/execution/config/SetStorageGroupTask.java | 2 +-
.../db/mpp/plan/execution/config/SetTTLTask.java | 2 +-
.../execution/config/ShowStorageGroupTask.java | 4 +-
.../db/mpp/plan/execution/config/ShowTTLTask.java | 4 +-
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 7 +-
.../db/mpp/plan/parser/StatementGenerator.java | 4 +-
.../db/mpp/plan/planner/LocalExecutionPlanner.java | 2 +-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 2 +-
.../mpp/plan/planner/plan/node/PlanNodeType.java | 2 +-
.../plan/node/metedata/read/DevicesCountNode.java | 4 +-
.../node/metedata/read/DevicesSchemaScanNode.java | 4 +-
.../metedata/read/LevelTimeSeriesCountNode.java | 4 +-
.../plan/node/metedata/read/SchemaScanNode.java | 2 +-
.../node/metedata/read/TimeSeriesCountNode.java | 4 +-
.../metedata/read/TimeSeriesSchemaScanNode.java | 4 +-
.../node/metedata/write/AlterTimeSeriesNode.java | 4 +-
.../write/CreateAlignedTimeSeriesNode.java | 4 +-
.../node/metedata/write/CreateTimeSeriesNode.java | 4 +-
.../planner/plan/node/write/BatchInsertNode.java | 2 +-
.../plan/node/write/InsertMultiTabletsNode.java | 2 +-
.../plan/planner/plan/node/write/InsertNode.java | 2 +-
.../planner/plan/node/write/InsertRowNode.java | 4 +-
.../planner/plan/node/write/InsertRowsNode.java | 2 +-
.../plan/node/write/InsertRowsOfOneDeviceNode.java | 4 +-
.../planner/plan/node/write/InsertTabletNode.java | 4 +-
.../db/mpp/plan/rewriter/ConcatPathRewriter.java | 8 +-
.../plan/rewriter/MergeSingleFilterOptimizer.java | 2 +-
.../db/mpp/plan/rewriter/RemoveNotOptimizer.java | 2 +-
.../db/mpp/plan/rewriter/WildcardsRemover.java | 4 +-
.../iotdb/db/mpp/plan/statement/Statement.java | 2 +-
.../plan/statement/component/FromComponent.java | 2 +-
.../component/GroupByLevelController.java | 2 +-
.../mpp/plan/statement/component/ResultColumn.java | 2 +-
.../plan/statement/component/SelectComponent.java | 2 +-
.../statement/crud/AggregationQueryStatement.java | 2 +-
.../plan/statement/crud/InsertBaseStatement.java | 2 +-
.../crud/InsertMultiTabletsStatement.java | 2 +-
.../plan/statement/crud/InsertRowStatement.java | 2 +-
.../crud/InsertRowsOfOneDeviceStatement.java | 2 +-
.../plan/statement/crud/InsertRowsStatement.java | 2 +-
.../mpp/plan/statement/crud/InsertStatement.java | 2 +-
.../plan/statement/crud/InsertTabletStatement.java | 2 +-
.../db/mpp/plan/statement/crud/QueryStatement.java | 2 +-
.../metadata/AlterTimeSeriesStatement.java | 2 +-
.../statement/metadata/CountDevicesStatement.java | 2 +-
.../metadata/CountLevelTimeSeriesStatement.java | 2 +-
.../statement/metadata/CountNodesStatement.java | 2 +-
.../plan/statement/metadata/CountStatement.java | 2 +-
.../metadata/CountStorageGroupStatement.java | 2 +-
.../metadata/CountTimeSeriesStatement.java | 2 +-
.../metadata/CreateAlignedTimeSeriesStatement.java | 4 +-
.../metadata/CreateTimeSeriesStatement.java | 2 +-
.../statement/metadata/SchemaFetchStatement.java | 2 +-
.../metadata/SetStorageGroupStatement.java | 2 +-
.../plan/statement/metadata/SetTTLStatement.java | 2 +-
.../statement/metadata/ShowDevicesStatement.java | 2 +-
.../mpp/plan/statement/metadata/ShowStatement.java | 2 +-
.../metadata/ShowStorageGroupStatement.java | 2 +-
.../plan/statement/metadata/ShowTTLStatement.java | 2 +-
.../metadata/ShowTimeSeriesStatement.java | 2 +-
.../db/mpp/plan/statement/sys/AuthorStatement.java | 2 +-
.../iotdb/db/protocol/influxdb/dto/IoTDBPoint.java | 4 +-
.../db/protocol/influxdb/handler/QueryHandler.java | 2 +-
.../influxdb/meta/InfluxDBMetaManager.java | 6 +-
.../db/protocol/influxdb/meta/TagInfoRecords.java | 4 +-
.../protocol/influxdb/sql/InfluxDBSqlVisitor.java | 2 +-
.../iotdb/db/protocol/mqtt/PublishHandler.java | 2 +-
.../db/protocol/rest/handler/ExceptionHandler.java | 4 +-
.../handler/PhysicalPlanConstructionHandler.java | 4 +-
.../protocol/rest/impl/GrafanaApiServiceImpl.java | 2 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 2 +-
.../apache/iotdb/db/qp/constant/SQLConstant.java | 2 +-
.../apache/iotdb/db/qp/executor/IPlanExecutor.java | 4 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 6 +-
.../qp/logical/crud/AggregationQueryOperator.java | 4 +-
.../db/qp/logical/crud/BasicFunctionOperator.java | 4 +-
.../db/qp/logical/crud/DeleteDataOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/FilterOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/FromComponent.java | 2 +-
.../db/qp/logical/crud/GroupByQueryOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/InOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/InsertOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/LikeOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/QueryOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/RegexpOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/SelectComponent.java | 6 +-
.../db/qp/logical/crud/SelectIntoOperator.java | 2 +-
.../qp/logical/sys/ActivateTemplateOperator.java | 2 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 2 +-
.../sys/CreateAlignedTimeSeriesOperator.java | 2 +-
.../logical/sys/CreateContinuousQueryOperator.java | 2 +-
.../db/qp/logical/sys/CreateIndexOperator.java | 2 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 2 +-
.../db/qp/logical/sys/CreateTriggerOperator.java | 2 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 2 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 2 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/DropIndexOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 2 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 2 +-
.../db/qp/logical/sys/SetTemplateOperator.java | 4 +-
.../iotdb/db/qp/logical/sys/SettleOperator.java | 2 +-
.../db/qp/logical/sys/ShowChildNodesOperator.java | 2 +-
.../db/qp/logical/sys/ShowChildPathsOperator.java | 2 +-
.../db/qp/logical/sys/ShowDevicesOperator.java | 2 +-
.../db/qp/logical/sys/ShowLockInfoOperator.java | 2 +-
.../qp/logical/sys/ShowStorageGroupOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 2 +-
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/UnSetTTLOperator.java | 2 +-
.../db/qp/logical/sys/UnsetTemplateOperator.java | 4 +-
.../org/apache/iotdb/db/qp/physical/BatchPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/AggregationPlan.java | 4 +-
.../db/qp/physical/crud/AlignByDevicePlan.java | 2 +-
.../db/qp/physical/crud/DeletePartitionPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/DeletePlan.java | 4 +-
.../iotdb/db/qp/physical/crud/GroupByTimePlan.java | 2 +-
.../qp/physical/crud/InsertMultiTabletsPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/InsertPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 4 +-
.../physical/crud/InsertRowsOfOneDevicePlan.java | 4 +-
.../iotdb/db/qp/physical/crud/InsertRowsPlan.java | 4 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/LastQueryPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 6 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/SelectIntoPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/crud/UDAFPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 8 +-
.../db/qp/physical/sys/ActivateTemplatePlan.java | 4 +-
.../db/qp/physical/sys/AlterTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/AppendTemplatePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/AuthorPlan.java | 4 +-
.../qp/physical/sys/AutoCreateDeviceMNodePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ChangeAliasPlan.java | 4 +-
.../db/qp/physical/sys/ChangeTagOffsetPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ClearCachePlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/CountPlan.java | 2 +-
.../physical/sys/CreateAlignedTimeSeriesPlan.java | 4 +-
.../qp/physical/sys/CreateContinuousQueryPlan.java | 4 +-
.../db/qp/physical/sys/CreateFunctionPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/CreateIndexPlan.java | 4 +-
.../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/CreatePipePlan.java | 2 +-
.../db/qp/physical/sys/CreatePipeSinkPlan.java | 2 +-
.../db/qp/physical/sys/CreateTemplatePlan.java | 4 +-
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/CreateTriggerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DataAuthPlan.java | 2 +-
.../db/qp/physical/sys/DeleteStorageGroupPlan.java | 4 +-
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 4 +-
.../qp/physical/sys/DropContinuousQueryPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropFunctionPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DropIndexPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DropPipeSinkPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropTemplatePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropTriggerPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/FlushPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/KillQueryPlan.java | 2 +-
.../db/qp/physical/sys/LoadConfigurationPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/LogPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/MNodePlan.java | 2 +-
.../db/qp/physical/sys/MeasurementMNodePlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/MergePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/OperateFilePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/OperatePipePlan.java | 2 +-
.../db/qp/physical/sys/PruneTemplatePlan.java | 2 +-
.../db/qp/physical/sys/SetStorageGroupPlan.java | 4 +-
.../db/qp/physical/sys/SetSystemModePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/SetTTLPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/SetTemplatePlan.java | 8 +-
.../iotdb/db/qp/physical/sys/SettlePlan.java | 2 +-
.../db/qp/physical/sys/ShowChildNodesPlan.java | 2 +-
.../db/qp/physical/sys/ShowChildPathsPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ShowLockInfoPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 2 +-
.../db/qp/physical/sys/ShowQueryResourcePlan.java | 2 +-
.../db/qp/physical/sys/ShowStorageGroupPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowTTLPlan.java | 2 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/StartPipeServerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/StartTriggerPlan.java | 4 +-
.../db/qp/physical/sys/StopPipeServerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/StopTriggerPlan.java | 4 +-
.../db/qp/physical/sys/StorageGroupMNodePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/TracingPlan.java | 2 +-
.../db/qp/physical/sys/UnsetTemplatePlan.java | 8 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 7 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 4 +-
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 4 +-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 10 +-
.../optimizer/MergeSingleFilterOptimizer.java | 2 +-
.../qp/strategy/optimizer/RemoveNotOptimizer.java | 2 +-
.../iotdb/db/qp/utils/GroupByLevelController.java | 2 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 4 +-
.../iotdb/db/query/context/QueryContext.java | 2 +-
.../db/query/control/QueryResourceManager.java | 2 +-
.../iotdb/db/query/control/SessionManager.java | 64 ++---
.../db/query/dataset/AlignByDeviceDataSet.java | 2 +-
.../apache/iotdb/db/query/dataset/ListDataSet.java | 2 +-
.../db/query/dataset/NonAlignEngineDataSet.java | 2 +-
.../dataset/RawQueryDataSetWithValueFilter.java | 2 +-
.../dataset/RawQueryDataSetWithoutValueFilter.java | 2 +-
.../query/dataset/ShowContinuousQueriesResult.java | 2 +-
.../apache/iotdb/db/query/dataset/ShowDataSet.java | 2 +-
.../iotdb/db/query/dataset/ShowDevicesDataSet.java | 4 +-
.../db/query/dataset/ShowTimeseriesDataSet.java | 4 +-
.../iotdb/db/query/dataset/SingleDataSet.java | 2 +-
.../apache/iotdb/db/query/dataset/UDTFDataSet.java | 2 +-
.../query/dataset/groupby/GroupByLevelDataSet.java | 4 +-
.../groupby/GroupByWithValueFilterDataSet.java | 2 +-
.../groupby/GroupByWithoutValueFilterDataSet.java | 2 +-
.../db/query/executor/AggregationExecutor.java | 2 +-
.../iotdb/db/query/executor/FillQueryExecutor.java | 2 +-
.../iotdb/db/query/executor/LastQueryExecutor.java | 4 +-
.../db/query/executor/RawDataQueryExecutor.java | 2 +-
.../executor/fill/AlignedLastPointReader.java | 2 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 2 +-
.../db/query/executor/fill/LastPointReader.java | 2 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 2 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 2 +-
.../iotdb/db/query/executor/fill/ValueFill.java | 2 +-
.../groupby/impl/LocalAlignedGroupByExecutor.java | 2 +-
.../groupby/impl/LocalGroupByExecutor.java | 2 +-
.../iotdb/db/query/expression/Expression.java | 6 +-
.../iotdb/db/query/expression/ExpressionType.java | 4 +-
.../iotdb/db/query/expression/ResultColumn.java | 2 +-
.../query/expression/binary/BinaryExpression.java | 2 +-
.../db/query/expression/leaf/ConstantOperand.java | 2 +-
.../query/expression/leaf/TimeSeriesOperand.java | 6 +-
...imeSeriesOperand.java => TimestampOperand.java} | 69 ++---
.../query/expression/multi/FunctionExpression.java | 4 +-
.../db/query/expression/unary/UnaryExpression.java | 2 +-
.../chunk/metadata/DiskChunkMetadataLoader.java | 2 +-
.../metadata/MemAlignedChunkMetadataLoader.java | 2 +-
.../chunk/metadata/MemChunkMetadataLoader.java | 2 +-
.../query/reader/series/AlignedSeriesReader.java | 2 +-
.../query/reader/series/SeriesAggregateReader.java | 2 +-
.../reader/series/SeriesRawDataBatchReader.java | 2 +-
.../iotdb/db/query/reader/series/SeriesReader.java | 2 +-
.../reader/series/SeriesReaderByTimestamp.java | 2 +-
.../query/timegenerator/ServerTimeGenerator.java | 2 +-
.../parameter/UDFParameterValidator.java | 2 +-
.../api/customizer/parameter/UDFParameters.java | 4 +-
.../apache/iotdb/db/query/udf/builtin/UDTFAbs.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFCast.java | 2 +-
.../query/udf/builtin/UDTFContinuouslySatisfy.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFDerivative.java | 2 +-
.../udf/builtin/UDTFEqualSizeBucketAggSample.java | 2 +-
.../builtin/UDTFEqualSizeBucketOutlierSample.java | 2 +-
.../udf/builtin/UDTFEqualSizeBucketSample.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFInRange.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFMath.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFOnOff.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFSelectK.java | 2 +-
.../db/query/udf/builtin/UDTFValueDifference.java | 2 +-
.../query/udf/core/layer/RawQueryInputLayer.java | 139 +++++++--
.../org/apache/iotdb/db/service/SettleService.java | 4 +-
.../iotdb/db/service/basic/ServiceProvider.java | 2 +-
.../service/thrift/impl/InfluxDBServiceImpl.java | 4 +-
.../service/thrift/impl/InternalServiceImpl.java | 6 +-
.../db/service/thrift/impl/TSServiceImpl.java | 6 +-
.../iotdb/db/sync/pipedata/DeletionPipeData.java | 2 +-
.../apache/iotdb/db/sync/pipedata/PipeData.java | 2 +-
.../iotdb/db/sync/pipedata/SchemaPipeData.java | 2 +-
.../sync/pipedata/queue/BufferedPipeDataQueue.java | 2 +-
.../iotdb/db/sync/receiver/ReceiverService.java | 2 +-
.../iotdb/db/sync/receiver/load/SchemaLoader.java | 2 +-
.../db/sync/sender/manager/SchemaSyncManager.java | 4 +-
.../db/sync/sender/manager/TsFileSyncManager.java | 2 +-
.../iotdb/db/sync/sender/pipe/TsFilePipe.java | 4 +-
.../transport/server/TransportServiceImpl.java | 2 +-
.../apache/iotdb/db/tools/TsFileRewriteTool.java | 4 +-
.../java/org/apache/iotdb/db/tools/WalChecker.java | 2 +-
.../db/tools/dataregion/DeviceMappingViewer.java | 4 +-
.../apache/iotdb/db/tools/schema/MLogParser.java | 2 +-
.../db/tools/schema/SchemaFileSketchTool.java | 2 +-
.../db/tools/settle/TsFileAndModSettleTool.java | 2 +-
.../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 2 +-
.../org/apache/iotdb/db/utils/FileLoaderUtils.java | 2 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 6 +-
.../iotdb/db/utils/writelog/BatchLogReader.java | 2 +-
.../org/apache/iotdb/db/wal/buffer/WALEntry.java | 2 +-
.../java/org/apache/iotdb/db/wal/io/WALReader.java | 2 +-
.../java/org/apache/iotdb/db/wal/node/WALNode.java | 4 +-
.../db/wal/recover/file/TsFilePlanRedoer.java | 4 +-
.../apache/iotdb/db/auth/AuthorityCheckerTest.java | 4 +-
.../iotdb/db/engine/MetadataManagerHelper.java | 2 +-
.../iotdb/db/engine/cache/ChunkCacheTest.java | 4 +-
.../engine/compaction/AbstractCompactionTest.java | 4 +-
.../engine/compaction/CompactionSchedulerTest.java | 4 +-
.../ReadPointCompactionPerformerTest.java | 6 +-
.../compaction/TestUtilsForAlignedSeries.java | 4 +-
.../cross/CrossSpaceCompactionExceptionTest.java | 2 +-
.../compaction/cross/CrossSpaceCompactionTest.java | 4 +-
.../db/engine/compaction/cross/MergeTest.java | 4 +-
.../RewriteCrossSpaceCompactionRecoverTest.java | 2 +-
.../cross/RewriteCrossSpaceCompactionTest.java | 6 +-
.../inner/AbstractInnerSpaceCompactionTest.java | 4 +-
.../inner/InnerCompactionMoreDataTest.java | 4 +-
.../inner/InnerCompactionSchedulerTest.java | 2 +-
.../compaction/inner/InnerCompactionTest.java | 4 +-
.../compaction/inner/InnerSeqCompactionTest.java | 6 +-
.../compaction/inner/InnerUnseqCompactionTest.java | 4 +-
.../ReadChunkCompactionPerformerAlignedTest.java | 2 +-
.../ReadChunkCompactionPerformerNoAlignedTest.java | 4 +-
.../inner/ReadChunkCompactionPerformerOldTest.java | 2 +-
.../SizeTieredCompactionRecoverTest.java | 2 +-
.../inner/sizetiered/SizeTieredCompactionTest.java | 4 +-
...eCrossSpaceCompactionRecoverCompatibleTest.java | 4 +-
.../SizeTieredCompactionRecoverCompatibleTest.java | 2 +-
.../recover/SizeTieredCompactionRecoverTest.java | 4 +-
.../compaction/utils/CompactionCheckerUtils.java | 4 +-
.../utils/CompactionFileGeneratorUtils.java | 4 +-
.../db/engine/memtable/MemTableFlushTaskTest.java | 2 +-
.../db/engine/memtable/MemTableTestUtils.java | 4 +-
.../db/engine/memtable/MemtableBenchmark.java | 4 +-
.../db/engine/memtable/PrimitiveMemTableTest.java | 6 +-
.../engine/modification/DeletionFileNodeTest.java | 4 +-
.../db/engine/modification/DeletionQueryTest.java | 4 +-
.../engine/modification/ModificationFileTest.java | 2 +-
.../io/LocalTextModificationAccessorTest.java | 2 +-
.../db/engine/storagegroup/DataRegionTest.java | 6 +-
.../storagegroup/FileNodeManagerBenchmark.java | 4 +-
.../storagegroup/StorageGroupProcessorTest.java | 6 +-
.../iotdb/db/engine/storagegroup/TTLTest.java | 6 +-
.../db/engine/storagegroup/TsFileManagerTest.java | 2 +-
.../engine/storagegroup/TsFileProcessorTest.java | 6 +-
.../engine/storagegroup/TsFileProcessorV2Test.java | 6 +-
.../dataregion/HashVirtualPartitionerTest.java | 4 +-
.../apache/iotdb/db/metadata/MetaUtilsTest.java | 45 +--
.../apache/iotdb/db/metadata/PartialPathTest.java | 4 +-
.../iotdb/db/metadata/SchemaAdvancedTest.java | 4 +-
.../apache/iotdb/db/metadata/SchemaBasicTest.java | 6 +-
.../iotdb/db/metadata/SchemaImproveTest.java | 6 +-
.../org/apache/iotdb/db/metadata/TemplateTest.java | 6 +-
.../db/metadata/cache/DataNodeSchemaCacheTest.java | 4 +-
.../db/metadata/idtable/IDTableFlushTimeTest.java | 6 +-
.../db/metadata/idtable/IDTableLogFileTest.java | 2 +-
.../db/metadata/idtable/IDTableRecoverTest.java | 4 +-
.../idtable/IDTableResourceControlTest.java | 6 +-
.../db/metadata/idtable/IDTableRestartTest.java | 4 +-
.../iotdb/db/metadata/idtable/IDTableTest.java | 4 +-
.../db/metadata/idtable/InsertWithIDTableTest.java | 6 +-
.../db/metadata/idtable/LastQueryWithIDTable.java | 6 +-
.../QueryAlignedTimeseriesWithIDTableTest.java | 6 +-
.../db/metadata/idtable/QueryWithIDTableTest.java | 6 +-
.../db/metadata/idtable/entry/DeviceIDTest.java | 4 +-
.../db/metadata/idtable/entry/SchemaEntryTest.java | 2 +-
.../iotdb/db/metadata/mtree/MTreeAboveSGTest.java | 53 +++-
.../iotdb/db/metadata/mtree/MTreeBelowSGTest.java | 4 +-
.../db/metadata/mtree/disk/MemManagerTest.java | 2 +-
.../metadata/mtree/schemafile/RecordUtilTests.java | 2 +-
.../metadata/mtree/schemafile/SchemaFileTest.java | 8 +-
.../metadata/mtree/schemafile/SchemaPageTest.java | 3 +-
.../db/metadata/mtree/schemafile/SegmentTest.java | 2 +-
.../db/metadata/upgrade/MetadataUpgradeTest.java | 4 +-
.../mpp/common/schematree/PathPatternTreeTest.java | 4 +-
.../db/mpp/common/schematree/SchemaTreeTest.java | 4 +-
.../iotdb/db/mpp/execution/DataDriverTest.java | 6 +-
.../operator/AlignedSeriesScanOperatorTest.java | 314 ++++++++++++++++++++-
.../execution/operator/AlignedSeriesTestUtil.java | 4 +-
.../execution/operator/DeviceViewOperatorTest.java | 4 +-
.../mpp/execution/operator/LimitOperatorTest.java | 4 +-
.../mpp/execution/operator/OffsetOperatorTest.java | 4 +-
.../operator/SeriesAggregateScanOperatorTest.java | 4 +-
.../execution/operator/SeriesScanOperatorTest.java | 4 +-
.../execution/operator/TimeJoinOperatorTest.java | 4 +-
.../operator/schema/CountMergeOperatorTest.java | 4 +-
.../operator/schema/SchemaCountOperatorTest.java | 4 +-
.../operator/schema/SchemaFetchOperatorTest.java | 2 +-
.../operator/schema/SchemaScanOperatorTest.java | 4 +-
.../db/mpp/plan/parser/StatementGeneratorTest.java | 2 +-
.../db/mpp/plan/plan/DistributionPlannerTest.java | 4 +-
.../mpp/plan/plan/FragmentInstanceSerdeTest.java | 2 +-
.../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 4 +-
.../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 2 +-
.../plan/plan/node/PlanNodeDeserializeHelper.java | 2 +-
.../read/DeviceSchemaScanNodeSerdeTest.java | 4 +-
.../metadata/read/SchemaCountNodeSerdeTest.java | 4 +-
.../read/TimeSeriesSchemaScanNodeSerdeTest.java | 4 +-
.../node/process/AggregationNodeSerdeTest.java | 4 +-
.../plan/node/process/DeviceViewNodeSerdeTest.java | 2 +-
.../plan/node/process/ExchangeNodeSerdeTest.java | 2 +-
.../plan/plan/node/process/FillNodeSerdeTest.java | 4 +-
.../plan/node/process/FilterNodeSerdeTest.java | 4 +-
.../plan/node/process/FilterNullNodeSerdeTest.java | 4 +-
.../node/process/GroupByLevelNodeSerdeTest.java | 4 +-
.../plan/plan/node/process/LimitNodeSerdeTest.java | 2 +-
.../plan/node/process/OffsetNodeSerdeTest.java | 2 +-
.../plan/plan/node/process/SortNodeSerdeTest.java | 2 +-
.../plan/node/process/TimeJoinNodeSerdeTest.java | 2 +-
.../plan/node/sink/FragmentSinkNodeSerdeTest.java | 4 +-
.../source/SeriesAggregationScanNodeSerdeTest.java | 4 +-
.../plan/node/source/SeriesScanNodeSerdeTest.java | 2 +-
.../write/InsertMultiTabletsNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertRowNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertRowsNodeSerdeTest.java | 4 +-
.../write/InsertRowsOfOneDeviceNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertTabletNodeSerdeTest.java | 4 +-
.../plan/node/write/WritePlanNodeSplitTest.java | 4 +-
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 6 +-
.../iotdb/db/qp/logical/LogicalPlanSmallTest.java | 4 +-
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 2 +-
.../iotdb/db/qp/physical/ConcatOptimizerTest.java | 4 +-
.../iotdb/db/qp/physical/InsertRowPlanTest.java | 6 +-
.../qp/physical/InsertRowsOfOneDevicePlanTest.java | 4 +-
.../db/qp/physical/InsertTabletMultiPlanTest.java | 4 +-
.../iotdb/db/qp/physical/InsertTabletPlanTest.java | 6 +-
.../db/qp/physical/PhysicalPlanSerializeTest.java | 4 +-
.../iotdb/db/qp/physical/PhysicalPlanTest.java | 6 +-
.../iotdb/db/qp/physical/SerializationTest.java | 6 +-
.../iotdb/db/qp/physical/SerializedSizeTest.java | 4 +-
.../iotdb/db/query/dataset/ListDataSetTest.java | 2 +-
.../iotdb/db/query/dataset/SingleDataSetTest.java | 2 +-
.../query/dataset/UDTFAlignByTimeDataSetTest.java | 4 +-
.../reader/series/SeriesAggregateReaderTest.java | 2 +-
.../reader/series/SeriesReaderByTimestampTest.java | 2 +-
.../db/query/reader/series/SeriesReaderTest.java | 6 +-
.../query/reader/series/SeriesReaderTestUtil.java | 4 +-
.../iotdb/db/rescon/ResourceManagerTest.java | 4 +-
.../iotdb/db/service/InternalServiceImplTest.java | 4 +-
.../org/apache/iotdb/db/sink/MQTTSinkTest.java | 2 +-
.../sync/pipedata/BufferedPipeDataQueueTest.java | 2 +-
.../iotdb/db/sync/pipedata/PipeDataTest.java | 2 +-
.../db/sync/transport/TransportServiceTest.java | 2 +-
.../org/apache/iotdb/db/tools/MLogParserTest.java | 4 +-
.../iotdb/db/tools/SchemaFileSketchTest.java | 2 +-
.../iotdb/db/tools/TsFileAndModSettleToolTest.java | 4 +-
.../org/apache/iotdb/db/tools/WalCheckerTest.java | 2 +-
.../org/apache/iotdb/db/utils/MemUtilsTest.java | 4 +-
.../org/apache/iotdb/db/utils/SchemaTestUtils.java | 4 +-
.../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 4 +-
.../iotdb/db/utils/TsFileRewriteToolTest.java | 4 +-
.../db/utils/writelog/LogWriterReaderTest.java | 4 +-
.../db/utils/writelog/MultiFileLogReaderTest.java | 4 +-
.../org/apache/iotdb/db/wal/WALManagerTest.java | 4 +-
.../iotdb/db/wal/buffer/WALBufferCommonTest.java | 4 +-
.../org/apache/iotdb/db/wal/io/WALFileTest.java | 4 +-
.../org/apache/iotdb/db/wal/node/WALNodeTest.java | 4 +-
.../db/wal/recover/WALRecoverManagerTest.java | 6 +-
.../db/wal/recover/file/TsFilePlanRedoerTest.java | 2 +-
.../file/UnsealedTsFileRecoverPerformerTest.java | 2 +-
.../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java | 3 +-
752 files changed, 2163 insertions(+), 1467 deletions(-)
rename {server/src/main/java/org/apache/iotdb/db/exception/metadata => node-commons/src/main/java/org/apache/iotdb/commons/exception}/IllegalPathException.java (96%)
rename {server/src/main/java/org/apache/iotdb/db/exception/metadata => node-commons/src/main/java/org/apache/iotdb/commons/exception}/MetadataException.java (95%)
rename {server/src/main/java/org/apache/iotdb/db/metadata => node-commons/src/main/java/org/apache/iotdb/commons}/path/PartialPath.java (97%)
copy server/src/main/java/org/apache/iotdb/db/metadata/idtable/entry/IDeviceID.java => node-commons/src/main/java/org/apache/iotdb/commons/path/PathType.java (72%)
create mode 100644 node-commons/src/main/java/org/apache/iotdb/commons/utils/PathUtils.java
copy server/src/main/java/org/apache/iotdb/db/query/expression/leaf/{TimeSeriesOperand.java => TimestampOperand.java} (70%)
[iotdb] 01/01: resolve conflicts and add desc test
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch AlignedSeriesScanOperator
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 32982622f75552811cf8b2e817b1f1b248f7919b
Merge: dcbdecbca5 b090698af2
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed May 4 16:56:19 2022 +0800
resolve conflicts and add desc test
README.md | 14 +
README_ZH.md | 13 +
.../cluster/client/sync/SyncClientAdaptor.java | 2 +-
.../iotdb/cluster/coordinator/Coordinator.java | 6 +-
.../cluster/log/applier/AsyncDataLogApplier.java | 4 +-
.../iotdb/cluster/log/applier/BaseApplier.java | 4 +-
.../iotdb/cluster/log/applier/DataLogApplier.java | 2 +-
.../cluster/log/logtypes/PhysicalPlanLog.java | 2 +-
.../manage/FilePartitionedSnapshotLogManager.java | 2 +-
.../log/manage/MetaSingleSnapshotLogManager.java | 2 +-
.../log/manage/PartitionedSnapshotLogManager.java | 2 +-
.../iotdb/cluster/log/snapshot/FileSnapshot.java | 4 +-
.../cluster/log/snapshot/MetaSimpleSnapshot.java | 6 +-
.../iotdb/cluster/metadata/CSchemaProcessor.java | 6 +-
.../apache/iotdb/cluster/metadata/MetaPuller.java | 4 +-
.../iotdb/cluster/partition/PartitionTable.java | 4 +-
.../cluster/query/ClusterDataQueryExecutor.java | 2 +-
.../cluster/query/ClusterPhysicalGenerator.java | 4 +-
.../iotdb/cluster/query/ClusterPlanExecutor.java | 4 +-
.../iotdb/cluster/query/ClusterPlanRouter.java | 4 +-
.../iotdb/cluster/query/LocalQueryExecutor.java | 6 +-
.../query/aggregate/ClusterAggregateExecutor.java | 2 +-
.../cluster/query/aggregate/ClusterAggregator.java | 2 +-
.../cluster/query/fill/ClusterFillExecutor.java | 2 +-
.../cluster/query/fill/ClusterPreviousFill.java | 2 +-
.../cluster/query/fill/PreviousFillArguments.java | 2 +-
.../groupby/ClusterGroupByNoVFilterDataSet.java | 2 +-
.../groupby/ClusterGroupByVFilterDataSet.java | 2 +-
.../query/groupby/MergeGroupByExecutor.java | 2 +-
.../query/last/ClusterLastQueryExecutor.java | 2 +-
.../cluster/query/reader/ClusterReaderFactory.java | 2 +-
.../cluster/query/reader/ClusterTimeGenerator.java | 2 +-
.../query/reader/mult/MultDataSourceInfo.java | 2 +-
.../handlers/caller/ShowTimeSeriesHandler.java | 4 +-
.../cluster/server/member/DataGroupMember.java | 6 +-
.../cluster/server/member/MetaGroupMember.java | 4 +-
.../iotdb/cluster/server/member/RaftMember.java | 2 +-
.../cluster/server/service/DataAsyncService.java | 4 +-
.../cluster/server/service/DataSyncService.java | 4 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 6 +-
.../apache/iotdb/cluster/utils/ClusterUtils.java | 4 +-
.../cluster/utils/nodetool/ClusterMonitor.java | 4 +-
.../cluster/client/sync/SyncClientAdaptorTest.java | 4 +-
.../org/apache/iotdb/cluster/common/IoTDBTest.java | 6 +-
.../iotdb/cluster/common/TestAsyncDataClient.java | 2 +-
.../iotdb/cluster/common/TestLogApplier.java | 4 +-
.../org/apache/iotdb/cluster/common/TestUtils.java | 4 +-
.../apache/iotdb/cluster/log/LogParserTest.java | 4 +-
.../log/applier/AsyncDataLogApplierTest.java | 4 +-
.../cluster/log/applier/DataLogApplierTest.java | 6 +-
.../cluster/log/applier/MetaLogApplierTest.java | 4 +-
.../cluster/log/logtypes/SerializeLogTest.java | 4 +-
.../FilePartitionedSnapshotLogManagerTest.java | 2 +-
.../manage/MetaSingleSnapshotLogManagerTest.java | 4 +-
.../cluster/log/snapshot/DataSnapshotTest.java | 4 +-
.../cluster/log/snapshot/FileSnapshotTest.java | 4 +-
.../log/snapshot/MetaSimpleSnapshotTest.java | 4 +-
.../log/snapshot/PartitionedSnapshotTest.java | 4 +-
.../cluster/log/snapshot/PullSnapshotTaskTest.java | 6 +-
.../cluster/partition/SlotPartitionTableTest.java | 6 +-
.../apache/iotdb/cluster/query/BaseQueryTest.java | 2 +-
.../query/ClusterAggregateExecutorTest.java | 4 +-
.../query/ClusterDataQueryExecutorTest.java | 4 +-
.../query/ClusterPhysicalGeneratorTest.java | 4 +-
.../cluster/query/ClusterPlanExecutorTest.java | 4 +-
.../cluster/query/ClusterQueryRouterTest.java | 4 +-
.../query/fill/ClusterFillExecutorTest.java | 2 +-
.../ClusterGroupByNoVFilterDataSetTest.java | 4 +-
.../groupby/ClusterGroupByVFilterDataSetTest.java | 4 +-
.../query/groupby/MergeGroupByExecutorTest.java | 4 +-
.../query/groupby/RemoteGroupByExecutorTest.java | 4 +-
.../query/last/ClusterLastQueryExecutorTest.java | 2 +-
.../query/reader/ClusterReaderFactoryTest.java | 4 +-
.../query/reader/ClusterTimeGeneratorTest.java | 4 +-
.../mult/AssignPathManagedMergeReaderTest.java | 4 +-
.../mult/MultSeriesRawDataPointReaderTest.java | 2 +-
.../reader/mult/RemoteMultSeriesReaderTest.java | 4 +-
.../server/clusterinfo/ClusterInfoServerTest.java | 2 +-
.../clusterinfo/ClusterInfoServiceImplTest.java | 4 +-
.../handlers/forwarder/ForwardPlanHandlerTest.java | 4 +-
.../iotdb/cluster/server/member/BaseMember.java | 4 +-
.../cluster/server/member/DataGroupMemberTest.java | 4 +-
.../cluster/server/member/MetaGroupMemberTest.java | 6 +-
.../iotdb/cluster/utils/SerializeUtilTest.java | 4 +-
.../confignode/persistence/ClusterSchemaInfo.java | 6 +-
.../thrift/ConfigNodeRPCServiceProcessorTest.java | 4 +-
.../iotdb/consensus/ratis/RatisConsensus.java | 75 +++--
docs/Development/ContributeGuide.md | 18 +-
.../Administration-Management/Administration.md | 2 +-
docs/UserGuide/Process-Data/Triggers.md | 2 +-
.../Administration-Management/Administration.md | 2 +-
docs/zh/UserGuide/Process-Data/Triggers.md | 2 +-
.../org/apache/iotdb/trigger/TriggerExample.java | 2 +-
.../iotdb/db/integration/IoTDBArithmeticIT.java | 4 +-
.../iotdb/db/integration/IoTDBAuthorizationIT.java | 32 ++-
.../db/integration/IoTDBContinuousQueryIT.java | 4 +-
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 4 +-
.../iotdb/db/integration/IoTDBFilePathUtilsIT.java | 4 +-
.../apache/iotdb/db/integration/IoTDBLastIT.java | 2 +-
...IoTDBLoadExternalTsFileWithTimePartitionIT.java | 4 +-
.../db/integration/IoTDBLoadExternalTsfileIT.java | 4 +-
.../integration/IoTDBManageTsFileResourceIT.java | 4 +-
.../iotdb/db/integration/IoTDBNestedQueryIT.java | 33 ++-
.../db/integration/IoTDBNewTsFileCompactionIT.java | 2 +-
.../db/integration/IoTDBRemovePartitionIT.java | 4 +-
.../iotdb/db/integration/IoTDBSelectIntoIT.java | 4 +-
.../db/integration/IoTDBSequenceDataQueryIT.java | 4 +-
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 4 +-
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 4 +-
.../db/integration/IoTDBTriggerExecutionIT.java | 4 +-
.../db/integration/IoTDBTriggerManagementIT.java | 2 +-
.../iotdb/db/integration/IoTDBUDFManagementIT.java | 2 +-
.../aligned/IoTDBLoadExternalAlignedTsFileIT.java | 4 +-
.../sync/IoTDBSyncReceiverCollectorIT.java | 2 +-
.../db/integration/sync/IoTDBSyncReceiverIT.java | 2 +-
.../sync/IoTDBSyncReceiverLoaderIT.java | 2 +-
.../db/integration/sync/IoTDBSyncSenderIT.java | 2 +-
.../apache/iotdb/session/IoTDBSessionSimpleIT.java | 4 +-
.../apache/iotdb/session/template/TemplateUT.java | 2 +-
node-commons/pom.xml | 10 +
.../commons/exception}/IllegalPathException.java | 2 +-
.../commons/exception}/MetadataException.java | 3 +-
.../apache/iotdb/commons}/path/PartialPath.java | 12 +-
.../org/apache/iotdb/commons/path/PathType.java | 20 +-
.../org/apache/iotdb/commons/utils/PathUtils.java | 98 +++++++
pom.xml | 13 +-
.../rocksdb/RSchemaReadWriteHandler.java | 4 +-
.../schemaregion/rocksdb/RSchemaRegion.java | 10 +-
.../schemaregion/rocksdb/RSchemaUtils.java | 8 +-
.../schemaregion/rocksdb/mnode/REntityMNode.java | 2 +-
.../schemaregion/rocksdb/mnode/RInternalMNode.java | 2 +-
.../schemaregion/rocksdb/mnode/RMNode.java | 6 +-
.../rocksdb/mnode/RMeasurementMNode.java | 2 +-
.../rocksdb/mnode/RStorageGroupMNode.java | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 2 +-
.../iotdb/db/auth/authorizer/BasicAuthorizer.java | 14 +
.../org/apache/iotdb/db/engine/StorageEngine.java | 6 +-
.../apache/iotdb/db/engine/StorageEngineV2.java | 2 +-
.../RewriteCrossSpaceCompactionResource.java | 2 +-
.../rewrite/task/ReadPointPerformerSubTask.java | 2 +-
.../inner/utils/MultiTsFileDeviceIterator.java | 4 +-
.../utils/SingleSeriesCompactionExecutor.java | 2 +-
.../compaction/performer/ICompactionPerformer.java | 2 +-
.../impl/ReadChunkCompactionPerformer.java | 4 +-
.../impl/ReadPointCompactionPerformer.java | 6 +-
.../engine/cq/ContinuousQuerySchemaCheckTask.java | 4 +-
.../iotdb/db/engine/cq/ContinuousQueryTask.java | 6 +-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 2 +-
.../memtable/AlignedWritableMemChunkGroup.java | 2 +-
.../apache/iotdb/db/engine/memtable/IMemTable.java | 4 +-
.../db/engine/memtable/IWritableMemChunkGroup.java | 2 +-
.../db/engine/memtable/WritableMemChunkGroup.java | 2 +-
.../iotdb/db/engine/modification/Deletion.java | 4 +-
.../iotdb/db/engine/modification/Modification.java | 2 +-
.../io/LocalTextModificationAccessor.java | 4 +-
.../selectinto/InsertTabletPlanGenerator.java | 4 +-
.../selectinto/InsertTabletPlansIterator.java | 4 +-
.../apache/iotdb/db/engine/settle/SettleTask.java | 2 +-
.../iotdb/db/engine/storagegroup/DataRegion.java | 6 +-
.../db/engine/storagegroup/TsFileProcessor.java | 6 +-
.../db/engine/storagegroup/TsFileResource.java | 2 +-
.../dataregion/HashVirtualPartitioner.java | 2 +-
.../dataregion/StorageGroupManager.java | 2 +-
.../dataregion/VirtualPartitioner.java | 2 +-
.../service/TriggerRegistrationInformation.java | 2 +-
.../service/TriggerRegistrationService.java | 4 +-
.../sink/local/LocalIoTDBConfiguration.java | 4 +-
.../trigger/sink/local/LocalIoTDBHandler.java | 4 +-
.../trigger/sink/mqtt/MQTTConfiguration.java | 2 +-
.../metadata/AcquireLockTimeoutException.java | 2 +
.../metadata/AliasAlreadyExistException.java | 1 +
.../metadata/AlignedTimeseriesException.java | 1 +
.../metadata/DataTypeMismatchException.java | 1 +
.../exception/metadata/DeleteFailedException.java | 1 +
.../metadata/IllegalParameterOfPathException.java | 1 +
.../metadata/MNodeTypeMismatchException.java | 1 +
.../metadata/PathAlreadyExistException.java | 1 +
.../exception/metadata/PathNotExistException.java | 1 +
.../SchemaDirCreationFailureException.java | 2 +
.../metadata/SeriesOverflowException.java | 1 +
.../metadata/StorageGroupAlreadySetException.java | 1 +
.../metadata/StorageGroupNotSetException.java | 1 +
.../metadata/cache/MNodeNotCachedException.java | 2 +-
.../metadata/cache/MNodeNotPinnedException.java | 2 +-
.../schemafile/RecordDuplicatedException.java | 2 +-
.../metadata/schemafile/SchemaFileNotExists.java | 2 +-
.../schemafile/SchemaPageOverflowException.java | 2 +-
.../schemafile/SegmentNotFoundException.java | 2 +-
.../schemafile/SegmentOverflowException.java | 2 +-
.../template/DifferentTemplateException.java | 2 +-
.../template/DuplicatedTemplateException.java | 2 +-
.../template/NoTemplateOnMNodeException.java | 2 +-
.../template/TemplateImcompatibeException.java | 2 +-
.../template/TemplateIsInUseException.java | 2 +-
.../template/UndefinedTemplateException.java | 2 +-
.../iotdb/db/localconfignode/LocalConfigNode.java | 4 +-
.../localconfignode/LocalDataPartitionTable.java | 2 +-
.../localconfignode/LocalSchemaPartitionTable.java | 4 +-
.../iotdb/db/metadata/LocalSchemaProcessor.java | 4 +-
.../apache/iotdb/db/metadata/MetadataConstant.java | 2 +-
.../db/metadata/cache/DataNodeSchemaCache.java | 4 +-
.../idtable/AppendOnlyDiskSchemaManager.java | 2 +-
.../apache/iotdb/db/metadata/idtable/IDTable.java | 4 +-
.../db/metadata/idtable/IDTableHashmapImpl.java | 4 +-
.../iotdb/db/metadata/idtable/IDTableManager.java | 4 +-
.../db/metadata/idtable/entry/DeviceIDFactory.java | 2 +-
.../idtable/entry/InsertMeasurementMNode.java | 2 +-
.../db/metadata/idtable/entry/SchemaEntry.java | 2 +-
.../db/metadata/idtable/entry/TimeseriesID.java | 2 +-
.../db/metadata/lastCache/LastCacheManager.java | 2 +-
.../iotdb/db/metadata/logfile/MLogWriter.java | 2 +-
.../org/apache/iotdb/db/metadata/mnode/IMNode.java | 2 +-
.../org/apache/iotdb/db/metadata/mnode/MNode.java | 2 +-
.../iotdb/db/metadata/mtree/IMTreeBelowSG.java | 4 +-
.../iotdb/db/metadata/mtree/MTreeAboveSG.java | 92 +++++-
.../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 12 +-
.../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 12 +-
.../db/metadata/mtree/store/CachedMTreeStore.java | 4 +-
.../iotdb/db/metadata/mtree/store/IMTreeStore.java | 2 +-
.../db/metadata/mtree/store/MemMTreeStore.java | 2 +-
.../mtree/store/disk/schemafile/ISchemaFile.java | 2 +-
.../mtree/store/disk/schemafile/ISchemaPage.java | 2 +-
.../mtree/store/disk/schemafile/ISegment.java | 2 +-
.../store/disk/schemafile/MockSchemaFile.java | 2 +-
.../mtree/store/disk/schemafile/RecordUtils.java | 2 +-
.../mtree/store/disk/schemafile/SchemaFile.java | 6 +-
.../mtree/store/disk/schemafile/SchemaPage.java | 2 +-
.../mtree/store/disk/schemafile/Segment.java | 2 +-
.../db/metadata/mtree/traverser/Traverser.java | 6 +-
.../traverser/collector/CollectorTraverser.java | 4 +-
.../mtree/traverser/collector/EntityCollector.java | 4 +-
.../traverser/collector/MNodeAboveSGCollector.java | 4 +-
.../mtree/traverser/collector/MNodeCollector.java | 4 +-
.../traverser/collector/MeasurementCollector.java | 4 +-
.../traverser/collector/StorageGroupCollector.java | 4 +-
.../mtree/traverser/counter/CounterTraverser.java | 4 +-
.../mtree/traverser/counter/EntityCounter.java | 4 +-
.../counter/MNodeAboveSGLevelCounter.java | 4 +-
.../mtree/traverser/counter/MNodeLevelCounter.java | 4 +-
.../traverser/counter/MeasurementCounter.java | 4 +-
.../counter/MeasurementGroupByLevelCounter.java | 4 +-
.../traverser/counter/StorageGroupCounter.java | 4 +-
.../apache/iotdb/db/metadata/path/AlignedPath.java | 6 +-
.../iotdb/db/metadata/path/MeasurementPath.java | 6 +-
.../db/metadata/path/PathDeserializeUtil.java | 18 +-
.../db/metadata/schemaregion/ISchemaRegion.java | 4 +-
.../metadata/schemaregion/RSchemaRegionLoader.java | 2 +-
.../db/metadata/schemaregion/SchemaEngine.java | 4 +-
.../schemaregion/SchemaRegionMemoryImpl.java | 4 +-
.../schemaregion/SchemaRegionSchemaFileImpl.java | 4 +-
.../metadata/schemaregion/SchemaRegionUtils.java | 2 +-
.../storagegroup/IStorageGroupSchemaManager.java | 4 +-
.../storagegroup/StorageGroupLogWriter.java | 2 +-
.../storagegroup/StorageGroupSchemaManager.java | 4 +-
.../apache/iotdb/db/metadata/tag/TagLogFile.java | 2 +-
.../apache/iotdb/db/metadata/tag/TagManager.java | 4 +-
.../iotdb/db/metadata/template/Template.java | 28 +-
.../db/metadata/template/TemplateManager.java | 4 +-
.../db/metadata/tree/AbstractTreeVisitor.java | 2 +-
.../tree/AbstractTreeVisitorWithLimitOffset.java | 2 +-
.../db/metadata/upgrade/MetadataUpgrader.java | 4 +-
.../iotdb/db/metadata/utils/MetaFormatUtils.java | 6 +-
.../apache/iotdb/db/metadata/utils/MetaUtils.java | 77 +----
.../db/metadata/utils/ResourceByPathUtils.java | 2 +-
.../metadata/visitor/SchemaExecutionVisitor.java | 2 +-
.../db/mpp/common/filter/BasicFunctionFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/FunctionFilter.java | 2 +-
.../iotdb/db/mpp/common/filter/InFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/LikeFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/QueryFilter.java | 4 +-
.../iotdb/db/mpp/common/filter/RegexpFilter.java | 4 +-
.../iotdb/db/mpp/common/header/ColumnHeader.java | 4 +-
.../db/mpp/common/schematree/DeviceSchemaInfo.java | 2 +-
.../db/mpp/common/schematree/PathPatternTree.java | 4 +-
.../iotdb/db/mpp/common/schematree/SchemaTree.java | 4 +-
.../visitor/SchemaTreeDeviceVisitor.java | 2 +-
.../visitor/SchemaTreeMeasurementVisitor.java | 2 +-
.../schematree/visitor/SchemaTreeVisitor.java | 2 +-
.../iotdb/db/mpp/execution/driver/DataDriver.java | 2 +-
.../db/mpp/execution/driver/DataDriverContext.java | 2 +-
.../execution/operator/process/FilterOperator.java | 4 +-
.../operator/process/TransformOperator.java | 22 +-
.../operator/schema/DevicesCountOperator.java | 4 +-
.../operator/schema/DevicesSchemaScanOperator.java | 4 +-
.../schema/LevelTimeSeriesCountOperator.java | 4 +-
.../operator/schema/SchemaFetchOperator.java | 4 +-
.../operator/schema/SchemaScanOperator.java | 2 +-
.../operator/schema/TimeSeriesCountOperator.java | 4 +-
.../schema/TimeSeriesSchemaScanOperator.java | 4 +-
.../operator/source/AlignedSeriesScanUtil.java | 2 +-
.../source/SeriesAggregateScanOperator.java | 2 +-
.../operator/source/SeriesScanOperator.java | 2 +-
.../execution/operator/source/SeriesScanUtil.java | 2 +-
.../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 2 +-
.../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 2 +-
.../mpp/plan/analyze/ClusterPartitionFetcher.java | 4 +-
.../db/mpp/plan/analyze/ClusterSchemaFetcher.java | 2 +-
.../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 2 +-
.../iotdb/db/mpp/plan/analyze/ISchemaFetcher.java | 2 +-
.../plan/analyze/StandalonePartitionFetcher.java | 4 +-
.../mpp/plan/analyze/StandaloneSchemaFetcher.java | 4 +-
.../execution/config/CountStorageGroupTask.java | 2 +-
.../plan/execution/config/SetStorageGroupTask.java | 2 +-
.../db/mpp/plan/execution/config/SetTTLTask.java | 2 +-
.../execution/config/ShowStorageGroupTask.java | 4 +-
.../db/mpp/plan/execution/config/ShowTTLTask.java | 4 +-
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 7 +-
.../db/mpp/plan/parser/StatementGenerator.java | 4 +-
.../db/mpp/plan/planner/LocalExecutionPlanner.java | 2 +-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 2 +-
.../mpp/plan/planner/plan/node/PlanNodeType.java | 2 +-
.../plan/node/metedata/read/DevicesCountNode.java | 4 +-
.../node/metedata/read/DevicesSchemaScanNode.java | 4 +-
.../metedata/read/LevelTimeSeriesCountNode.java | 4 +-
.../plan/node/metedata/read/SchemaScanNode.java | 2 +-
.../node/metedata/read/TimeSeriesCountNode.java | 4 +-
.../metedata/read/TimeSeriesSchemaScanNode.java | 4 +-
.../node/metedata/write/AlterTimeSeriesNode.java | 4 +-
.../write/CreateAlignedTimeSeriesNode.java | 4 +-
.../node/metedata/write/CreateTimeSeriesNode.java | 4 +-
.../planner/plan/node/write/BatchInsertNode.java | 2 +-
.../plan/node/write/InsertMultiTabletsNode.java | 2 +-
.../plan/planner/plan/node/write/InsertNode.java | 2 +-
.../planner/plan/node/write/InsertRowNode.java | 4 +-
.../planner/plan/node/write/InsertRowsNode.java | 2 +-
.../plan/node/write/InsertRowsOfOneDeviceNode.java | 4 +-
.../planner/plan/node/write/InsertTabletNode.java | 4 +-
.../db/mpp/plan/rewriter/ConcatPathRewriter.java | 8 +-
.../plan/rewriter/MergeSingleFilterOptimizer.java | 2 +-
.../db/mpp/plan/rewriter/RemoveNotOptimizer.java | 2 +-
.../db/mpp/plan/rewriter/WildcardsRemover.java | 4 +-
.../iotdb/db/mpp/plan/statement/Statement.java | 2 +-
.../plan/statement/component/FromComponent.java | 2 +-
.../component/GroupByLevelController.java | 2 +-
.../mpp/plan/statement/component/ResultColumn.java | 2 +-
.../plan/statement/component/SelectComponent.java | 2 +-
.../statement/crud/AggregationQueryStatement.java | 2 +-
.../plan/statement/crud/InsertBaseStatement.java | 2 +-
.../crud/InsertMultiTabletsStatement.java | 2 +-
.../plan/statement/crud/InsertRowStatement.java | 2 +-
.../crud/InsertRowsOfOneDeviceStatement.java | 2 +-
.../plan/statement/crud/InsertRowsStatement.java | 2 +-
.../mpp/plan/statement/crud/InsertStatement.java | 2 +-
.../plan/statement/crud/InsertTabletStatement.java | 2 +-
.../db/mpp/plan/statement/crud/QueryStatement.java | 2 +-
.../metadata/AlterTimeSeriesStatement.java | 2 +-
.../statement/metadata/CountDevicesStatement.java | 2 +-
.../metadata/CountLevelTimeSeriesStatement.java | 2 +-
.../statement/metadata/CountNodesStatement.java | 2 +-
.../plan/statement/metadata/CountStatement.java | 2 +-
.../metadata/CountStorageGroupStatement.java | 2 +-
.../metadata/CountTimeSeriesStatement.java | 2 +-
.../metadata/CreateAlignedTimeSeriesStatement.java | 4 +-
.../metadata/CreateTimeSeriesStatement.java | 2 +-
.../statement/metadata/SchemaFetchStatement.java | 2 +-
.../metadata/SetStorageGroupStatement.java | 2 +-
.../plan/statement/metadata/SetTTLStatement.java | 2 +-
.../statement/metadata/ShowDevicesStatement.java | 2 +-
.../mpp/plan/statement/metadata/ShowStatement.java | 2 +-
.../metadata/ShowStorageGroupStatement.java | 2 +-
.../plan/statement/metadata/ShowTTLStatement.java | 2 +-
.../metadata/ShowTimeSeriesStatement.java | 2 +-
.../db/mpp/plan/statement/sys/AuthorStatement.java | 2 +-
.../iotdb/db/protocol/influxdb/dto/IoTDBPoint.java | 4 +-
.../db/protocol/influxdb/handler/QueryHandler.java | 2 +-
.../influxdb/meta/InfluxDBMetaManager.java | 6 +-
.../db/protocol/influxdb/meta/TagInfoRecords.java | 4 +-
.../protocol/influxdb/sql/InfluxDBSqlVisitor.java | 2 +-
.../iotdb/db/protocol/mqtt/PublishHandler.java | 2 +-
.../db/protocol/rest/handler/ExceptionHandler.java | 4 +-
.../handler/PhysicalPlanConstructionHandler.java | 4 +-
.../protocol/rest/impl/GrafanaApiServiceImpl.java | 2 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 2 +-
.../apache/iotdb/db/qp/constant/SQLConstant.java | 2 +-
.../apache/iotdb/db/qp/executor/IPlanExecutor.java | 4 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 6 +-
.../qp/logical/crud/AggregationQueryOperator.java | 4 +-
.../db/qp/logical/crud/BasicFunctionOperator.java | 4 +-
.../db/qp/logical/crud/DeleteDataOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/FilterOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/FromComponent.java | 2 +-
.../db/qp/logical/crud/GroupByQueryOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/InOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/InsertOperator.java | 2 +-
.../iotdb/db/qp/logical/crud/LikeOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/QueryOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/RegexpOperator.java | 4 +-
.../iotdb/db/qp/logical/crud/SelectComponent.java | 6 +-
.../db/qp/logical/crud/SelectIntoOperator.java | 2 +-
.../qp/logical/sys/ActivateTemplateOperator.java | 2 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 2 +-
.../sys/CreateAlignedTimeSeriesOperator.java | 2 +-
.../logical/sys/CreateContinuousQueryOperator.java | 2 +-
.../db/qp/logical/sys/CreateIndexOperator.java | 2 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 2 +-
.../db/qp/logical/sys/CreateTriggerOperator.java | 2 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 2 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 2 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/DropIndexOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 2 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 2 +-
.../db/qp/logical/sys/SetTemplateOperator.java | 4 +-
.../iotdb/db/qp/logical/sys/SettleOperator.java | 2 +-
.../db/qp/logical/sys/ShowChildNodesOperator.java | 2 +-
.../db/qp/logical/sys/ShowChildPathsOperator.java | 2 +-
.../db/qp/logical/sys/ShowDevicesOperator.java | 2 +-
.../db/qp/logical/sys/ShowLockInfoOperator.java | 2 +-
.../qp/logical/sys/ShowStorageGroupOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 2 +-
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 2 +-
.../iotdb/db/qp/logical/sys/UnSetTTLOperator.java | 2 +-
.../db/qp/logical/sys/UnsetTemplateOperator.java | 4 +-
.../org/apache/iotdb/db/qp/physical/BatchPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/AggregationPlan.java | 4 +-
.../db/qp/physical/crud/AlignByDevicePlan.java | 2 +-
.../db/qp/physical/crud/DeletePartitionPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/DeletePlan.java | 4 +-
.../iotdb/db/qp/physical/crud/GroupByTimePlan.java | 2 +-
.../qp/physical/crud/InsertMultiTabletsPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/InsertPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 4 +-
.../physical/crud/InsertRowsOfOneDevicePlan.java | 4 +-
.../iotdb/db/qp/physical/crud/InsertRowsPlan.java | 4 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/LastQueryPlan.java | 2 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 6 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 4 +-
.../iotdb/db/qp/physical/crud/SelectIntoPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/crud/UDAFPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 8 +-
.../db/qp/physical/sys/ActivateTemplatePlan.java | 4 +-
.../db/qp/physical/sys/AlterTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/AppendTemplatePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/AuthorPlan.java | 4 +-
.../qp/physical/sys/AutoCreateDeviceMNodePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ChangeAliasPlan.java | 4 +-
.../db/qp/physical/sys/ChangeTagOffsetPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ClearCachePlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/CountPlan.java | 2 +-
.../physical/sys/CreateAlignedTimeSeriesPlan.java | 4 +-
.../qp/physical/sys/CreateContinuousQueryPlan.java | 4 +-
.../db/qp/physical/sys/CreateFunctionPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/CreateIndexPlan.java | 4 +-
.../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/CreatePipePlan.java | 2 +-
.../db/qp/physical/sys/CreatePipeSinkPlan.java | 2 +-
.../db/qp/physical/sys/CreateTemplatePlan.java | 4 +-
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/CreateTriggerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DataAuthPlan.java | 2 +-
.../db/qp/physical/sys/DeleteStorageGroupPlan.java | 4 +-
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 4 +-
.../qp/physical/sys/DropContinuousQueryPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropFunctionPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DropIndexPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/DropPipeSinkPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropTemplatePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/DropTriggerPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/FlushPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/KillQueryPlan.java | 2 +-
.../db/qp/physical/sys/LoadConfigurationPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/LogPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/MNodePlan.java | 2 +-
.../db/qp/physical/sys/MeasurementMNodePlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/MergePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/OperateFilePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/OperatePipePlan.java | 2 +-
.../db/qp/physical/sys/PruneTemplatePlan.java | 2 +-
.../db/qp/physical/sys/SetStorageGroupPlan.java | 4 +-
.../db/qp/physical/sys/SetSystemModePlan.java | 4 +-
.../iotdb/db/qp/physical/sys/SetTTLPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/SetTemplatePlan.java | 8 +-
.../iotdb/db/qp/physical/sys/SettlePlan.java | 2 +-
.../db/qp/physical/sys/ShowChildNodesPlan.java | 2 +-
.../db/qp/physical/sys/ShowChildPathsPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ShowLockInfoPlan.java | 2 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 2 +-
.../db/qp/physical/sys/ShowQueryResourcePlan.java | 2 +-
.../db/qp/physical/sys/ShowStorageGroupPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowTTLPlan.java | 2 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 4 +-
.../db/qp/physical/sys/StartPipeServerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/StartTriggerPlan.java | 4 +-
.../db/qp/physical/sys/StopPipeServerPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/StopTriggerPlan.java | 4 +-
.../db/qp/physical/sys/StorageGroupMNodePlan.java | 2 +-
.../iotdb/db/qp/physical/sys/TracingPlan.java | 2 +-
.../db/qp/physical/sys/UnsetTemplatePlan.java | 8 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 7 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 4 +-
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 4 +-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 10 +-
.../optimizer/MergeSingleFilterOptimizer.java | 2 +-
.../qp/strategy/optimizer/RemoveNotOptimizer.java | 2 +-
.../iotdb/db/qp/utils/GroupByLevelController.java | 2 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 4 +-
.../iotdb/db/query/context/QueryContext.java | 2 +-
.../db/query/control/QueryResourceManager.java | 2 +-
.../iotdb/db/query/control/SessionManager.java | 64 ++---
.../db/query/dataset/AlignByDeviceDataSet.java | 2 +-
.../apache/iotdb/db/query/dataset/ListDataSet.java | 2 +-
.../db/query/dataset/NonAlignEngineDataSet.java | 2 +-
.../dataset/RawQueryDataSetWithValueFilter.java | 2 +-
.../dataset/RawQueryDataSetWithoutValueFilter.java | 2 +-
.../query/dataset/ShowContinuousQueriesResult.java | 2 +-
.../apache/iotdb/db/query/dataset/ShowDataSet.java | 2 +-
.../iotdb/db/query/dataset/ShowDevicesDataSet.java | 4 +-
.../db/query/dataset/ShowTimeseriesDataSet.java | 4 +-
.../iotdb/db/query/dataset/SingleDataSet.java | 2 +-
.../apache/iotdb/db/query/dataset/UDTFDataSet.java | 2 +-
.../query/dataset/groupby/GroupByLevelDataSet.java | 4 +-
.../groupby/GroupByWithValueFilterDataSet.java | 2 +-
.../groupby/GroupByWithoutValueFilterDataSet.java | 2 +-
.../db/query/executor/AggregationExecutor.java | 2 +-
.../iotdb/db/query/executor/FillQueryExecutor.java | 2 +-
.../iotdb/db/query/executor/LastQueryExecutor.java | 4 +-
.../db/query/executor/RawDataQueryExecutor.java | 2 +-
.../executor/fill/AlignedLastPointReader.java | 2 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 2 +-
.../db/query/executor/fill/LastPointReader.java | 2 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 2 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 2 +-
.../iotdb/db/query/executor/fill/ValueFill.java | 2 +-
.../groupby/impl/LocalAlignedGroupByExecutor.java | 2 +-
.../groupby/impl/LocalGroupByExecutor.java | 2 +-
.../iotdb/db/query/expression/Expression.java | 6 +-
.../iotdb/db/query/expression/ExpressionType.java | 4 +-
.../iotdb/db/query/expression/ResultColumn.java | 2 +-
.../query/expression/binary/BinaryExpression.java | 2 +-
.../db/query/expression/leaf/ConstantOperand.java | 2 +-
.../query/expression/leaf/TimeSeriesOperand.java | 6 +-
...imeSeriesOperand.java => TimestampOperand.java} | 69 ++---
.../query/expression/multi/FunctionExpression.java | 4 +-
.../db/query/expression/unary/UnaryExpression.java | 2 +-
.../chunk/metadata/DiskChunkMetadataLoader.java | 2 +-
.../metadata/MemAlignedChunkMetadataLoader.java | 2 +-
.../chunk/metadata/MemChunkMetadataLoader.java | 2 +-
.../query/reader/series/AlignedSeriesReader.java | 2 +-
.../query/reader/series/SeriesAggregateReader.java | 2 +-
.../reader/series/SeriesRawDataBatchReader.java | 2 +-
.../iotdb/db/query/reader/series/SeriesReader.java | 2 +-
.../reader/series/SeriesReaderByTimestamp.java | 2 +-
.../query/timegenerator/ServerTimeGenerator.java | 2 +-
.../parameter/UDFParameterValidator.java | 2 +-
.../api/customizer/parameter/UDFParameters.java | 4 +-
.../apache/iotdb/db/query/udf/builtin/UDTFAbs.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFCast.java | 2 +-
.../query/udf/builtin/UDTFContinuouslySatisfy.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFDerivative.java | 2 +-
.../udf/builtin/UDTFEqualSizeBucketAggSample.java | 2 +-
.../builtin/UDTFEqualSizeBucketOutlierSample.java | 2 +-
.../udf/builtin/UDTFEqualSizeBucketSample.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFInRange.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFMath.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFOnOff.java | 2 +-
.../iotdb/db/query/udf/builtin/UDTFSelectK.java | 2 +-
.../db/query/udf/builtin/UDTFValueDifference.java | 2 +-
.../query/udf/core/layer/RawQueryInputLayer.java | 139 +++++++--
.../org/apache/iotdb/db/service/SettleService.java | 4 +-
.../iotdb/db/service/basic/ServiceProvider.java | 2 +-
.../service/thrift/impl/InfluxDBServiceImpl.java | 4 +-
.../service/thrift/impl/InternalServiceImpl.java | 6 +-
.../db/service/thrift/impl/TSServiceImpl.java | 6 +-
.../iotdb/db/sync/pipedata/DeletionPipeData.java | 2 +-
.../apache/iotdb/db/sync/pipedata/PipeData.java | 2 +-
.../iotdb/db/sync/pipedata/SchemaPipeData.java | 2 +-
.../sync/pipedata/queue/BufferedPipeDataQueue.java | 2 +-
.../iotdb/db/sync/receiver/ReceiverService.java | 2 +-
.../iotdb/db/sync/receiver/load/SchemaLoader.java | 2 +-
.../db/sync/sender/manager/SchemaSyncManager.java | 4 +-
.../db/sync/sender/manager/TsFileSyncManager.java | 2 +-
.../iotdb/db/sync/sender/pipe/TsFilePipe.java | 4 +-
.../transport/server/TransportServiceImpl.java | 2 +-
.../apache/iotdb/db/tools/TsFileRewriteTool.java | 4 +-
.../java/org/apache/iotdb/db/tools/WalChecker.java | 2 +-
.../db/tools/dataregion/DeviceMappingViewer.java | 4 +-
.../apache/iotdb/db/tools/schema/MLogParser.java | 2 +-
.../db/tools/schema/SchemaFileSketchTool.java | 2 +-
.../db/tools/settle/TsFileAndModSettleTool.java | 2 +-
.../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 2 +-
.../org/apache/iotdb/db/utils/FileLoaderUtils.java | 2 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 6 +-
.../iotdb/db/utils/writelog/BatchLogReader.java | 2 +-
.../org/apache/iotdb/db/wal/buffer/WALEntry.java | 2 +-
.../java/org/apache/iotdb/db/wal/io/WALReader.java | 2 +-
.../java/org/apache/iotdb/db/wal/node/WALNode.java | 4 +-
.../db/wal/recover/file/TsFilePlanRedoer.java | 4 +-
.../apache/iotdb/db/auth/AuthorityCheckerTest.java | 4 +-
.../iotdb/db/engine/MetadataManagerHelper.java | 2 +-
.../iotdb/db/engine/cache/ChunkCacheTest.java | 4 +-
.../engine/compaction/AbstractCompactionTest.java | 4 +-
.../engine/compaction/CompactionSchedulerTest.java | 4 +-
.../ReadPointCompactionPerformerTest.java | 6 +-
.../compaction/TestUtilsForAlignedSeries.java | 4 +-
.../cross/CrossSpaceCompactionExceptionTest.java | 2 +-
.../compaction/cross/CrossSpaceCompactionTest.java | 4 +-
.../db/engine/compaction/cross/MergeTest.java | 4 +-
.../RewriteCrossSpaceCompactionRecoverTest.java | 2 +-
.../cross/RewriteCrossSpaceCompactionTest.java | 6 +-
.../inner/AbstractInnerSpaceCompactionTest.java | 4 +-
.../inner/InnerCompactionMoreDataTest.java | 4 +-
.../inner/InnerCompactionSchedulerTest.java | 2 +-
.../compaction/inner/InnerCompactionTest.java | 4 +-
.../compaction/inner/InnerSeqCompactionTest.java | 6 +-
.../compaction/inner/InnerUnseqCompactionTest.java | 4 +-
.../ReadChunkCompactionPerformerAlignedTest.java | 2 +-
.../ReadChunkCompactionPerformerNoAlignedTest.java | 4 +-
.../inner/ReadChunkCompactionPerformerOldTest.java | 2 +-
.../SizeTieredCompactionRecoverTest.java | 2 +-
.../inner/sizetiered/SizeTieredCompactionTest.java | 4 +-
...eCrossSpaceCompactionRecoverCompatibleTest.java | 4 +-
.../SizeTieredCompactionRecoverCompatibleTest.java | 2 +-
.../recover/SizeTieredCompactionRecoverTest.java | 4 +-
.../compaction/utils/CompactionCheckerUtils.java | 4 +-
.../utils/CompactionFileGeneratorUtils.java | 4 +-
.../db/engine/memtable/MemTableFlushTaskTest.java | 2 +-
.../db/engine/memtable/MemTableTestUtils.java | 4 +-
.../db/engine/memtable/MemtableBenchmark.java | 4 +-
.../db/engine/memtable/PrimitiveMemTableTest.java | 6 +-
.../engine/modification/DeletionFileNodeTest.java | 4 +-
.../db/engine/modification/DeletionQueryTest.java | 4 +-
.../engine/modification/ModificationFileTest.java | 2 +-
.../io/LocalTextModificationAccessorTest.java | 2 +-
.../db/engine/storagegroup/DataRegionTest.java | 6 +-
.../storagegroup/FileNodeManagerBenchmark.java | 4 +-
.../storagegroup/StorageGroupProcessorTest.java | 6 +-
.../iotdb/db/engine/storagegroup/TTLTest.java | 6 +-
.../db/engine/storagegroup/TsFileManagerTest.java | 2 +-
.../engine/storagegroup/TsFileProcessorTest.java | 6 +-
.../engine/storagegroup/TsFileProcessorV2Test.java | 6 +-
.../dataregion/HashVirtualPartitionerTest.java | 4 +-
.../apache/iotdb/db/metadata/MetaUtilsTest.java | 45 +--
.../apache/iotdb/db/metadata/PartialPathTest.java | 4 +-
.../iotdb/db/metadata/SchemaAdvancedTest.java | 4 +-
.../apache/iotdb/db/metadata/SchemaBasicTest.java | 6 +-
.../iotdb/db/metadata/SchemaImproveTest.java | 6 +-
.../org/apache/iotdb/db/metadata/TemplateTest.java | 6 +-
.../db/metadata/cache/DataNodeSchemaCacheTest.java | 4 +-
.../db/metadata/idtable/IDTableFlushTimeTest.java | 6 +-
.../db/metadata/idtable/IDTableLogFileTest.java | 2 +-
.../db/metadata/idtable/IDTableRecoverTest.java | 4 +-
.../idtable/IDTableResourceControlTest.java | 6 +-
.../db/metadata/idtable/IDTableRestartTest.java | 4 +-
.../iotdb/db/metadata/idtable/IDTableTest.java | 4 +-
.../db/metadata/idtable/InsertWithIDTableTest.java | 6 +-
.../db/metadata/idtable/LastQueryWithIDTable.java | 6 +-
.../QueryAlignedTimeseriesWithIDTableTest.java | 6 +-
.../db/metadata/idtable/QueryWithIDTableTest.java | 6 +-
.../db/metadata/idtable/entry/DeviceIDTest.java | 4 +-
.../db/metadata/idtable/entry/SchemaEntryTest.java | 2 +-
.../iotdb/db/metadata/mtree/MTreeAboveSGTest.java | 53 +++-
.../iotdb/db/metadata/mtree/MTreeBelowSGTest.java | 4 +-
.../db/metadata/mtree/disk/MemManagerTest.java | 2 +-
.../metadata/mtree/schemafile/RecordUtilTests.java | 2 +-
.../metadata/mtree/schemafile/SchemaFileTest.java | 8 +-
.../metadata/mtree/schemafile/SchemaPageTest.java | 3 +-
.../db/metadata/mtree/schemafile/SegmentTest.java | 2 +-
.../db/metadata/upgrade/MetadataUpgradeTest.java | 4 +-
.../mpp/common/schematree/PathPatternTreeTest.java | 4 +-
.../db/mpp/common/schematree/SchemaTreeTest.java | 4 +-
.../iotdb/db/mpp/execution/DataDriverTest.java | 6 +-
.../operator/AlignedSeriesScanOperatorTest.java | 314 ++++++++++++++++++++-
.../execution/operator/AlignedSeriesTestUtil.java | 4 +-
.../execution/operator/DeviceViewOperatorTest.java | 4 +-
.../mpp/execution/operator/LimitOperatorTest.java | 4 +-
.../mpp/execution/operator/OffsetOperatorTest.java | 4 +-
.../operator/SeriesAggregateScanOperatorTest.java | 4 +-
.../execution/operator/SeriesScanOperatorTest.java | 4 +-
.../execution/operator/TimeJoinOperatorTest.java | 4 +-
.../operator/schema/CountMergeOperatorTest.java | 4 +-
.../operator/schema/SchemaCountOperatorTest.java | 4 +-
.../operator/schema/SchemaFetchOperatorTest.java | 2 +-
.../operator/schema/SchemaScanOperatorTest.java | 4 +-
.../db/mpp/plan/parser/StatementGeneratorTest.java | 2 +-
.../db/mpp/plan/plan/DistributionPlannerTest.java | 4 +-
.../mpp/plan/plan/FragmentInstanceSerdeTest.java | 2 +-
.../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 4 +-
.../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 2 +-
.../plan/plan/node/PlanNodeDeserializeHelper.java | 2 +-
.../read/DeviceSchemaScanNodeSerdeTest.java | 4 +-
.../metadata/read/SchemaCountNodeSerdeTest.java | 4 +-
.../read/TimeSeriesSchemaScanNodeSerdeTest.java | 4 +-
.../node/process/AggregationNodeSerdeTest.java | 4 +-
.../plan/node/process/DeviceViewNodeSerdeTest.java | 2 +-
.../plan/node/process/ExchangeNodeSerdeTest.java | 2 +-
.../plan/plan/node/process/FillNodeSerdeTest.java | 4 +-
.../plan/node/process/FilterNodeSerdeTest.java | 4 +-
.../plan/node/process/FilterNullNodeSerdeTest.java | 4 +-
.../node/process/GroupByLevelNodeSerdeTest.java | 4 +-
.../plan/plan/node/process/LimitNodeSerdeTest.java | 2 +-
.../plan/node/process/OffsetNodeSerdeTest.java | 2 +-
.../plan/plan/node/process/SortNodeSerdeTest.java | 2 +-
.../plan/node/process/TimeJoinNodeSerdeTest.java | 2 +-
.../plan/node/sink/FragmentSinkNodeSerdeTest.java | 4 +-
.../source/SeriesAggregationScanNodeSerdeTest.java | 4 +-
.../plan/node/source/SeriesScanNodeSerdeTest.java | 2 +-
.../write/InsertMultiTabletsNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertRowNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertRowsNodeSerdeTest.java | 4 +-
.../write/InsertRowsOfOneDeviceNodeSerdeTest.java | 4 +-
.../plan/node/write/InsertTabletNodeSerdeTest.java | 4 +-
.../plan/node/write/WritePlanNodeSplitTest.java | 4 +-
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 6 +-
.../iotdb/db/qp/logical/LogicalPlanSmallTest.java | 4 +-
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 2 +-
.../iotdb/db/qp/physical/ConcatOptimizerTest.java | 4 +-
.../iotdb/db/qp/physical/InsertRowPlanTest.java | 6 +-
.../qp/physical/InsertRowsOfOneDevicePlanTest.java | 4 +-
.../db/qp/physical/InsertTabletMultiPlanTest.java | 4 +-
.../iotdb/db/qp/physical/InsertTabletPlanTest.java | 6 +-
.../db/qp/physical/PhysicalPlanSerializeTest.java | 4 +-
.../iotdb/db/qp/physical/PhysicalPlanTest.java | 6 +-
.../iotdb/db/qp/physical/SerializationTest.java | 6 +-
.../iotdb/db/qp/physical/SerializedSizeTest.java | 4 +-
.../iotdb/db/query/dataset/ListDataSetTest.java | 2 +-
.../iotdb/db/query/dataset/SingleDataSetTest.java | 2 +-
.../query/dataset/UDTFAlignByTimeDataSetTest.java | 4 +-
.../reader/series/SeriesAggregateReaderTest.java | 2 +-
.../reader/series/SeriesReaderByTimestampTest.java | 2 +-
.../db/query/reader/series/SeriesReaderTest.java | 6 +-
.../query/reader/series/SeriesReaderTestUtil.java | 4 +-
.../iotdb/db/rescon/ResourceManagerTest.java | 4 +-
.../iotdb/db/service/InternalServiceImplTest.java | 4 +-
.../org/apache/iotdb/db/sink/MQTTSinkTest.java | 2 +-
.../sync/pipedata/BufferedPipeDataQueueTest.java | 2 +-
.../iotdb/db/sync/pipedata/PipeDataTest.java | 2 +-
.../db/sync/transport/TransportServiceTest.java | 2 +-
.../org/apache/iotdb/db/tools/MLogParserTest.java | 4 +-
.../iotdb/db/tools/SchemaFileSketchTest.java | 2 +-
.../iotdb/db/tools/TsFileAndModSettleToolTest.java | 4 +-
.../org/apache/iotdb/db/tools/WalCheckerTest.java | 2 +-
.../org/apache/iotdb/db/utils/MemUtilsTest.java | 4 +-
.../org/apache/iotdb/db/utils/SchemaTestUtils.java | 4 +-
.../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 4 +-
.../iotdb/db/utils/TsFileRewriteToolTest.java | 4 +-
.../db/utils/writelog/LogWriterReaderTest.java | 4 +-
.../db/utils/writelog/MultiFileLogReaderTest.java | 4 +-
.../org/apache/iotdb/db/wal/WALManagerTest.java | 4 +-
.../iotdb/db/wal/buffer/WALBufferCommonTest.java | 4 +-
.../org/apache/iotdb/db/wal/io/WALFileTest.java | 4 +-
.../org/apache/iotdb/db/wal/node/WALNodeTest.java | 4 +-
.../db/wal/recover/WALRecoverManagerTest.java | 6 +-
.../db/wal/recover/file/TsFilePlanRedoerTest.java | 2 +-
.../file/UnsealedTsFileRecoverPerformerTest.java | 2 +-
.../org/apache/iotdb/rpc/IoTDBJDBCDataSet.java | 3 +-
752 files changed, 2164 insertions(+), 1461 deletions(-)
diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
index 6fd6b513ef,e78e5e4738..b4a4bb93cc
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
@@@ -18,9 -18,8 +18,9 @@@
*/
package org.apache.iotdb.db.mpp.plan.planner;
+ import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.db.engine.storagegroup.DataRegion;
+import org.apache.iotdb.db.metadata.path.AlignedPath;
- import org.apache.iotdb.db.metadata.path.PartialPath;
import org.apache.iotdb.db.metadata.schemaregion.ISchemaRegion;
import org.apache.iotdb.db.mpp.common.FragmentInstanceId;
import org.apache.iotdb.db.mpp.execution.datatransfer.DataBlockManager;
diff --cc server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesScanOperatorTest.java
index 6cfac9abed,0000000000..97121b80e3
mode 100644,000000..100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesScanOperatorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesScanOperatorTest.java
@@@ -1,456 -1,0 +1,748 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.mpp.execution.operator;
+
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
++import org.apache.iotdb.commons.exception.IllegalPathException;
++import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
+import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
- import org.apache.iotdb.db.exception.metadata.IllegalPathException;
- import org.apache.iotdb.db.exception.metadata.MetadataException;
+import org.apache.iotdb.db.metadata.path.AlignedPath;
+import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.common.FragmentInstanceId;
+import org.apache.iotdb.db.mpp.common.PlanFragmentId;
+import org.apache.iotdb.db.mpp.common.QueryId;
+import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceContext;
+import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceStateMachine;
+import org.apache.iotdb.db.mpp.execution.operator.process.TimeJoinOperator;
+import org.apache.iotdb.db.mpp.execution.operator.process.merge.AscTimeComparator;
++import org.apache.iotdb.db.mpp.execution.operator.process.merge.DescTimeComparator;
+import org.apache.iotdb.db.mpp.execution.operator.process.merge.SingleColumnMerger;
+import org.apache.iotdb.db.mpp.execution.operator.source.AlignedSeriesScanOperator;
+import org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanOperator;
+import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
+import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
+import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.read.common.block.TsBlock;
+import org.apache.iotdb.tsfile.read.common.block.column.BinaryColumn;
+import org.apache.iotdb.tsfile.read.common.block.column.BooleanColumn;
+import org.apache.iotdb.tsfile.read.common.block.column.DoubleColumn;
+import org.apache.iotdb.tsfile.read.common.block.column.FloatColumn;
+import org.apache.iotdb.tsfile.read.common.block.column.IntColumn;
+import org.apache.iotdb.tsfile.read.common.block.column.LongColumn;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+
- import org.junit.After;
- import org.junit.Before;
++import org.junit.AfterClass;
++import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.stream.Collectors;
+
+import static org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceContext.createFragmentInstanceContext;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+public class AlignedSeriesScanOperatorTest {
+
+ private static final String SERIES_SCAN_OPERATOR_TEST_SG = "root.AlignedSeriesScanOperatorTest";
- private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
++ private static final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+
- private final List<TsFileResource> seqResources = new ArrayList<>();
- private final List<TsFileResource> unSeqResources = new ArrayList<>();
++ private static final List<TsFileResource> seqResources = new ArrayList<>();
++ private static final List<TsFileResource> unSeqResources = new ArrayList<>();
+
+ private static final double DELTA = 0.000001;
+
- @Before
- public void setUp() throws MetadataException, IOException, WriteProcessException {
++ @BeforeClass
++ public static void setUp() throws MetadataException, IOException, WriteProcessException {
+ AlignedSeriesTestUtil.setUp(
+ measurementSchemas, seqResources, unSeqResources, SERIES_SCAN_OPERATOR_TEST_SG);
+ }
+
- @After
- public void tearDown() throws IOException {
++ @AfterClass
++ public static void tearDown() throws IOException {
+ AlignedSeriesTestUtil.tearDown(seqResources, unSeqResources);
+ }
+
+ @Test
+ public void batchTest1() {
+ ExecutorService instanceNotificationExecutor =
+ IoTDBThreadPoolFactory.newFixedThreadPool(1, "test-instance-notification");
+ try {
+ AlignedPath alignedPath =
+ new AlignedPath(
+ SERIES_SCAN_OPERATOR_TEST_SG + ".device0",
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getMeasurementId)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(m -> (IMeasurementSchema) m)
+ .collect(Collectors.toList()));
+ QueryId queryId = new QueryId("stub_query");
+ FragmentInstanceId instanceId =
+ new FragmentInstanceId(new PlanFragmentId(queryId, 0), "stub-instance");
+ FragmentInstanceStateMachine stateMachine =
+ new FragmentInstanceStateMachine(instanceId, instanceNotificationExecutor);
+ FragmentInstanceContext fragmentInstanceContext =
+ createFragmentInstanceContext(instanceId, stateMachine);
+ PlanNodeId planNodeId = new PlanNodeId("1");
+ fragmentInstanceContext.addOperatorContext(
+ 1, planNodeId, AlignedSeriesScanOperator.class.getSimpleName());
+
+ AlignedSeriesScanOperator seriesScanOperator =
+ new AlignedSeriesScanOperator(
+ planNodeId,
+ alignedPath,
+ fragmentInstanceContext.getOperatorContexts().get(0),
+ null,
+ null,
+ true);
+ seriesScanOperator.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+ int count = 0;
+ while (seriesScanOperator.hasNext()) {
+ TsBlock tsBlock = seriesScanOperator.next();
+ assertEquals(6, tsBlock.getValueColumnCount());
+ assertTrue(tsBlock.getColumn(0) instanceof BooleanColumn);
+ assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
+ assertTrue(tsBlock.getColumn(2) instanceof LongColumn);
+ assertTrue(tsBlock.getColumn(3) instanceof FloatColumn);
+ assertTrue(tsBlock.getColumn(4) instanceof DoubleColumn);
+ assertTrue(tsBlock.getColumn(5) instanceof BinaryColumn);
+
+ assertEquals(20, tsBlock.getPositionCount());
+ for (int i = 0; i < tsBlock.getPositionCount(); i++) {
+ long expectedTime = i + 20L * count;
+ assertEquals(expectedTime, tsBlock.getTimeByIndex(i));
+ int delta = 0;
+ if (expectedTime < 200) {
+ delta = 20000;
+ } else if (expectedTime < 260
+ || (expectedTime >= 300 && expectedTime < 380)
+ || expectedTime >= 400) {
+ delta = 10000;
+ }
+ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(0).getBoolean(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(1).getInt(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(2).getLong(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(3).getFloat(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(4).getDouble(i), DELTA);
+ assertEquals(
+ String.valueOf(delta + expectedTime), tsBlock.getColumn(5).getBinary(i).toString());
+ }
+ count++;
+ }
+ assertEquals(25, count);
+ } catch (IllegalPathException e) {
+ e.printStackTrace();
+ fail();
+ } finally {
+ instanceNotificationExecutor.shutdown();
+ }
+ }
+
+ @Test
+ public void batchTest2() {
+ ExecutorService instanceNotificationExecutor =
+ IoTDBThreadPoolFactory.newFixedThreadPool(1, "test-instance-notification");
+ try {
+ AlignedPath alignedPath1 =
+ new AlignedPath(
+ SERIES_SCAN_OPERATOR_TEST_SG + ".device0",
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getMeasurementId)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(m -> (IMeasurementSchema) m)
+ .collect(Collectors.toList()));
+ QueryId queryId = new QueryId("stub_query");
+ FragmentInstanceId instanceId =
+ new FragmentInstanceId(new PlanFragmentId(queryId, 0), "stub-instance");
+ FragmentInstanceStateMachine stateMachine =
+ new FragmentInstanceStateMachine(instanceId, instanceNotificationExecutor);
+ FragmentInstanceContext fragmentInstanceContext =
+ createFragmentInstanceContext(instanceId, stateMachine);
+ PlanNodeId planNodeId1 = new PlanNodeId("1");
+ fragmentInstanceContext.addOperatorContext(
+ 1, planNodeId1, AlignedSeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId2 = new PlanNodeId("2");
+ fragmentInstanceContext.addOperatorContext(
+ 2, planNodeId2, AlignedSeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId3 = new PlanNodeId("3");
+ fragmentInstanceContext.addOperatorContext(
+ 3, planNodeId3, SeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId4 = new PlanNodeId("4");
+ fragmentInstanceContext.addOperatorContext(
+ 4, planNodeId4, SeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId5 = new PlanNodeId("5");
+ fragmentInstanceContext.addOperatorContext(
+ 5, planNodeId5, SeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId6 = new PlanNodeId("6");
+ fragmentInstanceContext.addOperatorContext(
+ 6, planNodeId6, SeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId7 = new PlanNodeId("7");
+ fragmentInstanceContext.addOperatorContext(
+ 7, planNodeId7, SeriesScanOperator.class.getSimpleName());
+ PlanNodeId planNodeId8 = new PlanNodeId("8");
+ fragmentInstanceContext.addOperatorContext(
+ 8, planNodeId8, SeriesScanOperator.class.getSimpleName());
+ fragmentInstanceContext.addOperatorContext(
+ 9, new PlanNodeId("9"), TimeJoinOperator.class.getSimpleName());
+ AlignedSeriesScanOperator seriesScanOperator1 =
+ new AlignedSeriesScanOperator(
+ planNodeId1,
+ alignedPath1,
+ fragmentInstanceContext.getOperatorContexts().get(0),
+ null,
+ null,
+ true);
+ seriesScanOperator1.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ AlignedPath alignedPath2 =
+ new AlignedPath(
+ SERIES_SCAN_OPERATOR_TEST_SG + ".device1",
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getMeasurementId)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(m -> (IMeasurementSchema) m)
+ .collect(Collectors.toList()));
+ AlignedSeriesScanOperator seriesScanOperator2 =
+ new AlignedSeriesScanOperator(
+ planNodeId2,
+ alignedPath2,
+ fragmentInstanceContext.getOperatorContexts().get(1),
+ null,
+ null,
+ true);
+ seriesScanOperator2.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ Set<String> allSensors = new HashSet<>();
+ allSensors.add("sensor0");
+ allSensors.add("sensor1");
+ allSensors.add("sensor2");
+ allSensors.add("sensor3");
+ allSensors.add("sensor4");
+ allSensors.add("sensor5");
+
+ MeasurementPath measurementPath3 =
+ new MeasurementPath(
+ SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor0", TSDataType.BOOLEAN);
+ SeriesScanOperator seriesScanOperator3 =
+ new SeriesScanOperator(
+ planNodeId3,
+ measurementPath3,
+ allSensors,
+ TSDataType.BOOLEAN,
+ fragmentInstanceContext.getOperatorContexts().get(2),
+ null,
+ null,
+ true);
+ seriesScanOperator3.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ MeasurementPath measurementPath4 =
+ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor1", TSDataType.INT32);
+ SeriesScanOperator seriesScanOperator4 =
+ new SeriesScanOperator(
+ planNodeId4,
+ measurementPath4,
+ allSensors,
+ TSDataType.INT32,
+ fragmentInstanceContext.getOperatorContexts().get(3),
+ null,
+ null,
+ true);
+ seriesScanOperator4.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ MeasurementPath measurementPath5 =
+ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor2", TSDataType.INT64);
+ SeriesScanOperator seriesScanOperator5 =
+ new SeriesScanOperator(
+ planNodeId5,
+ measurementPath5,
+ allSensors,
+ TSDataType.INT64,
+ fragmentInstanceContext.getOperatorContexts().get(4),
+ null,
+ null,
+ true);
+ seriesScanOperator5.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ MeasurementPath measurementPath6 =
+ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor3", TSDataType.FLOAT);
+ SeriesScanOperator seriesScanOperator6 =
+ new SeriesScanOperator(
+ planNodeId6,
+ measurementPath6,
+ allSensors,
+ TSDataType.FLOAT,
+ fragmentInstanceContext.getOperatorContexts().get(5),
+ null,
+ null,
+ true);
+ seriesScanOperator6.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ MeasurementPath measurementPath7 =
+ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor4", TSDataType.DOUBLE);
+ SeriesScanOperator seriesScanOperator7 =
+ new SeriesScanOperator(
+ planNodeId7,
+ measurementPath7,
+ allSensors,
+ TSDataType.DOUBLE,
+ fragmentInstanceContext.getOperatorContexts().get(6),
+ null,
+ null,
+ true);
+ seriesScanOperator7.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ MeasurementPath measurementPath8 =
+ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor5", TSDataType.DOUBLE);
+ SeriesScanOperator seriesScanOperator8 =
+ new SeriesScanOperator(
+ planNodeId8,
+ measurementPath8,
+ allSensors,
+ TSDataType.TEXT,
+ fragmentInstanceContext.getOperatorContexts().get(7),
+ null,
+ null,
+ true);
+ seriesScanOperator8.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
+
+ TimeJoinOperator timeJoinOperator =
+ new TimeJoinOperator(
+ fragmentInstanceContext.getOperatorContexts().get(8),
+ Arrays.asList(
+ seriesScanOperator1,
+ seriesScanOperator2,
+ seriesScanOperator3,
+ seriesScanOperator4,
+ seriesScanOperator5,
+ seriesScanOperator6,
+ seriesScanOperator7,
+ seriesScanOperator8),
+ OrderBy.TIMESTAMP_ASC,
+ Arrays.asList(
+ TSDataType.BOOLEAN,
+ TSDataType.INT32,
+ TSDataType.INT64,
+ TSDataType.FLOAT,
+ TSDataType.DOUBLE,
+ TSDataType.TEXT,
+ TSDataType.BOOLEAN,
+ TSDataType.INT32,
+ TSDataType.INT64,
+ TSDataType.FLOAT,
+ TSDataType.DOUBLE,
+ TSDataType.TEXT,
+ TSDataType.BOOLEAN,
+ TSDataType.INT32,
+ TSDataType.INT64,
+ TSDataType.FLOAT,
+ TSDataType.DOUBLE,
+ TSDataType.TEXT),
+ Arrays.asList(
+ new SingleColumnMerger(new InputLocation(0, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(0, 1), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(0, 2), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(0, 3), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(0, 4), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(0, 5), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 1), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 2), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 3), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 4), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(1, 5), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(2, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(3, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(4, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(5, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(6, 0), new AscTimeComparator()),
+ new SingleColumnMerger(new InputLocation(7, 0), new AscTimeComparator())),
+ new AscTimeComparator());
+ int count = 0;
+ while (timeJoinOperator.hasNext()) {
+ TsBlock tsBlock = timeJoinOperator.next();
+ assertEquals(18, tsBlock.getValueColumnCount());
+ assertTrue(tsBlock.getColumn(0) instanceof BooleanColumn);
+ assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
+ assertTrue(tsBlock.getColumn(2) instanceof LongColumn);
+ assertTrue(tsBlock.getColumn(3) instanceof FloatColumn);
+ assertTrue(tsBlock.getColumn(4) instanceof DoubleColumn);
+ assertTrue(tsBlock.getColumn(5) instanceof BinaryColumn);
+ assertTrue(tsBlock.getColumn(6) instanceof BooleanColumn);
+ assertTrue(tsBlock.getColumn(7) instanceof IntColumn);
+ assertTrue(tsBlock.getColumn(8) instanceof LongColumn);
+ assertTrue(tsBlock.getColumn(9) instanceof FloatColumn);
+ assertTrue(tsBlock.getColumn(10) instanceof DoubleColumn);
+ assertTrue(tsBlock.getColumn(11) instanceof BinaryColumn);
+ assertTrue(tsBlock.getColumn(12) instanceof BooleanColumn);
+ assertTrue(tsBlock.getColumn(13) instanceof IntColumn);
+ assertTrue(tsBlock.getColumn(14) instanceof LongColumn);
+ assertTrue(tsBlock.getColumn(15) instanceof FloatColumn);
+ assertTrue(tsBlock.getColumn(16) instanceof DoubleColumn);
+ assertTrue(tsBlock.getColumn(17) instanceof BinaryColumn);
+
+ assertEquals(20, tsBlock.getPositionCount());
+ for (int i = 0; i < tsBlock.getPositionCount(); i++) {
+ long expectedTime = i + 20L * count;
+ assertEquals(expectedTime, tsBlock.getTimeByIndex(i));
+ int delta = 0;
+ if (expectedTime < 200) {
+ delta = 20000;
+ } else if (expectedTime < 260
+ || (expectedTime >= 300 && expectedTime < 380)
+ || expectedTime >= 400) {
+ delta = 10000;
+ }
+ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(0).getBoolean(i));
+ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(6).getBoolean(i));
+ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(12).getBoolean(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(1).getInt(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(7).getInt(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(13).getInt(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(2).getLong(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(8).getLong(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(14).getLong(i));
+ assertEquals(delta + expectedTime, tsBlock.getColumn(3).getFloat(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(9).getFloat(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(15).getFloat(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(4).getDouble(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(10).getDouble(i), DELTA);
+ assertEquals(delta + expectedTime, tsBlock.getColumn(16).getDouble(i), DELTA);
+ assertEquals(
+ String.valueOf(delta + expectedTime), tsBlock.getColumn(5).getBinary(i).toString());
+ assertEquals(
+ String.valueOf(delta + expectedTime), tsBlock.getColumn(11).getBinary(i).toString());
+ assertEquals(
+ String.valueOf(delta + expectedTime), tsBlock.getColumn(17).getBinary(i).toString());
+ }
+ count++;
+ }
+ assertEquals(25, count);
+ } catch (IllegalPathException e) {
+ e.printStackTrace();
+ fail();
+ } finally {
+ instanceNotificationExecutor.shutdown();
+ }
+ }
++
++ /** order by time desc */
++ @Test
++ public void batchTest3() {
++ ExecutorService instanceNotificationExecutor =
++ IoTDBThreadPoolFactory.newFixedThreadPool(1, "test-instance-notification");
++ try {
++ AlignedPath alignedPath1 =
++ new AlignedPath(
++ SERIES_SCAN_OPERATOR_TEST_SG + ".device0",
++ measurementSchemas.stream()
++ .map(MeasurementSchema::getMeasurementId)
++ .collect(Collectors.toList()),
++ measurementSchemas.stream()
++ .map(m -> (IMeasurementSchema) m)
++ .collect(Collectors.toList()));
++ QueryId queryId = new QueryId("stub_query");
++ FragmentInstanceId instanceId =
++ new FragmentInstanceId(new PlanFragmentId(queryId, 0), "stub-instance");
++ FragmentInstanceStateMachine stateMachine =
++ new FragmentInstanceStateMachine(instanceId, instanceNotificationExecutor);
++ FragmentInstanceContext fragmentInstanceContext =
++ createFragmentInstanceContext(instanceId, stateMachine);
++ PlanNodeId planNodeId1 = new PlanNodeId("1");
++ fragmentInstanceContext.addOperatorContext(
++ 1, planNodeId1, AlignedSeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId2 = new PlanNodeId("2");
++ fragmentInstanceContext.addOperatorContext(
++ 2, planNodeId2, AlignedSeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId3 = new PlanNodeId("3");
++ fragmentInstanceContext.addOperatorContext(
++ 3, planNodeId3, SeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId4 = new PlanNodeId("4");
++ fragmentInstanceContext.addOperatorContext(
++ 4, planNodeId4, SeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId5 = new PlanNodeId("5");
++ fragmentInstanceContext.addOperatorContext(
++ 5, planNodeId5, SeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId6 = new PlanNodeId("6");
++ fragmentInstanceContext.addOperatorContext(
++ 6, planNodeId6, SeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId7 = new PlanNodeId("7");
++ fragmentInstanceContext.addOperatorContext(
++ 7, planNodeId7, SeriesScanOperator.class.getSimpleName());
++ PlanNodeId planNodeId8 = new PlanNodeId("8");
++ fragmentInstanceContext.addOperatorContext(
++ 8, planNodeId8, SeriesScanOperator.class.getSimpleName());
++ fragmentInstanceContext.addOperatorContext(
++ 9, new PlanNodeId("9"), TimeJoinOperator.class.getSimpleName());
++ AlignedSeriesScanOperator seriesScanOperator1 =
++ new AlignedSeriesScanOperator(
++ planNodeId1,
++ alignedPath1,
++ fragmentInstanceContext.getOperatorContexts().get(0),
++ null,
++ null,
++ false);
++ seriesScanOperator1.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ AlignedPath alignedPath2 =
++ new AlignedPath(
++ SERIES_SCAN_OPERATOR_TEST_SG + ".device1",
++ measurementSchemas.stream()
++ .map(MeasurementSchema::getMeasurementId)
++ .collect(Collectors.toList()),
++ measurementSchemas.stream()
++ .map(m -> (IMeasurementSchema) m)
++ .collect(Collectors.toList()));
++ AlignedSeriesScanOperator seriesScanOperator2 =
++ new AlignedSeriesScanOperator(
++ planNodeId2,
++ alignedPath2,
++ fragmentInstanceContext.getOperatorContexts().get(1),
++ null,
++ null,
++ false);
++ seriesScanOperator2.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ Set<String> allSensors = new HashSet<>();
++ allSensors.add("sensor0");
++ allSensors.add("sensor1");
++ allSensors.add("sensor2");
++ allSensors.add("sensor3");
++ allSensors.add("sensor4");
++ allSensors.add("sensor5");
++
++ MeasurementPath measurementPath3 =
++ new MeasurementPath(
++ SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor0", TSDataType.BOOLEAN);
++ SeriesScanOperator seriesScanOperator3 =
++ new SeriesScanOperator(
++ planNodeId3,
++ measurementPath3,
++ allSensors,
++ TSDataType.BOOLEAN,
++ fragmentInstanceContext.getOperatorContexts().get(2),
++ null,
++ null,
++ false);
++ seriesScanOperator3.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ MeasurementPath measurementPath4 =
++ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor1", TSDataType.INT32);
++ SeriesScanOperator seriesScanOperator4 =
++ new SeriesScanOperator(
++ planNodeId4,
++ measurementPath4,
++ allSensors,
++ TSDataType.INT32,
++ fragmentInstanceContext.getOperatorContexts().get(3),
++ null,
++ null,
++ false);
++ seriesScanOperator4.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ MeasurementPath measurementPath5 =
++ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor2", TSDataType.INT64);
++ SeriesScanOperator seriesScanOperator5 =
++ new SeriesScanOperator(
++ planNodeId5,
++ measurementPath5,
++ allSensors,
++ TSDataType.INT64,
++ fragmentInstanceContext.getOperatorContexts().get(4),
++ null,
++ null,
++ false);
++ seriesScanOperator5.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ MeasurementPath measurementPath6 =
++ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor3", TSDataType.FLOAT);
++ SeriesScanOperator seriesScanOperator6 =
++ new SeriesScanOperator(
++ planNodeId6,
++ measurementPath6,
++ allSensors,
++ TSDataType.FLOAT,
++ fragmentInstanceContext.getOperatorContexts().get(5),
++ null,
++ null,
++ false);
++ seriesScanOperator6.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ MeasurementPath measurementPath7 =
++ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor4", TSDataType.DOUBLE);
++ SeriesScanOperator seriesScanOperator7 =
++ new SeriesScanOperator(
++ planNodeId7,
++ measurementPath7,
++ allSensors,
++ TSDataType.DOUBLE,
++ fragmentInstanceContext.getOperatorContexts().get(6),
++ null,
++ null,
++ false);
++ seriesScanOperator7.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ MeasurementPath measurementPath8 =
++ new MeasurementPath(SERIES_SCAN_OPERATOR_TEST_SG + ".device2.sensor5", TSDataType.DOUBLE);
++ SeriesScanOperator seriesScanOperator8 =
++ new SeriesScanOperator(
++ planNodeId8,
++ measurementPath8,
++ allSensors,
++ TSDataType.TEXT,
++ fragmentInstanceContext.getOperatorContexts().get(7),
++ null,
++ null,
++ false);
++ seriesScanOperator8.initQueryDataSource(new QueryDataSource(seqResources, unSeqResources));
++
++ TimeJoinOperator timeJoinOperator =
++ new TimeJoinOperator(
++ fragmentInstanceContext.getOperatorContexts().get(8),
++ Arrays.asList(
++ seriesScanOperator1,
++ seriesScanOperator2,
++ seriesScanOperator3,
++ seriesScanOperator4,
++ seriesScanOperator5,
++ seriesScanOperator6,
++ seriesScanOperator7,
++ seriesScanOperator8),
++ OrderBy.TIMESTAMP_DESC,
++ Arrays.asList(
++ TSDataType.BOOLEAN,
++ TSDataType.INT32,
++ TSDataType.INT64,
++ TSDataType.FLOAT,
++ TSDataType.DOUBLE,
++ TSDataType.TEXT,
++ TSDataType.BOOLEAN,
++ TSDataType.INT32,
++ TSDataType.INT64,
++ TSDataType.FLOAT,
++ TSDataType.DOUBLE,
++ TSDataType.TEXT,
++ TSDataType.BOOLEAN,
++ TSDataType.INT32,
++ TSDataType.INT64,
++ TSDataType.FLOAT,
++ TSDataType.DOUBLE,
++ TSDataType.TEXT),
++ Arrays.asList(
++ new SingleColumnMerger(new InputLocation(0, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(0, 1), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(0, 2), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(0, 3), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(0, 4), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(0, 5), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 1), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 2), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 3), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 4), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(1, 5), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(2, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(3, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(4, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(5, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(6, 0), new DescTimeComparator()),
++ new SingleColumnMerger(new InputLocation(7, 0), new DescTimeComparator())),
++ new DescTimeComparator());
++
++ int count = 25;
++ while (timeJoinOperator.hasNext()) {
++ TsBlock tsBlock = timeJoinOperator.next();
++ assertEquals(18, tsBlock.getValueColumnCount());
++ assertTrue(tsBlock.getColumn(0) instanceof BooleanColumn);
++ assertTrue(tsBlock.getColumn(1) instanceof IntColumn);
++ assertTrue(tsBlock.getColumn(2) instanceof LongColumn);
++ assertTrue(tsBlock.getColumn(3) instanceof FloatColumn);
++ assertTrue(tsBlock.getColumn(4) instanceof DoubleColumn);
++ assertTrue(tsBlock.getColumn(5) instanceof BinaryColumn);
++ assertTrue(tsBlock.getColumn(6) instanceof BooleanColumn);
++ assertTrue(tsBlock.getColumn(7) instanceof IntColumn);
++ assertTrue(tsBlock.getColumn(8) instanceof LongColumn);
++ assertTrue(tsBlock.getColumn(9) instanceof FloatColumn);
++ assertTrue(tsBlock.getColumn(10) instanceof DoubleColumn);
++ assertTrue(tsBlock.getColumn(11) instanceof BinaryColumn);
++ assertTrue(tsBlock.getColumn(12) instanceof BooleanColumn);
++ assertTrue(tsBlock.getColumn(13) instanceof IntColumn);
++ assertTrue(tsBlock.getColumn(14) instanceof LongColumn);
++ assertTrue(tsBlock.getColumn(15) instanceof FloatColumn);
++ assertTrue(tsBlock.getColumn(16) instanceof DoubleColumn);
++ assertTrue(tsBlock.getColumn(17) instanceof BinaryColumn);
++
++ assertEquals(20, tsBlock.getPositionCount());
++ for (int i = 0; i < tsBlock.getPositionCount(); i++) {
++ long expectedTime = tsBlock.getPositionCount() - i - 1 + 20L * (count - 1);
++ assertEquals(expectedTime, tsBlock.getTimeByIndex(i));
++ int delta = 0;
++ if (expectedTime < 200) {
++ delta = 20000;
++ } else if (expectedTime < 260
++ || (expectedTime >= 300 && expectedTime < 380)
++ || expectedTime >= 400) {
++ delta = 10000;
++ }
++ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(0).getBoolean(i));
++ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(6).getBoolean(i));
++ assertEquals((delta + expectedTime) % 2 == 0, tsBlock.getColumn(12).getBoolean(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(1).getInt(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(7).getInt(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(13).getInt(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(2).getLong(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(8).getLong(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(14).getLong(i));
++ assertEquals(delta + expectedTime, tsBlock.getColumn(3).getFloat(i), DELTA);
++ assertEquals(delta + expectedTime, tsBlock.getColumn(9).getFloat(i), DELTA);
++ assertEquals(delta + expectedTime, tsBlock.getColumn(15).getFloat(i), DELTA);
++ assertEquals(delta + expectedTime, tsBlock.getColumn(4).getDouble(i), DELTA);
++ assertEquals(delta + expectedTime, tsBlock.getColumn(10).getDouble(i), DELTA);
++ assertEquals(delta + expectedTime, tsBlock.getColumn(16).getDouble(i), DELTA);
++ assertEquals(
++ String.valueOf(delta + expectedTime), tsBlock.getColumn(5).getBinary(i).toString());
++ assertEquals(
++ String.valueOf(delta + expectedTime), tsBlock.getColumn(11).getBinary(i).toString());
++ assertEquals(
++ String.valueOf(delta + expectedTime), tsBlock.getColumn(17).getBinary(i).toString());
++ }
++ count--;
++ }
++ assertEquals(0, count);
++ } catch (IllegalPathException e) {
++ e.printStackTrace();
++ fail();
++ } finally {
++ instanceNotificationExecutor.shutdown();
++ }
++ }
+}
diff --cc server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesTestUtil.java
index 32ea855b57,0000000000..681e818223
mode 100644,000000..100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesTestUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/operator/AlignedSeriesTestUtil.java
@@@ -1,260 -1,0 +1,260 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.iotdb.db.mpp.execution.operator;
+
++import org.apache.iotdb.commons.exception.MetadataException;
++import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.constant.TestConstant;
+import org.apache.iotdb.db.engine.cache.ChunkCache;
+import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
+import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
+import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
- import org.apache.iotdb.db.exception.metadata.MetadataException;
- import org.apache.iotdb.db.metadata.path.PartialPath;
+import org.apache.iotdb.db.query.control.FileReaderManager;
+import org.apache.iotdb.db.service.IoTDB;
+import org.apache.iotdb.db.utils.EnvironmentUtils;
+import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.write.TsFileWriter;
+import org.apache.iotdb.tsfile.write.record.TSRecord;
+import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
+import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
+
+/**
+ * This util contains 5 seqFiles and 5 unseqFiles in default.
+ *
+ * <p>Sequence time range of data: [0, 99], [100, 199], [200, 299], [300, 399], [400, 499]
+ *
+ * <p>UnSequence time range of data: [0, 19], [100, 139], [200, 259], [300, 379], [400, 499], [0,
+ * 199]
+ *
+ * <p>d0 and d1 are aligned, d2 is nonAligned
+ */
+public class AlignedSeriesTestUtil {
+
+ public static void setUp(
+ List<MeasurementSchema> measurementSchemas,
+ List<TsFileResource> seqResources,
+ List<TsFileResource> unseqResources,
+ String sgName)
+ throws MetadataException, IOException, WriteProcessException {
+ IoTDB.configManager.init();
+ prepareSeries(measurementSchemas, sgName);
+ prepareFiles(seqResources, unseqResources, measurementSchemas, sgName);
+ }
+
+ public static void tearDown(
+ List<TsFileResource> seqResources, List<TsFileResource> unseqResources) throws IOException {
+ removeFiles(seqResources, unseqResources);
+ seqResources.clear();
+ unseqResources.clear();
+ ChunkCache.getInstance().clear();
+ TimeSeriesMetadataCache.getInstance().clear();
+ IoTDB.configManager.clear();
+ EnvironmentUtils.cleanAllDir();
+ }
+
+ private static void prepareFiles(
+ List<TsFileResource> seqResources,
+ List<TsFileResource> unseqResources,
+ List<MeasurementSchema> measurementSchemas,
+ String sgName)
+ throws IOException, WriteProcessException {
+ int seqFileNum = 5;
+ long ptNum = 100;
+ for (int i = 0; i < seqFileNum; i++) {
+ File file = new File(TestConstant.getTestTsFilePath(sgName, 0, 0, i));
+ TsFileResource tsFileResource = new TsFileResource(file);
+ tsFileResource.setStatus(TsFileResourceStatus.CLOSED);
+ tsFileResource.setMinPlanIndex(i);
+ tsFileResource.setMaxPlanIndex(i);
+ tsFileResource.setVersion(i);
+ seqResources.add(tsFileResource);
+ prepareFile(sgName, tsFileResource, i * ptNum, ptNum, 0, measurementSchemas);
+ }
+ int unseqFileNum = 5;
+ for (int i = 0; i < unseqFileNum; i++) {
+ File file = new File(TestConstant.getTestTsFilePath(sgName, 0, 0, i + seqFileNum));
+ TsFileResource tsFileResource = new TsFileResource(file);
+ tsFileResource.setStatus(TsFileResourceStatus.CLOSED);
+ tsFileResource.setMinPlanIndex(i + seqFileNum);
+ tsFileResource.setMaxPlanIndex(i + seqFileNum);
+ tsFileResource.setVersion(i + seqFileNum);
+ unseqResources.add(tsFileResource);
+ prepareFile(
+ sgName,
+ tsFileResource,
+ i * ptNum,
+ ptNum * (i + 1) / unseqFileNum,
+ 10000,
+ measurementSchemas);
+ }
+
+ File file = new File(TestConstant.getTestTsFilePath(sgName, 0, 0, seqFileNum + unseqFileNum));
+ TsFileResource tsFileResource = new TsFileResource(file);
+ tsFileResource.setStatus(TsFileResourceStatus.CLOSED);
+ tsFileResource.setMinPlanIndex(seqFileNum + unseqFileNum);
+ tsFileResource.setMaxPlanIndex(seqFileNum + unseqFileNum);
+ tsFileResource.setVersion(seqFileNum + unseqFileNum);
+ unseqResources.add(tsFileResource);
+ prepareFile(sgName, tsFileResource, 0, ptNum * 2, 20000, measurementSchemas);
+ }
+
+ private static void prepareFile(
+ String sgName,
+ TsFileResource tsFileResource,
+ long timeOffset,
+ long ptNum,
+ long valueOffset,
+ List<MeasurementSchema> measurementSchemas)
+ throws IOException, WriteProcessException {
+ File file = tsFileResource.getTsFile();
+ if (!file.getParentFile().exists()) {
+ Assert.assertTrue(file.getParentFile().mkdirs());
+ }
+ TsFileWriter fileWriter = new TsFileWriter(file);
+
+ String device0 = sgName + PATH_SEPARATOR + "device0";
+ String device1 = sgName + PATH_SEPARATOR + "device1";
+ String device2 = sgName + PATH_SEPARATOR + "device2";
+
+ fileWriter.registerAlignedTimeseries(new Path(device0), measurementSchemas);
+ fileWriter.registerAlignedTimeseries(new Path(device1), measurementSchemas);
+ fileWriter.registerTimeseries(new Path(device2), measurementSchemas);
+ for (long i = timeOffset; i < timeOffset + ptNum; i++) {
+
+ TSRecord record = new TSRecord(i, device0);
+ int index = 0;
+ for (MeasurementSchema measurementSchema : measurementSchemas) {
+ record.addTuple(
+ DataPoint.getDataPoint(
+ measurementSchema.getType(),
+ measurementSchema.getMeasurementId(),
+ index == 0
+ ? String.valueOf((i + valueOffset) % 2 == 0)
+ : String.valueOf((i + valueOffset))));
+ index++;
+ }
+ fileWriter.writeAligned(record);
+ tsFileResource.updateStartTime(device0, i);
+ tsFileResource.updateEndTime(device0, i);
+
+ record.deviceId = device1;
+ fileWriter.writeAligned(record);
+ tsFileResource.updateStartTime(device1, i);
+ tsFileResource.updateEndTime(device1, i);
+
+ record.deviceId = device2;
+ fileWriter.write(record);
+ tsFileResource.updateStartTime(device2, i);
+ tsFileResource.updateEndTime(device2, i);
+
+ long flushInterval = 20;
+ if ((i + 1) % flushInterval == 0) {
+ fileWriter.flushAllChunkGroups();
+ }
+ }
+ fileWriter.close();
+ }
+
+ private static void prepareSeries(List<MeasurementSchema> measurementSchemas, String sgName)
+ throws MetadataException {
+
+ measurementSchemas.add(
+ new MeasurementSchema(
+ "sensor0", TSDataType.BOOLEAN, TSEncoding.PLAIN, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema("sensor1", TSDataType.INT32, TSEncoding.RLE, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema(
+ "sensor2", TSDataType.INT64, TSEncoding.TS_2DIFF, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema(
+ "sensor3", TSDataType.FLOAT, TSEncoding.GORILLA, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema(
+ "sensor4", TSDataType.DOUBLE, TSEncoding.GORILLA, CompressionType.SNAPPY));
+ measurementSchemas.add(
+ new MeasurementSchema(
+ "sensor5", TSDataType.TEXT, TSEncoding.PLAIN, CompressionType.SNAPPY));
+
+ IoTDB.schemaProcessor.setStorageGroup(new PartialPath(sgName));
+ IoTDB.schemaProcessor.createAlignedTimeSeries(
+ new PartialPath(sgName + PATH_SEPARATOR + "device0"),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getMeasurementId)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream().map(MeasurementSchema::getType).collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getEncodingType)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getCompressor)
+ .collect(Collectors.toList()));
+ IoTDB.schemaProcessor.createAlignedTimeSeries(
+ new PartialPath(sgName + PATH_SEPARATOR + "device1"),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getMeasurementId)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream().map(MeasurementSchema::getType).collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getEncodingType)
+ .collect(Collectors.toList()),
+ measurementSchemas.stream()
+ .map(MeasurementSchema::getCompressor)
+ .collect(Collectors.toList()));
+ for (MeasurementSchema measurementSchema : measurementSchemas) {
+ IoTDB.schemaProcessor.createTimeseries(
+ new PartialPath(
+ sgName
+ + PATH_SEPARATOR
+ + "device2"
+ + PATH_SEPARATOR
+ + measurementSchema.getMeasurementId()),
+ measurementSchema.getType(),
+ measurementSchema.getEncodingType(),
+ measurementSchema.getCompressor(),
+ Collections.emptyMap());
+ }
+ }
+
+ private static void removeFiles(
+ List<TsFileResource> seqResources, List<TsFileResource> unseqResources) throws IOException {
+ for (TsFileResource tsFileResource : seqResources) {
+ tsFileResource.remove();
+ }
+ for (TsFileResource tsFileResource : unseqResources) {
+ tsFileResource.remove();
+ }
+
+ FileReaderManager.getInstance().closeAndRemoveAllOpenedReaders();
+ }
+}