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/12/15 12:20:41 UTC
[iotdb] 01/03: Delete Stale Old Standalone Code
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch DeleteStaleQueryCode
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit cc258187d1eeb400bd276e287bd5a97780eaaeeb
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Thu Dec 15 15:57:55 2022 +0800
Delete Stale Old Standalone Code
---
.../thrift/ConfigNodeRPCServiceProcessor.java | 8 +-
docs/Development/ContributeGuide.md | 14 -
docs/zh/Development/ContributeGuide.md | 11 -
.../apache/iotdb/trigger/old/TriggerExample.java | 147 --
.../confignode/it/IoTDBClusterAuthorityIT.java | 62 +-
.../iotdb/db/integration/IoTDBAuthorizationIT.java | 1127 ---------
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 291 ---
.../iotdb/db/integration/IoTDBSelectIntoIT.java | 796 ------
.../db/integration/IoTDBSequenceDataQueryIT.java | 329 ---
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 444 ----
.../aggregation/IoTDBUDFNestAggregationIT.java | 774 ------
.../IoTDBUserDefinedAggregationFunctionIT.java | 732 ------
.../db/integration/aligned/AlignedWriteUtil.java | 149 --
.../db/integration/aligned/IoTDBEmptyDataIT.java | 78 -
.../aligned/IoTDBGroupByFillQueryBigDataIT.java | 192 --
.../aligned/IoTDBGroupByFillQueryIT.java | 989 --------
.../aligned/IoTDBLoadExternalAlignedTsFileIT.java | 1037 --------
.../aligned/IoTDBRawQueryWithValueFilter2IT.java | 65 -
.../aligned/IoTDBRawQueryWithValueFilterIT.java | 763 ------
...oTDBRawQueryWithValueFilterWithDeletion2IT.java | 82 -
...IoTDBRawQueryWithValueFilterWithDeletionIT.java | 778 ------
.../db/integration/groupby/IoTDBGroupByFillIT.java | 2657 --------------------
.../groupby/IoTDBGroupByFillMixPathsIT.java | 479 ----
.../groupby/IoTDBGroupByFillWithRangeIT.java | 179 --
.../groupby/IoTDBGroupByNaturalMonthFillIT.java | 273 --
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 42 -
.../java/org/apache/iotdb/jdbc/ListDataSet.java | 53 -
.../metadata/rocksdb/RocksDBBenchmarkEngine.java | 139 +-
.../metadata/tagSchemaRegion/TagSchemaRegion.java | 9 +-
.../tagSchemaRegion/TagSchemaRegionTest.java | 18 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 131 -
.../apache/iotdb/db/auth/AuthorizerManager.java | 7 +-
.../iotdb/db/auth/ClusterAuthorityFetcher.java | 10 +-
.../iotdb/db/auth/StandaloneAuthorityFetcher.java | 125 -
.../iotdb/db/client/DataNodeInternalClient.java | 15 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 5 +-
.../iotdb/db/engine/storagegroup/DataRegion.java | 64 +-
.../trigger/sink/local/LocalIoTDBHandler.java | 95 -
.../iotdb/db/localconfignode/LocalConfigNode.java | 9 +-
.../db/localconfignode/LocalDataPartitionInfo.java | 1 +
.../localconfignode/LocalDataPartitionTable.java | 1 +
.../localconfignode/LocalSchemaPartitionTable.java | 1 +
.../iotdb/db/metadata/LocalSchemaProcessor.java | 6 +-
.../iotdb/db/metadata/idtable/IDTableManager.java | 27 +-
.../iotdb/db/metadata/logfile/MLogReader.java | 75 -
.../iotdb/db/metadata/logfile/MLogWriter.java | 254 --
.../storagegroup/StorageGroupLogReader.java | 47 -
.../storagegroup/StorageGroupLogWriter.java | 56 -
.../storagegroup/StorageGroupSchemaManager.java | 124 +-
.../iotdb/db/metadata/template/Template.java | 53 +-
.../db/metadata/utils/ResourceByPathUtils.java | 34 -
.../db/mpp/aggregation/AccumulatorFactory.java | 2 +-
.../SlidingWindowAggregatorFactory.java | 2 +-
.../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 10 +-
.../iotdb/db/mpp/plan/analyze/SchemaValidator.java | 6 +-
.../plan/analyze/StandalonePartitionFetcher.java | 252 --
.../mpp/plan/analyze/StandaloneSchemaFetcher.java | 227 --
.../mpp/plan/execution/config/ConfigExecution.java | 7 +-
.../executor/StandaloneConfigTaskExecutor.java | 728 ------
.../iotdb/db/mpp/plan/expression/Expression.java | 27 -
.../iotdb/db/mpp/plan/expression/ResultColumn.java | 61 -
.../plan/expression/binary/BinaryExpression.java | 96 -
.../mpp/plan/expression/leaf/ConstantOperand.java | 26 -
.../db/mpp/plan/expression/leaf/NullOperand.java | 27 -
.../plan/expression/leaf/TimeSeriesOperand.java | 31 -
.../mpp/plan/expression/leaf/TimestampOperand.java | 27 -
.../plan/expression/multi/FunctionExpression.java | 49 -
.../plan/expression/ternary/TernaryExpression.java | 50 -
.../mpp/plan/expression/unary/UnaryExpression.java | 37 -
.../iotdb/db/mpp/plan/parser/ASTVisitor.java | 36 +-
.../db/mpp/plan/planner/LogicalPlanBuilder.java | 2 +-
.../plan/parameter/AggregationDescriptor.java | 1 -
.../planner/plan/parameter}/AggregationType.java | 2 +-
.../iotdb/db/mpp/plan/statement/AuthorType.java | 122 +
.../db/mpp/plan/statement/sys/AuthorStatement.java | 12 +-
.../mpp/transformation/dag/builder/DAGBuilder.java | 116 -
.../dag/input/QueryDataSetInputLayer.java | 41 -
.../protocol/influxdb/util/QueryResultUtils.java | 90 -
.../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 11 +-
.../protocol/rest/impl/GrafanaApiServiceImpl.java | 11 +-
.../db/protocol/rest/impl/RestApiServiceImpl.java | 11 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 154 --
.../apache/iotdb/db/qp/executor/IPlanExecutor.java | 55 -
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 946 -------
.../org/apache/iotdb/db/qp/logical/Operator.java | 13 -
.../qp/logical/crud/AggregationQueryOperator.java | 155 --
.../db/qp/logical/crud/DeleteDataOperator.java | 73 -
.../db/qp/logical/crud/FillClauseComponent.java | 49 -
.../db/qp/logical/crud/FillQueryOperator.java | 92 -
.../db/qp/logical/crud/GroupByClauseComponent.java | 92 -
.../logical/crud/GroupByFillClauseComponent.java | 49 -
.../qp/logical/crud/GroupByFillQueryOperator.java | 80 -
.../db/qp/logical/crud/GroupByQueryOperator.java | 111 -
.../iotdb/db/qp/logical/crud/InOperator.java | 212 --
.../iotdb/db/qp/logical/crud/InsertOperator.java | 90 -
.../db/qp/logical/crud/LastQueryOperator.java | 64 -
.../iotdb/db/qp/logical/crud/LikeOperator.java | 134 -
.../iotdb/db/qp/logical/crud/QueryOperator.java | 421 ----
.../iotdb/db/qp/logical/crud/RegexpOperator.java | 133 -
.../db/qp/logical/crud/SelectIntoOperator.java | 133 -
.../db/qp/logical/crud/UDAFQueryOperator.java | 179 --
.../db/qp/logical/crud/UDTFQueryOperator.java | 48 -
.../qp/logical/sys/ActivateTemplateOperator.java | 51 -
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 116 -
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 233 --
.../db/qp/logical/sys/ClearCacheOperator.java | 39 -
.../iotdb/db/qp/logical/sys/CountOperator.java | 73 -
.../sys/CreateAlignedTimeSeriesOperator.java | 184 --
.../logical/sys/CreateContinuousQueryOperator.java | 108 -
.../db/qp/logical/sys/CreateFunctionOperator.java | 59 -
.../db/qp/logical/sys/CreateIndexOperator.java | 84 -
.../db/qp/logical/sys/CreatePipeOperator.java | 61 -
.../db/qp/logical/sys/CreatePipeSinkOperator.java | 54 -
.../db/qp/logical/sys/CreateTemplateOperator.java | 108 -
.../qp/logical/sys/CreateTimeSeriesOperator.java | 127 -
.../iotdb/db/qp/logical/sys/DataAuthOperator.java | 51 -
.../db/qp/logical/sys/DeletePartitionOperator.java | 61 -
.../qp/logical/sys/DeleteStorageGroupOperator.java | 50 -
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 51 -
.../logical/sys/DropContinuousQueryOperator.java | 50 -
.../db/qp/logical/sys/DropFunctionOperator.java | 50 -
.../iotdb/db/qp/logical/sys/DropIndexOperator.java | 65 -
.../iotdb/db/qp/logical/sys/DropPipeOperator.java | 44 -
.../db/qp/logical/sys/DropPipeSinkOperator.java | 43 -
.../db/qp/logical/sys/DropTemplateOperator.java | 49 -
.../iotdb/db/qp/logical/sys/FlushOperator.java | 62 -
.../iotdb/db/qp/logical/sys/KillQueryOperator.java | 52 -
.../qp/logical/sys/LoadConfigurationOperator.java | 52 -
.../iotdb/db/qp/logical/sys/LoadDataOperator.java | 54 -
.../iotdb/db/qp/logical/sys/LoadFilesOperator.java | 92 -
.../iotdb/db/qp/logical/sys/MergeOperator.java | 44 -
.../db/qp/logical/sys/RemoveFileOperator.java | 49 -
.../db/qp/logical/sys/SetStorageGroupOperator.java | 48 -
.../db/qp/logical/sys/SetSystemModeOperator.java | 54 -
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 61 -
.../db/qp/logical/sys/SetTemplateOperator.java | 65 -
.../iotdb/db/qp/logical/sys/SettleOperator.java | 71 -
.../db/qp/logical/sys/ShowChildNodesOperator.java | 47 -
.../db/qp/logical/sys/ShowChildPathsOperator.java | 47 -
.../logical/sys/ShowContinuousQueriesOperator.java | 28 -
.../db/qp/logical/sys/ShowDevicesOperator.java | 73 -
.../db/qp/logical/sys/ShowFunctionsOperator.java | 38 -
.../db/qp/logical/sys/ShowLockInfoOperator.java | 36 -
.../logical/sys/ShowNodesInTemplateOperator.java | 43 -
.../iotdb/db/qp/logical/sys/ShowOperator.java | 64 -
.../logical/sys/ShowPathsSetTemplateOperator.java | 43 -
.../sys/ShowPathsUsingTemplateOperator.java | 43 -
.../iotdb/db/qp/logical/sys/ShowPipeOperator.java | 45 -
.../db/qp/logical/sys/ShowPipeSinkOperator.java | 45 -
.../qp/logical/sys/ShowPipeSinkTypeOperator.java | 38 -
.../qp/logical/sys/ShowQueryResourceOperate.java | 39 -
.../qp/logical/sys/ShowStorageGroupOperator.java | 47 -
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 48 -
.../db/qp/logical/sys/ShowTemplatesOperator.java | 27 -
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 103 -
.../db/qp/logical/sys/ShowTriggersOperator.java | 38 -
.../iotdb/db/qp/logical/sys/StartPipeOperator.java | 44 -
.../iotdb/db/qp/logical/sys/StopPipeOperator.java | 44 -
.../iotdb/db/qp/logical/sys/TracingOperator.java | 46 -
.../iotdb/db/qp/logical/sys/UnSetTTLOperator.java | 52 -
.../db/qp/logical/sys/UnloadFileOperator.java | 55 -
.../db/qp/logical/sys/UnsetTemplateOperator.java | 65 -
.../org/apache/iotdb/db/qp/physical/BatchPlan.java | 73 -
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 253 --
.../iotdb/db/qp/physical/crud/AggregationPlan.java | 226 --
.../db/qp/physical/crud/AlignByDevicePlan.java | 285 ---
.../iotdb/db/qp/physical/crud/FillQueryPlan.java | 61 -
.../db/qp/physical/crud/GroupByTimeFillPlan.java | 118 -
.../iotdb/db/qp/physical/crud/GroupByTimePlan.java | 138 -
.../iotdb/db/qp/physical/crud/LastQueryPlan.java | 87 -
.../iotdb/db/qp/physical/crud/MeasurementInfo.java | 62 -
.../iotdb/db/qp/physical/crud/QueryIndexPlan.java | 88 -
.../iotdb/db/qp/physical/crud/QueryPlan.java | 257 --
.../db/qp/physical/crud/RawDataQueryPlan.java | 217 --
.../iotdb/db/qp/physical/crud/SelectIntoPlan.java | 130 -
.../apache/iotdb/db/qp/physical/crud/UDAFPlan.java | 81 -
.../apache/iotdb/db/qp/physical/crud/UDFPlan.java | 43 -
.../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 149 --
.../sys/ActivateTemplateInClusterPlan.java | 127 -
.../db/qp/physical/sys/ActivateTemplatePlan.java | 87 -
.../db/qp/physical/sys/AlterTimeSeriesPlan.java | 212 --
.../db/qp/physical/sys/AppendTemplatePlan.java | 218 --
.../iotdb/db/qp/physical/sys/AuthorPlan.java | 406 ---
.../qp/physical/sys/AutoCreateDeviceMNodePlan.java | 89 -
.../iotdb/db/qp/physical/sys/ChangeAliasPlan.java | 116 -
.../db/qp/physical/sys/ChangeTagOffsetPlan.java | 116 -
.../iotdb/db/qp/physical/sys/ClearCachePlan.java | 55 -
.../apache/iotdb/db/qp/physical/sys/CountPlan.java | 53 -
.../physical/sys/CreateAlignedTimeSeriesPlan.java | 66 -
.../qp/physical/sys/CreateContinuousQueryPlan.java | 156 --
.../db/qp/physical/sys/CreateFunctionPlan.java | 81 -
.../iotdb/db/qp/physical/sys/CreateIndexPlan.java | 180 --
.../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 398 ---
.../db/qp/physical/sys/CreateTemplatePlan.java | 516 ----
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 35 -
.../iotdb/db/qp/physical/sys/DataAuthPlan.java | 100 -
.../db/qp/physical/sys/DeleteStorageGroupPlan.java | 84 -
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 139 -
.../qp/physical/sys/DropContinuousQueryPlan.java | 63 -
.../iotdb/db/qp/physical/sys/DropFunctionPlan.java | 69 -
.../iotdb/db/qp/physical/sys/DropIndexPlan.java | 129 -
.../iotdb/db/qp/physical/sys/DropTemplatePlan.java | 78 -
.../apache/iotdb/db/qp/physical/sys/FlushPlan.java | 244 --
.../iotdb/db/qp/physical/sys/KillQueryPlan.java | 45 -
.../db/qp/physical/sys/LoadConfigurationPlan.java | 144 --
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 73 -
.../apache/iotdb/db/qp/physical/sys/LogPlan.java | 75 -
.../apache/iotdb/db/qp/physical/sys/MNodePlan.java | 116 -
.../db/qp/physical/sys/MeasurementMNodePlan.java | 154 --
.../apache/iotdb/db/qp/physical/sys/MergePlan.java | 59 -
.../iotdb/db/qp/physical/sys/OperateFilePlan.java | 119 -
.../qp/physical/sys/PreDeleteTimeSeriesPlan.java | 80 -
.../db/qp/physical/sys/PruneTemplatePlan.java | 107 -
.../sys/RollbackPreDeleteTimeSeriesPlan.java | 81 -
.../db/qp/physical/sys/SetStorageGroupPlan.java | 100 -
.../db/qp/physical/sys/SetSystemModePlan.java | 76 -
.../iotdb/db/qp/physical/sys/SetTTLPlan.java | 102 -
.../iotdb/db/qp/physical/sys/SetTemplatePlan.java | 107 -
.../iotdb/db/qp/physical/sys/SettlePlan.java | 65 -
.../db/qp/physical/sys/ShowChildNodesPlan.java | 39 -
.../db/qp/physical/sys/ShowChildPathsPlan.java | 39 -
.../qp/physical/sys/ShowContinuousQueriesPlan.java | 27 -
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 10 -
.../db/qp/physical/sys/ShowFunctionsPlan.java | 27 -
.../iotdb/db/qp/physical/sys/ShowLockInfoPlan.java | 36 -
.../qp/physical/sys/ShowNodesInTemplatePlan.java | 34 -
.../qp/physical/sys/ShowPathsSetTemplatePlan.java | 34 -
.../physical/sys/ShowPathsUsingTemplatePlan.java | 34 -
.../qp/physical/sys/ShowQueryProcesslistPlan.java | 26 -
.../db/qp/physical/sys/ShowQueryResourcePlan.java | 38 -
.../db/qp/physical/sys/ShowStorageGroupPlan.java | 36 -
.../iotdb/db/qp/physical/sys/ShowTTLPlan.java | 42 -
.../db/qp/physical/sys/ShowTemplatesPlan.java | 27 -
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 14 -
.../iotdb/db/qp/physical/sys/ShowTriggersPlan.java | 27 -
.../db/qp/physical/sys/StorageGroupMNodePlan.java | 110 -
.../iotdb/db/qp/physical/sys/TracingPlan.java | 45 -
.../db/qp/physical/sys/UnsetTemplatePlan.java | 109 -
.../iotdb/db/qp/strategy/LogicalChecker.java | 46 -
.../iotdb/db/qp/strategy/LogicalGenerator.java | 131 -
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 59 -
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 408 ---
.../qp/strategy/optimizer/DnfFilterOptimizer.java | 163 --
.../db/qp/strategy/optimizer/IFilterOptimizer.java | 29 -
.../qp/strategy/optimizer/ILogicalOptimizer.java | 30 -
.../optimizer/MergeSingleFilterOptimizer.java | 179 --
.../qp/strategy/optimizer/RemoveNotOptimizer.java | 104 -
.../iotdb/db/qp/utils/EmptyOutputStream.java | 35 -
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 150 --
.../db/query/aggregation/AggregateResult.java | 377 ---
.../aggregation/RemovableAggregateResult.java | 30 -
.../db/query/aggregation/impl/AvgAggrResult.java | 222 --
.../db/query/aggregation/impl/CountAggrResult.java | 122 -
.../query/aggregation/impl/ExtremeAggrResult.java | 175 --
.../aggregation/impl/FirstValueAggrResult.java | 141 --
.../aggregation/impl/FirstValueDescAggrResult.java | 88 -
.../aggregation/impl/LastValueAggrResult.java | 131 -
.../aggregation/impl/LastValueDescAggrResult.java | 110 -
.../query/aggregation/impl/MaxTimeAggrResult.java | 119 -
.../aggregation/impl/MaxTimeDescAggrResult.java | 92 -
.../query/aggregation/impl/MaxValueAggrResult.java | 126 -
.../query/aggregation/impl/MinTimeAggrResult.java | 134 -
.../aggregation/impl/MinTimeDescAggrResult.java | 76 -
.../query/aggregation/impl/MinValueAggrResult.java | 124 -
.../db/query/aggregation/impl/SumAggrResult.java | 172 --
.../iotdb/db/query/context/QueryContext.java | 9 -
.../db/query/control/QueryResourceManager.java | 98 +-
.../iotdb/db/query/control/QueryTimeManager.java | 151 --
.../iotdb/db/query/control/SessionManager.java | 40 -
.../db/query/control/tracing/TracingConstant.java | 30 -
.../db/query/control/tracing/TracingInfo.java | 164 --
.../db/query/control/tracing/TracingManager.java | 88 -
.../db/query/dataset/AlignByDeviceDataSet.java | 281 ---
.../db/query/dataset/DirectAlignByTimeDataSet.java | 34 -
.../db/query/dataset/DirectNonAlignDataSet.java | 32 -
.../apache/iotdb/db/query/dataset/ListDataSet.java | 61 -
.../db/query/dataset/NonAlignEngineDataSet.java | 353 ---
.../dataset/RawQueryDataSetWithValueFilter.java | 264 --
.../dataset/RawQueryDataSetWithoutValueFilter.java | 728 ------
.../query/dataset/ShowContinuousQueriesResult.java | 75 -
.../apache/iotdb/db/query/dataset/ShowDataSet.java | 69 -
.../iotdb/db/query/dataset/ShowDevicesDataSet.java | 86 -
.../db/query/dataset/ShowTimeseriesDataSet.java | 109 -
.../iotdb/db/query/dataset/SingleDataSet.java | 56 -
.../iotdb/db/query/dataset/UDFInputDataSet.java | 67 -
.../UDFRawQueryInputDataSetWithoutValueFilter.java | 68 -
.../db/query/dataset/UDTFAlignByTimeDataSet.java | 373 ---
.../apache/iotdb/db/query/dataset/UDTFDataSet.java | 145 --
.../db/query/dataset/UDTFNonAlignDataSet.java | 216 --
.../query/dataset/groupby/GroupByFillDataSet.java | 340 ---
.../query/dataset/groupby/GroupByLevelDataSet.java | 93 -
.../query/dataset/groupby/GroupByTimeDataSet.java | 165 --
.../dataset/groupby/GroupByTimeEngineDataSet.java | 93 -
.../groupby/GroupByWithValueFilterDataSet.java | 234 --
.../groupby/GroupByWithoutValueFilterDataSet.java | 161 --
.../db/query/executor/AggregationExecutor.java | 706 ------
.../iotdb/db/query/executor/FillQueryExecutor.java | 206 --
.../iotdb/db/query/executor/IQueryRouter.java | 74 -
.../iotdb/db/query/executor/LastQueryExecutor.java | 285 ---
.../iotdb/db/query/executor/QueryRouter.java | 274 --
.../db/query/executor/RawDataQueryExecutor.java | 185 --
.../iotdb/db/query/executor/UDFQueryExecutor.java | 112 -
.../executor/fill/AlignedLastPointReader.java | 58 -
.../apache/iotdb/db/query/executor/fill/IFill.java | 150 --
.../db/query/executor/fill/LastPointReader.java | 266 --
.../iotdb/db/query/executor/fill/LinearFill.java | 263 --
.../iotdb/db/query/executor/fill/PreviousFill.java | 138 -
.../iotdb/db/query/executor/fill/ValueFill.java | 152 --
.../executor/groupby/AlignedGroupByExecutor.java | 37 -
.../db/query/executor/groupby/GroupByExecutor.java | 40 -
.../groupby/SlidingWindowGroupByExecutor.java | 66 -
.../SlidingWindowGroupByExecutorFactory.java | 117 -
.../EmptyQueueSlidingWindowGroupByExecutor.java | 51 -
.../groupby/impl/LocalAlignedGroupByExecutor.java | 366 ---
.../groupby/impl/LocalGroupByExecutor.java | 367 ---
...MonotonicQueueSlidingWindowGroupByExecutor.java | 73 -
.../NormalQueueSlidingWindowGroupByExecutor.java | 61 -
.../SmoothQueueSlidingWindowGroupByExecutor.java | 55 -
.../db/query/externalsort/ExternalSortJob.java | 43 -
.../query/externalsort/ExternalSortJobEngine.java | 52 -
.../db/query/externalsort/ExternalSortJobPart.java | 43 -
.../externalsort/ExternalSortJobScheduler.java | 40 -
.../iotdb/db/query/externalsort/LineMerger.java | 55 -
.../MultiSourceExternalSortJobPart.java | 50 -
.../externalsort/SimpleExternalSortEngine.java | 178 --
.../SingleSourceExternalSortJobPart.java | 39 -
.../adapter/ByTimestampReaderAdapter.java | 73 -
.../serialize/IExternalSortFileDeserializer.java | 32 -
.../serialize/IExternalSortFileSerializer.java | 30 -
.../FixLengthIExternalSortFileDeserializer.java | 267 --
.../impl/FixLengthTimeValuePairSerializer.java | 169 --
.../db/query/factory/AggregateResultFactory.java | 150 --
.../iotdb/db/query/pool/QueryTaskManager.java | 90 -
.../db/query/pool/RawQueryReadTaskPoolManager.java | 104 -
.../pool/RawQueryReadTaskPoolManagerMetrics.java | 92 -
.../db/query/reader/chunk/ChunkDataIterator.java | 79 -
.../db/query/reader/chunk/ChunkReaderWrap.java | 95 -
.../reader/chunk/DiskChunkReaderByTimestamp.java | 82 -
.../resource/CachedUnseqResourceMergeReader.java | 43 -
.../series/AlignedSeriesAggregateReader.java | 189 --
.../reader/series/BaseManagedSeriesReader.java | 45 -
.../db/query/reader/series/IAggregateReader.java | 57 -
.../db/query/reader/series/IReaderByTimestamp.java | 47 -
.../query/reader/series/ManagedSeriesReader.java | 37 -
.../query/reader/series/SeriesAggregateReader.java | 175 --
.../reader/series/SeriesRawDataBatchReader.java | 63 +-
.../reader/series/SeriesRawDataPointReader.java | 87 -
.../iotdb/db/query/reader/series/SeriesReader.java | 51 -
.../reader/series/SeriesReaderByTimestamp.java | 189 --
.../reader/universal/PriorityMergeReader.java | 10 -
.../query/timegenerator/ServerTimeGenerator.java | 182 --
.../java/org/apache/iotdb/db/service/DataNode.java | 8 -
.../java/org/apache/iotdb/db/service/NewIoTDB.java | 232 --
.../org/apache/iotdb/db/service/NewIoTDBMBean.java | 28 -
.../iotdb/db/service/basic/ServiceProvider.java | 100 -
.../service/basic/StandaloneServiceProvider.java | 55 -
.../db/service/metrics/IoTDBInternalReporter.java | 11 +-
.../service/thrift/impl/ClientRPCServiceImpl.java | 143 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 17 +-
.../db/service/thrift/impl/TSServiceImpl.java | 1424 -----------
.../iotdb/db/sync/pipedata/load/ILoader.java | 15 +-
.../db/sync/sender/manager/LocalSyncManager.java | 21 +-
.../java/org/apache/iotdb/db/utils/QueryUtils.java | 34 -
.../org/apache/iotdb/db/utils/SchemaUtils.java | 72 +-
.../iotdb/db/utils/writelog/BatchLogReader.java | 83 -
.../apache/iotdb/db/utils/writelog/ILogReader.java | 50 -
.../apache/iotdb/db/utils/writelog/LogWriter.java | 19 +-
.../db/utils/writelog/MultiFileLogReader.java | 76 -
.../db/utils/writelog/SingleFileLogReader.java | 166 --
.../apache/iotdb/db/auth/AuthorityCheckerTest.java | 264 --
.../db/engine/storagegroup/DataRegionTest.java | 10 -
.../iotdb/db/engine/storagegroup/TTLTest.java | 3 -
.../apache/iotdb/db/metadata/SchemaBasicTest.java | 95 -
.../org/apache/iotdb/db/metadata/TemplateTest.java | 180 --
.../plan/SchemaRegionPlanCompatibilityTest.java | 279 --
.../iotdb/db/mpp/aggregation/AccumulatorTest.java | 2 +-
.../operator/AggregationOperatorTest.java | 2 +-
.../AlignedSeriesAggregationScanOperatorTest.java | 2 +-
.../mpp/execution/operator/OperatorMemoryTest.java | 2 +-
.../operator/RawDataAggregationOperatorTest.java | 2 +-
.../SeriesAggregationScanOperatorTest.java | 2 +-
.../SlidingWindowAggregationOperatorTest.java | 2 +-
.../operator/VerticallyConcatOperatorTest.java | 2 +-
.../db/mpp/plan/StandaloneCoordinatorTest.java | 155 --
.../plan/analyze/AggregationDescriptorTest.java | 2 +-
.../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 2 +-
.../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 2 +-
.../distribution/AggregationDistributionTest.java | 2 +-
.../node/process/AggregationNodeSerdeTest.java | 2 +-
.../node/process/GroupByLevelNodeSerdeTest.java | 2 +-
.../plan/node/process/GroupByTagNodeSerdeTest.java | 2 +-
.../source/SeriesAggregationScanNodeSerdeTest.java | 2 +-
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 289 ---
.../iotdb/db/qp/bench/QueryParseBenchmark.java | 45 -
.../iotdb/db/qp/logical/LogicalPlanSmallTest.java | 365 ---
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 94 -
.../db/qp/utils/DatetimeQueryDataSetUtilsTest.java | 18 +-
.../db/query/aggregation/AggregateResultTest.java | 294 ---
.../query/aggregation/DescAggregateResultTest.java | 190 --
.../iotdb/db/query/dataset/ListDataSetTest.java | 164 --
.../query/dataset/UDTFAlignByTimeDataSetTest.java | 700 ------
.../dataset/groupby/GroupByTimeDataSetTest.java | 492 ----
.../query/externalsort/ExternalSortEngineTest.java | 193 --
.../db/query/externalsort/FakeChunkReaderWrap.java | 43 -
...ExternalSortFileSerializerDeserializerTest.java | 131 -
.../reader/series/SeriesAggregateReaderTest.java | 141 --
.../reader/series/SeriesReaderByTimestampTest.java | 95 -
.../db/query/reader/series/SeriesReaderTest.java | 189 --
.../iotdb/db/tools/TsFileAndModSettleToolTest.java | 2 -
.../apache/iotdb/db/utils/EnvironmentUtils.java | 53 +-
.../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 16 -
.../iotdb/db/utils/TsFileRewriteToolTest.java | 460 ----
.../db/utils/writelog/LogWriterReaderTest.java | 215 --
.../db/utils/writelog/MultiFileLogReaderTest.java | 97 -
.../org/apache/iotdb/spark/db/IoTDBTest.scala | 9 +-
.../org/apache/iotdb/spark/db/IoTDBWriteTest.scala | 14 +-
.../iotdb/spark/db/unit/DataFrameToolsTest.scala | 11 +-
.../tsfile/read/query/dataset/EmptyDataSet.java | 40 -
.../tsfile/read/reader/FakedTimeGenerator.java | 83 -
419 files changed, 438 insertions(+), 54188 deletions(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 2af5115e6e..baf4cb164f 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -140,7 +140,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchemaResp;
import org.apache.iotdb.confignode.rpc.thrift.TUnsetSchemaTemplateReq;
import org.apache.iotdb.confignode.service.ConfigNode;
import org.apache.iotdb.consensus.common.response.ConsensusGenericResponse;
-import org.apache.iotdb.db.qp.logical.sys.AuthorOperator;
+import org.apache.iotdb.db.mpp.plan.statement.AuthorType;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -364,8 +364,7 @@ public class ConfigNodeRPCServiceProcessor implements IConfigNodeRPCService.Ifac
@Override
public TSStatus operatePermission(TAuthorizerReq req) {
- if (req.getAuthorType() < 0
- || req.getAuthorType() >= AuthorOperator.AuthorType.values().length) {
+ if (req.getAuthorType() < 0 || req.getAuthorType() >= AuthorType.values().length) {
throw new IndexOutOfBoundsException("Invalid Author Type ordinal");
}
AuthorPlan plan = null;
@@ -388,8 +387,7 @@ public class ConfigNodeRPCServiceProcessor implements IConfigNodeRPCService.Ifac
@Override
public TAuthorizerResp queryPermission(TAuthorizerReq req) {
- if (req.getAuthorType() < 0
- || req.getAuthorType() >= AuthorOperator.AuthorType.values().length) {
+ if (req.getAuthorType() < 0 || req.getAuthorType() >= AuthorType.values().length) {
throw new IndexOutOfBoundsException("Invalid Author Type ordinal");
}
AuthorPlan plan = null;
diff --git a/docs/Development/ContributeGuide.md b/docs/Development/ContributeGuide.md
index 5ab5b63406..07e82505fa 100644
--- a/docs/Development/ContributeGuide.md
+++ b/docs/Development/ContributeGuide.md
@@ -174,20 +174,6 @@ If the version after eclipse 2019
import -> Maven -> Existing Maven Projects
-## Debugging code
-
-
-* Server main function:`server/src/main/java/org/apache/iotdb/db/service/IoTDB`, can be started in debug mode.
-* Cli:`cli/src/main/java/org/apache/iotdb/cli/`,Use Cli for linux and WinCli for windows, you can start directly with the parameter "`-h 127.0.0.1 -p 6667 -u root -pw root`"
-* Server rpc implementation (mainly used for cli and server communication, generally start interruption point here):`server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl`
-* all jdbc statements:`executeStatement(TSExecuteStatementReq req)`
-* jdbc query:`executeQueryStatement(TSExecuteStatementReq req)`
-* native Write interface:`insertRecord(TSInsertRecordReq req)`
-`insertTablet(TSInsertTabletReq req)`
-
-* Storage engine`org.apache.iotdb.db.engine.StorageEngine`
-* Query engine `org.apache.iotdb.db.qp.QueryProcessor`
-
# Frequent Questions When Compiling the Source Code
diff --git a/docs/zh/Development/ContributeGuide.md b/docs/zh/Development/ContributeGuide.md
index 8a691bd987..e9864e3c2e 100644
--- a/docs/zh/Development/ContributeGuide.md
+++ b/docs/zh/Development/ContributeGuide.md
@@ -155,17 +155,6 @@ import -> General -> Existing Projects into Workspace -> 选择 IoTDB 根目录
import -> Maven -> Existing Maven Projects
-## 调试代码
-
-* 服务器主函数:```server/src/main/java/org/apache/iotdb/db/service/IoTDB```,可以 debug 模式启动
-* 命令行界面:```cli/src/main/java/org/apache/iotdb/cli/```,linux 用 Cli,windows 用 WinCli,可以直接启动。启动时需要参数"-h 127.0.0.1 -p 6667 -u root -pw root"
-* 服务器的 rpc 实现(主要用来客户端和服务器通信,一般在这里开始打断点):```server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl```
- * jdbc 所有语句:executeStatement(TSExecuteStatementReq req)
- * jdbc 查询语句:executeQueryStatement(TSExecuteStatementReq req)
- * native 写入接口:insertRecord(TSInsertRecordReq req)
-
-* 存储引擎 org.apache.iotdb.db.engine.StorageEngine
-* 查询引擎 org.apache.iotdb.db.qp.Planner
# 常见编译错误
diff --git a/example/trigger/src/main/java/org/apache/iotdb/trigger/old/TriggerExample.java b/example/trigger/src/main/java/org/apache/iotdb/trigger/old/TriggerExample.java
deleted file mode 100644
index 6bfe230bd3..0000000000
--- a/example/trigger/src/main/java/org/apache/iotdb/trigger/old/TriggerExample.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * 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.trigger.old;
-
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.engine.trigger.api.Trigger;
-import org.apache.iotdb.db.engine.trigger.sink.local.LocalIoTDBConfiguration;
-import org.apache.iotdb.db.engine.trigger.sink.local.LocalIoTDBEvent;
-import org.apache.iotdb.db.engine.trigger.sink.local.LocalIoTDBHandler;
-import org.apache.iotdb.db.engine.trigger.sink.mqtt.MQTTConfiguration;
-import org.apache.iotdb.db.engine.trigger.sink.mqtt.MQTTEvent;
-import org.apache.iotdb.db.engine.trigger.sink.mqtt.MQTTHandler;
-import org.apache.iotdb.db.utils.windowing.configuration.SlidingSizeWindowConfiguration;
-import org.apache.iotdb.db.utils.windowing.handler.SlidingSizeWindowEvaluationHandler;
-import org.apache.iotdb.trigger.api.TriggerAttributes;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-
-import org.fusesource.mqtt.client.QoS;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TriggerExample implements Trigger {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(TriggerExample.class);
-
- private static final String TARGET_DEVICE = "root.alerting";
-
- private final LocalIoTDBHandler localIoTDBHandler = new LocalIoTDBHandler();
- private final MQTTHandler mqttHandler = new MQTTHandler();
-
- // This field is required when the target MQTT server is current IoTDB.
- // When IoTDB restarts, the registered triggers will be restored before starting the MQTT service.
- // For this trigger, if openSinkHandlers() is called in onCreate(), IoTDB server will be stuck
- // in openSinkHandlers when recovering, because it can't connect to the MQTT server (not started
- // yet).
- // See IOTDB-2274 for more detail.
- private volatile boolean isSinksOpenedAfterCreation = false;
-
- private SlidingSizeWindowEvaluationHandler windowEvaluationHandler;
-
- @Override
- public void onCreate(TriggerAttributes attributes) throws Exception {
- LOGGER.info("onCreate(TriggerAttributes attributes)");
-
- double lo = attributes.getDouble("lo");
- double hi = attributes.getDouble("hi");
-
- windowEvaluationHandler =
- new SlidingSizeWindowEvaluationHandler(
- new SlidingSizeWindowConfiguration(TSDataType.DOUBLE, 5, 5),
- window -> {
- double avg = 0;
- for (int i = 0; i < window.size(); ++i) {
- avg += window.getDouble(i);
- }
- avg /= window.size();
-
- if (avg < lo || hi < avg) {
- localIoTDBHandler.onEvent(new LocalIoTDBEvent(window.getTime(0), avg));
- mqttHandler.onEvent(
- new MQTTEvent("test", QoS.EXACTLY_ONCE, false, window.getTime(0), avg));
- }
- });
- }
-
- @Override
- public void onDrop() throws Exception {
- LOGGER.info("onDrop()");
- closeSinkHandlers();
- }
-
- @Override
- public void onStart() throws Exception {
- LOGGER.info("onStart()");
- openSinkHandlers();
- }
-
- @Override
- public void onStop() throws Exception {
- LOGGER.info("onStop()");
- closeSinkHandlers();
- }
-
- @Override
- public Double fire(long timestamp, Double value, PartialPath path) throws Exception {
- tryOpenSinksFirstOnFire();
- windowEvaluationHandler.collect(timestamp, value);
- return value;
- }
-
- @Override
- public double[] fire(long[] timestamps, double[] values, PartialPath path) throws Exception {
- tryOpenSinksFirstOnFire();
- for (int i = 0; i < timestamps.length; ++i) {
- windowEvaluationHandler.collect(timestamps[i], values[i]);
- }
- return values;
- }
-
- // See IOTDB-2274 for more detail.
- private void tryOpenSinksFirstOnFire() throws Exception {
- if (!isSinksOpenedAfterCreation) {
- synchronized (this) {
- if (!isSinksOpenedAfterCreation) {
- openSinkHandlers();
- isSinksOpenedAfterCreation = true;
- }
- }
- }
- }
-
- private void openSinkHandlers() throws Exception {
- localIoTDBHandler.open(
- new LocalIoTDBConfiguration(
- TARGET_DEVICE, new String[] {"local"}, new TSDataType[] {TSDataType.DOUBLE}));
- mqttHandler.open(
- new MQTTConfiguration(
- "127.0.0.1",
- 1883,
- "root",
- "root",
- new PartialPath(TARGET_DEVICE),
- new String[] {"remote"}));
- }
-
- private void closeSinkHandlers() throws Exception {
- localIoTDBHandler.close();
- mqttHandler.close();
- }
-}
diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
index db23693692..7a6dfc6b69 100644
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
@@ -26,7 +26,7 @@ import org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
-import org.apache.iotdb.db.qp.logical.sys.AuthorOperator;
+import org.apache.iotdb.db.mpp.plan.statement.AuthorType;
import org.apache.iotdb.it.env.EnvFactory;
import org.apache.iotdb.it.framework.IoTDBTestRunner;
import org.apache.iotdb.itbase.category.ClusterIT;
@@ -70,7 +70,7 @@ public class IoTDBClusterAuthorityIT {
// clean user
TAuthorizerReq authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER.ordinal(),
+ AuthorType.LIST_USER.ordinal(),
"",
"",
"",
@@ -86,7 +86,7 @@ public class IoTDBClusterAuthorityIT {
if (!user.equals("root")) {
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.DROP_USER.ordinal(),
+ AuthorType.DROP_USER.ordinal(),
user,
"",
"",
@@ -136,7 +136,7 @@ public class IoTDBClusterAuthorityIT {
// create user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.CREATE_USER.ordinal(),
+ AuthorType.CREATE_USER.ordinal(),
"tempuser0",
"",
"passwd",
@@ -158,7 +158,7 @@ public class IoTDBClusterAuthorityIT {
// drop user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.DROP_USER.ordinal(),
+ AuthorType.DROP_USER.ordinal(),
"tempuser1",
"",
"",
@@ -171,13 +171,7 @@ public class IoTDBClusterAuthorityIT {
// list user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER.ordinal(),
- "",
- "",
- "",
- "",
- new HashSet<>(),
- new ArrayList<>());
+ AuthorType.LIST_USER.ordinal(), "", "", "", "", new HashSet<>(), new ArrayList<>());
authorizerResp = client.queryPermission(authorizerReq);
status = authorizerResp.getStatus();
assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), status.getCode());
@@ -187,7 +181,7 @@ public class IoTDBClusterAuthorityIT {
// create role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.CREATE_ROLE.ordinal(),
+ AuthorType.CREATE_ROLE.ordinal(),
"",
"temprole0",
"",
@@ -203,7 +197,7 @@ public class IoTDBClusterAuthorityIT {
// drop role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.DROP_ROLE.ordinal(),
+ AuthorType.DROP_ROLE.ordinal(),
"",
"temprole1",
"",
@@ -216,13 +210,7 @@ public class IoTDBClusterAuthorityIT {
// list role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_ROLE.ordinal(),
- "",
- "",
- "",
- "",
- new HashSet<>(),
- new ArrayList<>());
+ AuthorType.LIST_ROLE.ordinal(), "", "", "", "", new HashSet<>(), new ArrayList<>());
authorizerResp = client.queryPermission(authorizerReq);
status = authorizerResp.getStatus();
assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), status.getCode());
@@ -232,7 +220,7 @@ public class IoTDBClusterAuthorityIT {
// alter user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.UPDATE_USER.ordinal(),
+ AuthorType.UPDATE_USER.ordinal(),
"tempuser0",
"",
"",
@@ -247,7 +235,7 @@ public class IoTDBClusterAuthorityIT {
nodeNameList.add("root.ln.**");
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.GRANT_USER.ordinal(),
+ AuthorType.GRANT_USER.ordinal(),
"tempuser0",
"",
"",
@@ -266,7 +254,7 @@ public class IoTDBClusterAuthorityIT {
// grant role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.GRANT_ROLE.ordinal(),
+ AuthorType.GRANT_ROLE.ordinal(),
"",
"temprole0",
"",
@@ -279,7 +267,7 @@ public class IoTDBClusterAuthorityIT {
// grant role to user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.GRANT_USER_ROLE.ordinal(),
+ AuthorType.GRANT_USER_ROLE.ordinal(),
"tempuser0",
"temprole0",
"",
@@ -292,7 +280,7 @@ public class IoTDBClusterAuthorityIT {
// revoke user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.REVOKE_USER.ordinal(),
+ AuthorType.REVOKE_USER.ordinal(),
"tempuser0",
"",
"",
@@ -305,7 +293,7 @@ public class IoTDBClusterAuthorityIT {
// revoke role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.REVOKE_ROLE.ordinal(),
+ AuthorType.REVOKE_ROLE.ordinal(),
"",
"temprole0",
"",
@@ -318,7 +306,7 @@ public class IoTDBClusterAuthorityIT {
// list privileges user on root.ln.**
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER_PRIVILEGE.ordinal(),
+ AuthorType.LIST_USER_PRIVILEGE.ordinal(),
"tempuser0",
"",
"",
@@ -334,7 +322,7 @@ public class IoTDBClusterAuthorityIT {
// list privileges user on root.**
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER_PRIVILEGE.ordinal(),
+ AuthorType.LIST_USER_PRIVILEGE.ordinal(),
"tempuser0",
"",
"",
@@ -350,7 +338,7 @@ public class IoTDBClusterAuthorityIT {
// list user privileges
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER_PRIVILEGE.ordinal(),
+ AuthorType.LIST_USER_PRIVILEGE.ordinal(),
"tempuser0",
"",
"",
@@ -366,7 +354,7 @@ public class IoTDBClusterAuthorityIT {
// list privileges role on root.ln.**
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
+ AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
"",
"temprole0",
"",
@@ -383,7 +371,7 @@ public class IoTDBClusterAuthorityIT {
// list privileges role on root.**
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
+ AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
"",
"temprole0",
"",
@@ -399,7 +387,7 @@ public class IoTDBClusterAuthorityIT {
// list role privileges
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
+ AuthorType.LIST_ROLE_PRIVILEGE.ordinal(),
"",
"temprole0",
"",
@@ -415,7 +403,7 @@ public class IoTDBClusterAuthorityIT {
// list all role of user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_ROLE.ordinal(),
+ AuthorType.LIST_ROLE.ordinal(),
"tempuser0",
"",
"",
@@ -431,7 +419,7 @@ public class IoTDBClusterAuthorityIT {
// list all user of role
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER.ordinal(),
+ AuthorType.LIST_USER.ordinal(),
"",
"temprole0",
"",
@@ -448,7 +436,7 @@ public class IoTDBClusterAuthorityIT {
// revoke role from user
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.REVOKE_USER_ROLE.ordinal(),
+ AuthorType.REVOKE_USER_ROLE.ordinal(),
"tempuser0",
"temprole0",
"",
@@ -461,7 +449,7 @@ public class IoTDBClusterAuthorityIT {
// list root privileges
authorizerReq =
new TAuthorizerReq(
- AuthorOperator.AuthorType.LIST_USER_PRIVILEGE.ordinal(),
+ AuthorType.LIST_USER_PRIVILEGE.ordinal(),
"root",
"",
"",
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java
deleted file mode 100644
index ba305fd321..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBAuthorizationIT.java
+++ /dev/null
@@ -1,1127 +0,0 @@
-/*
- * 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.integration;
-
-import org.apache.iotdb.commons.auth.entity.PrivilegeType;
-import org.apache.iotdb.db.auth.AuthorityChecker;
-import org.apache.iotdb.db.mpp.common.header.ColumnHeaderConstant;
-import org.apache.iotdb.db.qp.logical.Operator;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.rpc.TSStatusCode;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.BatchUpdateException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class})
-public class IoTDBAuthorizationIT {
-
- @Before
- public void setUp() {
- EnvironmentUtils.envSetUp();
- }
-
- @After
- public void tearDown() throws Exception {
- EnvironmentUtils.cleanEnv();
- }
-
- @Test
- public void allPrivilegesTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.a"));
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN"));
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (100, 100)"));
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES ALL on root.**");
-
- userStmt.execute("CREATE DATABASE root.a");
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
- userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (100, 100)");
- userStmt.execute("SELECT * from root.a");
- userStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON root.a");
- userStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.b.b");
-
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES ALL on root.**");
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.b.b");
-
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.b"));
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("CREATE TIMESERIES root.b.b WITH DATATYPE=INT32,ENCODING=PLAIN"));
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("INSERT INTO root.b(timestamp, b) VALUES (100, 100)"));
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT * from root.a"));
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a"));
- }
- }
- }
-
- @Test
- public void testSetDeleteSG() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER sgtest 'sgtest'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "sgtest", "sgtest");
- Statement userStmt = userCon.createStatement()) {
-
- Assert.assertThrows(
- SQLException.class, () -> userStmt.execute("CREATE DATABASE root.sgtest"));
-
- adminStmt.execute("GRANT USER sgtest PRIVILEGES SET_STORAGE_GROUP ON root.sgtest");
-
- try {
- userStmt.execute("CREATE DATABASE root.sgtest");
- } catch (SQLException e) {
- fail(e.getMessage());
- }
-
- Assert.assertThrows(
- SQLException.class, () -> userStmt.execute("DELETE DATABASE root.sgtest"));
-
- adminStmt.execute("GRANT USER sgtest PRIVILEGES DELETE_STORAGE_GROUP ON root.sgtest");
-
- try {
- userStmt.execute("DELETE DATABASE root.sgtest");
- } catch (SQLException e) {
- fail(e.getMessage());
- }
- }
- }
- }
-
- @Test
- public void testTriggerPrivileges() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER trigger_user 'trigger_user'");
- setUpForTriggerRelatedPrivilegesTests(adminStmt);
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "trigger_user", "trigger_user");
- Statement userStmt = userCon.createStatement()) {
- executeTriggerRelatedPrivilegesTests(adminStmt, userStmt);
- }
- }
- }
-
- private static void setUpForTriggerRelatedPrivilegesTests(Statement adminStmt)
- throws SQLException {
- adminStmt.execute(
- "create timeseries root.ln.wf01.wt01.temperature with datatype=FLOAT,encoding=RLE");
- adminStmt.execute(
- "create timeseries root.ln.wf02.wt02.hardware with datatype=TEXT,encoding=PLAIN");
- adminStmt.execute(
- "create timeseries root.ln.wf03.wt03.software with datatype=DOUBLE,encoding=PLAIN");
- adminStmt.execute(
- "create trigger `started-trigger` before insert on root.ln.wf01.wt01.temperature as 'org.apache.iotdb.db.engine.trigger.example.Accumulator'");
- adminStmt.execute(
- "create trigger `stopped-trigger` after insert on root.ln.wf02.wt02.hardware as 'org.apache.iotdb.db.engine.trigger.example.Counter'");
- adminStmt.execute("stop trigger `stopped-trigger`");
- }
-
- private static void executeTriggerRelatedPrivilegesTests(
- Statement adminStmt, Statement userStmt) {
- String[] userStatements = {
- "create trigger magic before insert on root.ln.wf03.wt03.software as 'org.apache.iotdb.db.engine.trigger.example.Accumulator'",
- "stop trigger `started-trigger`",
- "drop trigger `started-trigger`",
- "start trigger `stopped-trigger`",
- };
- for (String statement : userStatements) {
- try {
- userStmt.execute(statement);
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains(TSStatusCode.NO_PERMISSION.getStatusCode() + ""));
- continue;
- }
- fail();
- }
-
- String[] adminStatements =
- new String[] {
- "GRANT USER trigger_user PRIVILEGES CREATE_TRIGGER on root.magic.magic",
- "GRANT USER trigger_user PRIVILEGES DROP_TRIGGER on root.magic.magic",
- "GRANT USER trigger_user PRIVILEGES START_TRIGGER on root.magic.magic",
- "GRANT USER trigger_user PRIVILEGES STOP_TRIGGER on root.magic.magic",
- };
- for (String statement : adminStatements) {
- try {
- adminStmt.execute(statement);
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- for (String statement : userStatements) {
- try {
- userStmt.execute(statement);
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains(TSStatusCode.NO_PERMISSION.getStatusCode() + ""));
- continue;
- }
- fail();
- }
-
- adminStatements =
- new String[] {
- "GRANT USER trigger_user PRIVILEGES CREATE_TRIGGER on root.ln.wf03.wt03.software",
- "GRANT USER trigger_user PRIVILEGES DROP_TRIGGER on root.ln.wf01.wt01.temperature",
- "GRANT USER trigger_user PRIVILEGES START_TRIGGER on root.ln.wf02.wt02.hardware",
- "GRANT USER trigger_user PRIVILEGES STOP_TRIGGER on root.ln.wf01.wt01.temperature",
- };
- for (String statement : adminStatements) {
- try {
- adminStmt.execute(statement);
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- for (String statement : userStatements) {
- try {
- userStmt.execute(statement);
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- userStatements =
- new String[] {
- "stop trigger `not-existed-trigger`",
- "drop trigger `not-existed-trigger`",
- "start trigger `not-existed-trigger`",
- };
- for (String statement : userStatements) {
- try {
- userStmt.execute(statement);
- } catch (SQLException e) {
- assertTrue(e.getMessage().contains("313"));
- continue;
- }
- fail();
- }
- }
-
- @Test
- public void illegalPasswordTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- Assert.assertThrows(
- SQLException.class, () -> adminStmt.execute("CREATE USER tempuser 'temppw '"));
- }
-
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- Assert.assertThrows(SQLException.class, () -> adminStmt.execute("CREATE USER tempuser 'te'"));
- }
- }
-
- @Test
- public void updatePasswordTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
- Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- userCon.close();
-
- adminStmt.execute("ALTER USER tempuser SET PASSWORD 'newpw'");
-
- boolean caught = false;
- try {
- userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- } catch (SQLException e) {
- caught = true;
- } finally {
- userCon.close();
- }
- assertTrue(caught);
-
- userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "newpw");
-
- userCon.close();
- }
- }
-
- @Test
- public void illegalGrantRevokeUserTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- // grant a non-existing user
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER nulluser PRIVILEGES CREATE_DATABASE on root.a"));
- // grant a non-existing privilege
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES NOT_A_PRIVILEGE on root.a"));
- // duplicate grant
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_USER on root.**");
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_USER on root.**"));
- // grant on a illegal seriesPath
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on a.b"));
- // grant admin
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER root PRIVILEGES DELETE_TIMESERIES on root.a.b"));
- // no privilege to grant
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on root.a.b"));
- // revoke a non-existing privilege
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_USER on root.**");
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_USER on root.**"));
- // revoke a non-existing user
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("REVOKE USER tempuser1 PRIVILEGES CREATE_USER on root.**"));
- // revoke on a illegal seriesPath
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on a.b"));
- // revoke admin
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("REVOKE USER root PRIVILEGES DELETE_TIMESERIES on root.a.b"));
- // no privilege to revoke
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on root.a.b"));
- // grant privilege to grant
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on root.a.b"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES GRANT_USER_PRIVILEGE on root.**");
- userStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on root.**");
-
- // grant privilege to revoke
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on root.**"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES REVOKE_USER_PRIVILEGE on root.**");
- userStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on root.**");
- }
- }
- }
-
- @Test
- public void createDeleteTimeSeriesTest() throws SQLException, ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
-
- adminStmt.execute("CREATE USER tempuser 'temppw'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- // grant and revoke the user the privilege to create time series
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.a"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON root.a");
- userStmt.execute("CREATE DATABASE root.a");
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a.b");
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
- // no privilege to create this one
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.b"));
- // privilege already exists
- Assert.assertThrows(
- SQLException.class,
- () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON root.a"));
- // no privilege to create this one any more
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.a"));
- // no privilege to create timeseries
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE DATABASE root.a"));
-
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_DATABASE ON root.a");
- // no privilege to create this one any more
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("CREATE TIMESERIES root.b.a WITH DATATYPE=INT32,ENCODING=PLAIN"));
- // privilege already exists
- Assert.assertThrows(
- SQLException.class,
- () ->
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a.b"));
-
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a.b");
- // no privilege to create this one any more
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN"));
- // the user cannot delete the timeseries now, no privilege to delete this one any more
- Assert.assertThrows(
- SQLException.class, () -> userStmt.execute("DELETE TIMESERIES root.a.b"));
-
- // the user can delete the timeseries now
- adminStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on root.a.**");
- adminStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on root.b.**");
- userStmt.execute("DELETE TIMESERIES root.a.b");
-
- // revoke the privilege to delete time series
- adminStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
- adminStmt.execute("CREATE DATABASE root.b");
- adminStmt.execute("CREATE TIMESERIES root.b.a WITH DATATYPE=INT32,ENCODING=PLAIN");
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on root.a.**");
- userStmt.execute("DELETE TIMESERIES root.b.a");
- // no privilege to create this one any more
- Assert.assertThrows(
- SQLException.class, () -> userStmt.execute("DELETE TIMESERIES root.a.b"));
- }
- }
- }
-
- @Test
- public void insertQueryTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON root.a");
- userStmt.execute("CREATE DATABASE root.a");
- adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON root.a.b");
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
-
- // grant privilege to insert
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (1,100)"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES INSERT_TIMESERIES on root.a.**");
- userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (1,100)");
-
- // revoke privilege to insert
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES INSERT_TIMESERIES on root.a.**");
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (1,100)"));
- // grant privilege to query
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT * from root.a"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_TIMESERIES on root.a.**");
- userStmt.execute("SELECT * from root.a");
- userStmt.getResultSet().close();
- userStmt.execute("SELECT LAST b from root.a");
- userStmt.getResultSet().close();
-
- // revoke privilege to query
- adminStmt.execute("REVOKE USER tempuser PRIVILEGES READ_TIMESERIES on root.a.**");
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT * from root.a"));
- }
- }
- }
-
- @Test
- public void rolePrivilegeTest() throws SQLException, ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
-
- adminStmt.execute("CREATE USER tempuser 'temppw'");
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE ROLE admin"));
-
- adminStmt.execute("CREATE ROLE admin");
- adminStmt.execute(
- "GRANT ROLE admin PRIVILEGES CREATE_DATABASE,CREATE_TIMESERIES,DELETE_TIMESERIES,READ_TIMESERIES,INSERT_TIMESERIES on root.**");
- adminStmt.execute("GRANT admin TO tempuser");
-
- userStmt.execute("CREATE DATABASE root.a");
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN");
- userStmt.execute("CREATE TIMESERIES root.a.c WITH DATATYPE=INT32,ENCODING=PLAIN");
- userStmt.execute("INSERT INTO root.a(timestamp,b,c) VALUES (1,100,1000)");
- // userStmt.execute("DELETE FROM root.a.b WHERE TIME <= 1000000000");
- userStmt.execute("SELECT * FROM root.**");
- userStmt.getResultSet().close();
-
- adminStmt.execute("REVOKE ROLE admin PRIVILEGES DELETE_TIMESERIES on root.**");
-
- Assert.assertThrows(
- SQLException.class,
- () -> userStmt.execute("DELETE FROM root.* WHERE TIME <= 1000000000"));
-
- adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_TIMESERIES on root.**");
- adminStmt.execute("REVOKE admin FROM tempuser");
- userStmt.execute("SELECT * FROM root.**");
- userStmt.getResultSet().close();
-
- Assert.assertThrows(
- SQLException.class,
- () ->
- userStmt.execute("CREATE TIMESERIES root.a.b WITH DATATYPE=INT32,ENCODING=PLAIN"));
- }
- }
- }
-
- @Test
- @Ignore
- public void authPerformanceTest() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
-
- adminStmt.execute("CREATE USER tempuser 'temppw'");
- adminStmt.execute("CREATE DATABASE root.a");
- int privilegeCnt = 500;
- for (int i = 0; i < privilegeCnt; i++) {
- adminStmt.execute("CREATE TIMESERIES root.a.b" + i + " WITH DATATYPE=INT32,ENCODING=PLAIN");
- adminStmt.execute("GRANT USER tempuser PRIVILEGES INSERT_TIMESERIES ON root.a.b" + i);
- }
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
-
- int insertCnt = 20000;
- int batchSize = 500;
-
- long time = System.currentTimeMillis();
- for (int i = 0; i < insertCnt; ) {
- for (int j = 0; j < batchSize; j++) {
- userStmt.addBatch(
- "INSERT INTO root.a(timestamp, b"
- + (privilegeCnt - 1)
- + ") VALUES ("
- + (i++ + 1)
- + ", 100)");
- }
- userStmt.executeBatch();
- userStmt.clearBatch();
- }
-
- time = System.currentTimeMillis();
- for (int i = 0; i < insertCnt; ) {
- for (int j = 0; j < batchSize; j++) {
- adminStmt.addBatch(
- "INSERT INTO root.a(timestamp, b0) VALUES (" + (i++ + 1 + insertCnt) + ", 100)");
- }
- adminStmt.executeBatch();
- adminStmt.clearBatch();
- }
- }
- }
- }
-
- @Test
- public void testListUser() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- ResultSet resultSet = adminStmt.executeQuery("LIST USER");
- String ans = String.format("root,\n");
- try {
- validateResultSet(resultSet, ans);
-
- for (int i = 0; i < 10; i++) {
- adminStmt.execute("CREATE USER user" + i + " 'password" + i + "'");
- }
- resultSet = adminStmt.executeQuery("LIST USER");
- ans =
- "root,\n"
- + "user0,\n"
- + "user1,\n"
- + "user2,\n"
- + "user3,\n"
- + "user4,\n"
- + "user5,\n"
- + "user6,\n"
- + "user7,\n"
- + "user8,\n"
- + "user9,\n";
- validateResultSet(resultSet, ans);
-
- for (int i = 0; i < 10; i++) {
- if (i % 2 == 0) {
- adminStmt.execute("DROP USER user" + i);
- }
- }
- resultSet = adminStmt.executeQuery("LIST USER");
- ans = "root,\n" + "user1,\n" + "user3,\n" + "user5,\n" + "user7,\n" + "user9,\n";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
- } finally {
- adminCon.close();
- }
- }
-
- @Test
- public void testListRole() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- ResultSet resultSet = adminStmt.executeQuery("LIST ROLE");
- String ans = "";
- try {
- validateResultSet(resultSet, ans);
-
- for (int i = 0; i < 10; i++) {
- adminStmt.execute("CREATE ROLE role" + i);
- }
-
- resultSet = adminStmt.executeQuery("LIST ROLE");
- ans =
- "role0,\n"
- + "role1,\n"
- + "role2,\n"
- + "role3,\n"
- + "role4,\n"
- + "role5,\n"
- + "role6,\n"
- + "role7,\n"
- + "role8,\n"
- + "role9,\n";
- validateResultSet(resultSet, ans);
-
- for (int i = 0; i < 10; i++) {
- if (i % 2 == 0) {
- adminStmt.execute("DROP ROLE role" + i);
- }
- }
- resultSet = adminStmt.executeQuery("LIST ROLE");
- ans = "role1,\n" + "role3,\n" + "role5,\n" + "role7,\n" + "role9,\n";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
- } finally {
- adminStmt.close();
- adminCon.close();
- }
- }
-
- @Test
- public void testListUserPrivileges() throws SQLException, ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- adminStmt.execute("CREATE USER user1 'password1'");
- adminStmt.execute("GRANT USER user1 PRIVILEGES READ_TIMESERIES ON root.a.b");
- adminStmt.execute("CREATE ROLE role1");
- adminStmt.execute(
- "GRANT ROLE role1 PRIVILEGES READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.a.b.c");
- adminStmt.execute(
- "GRANT ROLE role1 PRIVILEGES READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.d.b.c");
- adminStmt.execute("GRANT role1 TO user1");
-
- ResultSet resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1");
- String ans =
- ",root.a.b : READ_TIMESERIES"
- + ",\n"
- + "role1,root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES"
- + ",\n"
- + "role1,root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES"
- + ",\n";
- try {
- validateResultSet(resultSet, ans);
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1 ON root.a.b.c");
- ans = "role1,root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
-
- adminStmt.execute("REVOKE role1 from user1");
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1");
- ans = ",root.a.b : READ_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1 ON root.a.b.c");
- ans = "";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
- } finally {
- adminStmt.close();
- adminCon.close();
- }
- }
-
- @Test
- public void testListRolePrivileges() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- adminStmt.execute("CREATE ROLE role1");
- ResultSet resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1");
- String ans = "";
- try {
- // not granted list role privilege, should return empty
- validateResultSet(resultSet, ans);
-
- adminStmt.execute(
- "GRANT ROLE role1 PRIVILEGES READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.a.b.c");
- adminStmt.execute(
- "GRANT ROLE role1 PRIVILEGES READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.d.b.c");
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1");
- ans =
- "root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES,\n"
- + "root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1 ON root.a.b.c");
- ans = "root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
-
- adminStmt.execute(
- "REVOKE ROLE role1 PRIVILEGES INSERT_TIMESERIES,DELETE_TIMESERIES ON root.a.b.c");
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1");
- ans =
- "root.a.b.c : READ_TIMESERIES,\n"
- + "root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES DELETE_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
-
- resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1 ON root.a.b.c");
- ans = "root.a.b.c : READ_TIMESERIES,\n";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
- } finally {
- adminStmt.close();
- adminCon.close();
- }
- }
-
- @Test
- public void testListUserRoles() throws SQLException, ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- adminStmt.execute("CREATE USER chenduxiu 'orange'");
-
- adminStmt.execute("CREATE ROLE xijing");
- adminStmt.execute("CREATE ROLE dalao");
- adminStmt.execute("CREATE ROLE shenshi");
- adminStmt.execute("CREATE ROLE zhazha");
- adminStmt.execute("CREATE ROLE hakase");
-
- adminStmt.execute("GRANT xijing TO chenduxiu");
- adminStmt.execute("GRANT dalao TO chenduxiu");
- adminStmt.execute("GRANT shenshi TO chenduxiu");
- adminStmt.execute("GRANT zhazha TO chenduxiu");
- adminStmt.execute("GRANT hakase TO chenduxiu");
-
- ResultSet resultSet = adminStmt.executeQuery("LIST ROLE OF USER chenduxiu");
- String ans = "xijing,\n" + "dalao,\n" + "shenshi,\n" + "zhazha,\n" + "hakase,\n";
- try {
- validateResultSet(resultSet, ans);
-
- adminStmt.execute("REVOKE dalao FROM chenduxiu");
- adminStmt.execute("REVOKE hakase FROM chenduxiu");
-
- resultSet = adminStmt.executeQuery("LIST ROLE OF USER chenduxiu");
- ans = "xijing,\n" + "shenshi,\n" + "zhazha,\n";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
- } finally {
- adminStmt.close();
- adminCon.close();
- }
- }
-
- @Test
- public void testListRoleUsers() throws SQLException, ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- try {
- adminStmt.execute("CREATE ROLE dalao");
- adminStmt.execute("CREATE ROLE zhazha");
-
- String[] members = {
- "HighFly",
- "SunComparison",
- "Persistence",
- "GoodWoods",
- "HealthHonor",
- "GoldLuck",
- "DoubleLight",
- "Eastwards",
- "ScentEffusion",
- "Smart",
- "East",
- "DailySecurity",
- "Moon",
- "RayBud",
- "RiverSky"
- };
-
- for (int i = 0; i < members.length - 1; i++) {
- adminStmt.execute("CREATE USER " + members[i] + " '666666'");
- adminStmt.execute("GRANT dalao TO " + members[i]);
- }
- adminStmt.execute("CREATE USER RiverSky '2333333'");
- adminStmt.execute("GRANT zhazha TO RiverSky");
-
- ResultSet resultSet = adminStmt.executeQuery("LIST USER OF ROLE dalao");
- String ans =
- "DailySecurity,\n"
- + "DoubleLight,\n"
- + "East,\n"
- + "Eastwards,\n"
- + "GoldLuck,\n"
- + "GoodWoods,\n"
- + "HealthHonor,\n"
- + "HighFly,\n"
- + "Moon,\n"
- + "Persistence,\n"
- + "RayBud,\n"
- + "ScentEffusion,\n"
- + "Smart,\n"
- + "SunComparison,\n";
- try {
- validateResultSet(resultSet, ans);
-
- resultSet = adminStmt.executeQuery("LIST USER OF ROLE zhazha");
- ans = "RiverSky,\n";
- validateResultSet(resultSet, ans);
-
- adminStmt.execute("REVOKE zhazha from RiverSky");
- resultSet = adminStmt.executeQuery("LIST USER OF ROLE zhazha");
- ans = "";
- validateResultSet(resultSet, ans);
- } finally {
- resultSet.close();
- }
-
- } finally {
- adminStmt.close();
- adminCon.close();
- }
- }
-
- private void validateResultSet(ResultSet set, String ans) throws SQLException {
- try {
- StringBuilder builder = new StringBuilder();
- ResultSetMetaData metaData = set.getMetaData();
- int colNum = metaData.getColumnCount();
- while (set.next()) {
- for (int i = 1; i <= colNum; i++) {
- builder.append(set.getString(i)).append(",");
- }
- builder.append("\n");
- }
- assertEquals(ans, builder.toString());
- } finally {
- set.close();
- }
- }
-
- @Test
- public void testListUserPrivilege() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- Connection adminCon =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement();
-
- for (int i = 0; i < 10; i++) {
- adminStmt.execute("CREATE USER user" + i + " 'password" + i + "'");
- }
-
- adminStmt.execute("CREATE USER tempuser 'temppw'");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStmt = userCon.createStatement()) {
- try {
- Assert.assertThrows(SQLException.class, () -> userStmt.execute("LIST USER"));
- // with list user privilege
- adminStmt.execute("GRANT USER tempuser PRIVILEGES LIST_USER on root.**");
- ResultSet resultSet = userStmt.executeQuery("LIST USER");
- String ans =
- "root,\n"
- + "tempuser,\n"
- + "user0,\n"
- + "user1,\n"
- + "user2,\n"
- + "user3,\n"
- + "user4,\n"
- + "user5,\n"
- + "user6,\n"
- + "user7,\n"
- + "user8,\n"
- + "user9,\n";
- validateResultSet(resultSet, ans);
- } finally {
- userStmt.close();
- }
- } finally {
- adminCon.close();
- }
- }
-
- @Test
- public void testExecuteBatchWithPrivilege() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStatement = userCon.createStatement()) {
- userStatement.addBatch("CREATE TIMESERIES root.sg1.d1.s1 WITH DATATYPE=INT64");
- userStatement.addBatch("CREATE TIMESERIES root.sg2.d1.s1 WITH DATATYPE=INT64");
- try {
- userStatement.executeBatch();
- } catch (BatchUpdateException e) {
- assertEquals(
- System.lineSeparator()
- + "No permissions for this operation, please add privilege "
- + PrivilegeType.values()[
- AuthorityChecker.translateToPermissionId(
- Operator.OperatorType.CREATE_TIMESERIES)]
- + " for SQL: \"CREATE TIMESERIES root.sg1.d1.s1 WITH DATATYPE=INT64\""
- + System.lineSeparator()
- + "No permissions for this operation, please add privilege "
- + PrivilegeType.values()[
- AuthorityChecker.translateToPermissionId(
- Operator.OperatorType.CREATE_TIMESERIES)]
- + " for SQL: \"CREATE TIMESERIES root.sg2.d1.s1 WITH DATATYPE=INT64\""
- + System.lineSeparator(),
- e.getMessage());
- }
- }
- }
- }
-
- @Test
- public void testExecuteBatchWithPrivilege1() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStmt = adminCon.createStatement()) {
- adminStmt.execute("CREATE USER tempuser 'temppw'");
- adminStmt.execute("GRANT USER tempuser PRIVILEGES INSERT_TIMESERIES on root.sg1.**");
-
- try (Connection userCon =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "tempuser", "temppw");
- Statement userStatement = userCon.createStatement()) {
- userStatement.addBatch("insert into root.sg1.d1(timestamp,s1) values (1,1)");
- userStatement.addBatch("insert into root.sg2.d1(timestamp,s1) values (2,1)");
- userStatement.addBatch("insert into root.sg1.d1(timestamp,s2) values (3,1)");
- userStatement.addBatch("insert into root.sg2.d1(timestamp,s1) values (4,1)");
- try {
- userStatement.executeBatch();
- } catch (BatchUpdateException e) {
- System.out.println(e.getMessage());
- assertEquals(
- System.lineSeparator()
- + "No permissions for this operation, please add privilege "
- + PrivilegeType.values()[
- AuthorityChecker.translateToPermissionId(Operator.OperatorType.INSERT)]
- + " for SQL: \"insert into root.sg2.d1(timestamp,s1) values (2,1)\""
- + System.lineSeparator()
- + "No permissions for this operation, please add privilege "
- + PrivilegeType.values()[
- AuthorityChecker.translateToPermissionId(Operator.OperatorType.INSERT)]
- + " for SQL: \"insert into root.sg2.d1(timestamp,s1) values (4,1)\""
- + System.lineSeparator(),
- e.getMessage());
- }
- }
- ResultSet resultSet = adminStmt.executeQuery("select * from root.**");
- String[] expected = new String[] {"1, 1.0", "1, null", "3, null", "3, 1.0"};
- List<String> expectedList = new ArrayList<>();
- Collections.addAll(expectedList, expected);
- List<String> result = new ArrayList<>();
- while (resultSet.next()) {
- result.add(
- resultSet.getString(ColumnHeaderConstant.TIME)
- + ", "
- + resultSet.getString("root.sg1.d1.s1"));
- result.add(
- resultSet.getString(ColumnHeaderConstant.TIME)
- + ", "
- + resultSet.getString("root.sg1.d1.s2"));
- }
- assertEquals(expected.length, result.size());
- assertTrue(expectedList.containsAll(result));
- }
- }
-
- /** ISSUE-4308 */
- @Test
- public void testSelectUDTF() throws ClassNotFoundException, SQLException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection adminConnection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement adminStatement = adminConnection.createStatement()) {
- adminStatement.execute("CREATE USER a_application 'a_application'");
- adminStatement.execute("CREATE ROLE application_role");
- adminStatement.execute(
- "GRANT ROLE application_role PRIVILEGES READ_TIMESERIES ON root.test.**");
- adminStatement.execute("GRANT application_role TO a_application");
-
- adminStatement.execute("INSERT INTO root.test(time, s1, s2, s3) VALUES(1, 2, 3, 4)");
- }
-
- try (Connection userConnection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "a_application", "a_application");
- Statement userStatement = userConnection.createStatement();
- ResultSet resultSet =
- userStatement.executeQuery(
- "SELECT s1, s1, s1 - s3, s2 * sin(s1), s1 + 1 / 2 * sin(s1), sin(s1), sin(s1) FROM root.test")) {
- assertTrue(resultSet.next());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBEngineTimeGeneratorIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBEngineTimeGeneratorIT.java
deleted file mode 100644
index 38b24fbda9..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBEngineTimeGeneratorIT.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * 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.integration;
-
-import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.commons.path.MeasurementPath;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.constant.TestConstant;
-import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
-import org.apache.iotdb.db.query.timegenerator.ServerTimeGenerator;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.db.utils.SchemaTestUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
-import org.apache.iotdb.tsfile.read.expression.IExpression;
-import org.apache.iotdb.tsfile.read.expression.impl.BinaryExpression;
-import org.apache.iotdb.tsfile.read.expression.impl.SingleSeriesExpression;
-import org.apache.iotdb.tsfile.read.filter.TimeFilter;
-import org.apache.iotdb.tsfile.read.filter.ValueFilter;
-import org.apache.iotdb.tsfile.read.filter.factory.FilterFactory;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.apache.iotdb.db.utils.EnvironmentUtils.TEST_QUERY_CONTEXT;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class})
-public class IoTDBEngineTimeGeneratorIT {
-
- private static TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
- private static int maxNumberOfPointsInPage;
- private static int pageSizeInByte;
- private static int groupSizeInByte;
-
- private static int count = 0;
- private static int count2 = 150;
-
- @BeforeClass
- public static void setUp() throws Exception {
-
- // use small page setting
- // origin value
- maxNumberOfPointsInPage = tsFileConfig.getMaxNumberOfPointsInPage();
- pageSizeInByte = tsFileConfig.getPageSizeInByte();
- groupSizeInByte = tsFileConfig.getGroupSizeInByte();
-
- // new value
- tsFileConfig.setMaxNumberOfPointsInPage(100);
- tsFileConfig.setPageSizeInByte(1024 * 1024 * 150);
- tsFileConfig.setGroupSizeInByte(1024 * 1024 * 100);
- IoTDBDescriptor.getInstance().getConfig().setMemtableSizeThreshold(1024 * 1024 * 100);
-
- EnvironmentUtils.envSetUp();
-
- insertData();
- }
-
- // recovery value
- @AfterClass
- public static void tearDown() throws Exception {
- tsFileConfig.setMaxNumberOfPointsInPage(maxNumberOfPointsInPage);
- tsFileConfig.setPageSizeInByte(pageSizeInByte);
- tsFileConfig.setGroupSizeInByte(groupSizeInByte);
- IoTDBDescriptor.getInstance().getConfig().setMemtableSizeThreshold(groupSizeInByte);
-
- EnvironmentUtils.cleanEnv();
- }
-
- private static void insertData() throws ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- // create database and measurement
- for (String sql : TestConstant.createSql) {
- statement.execute(sql);
- }
-
- // insert data (time from 300-999)
- for (long time = 300; time < 1000; time++) {
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 17);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 29);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 31);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[(int) time % 5]);
- statement.execute(sql);
-
- if (satisfyTimeFilter1(time)) {
- count++;
- }
-
- if (satisfyTimeFilter2(time)) {
- count2++;
- }
- }
-
- statement.execute("FLUSH");
-
- // insert data (time from 1200-1499)
- for (long time = 1200; time < 1500; time++) {
- String sql = null;
- if (time % 2 == 0) {
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 17);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 29);
- statement.execute(sql);
- if (satisfyTimeFilter1(time)) {
- count++;
- }
- }
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 31);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[(int) time % 5]);
- statement.execute(sql);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- /** value >= 14 && time > 500 */
- private static boolean satisfyTimeFilter1(long time) {
- return time % 17 >= 14 && time > 500;
- }
-
- /** root.vehicle.d0.s0 >= 5 && root.vehicle.d0.s2 >= 11 || time > 900 */
- private static boolean satisfyTimeFilter2(long time) {
- return (time % 17 >= 5 || time > 900) && (time % 31 >= 11.5 || time > 900);
- }
-
- /** value >= 14 && time > 500 */
- @Test
- public void testOneSeriesWithValueAndTimeFilter()
- throws IOException, StorageEngineException, MetadataException, QueryProcessException {
- // System.out.println("Test >>> root.vehicle.d0.s0 >= 14 && time > 500");
-
- MeasurementPath pd0s0 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- ValueFilter.ValueGtEq<Integer> valueGtEq = ValueFilter.gtEq(14);
- TimeFilter.TimeGt timeGt = TimeFilter.gt(500);
-
- SingleSeriesExpression singleSeriesExpression =
- new SingleSeriesExpression(pd0s0, FilterFactory.and(valueGtEq, timeGt));
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- List<PartialPath> paths = new ArrayList<>();
- paths.add(pd0s0);
- queryPlan.setDeduplicatedPathsAndUpdate(paths);
- queryPlan.setExpression(singleSeriesExpression);
- ServerTimeGenerator timeGenerator = new ServerTimeGenerator(TEST_QUERY_CONTEXT, queryPlan);
-
- int cnt = 0;
- while (timeGenerator.hasNext()) {
- long time = timeGenerator.next();
- assertTrue(satisfyTimeFilter1(time));
- cnt++;
- // System.out.println("cnt =" + cnt + "; time = " + time);
- }
- assertEquals(count, cnt);
- }
-
- /** root.vehicle.d1.s0 >= 5, and d1.s0 has no data */
- @Test
- public void testEmptySeriesWithValueFilter()
- throws IOException, StorageEngineException, MetadataException, QueryProcessException {
- // System.out.println("Test >>> root.vehicle.d1.s0 >= 5");
-
- MeasurementPath pd1s0 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- ValueFilter.ValueGtEq<Integer> valueGtEq = ValueFilter.gtEq(5);
-
- IExpression singleSeriesExpression = new SingleSeriesExpression(pd1s0, valueGtEq);
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- List<PartialPath> paths = new ArrayList<>();
- paths.add(pd1s0);
- queryPlan.setDeduplicatedPathsAndUpdate(paths);
- queryPlan.setExpression(singleSeriesExpression);
- ServerTimeGenerator timeGenerator = new ServerTimeGenerator(TEST_QUERY_CONTEXT, queryPlan);
-
- int cnt = 0;
- while (timeGenerator.hasNext()) {
- cnt++;
- }
- assertEquals(0, cnt);
- }
-
- /** root.vehicle.d0.s0 >= 5 && root.vehicle.d0.s2 >= 11.5 || time > 900 */
- @Test
- public void testMultiSeriesWithValueFilterAndTimeFilter()
- throws IOException, StorageEngineException, MetadataException, QueryProcessException {
- System.out.println(
- "Test >>> root.vehicle.d0.s0 >= 5 && root.vehicle.d0.s2 >= 11.5 || time > 900");
-
- MeasurementPath pd0s0 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- MeasurementPath pd0s2 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s2);
-
- ValueFilter.ValueGtEq<Integer> valueGtEq5 = ValueFilter.gtEq(5);
- ValueFilter.ValueGtEq<Float> valueGtEq11 = ValueFilter.gtEq(11.5f);
- TimeFilter.TimeGt timeGt = TimeFilter.gt(900L);
-
- IExpression singleSeriesExpression1 =
- new SingleSeriesExpression(pd0s0, FilterFactory.or(valueGtEq5, timeGt));
- IExpression singleSeriesExpression2 =
- new SingleSeriesExpression(pd0s2, FilterFactory.or(valueGtEq11, timeGt));
- IExpression andExpression =
- BinaryExpression.and(singleSeriesExpression1, singleSeriesExpression2);
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- List<PartialPath> paths = new ArrayList<>();
- paths.add(pd0s0);
- paths.add(pd0s2);
- queryPlan.setDeduplicatedPathsAndUpdate(paths);
- queryPlan.setExpression(andExpression);
- ServerTimeGenerator timeGenerator = new ServerTimeGenerator(TEST_QUERY_CONTEXT, queryPlan);
- int cnt = 0;
- while (timeGenerator.hasNext()) {
- long time = timeGenerator.next();
- assertTrue(satisfyTimeFilter2(time));
- cnt++;
- // System.out.println("cnt =" + cnt + "; time = " + time);
- }
- assertEquals(count2, cnt);
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java
deleted file mode 100644
index f80bb9fe4b..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSelectIntoIT.java
+++ /dev/null
@@ -1,796 +0,0 @@
-/*
- * 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.integration;
-
-import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.rpc.TSStatusCode;
-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.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-// TODO: check null values
-@Category({LocalStandaloneTest.class})
-public class IoTDBSelectIntoIT {
-
- private static final int ROW_LIMIT =
- IoTDBDescriptor.getInstance().getConfig().getSelectIntoInsertTabletPlanRowLimit();
-
- private static final String[] INSERTION_SQLS = {
- "insert into root.sg.d1(time, s2, s3, s4, s5, s6) values (0, 0, 0, 0, true, '0')",
- "insert into root.sg.d1(time, s1, s3, s4, s5, s6) values (1, 1, 1, 1, false, '1')",
- "insert into root.sg.d1(time, s1, s2, s4, s5, s6) values (2, 2, 2, 2, true, '2')",
- "insert into root.sg.d1(time, s1, s2, s3, s5, s6) values (3, 3, 3, 3, false, '3')",
- "insert into root.sg.d1(time, s1, s2, s3, s4, s5, s6) values (4, 4, 4, 4, 4, true, '4')",
- "insert into root.sg.d1(time, s1, s2, s3, s4, s6) values (5, 5, 5, 5, 5, '5')",
- "insert into root.sg.d1(time, s1, s2, s3, s4, s5) values (6, 6, 6, 6, 6, true)",
- };
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
- Class.forName(Config.JDBC_DRIVER_NAME);
- createTimeSeries();
- generateData();
- }
-
- private static void createTimeSeries() throws MetadataException {
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s1"),
- TSDataType.INT32,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s2"),
- TSDataType.INT64,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s3"),
- TSDataType.FLOAT,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s4"),
- TSDataType.DOUBLE,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s5"),
- TSDataType.BOOLEAN,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.s6"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
-
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.empty"),
- TSDataType.TEXT,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
-
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d2.s1"),
- TSDataType.INT32,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
-
- LocalSchemaProcessor.getInstance()
- .createTimeseries(
- new PartialPath("root.sg.d1.`datatype`"),
- TSDataType.DOUBLE,
- TSEncoding.PLAIN,
- CompressionType.UNCOMPRESSED,
- null);
- }
-
- private static void generateData() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- for (String dataGenerationSql : INSERTION_SQLS) {
- statement.execute(dataGenerationSql);
- }
-
- statement.execute("insert into root.sg.d2(time, s1) values (0, 0)");
-
- final int size = ROW_LIMIT + 1;
- for (int i = 0; i < size; ++i) {
- statement.execute(String.format("insert into root.sg.d3(time, s1) values (%d, %d)", i, i));
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- EnvironmentUtils.cleanEnv();
- }
-
- @Test // TODO: check values
- public void selectIntoSameDevice() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1, s2, s3, s4, s5, s6 into s7, s8, s9, s10, s11, s12 from root.sg.d1");
-
- try (ResultSet resultSet =
- statement.executeQuery("select s7, s8, s9, s10, s11, s12 from root.sg.d1")) {
- assertEquals(1 + 6, resultSet.getMetaData().getColumnCount());
-
- for (int i = 0; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- StringBuilder stringBuilder = new StringBuilder();
- for (int j = 0; j < 6 + 1; ++j) {
- stringBuilder.append(resultSet.getString(j + 1)).append(',');
- }
- System.out.println(stringBuilder.toString());
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test // TODO: check values
- public void selectIntoDifferentDevices() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1, s2, s3, s4, s5, s6 into pre_${2}_suf.s1, pre_${2}_suf.s2, pre_${2}_suf.s3, pre_${2}_suf.s4, pre_${2}_suf.s5, pre_${2}_suf.s6 from root.sg.d1");
-
- try (ResultSet resultSet =
- statement.executeQuery(
- "select pre_d1_suf.s1, pre_d1_suf.s2, pre_d1_suf.s3, pre_d1_suf.s4, pre_d1_suf.s5, pre_d1_suf.s6 from root.sg.d1")) {
- assertEquals(1 + 6, resultSet.getMetaData().getColumnCount());
-
- for (int i = 0; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- StringBuilder stringBuilder = new StringBuilder();
- for (int j = 0; j < 6 + 1; ++j) {
- stringBuilder.append(resultSet.getString(j + 1)).append(',');
- }
- System.out.println(stringBuilder.toString());
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void selectFromEmptySourcePath() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select empty into target from root.sg.d1");
-
- try (ResultSet resultSet = statement.executeQuery("select target from root.sg.d1")) {
- assertEquals(1, resultSet.getMetaData().getColumnCount());
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void selectIntoFullTargetPath() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${2}.${1}.s1 from root.sg.d1 where time>0");
-
- try (ResultSet resultSet = statement.executeQuery("select sg.d1.s1, d1.sg.s1 from root")) {
- assertEquals(1 + 2, resultSet.getMetaData().getColumnCount());
-
- for (int i = 0; i < INSERTION_SQLS.length - 1; ++i) {
- assertTrue(resultSet.next());
- assertEquals(resultSet.getString(1), String.valueOf(i + 1));
- assertEquals(resultSet.getString(2), resultSet.getString(3));
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void selectSameTimeSeries() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1, s1 into s1s2, s1s3 from root.sg.d1");
-
- try (ResultSet resultSet = statement.executeQuery("select s1s2, s1s3 from root.sg.d1")) {
- assertEquals(1 + 2, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 2 + 1; ++j) {
- assertEquals(resultSet.getString(2), resultSet.getString(3));
- }
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testLargeData() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into large_s1 from root.sg.d3");
-
- try (ResultSet resultSet = statement.executeQuery("select large_s1 from root.sg.d3")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
-
- final int size = ROW_LIMIT + 1;
- for (int i = 0; i < size; ++i) {
- assertTrue(resultSet.next());
- assertEquals(
- Double.parseDouble(resultSet.getString(1)),
- Double.parseDouble(resultSet.getString(2)),
- 0);
- }
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testUDFQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1, sin(s1), s1 + s1 into ${2}.s2, ${2}.s3, ${2}.s4 from root.sg.d1");
-
- try (ResultSet resultSet = statement.executeQuery("select s2, s3, s4 from root.sg.d1.d1")) {
- assertEquals(1 + 3, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 2 + 1; ++j) {
- double s2 = Double.parseDouble(resultSet.getString(2));
- double s3 = Double.parseDouble(resultSet.getString(3));
- double s4 = Double.parseDouble(resultSet.getString(4));
- assertEquals(i, s2, 0);
- assertEquals(Math.sin(i), s3, 0);
- assertEquals((double) i + (double) i, s4, 0);
- }
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testNestedQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1 * sin(s1) + cos(s1), sin(s1) / s1 + s1, s1 into ${2}.n2, ${2}.n3, ${2}.n4 from root.sg.d1");
-
- try (ResultSet resultSet = statement.executeQuery("select n2, n3, n4 from root.sg.d1.d1")) {
- assertEquals(1 + 3, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 2 + 1; ++j) {
- double s2 = Double.parseDouble(resultSet.getString(2));
- double s3 = Double.parseDouble(resultSet.getString(3));
- double s4 = Double.parseDouble(resultSet.getString(4));
- assertEquals(i * Math.sin(i) + Math.cos(i), s2, 0);
- assertEquals(Math.sin(i) / i + i, s3, 0);
- assertEquals(i, s4, 0);
- }
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testSelectIntoAlignedTimeSeriesCorrectly() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1, s1 "
- + "into aligned root.sg.`aligned`.s1s2, root.sg.`aligned`.s1s3 "
- + "from root.sg.d1 "
- + "where time <= 2");
- statement.execute(
- "select s1, s1 "
- + "into aligned root.sg.`aligned`.s1s2, root.sg.`aligned`.s1s3 "
- + "from root.sg.d1 "
- + "where time > 2");
-
- try (ResultSet resultSet =
- statement.executeQuery("select s1s2, s1s3 from root.sg.`aligned`")) {
- assertEquals(1 + 2, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < INSERTION_SQLS.length; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 2 + 1; ++j) {
- assertEquals(resultSet.getString(2), resultSet.getString(3));
- }
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testSourceAndTargetPathDataTypeUnmatched() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 " + "into root.sg.d1.`datatype` " + "from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(Integer.toString(TSStatusCode.MULTIPLE_ERROR.getStatusCode())));
- assertTrue(throwable.getMessage().contains("not consistent"));
- }
- }
-
- @Test
- public void testSelectIntoAlignedTimeSeriesWithUnmatchedTypes() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("create aligned timeseries root.sg.`aligned`(s1 TEXT, s2 TEXT)");
- statement.execute(
- "select s1, s1 "
- + "into aligned root.sg.`aligned`.s1, root.sg.`aligned`.s2 "
- + "from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(
- "failed to insert measurements [s1, s2] caused by data type of root.sg.aligned.s1 is not consistent"));
- }
- }
-
- @Test
- public void testGroupByQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select count(s1) into count_s1 from root.sg.d1 group by ([1, 5),1ms);");
-
- try (ResultSet resultSet = statement.executeQuery("select count_s1 from root.sg.d1")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < INSERTION_SQLS.length - 2; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 1 + 1; ++j) {
- assertEquals(String.valueOf(i), resultSet.getString(1));
- assertEquals("1", resultSet.getString(2));
- }
- }
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testGroupByFillQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select last_value(s1) into gbf_s1 from root.sg.d1 group by ([1, 10),1ms) fill (float[PREVIOUS]);");
-
- try (ResultSet resultSet = statement.executeQuery("select gbf_s1 from root.sg.d1")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
-
- for (int i = 1; i < 5; ++i) {
- assertTrue(resultSet.next());
- for (int j = 0; j < 1 + 1; ++j) {
- assertEquals(String.valueOf(i), resultSet.getString(1));
- assertEquals(i < 5 ? String.valueOf(i) : "0", resultSet.getString(2));
- }
- }
-
- assertTrue(resultSet.next());
- assertTrue(resultSet.next());
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testFillQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select s1 into fill_s1 from root.sg.d1 where time = 10 fill(float [linear, 1ms, 1ms])");
-
- try (ResultSet resultSet = statement.executeQuery("select fill_s1 from root.sg.d1")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
-
- assertTrue(resultSet.next());
- assertEquals("10", resultSet.getString(1));
- assertEquals("6", resultSet.getString(2));
-
- assertFalse(resultSet.next());
- }
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-
- @Test
- public void testDifferentNumbersOfSourcePathsAndTargetPaths() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1, s2 into target from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(
- "the number of source paths and the number of target paths should be the same"));
- }
-
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into target from root.sg.*");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("* and ** are not allowed in a target path."));
- }
-
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select * into target from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(
- "the number of source paths and the number of target paths should be the same"));
- }
- }
-
- @Test
- public void testMultiPrefixPathsInFromClause() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into target from root.sg.d1, root.sg.d2");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains("the number of prefix paths in the from clause should be 1"));
- }
- }
-
- @Test
- public void testLeveledPathNodePatternLimit() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${100}.s1 from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(
- "the x of ${x} should be greater than 0 and equal to or less than <level> or the length of queried path prefix."));
- }
-
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${0}.s1 from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable
- .getMessage()
- .contains(
- "the x of ${x} should be greater than 0 and equal to or less than <level> or the length of queried path prefix."));
- }
-
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${wrong}.s1 from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("the x of ${x} should be an integer."));
- }
- }
-
- @Test
- public void testAlignByDevice() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${1}.s1 from root.sg.d1 align by device");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("align by device clauses are not supported."));
- }
- }
-
- @Test
- public void testDisableDevice() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1 into root.${1}.s1 from root.sg.d1 disable align");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("disable align clauses are not supported."));
- }
- }
-
- @Test
- public void testLastQuery() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select last s1 into root.${1}.s1 from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("last clauses are not supported."));
- }
- }
-
- @Test
- public void testSlimit() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1, s2 into ${1}.s1, ${2}.s1 from root.sg.d1 slimit 1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("slimit clauses are not supported."));
- }
- }
-
- @Test
- public void testDescending() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1, s2 into ${1}.s1, ${2}.s1 from root.sg.d1 order by time desc");
- fail();
- } catch (SQLException throwable) {
- assertTrue(throwable.getMessage().contains("desc clauses are not supported."));
- }
- }
-
- @Test
- public void testSameTargetPaths() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("select s1, s2 into ${1}.s1, ${1}.s1 from root.sg.d1");
- fail();
- } catch (SQLException throwable) {
- assertTrue(
- throwable.getMessage().contains("target paths in into clause should be different."));
- }
- }
-
- @Test
- public void testContainerCase() throws SQLException {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- for (int i = 0; i < 10; i++) {
- statement.execute(
- String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(1,1)", i));
- }
-
- statement.execute(
- "SELECT device0.s, device1.s, device2.s, device3.s, device4.s, device5.s, device6.s, device7.s, device8.s, device9.s "
- + "INTO device0.t, device1.t, device2.t, device3.t, device4.t, device5.t, device6.t, device7.t, device8.t, device9.t "
- + "FROM root.sg;");
-
- for (int i = 0; i < 10; i++) {
- statement.execute(
- String.format("INSERT INTO root.sg.device%s(timestamp,s) VALUES(2,2)", i));
- statement.execute(String.format("SELECT device%s.s into device%s.t from root.sg;", i, i));
- }
-
- for (int i = 0; i < 10; ++i) {
- try (ResultSet resultSet =
- statement.executeQuery(String.format("SELECT s, t FROM root.sg.device%s", i))) {
- assertTrue(resultSet.next());
- assertEquals(1, Double.parseDouble(resultSet.getString(1)), 0);
- assertEquals(
- Double.parseDouble(resultSet.getString(1)),
- Double.parseDouble(resultSet.getString(2)),
- 0);
- assertEquals(
- Double.parseDouble(resultSet.getString(2)),
- Double.parseDouble(resultSet.getString(3)),
- 0);
-
- assertTrue(resultSet.next());
- assertEquals(2, Double.parseDouble(resultSet.getString(1)), 0);
- assertEquals(
- Double.parseDouble(resultSet.getString(1)),
- Double.parseDouble(resultSet.getString(2)),
- 0);
- assertEquals(
- Double.parseDouble(resultSet.getString(2)),
- Double.parseDouble(resultSet.getString(3)),
- 0);
-
- assertFalse(resultSet.next());
- }
- }
- }
- }
-
- // This case tests whether select into clause functions correctly when multiple columns are
- // selected.
- // It is possible that in the first few rows, some columns are null.
- @Test
- public void testSelectMultiColumnsWithTopKCase() throws SQLException {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select -s1, sin(cos(tan(s1+s1*s2))) + cos(s1), top_k(s1,'k'='1') "
- + "into k1,k2,k3 from root.sg.d1;");
-
- try (ResultSet resultSet = statement.executeQuery("select k1 from root.sg.d1")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
- for (int i = 1; i <= 6; ++i) {
- assertTrue(resultSet.next());
- }
- assertFalse(resultSet.next());
- }
-
- // verify that only one row is selected into k3.
- try (ResultSet resultSet = statement.executeQuery("select k3 from root.sg.d1")) {
- assertEquals(1 + 1, resultSet.getMetaData().getColumnCount());
- assertTrue(resultSet.next());
- assertFalse(resultSet.next());
- }
-
- } catch (SQLException throwable) {
- fail(throwable.getMessage());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSequenceDataQueryIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSequenceDataQueryIT.java
deleted file mode 100644
index af18b279a5..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSequenceDataQueryIT.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * 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.integration;
-
-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.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
-import org.apache.iotdb.db.query.executor.QueryRouter;
-import org.apache.iotdb.db.utils.SchemaTestUtils;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.read.common.RowRecord;
-import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
-import org.apache.iotdb.tsfile.read.expression.impl.SingleSeriesExpression;
-import org.apache.iotdb.tsfile.read.filter.TimeFilter;
-import org.apache.iotdb.tsfile.read.filter.ValueFilter;
-import org.apache.iotdb.tsfile.read.filter.operator.AndFilter;
-import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.apache.iotdb.db.utils.EnvironmentUtils.TEST_QUERY_CONTEXT;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test. In this test case, no unseq insert data.
- */
-@Category({LocalStandaloneTest.class})
-public class IoTDBSequenceDataQueryIT {
-
- private static TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
- private static int maxNumberOfPointsInPage;
- private static int pageSizeInByte;
- private static int groupSizeInByte;
-
- // count : d0s0 >= 14
- private static int count = 0;
-
- @BeforeClass
- public static void setUp() throws Exception {
-
- // use small page setting
- // origin value
- maxNumberOfPointsInPage = tsFileConfig.getMaxNumberOfPointsInPage();
- pageSizeInByte = tsFileConfig.getPageSizeInByte();
- groupSizeInByte = tsFileConfig.getGroupSizeInByte();
-
- // new value
- ConfigFactory.getConfig()
- .setMaxNumberOfPointsInPage(100)
- .setPageSizeInByte(1024 * 1024 * 150)
- .setGroupSizeInByte(1024 * 1024 * 100)
- .setMemtableSizeThreshold(1024 * 1024 * 100);
-
- EnvFactory.getEnv().initBeforeClass();
-
- insertData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- // recovery value
- ConfigFactory.getConfig()
- .setMaxNumberOfPointsInPage(maxNumberOfPointsInPage)
- .setPageSizeInByte(pageSizeInByte)
- .setGroupSizeInByte(groupSizeInByte)
- .setMemtableSizeThreshold(groupSizeInByte);
-
- EnvFactory.getEnv().cleanAfterClass();
- }
-
- private static void insertData() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
-
- // create database and measurement
- for (String sql : TestConstant.createSql) {
- statement.execute(sql);
- }
-
- // insert data (time from 300-999)
- for (long time = 300; time < 1000; time++) {
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 17);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 29);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 31);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[(int) time % 5]);
- statement.execute(sql);
-
- if (time % 17 >= 14) {
- count++;
- }
- }
-
- statement.execute("flush");
-
- // insert data (time from 1200-1499)
- for (long time = 1200; time < 1500; time++) {
- String sql;
- if (time % 2 == 0) {
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 17);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 29);
- statement.execute(sql);
- if (time % 17 >= 14) {
- count++;
- }
- }
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 31);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[(int) time % 5]);
- statement.execute(sql);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void readWithoutFilterTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
-
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s2));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s3));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s4));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(1000, cnt);
- }
-
- @Test
- public void readWithTimeFilterTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
-
- GlobalTimeExpression globalTimeExpression = new GlobalTimeExpression(TimeFilter.gtEq(800L));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- queryPlan.setExpression(globalTimeExpression);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- RowRecord rowRecord = queryDataSet.next();
- String value = rowRecord.getFields().get(0).getStringValue();
- long time = rowRecord.getTimestamp();
- assertEquals("" + time % 17, value);
- cnt++;
- }
- assertEquals(350, cnt);
- }
-
- @Test
- public void readWithValueFilterTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- // select * from root.** where root.vehicle.d0.s0 >=14
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s2));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s3));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s4));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
-
- Path queryPath =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- SingleSeriesExpression singleSeriesExpression =
- new SingleSeriesExpression(queryPath, ValueFilter.gtEq(14));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- queryPlan.setExpression(singleSeriesExpression);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(count, cnt);
- }
-
- @Test
- public void readIncorrectTimeFilterTest()
- throws MetadataException, QueryProcessException, StorageEngineException, IOException {
-
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- List<TSDataType> dataTypes = new ArrayList<>();
- pathList.add(
- new PartialPath(TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- dataTypes.add(TSDataType.INT32);
- pathList.add(
- new PartialPath(TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- dataTypes.add(TSDataType.INT32);
-
- TimeFilter.TimeGt gtRight = TimeFilter.gt(10L);
- TimeFilter.TimeLt ltLeft = TimeFilter.lt(5L);
- AndFilter andFilter = new AndFilter(ltLeft, gtRight);
-
- GlobalTimeExpression globalTimeExpression = new GlobalTimeExpression(andFilter);
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- queryPlan.setExpression(globalTimeExpression);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(0, cnt);
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java
deleted file mode 100644
index c45a549776..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSeriesReaderIT.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * 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.integration;
-
-import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.commons.path.MeasurementPath;
-import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.constant.TestConstant;
-import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
-import org.apache.iotdb.db.query.executor.QueryRouter;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.db.utils.SchemaTestUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
-import org.apache.iotdb.tsfile.read.expression.impl.SingleSeriesExpression;
-import org.apache.iotdb.tsfile.read.filter.TimeFilter;
-import org.apache.iotdb.tsfile.read.filter.ValueFilter;
-import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import static org.apache.iotdb.db.utils.EnvironmentUtils.TEST_QUERY_CONTEXT;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.fail;
-
-/**
- * Notice that, all test begins with "IoTDB" is integration test. All test which will start the
- * IoTDB server should be defined as integration test.
- */
-@Category({LocalStandaloneTest.class})
-public class IoTDBSeriesReaderIT {
-
- private static TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
- private static int pageSizeInByte;
- private static int groupSizeInByte;
- private static long prevPartitionInterval;
-
- private static Connection connection;
-
- @BeforeClass
- public static void setUp() throws Exception {
- // use small page setting
- // origin value
- pageSizeInByte = tsFileConfig.getPageSizeInByte();
- groupSizeInByte = tsFileConfig.getGroupSizeInByte();
-
- // new value
- tsFileConfig.setMaxNumberOfPointsInPage(1000);
- tsFileConfig.setPageSizeInByte(1024 * 1024 * 150);
- tsFileConfig.setGroupSizeInByte(1024 * 1024 * 150);
- IoTDBDescriptor.getInstance().getConfig().setMemtableSizeThreshold(1024 * 16);
-
- // test result of IBatchReader should not cross partition
- prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
- IoTDBDescriptor.getInstance().getConfig().setTimePartitionInterval(2000);
-
- EnvironmentUtils.envSetUp();
-
- insertData();
- connection =
- DriverManager.getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- connection.close();
- // recovery value
- tsFileConfig.setMaxNumberOfPointsInPage(1024 * 1024 * 150);
- tsFileConfig.setPageSizeInByte(pageSizeInByte);
- tsFileConfig.setGroupSizeInByte(groupSizeInByte);
-
- EnvironmentUtils.cleanEnv();
- IoTDBDescriptor.getInstance().getConfig().setMemtableSizeThreshold(groupSizeInByte);
- IoTDBDescriptor.getInstance().getConfig().setTimePartitionInterval(prevPartitionInterval);
- }
-
- private static void insertData() throws ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- for (String sql : TestConstant.createSql) {
- statement.execute(sql);
- }
-
- // insert large amount of data time range : 3000 ~ 13600
- for (int time = 3000; time < 13600; time++) {
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 100);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 17);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 22);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[time % 5]);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s4) values(%s, %s)",
- time, TestConstant.booleanValue[time % 2]);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s5) values(%s, %s)", time, time);
- statement.execute(sql);
- }
-
- // statement.execute("flush");
-
- // insert large amount of data time range : 13700 ~ 24000
- for (int time = 13700; time < 24000; time++) {
-
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 70);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 40);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 123);
- statement.execute(sql);
- }
-
- statement.execute("merge");
-
- // buffwrite data, unsealed file
- for (int time = 100000; time < 101000; time++) {
-
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time % 20);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time % 30);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time % 77);
- statement.execute(sql);
- }
-
- // sequential data, memory data
- for (int time = 200000; time < 201000; time++) {
-
- String sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, -time % 20);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, -time % 30);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, -time % 77);
- statement.execute(sql);
- }
-
- statement.execute("flush");
- // unsequence insert, time < 3000
- for (int time = 2000; time < 2500; time++) {
-
- String sql =
- String.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, time);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, time + 1);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, time + 2);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')",
- time, TestConstant.stringValue[time % 5]);
- statement.execute(sql);
- }
-
- for (int time = 100000; time < 100500; time++) {
- String sql =
- String.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, 666);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, 777);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, 888);
- statement.execute(sql);
- }
-
- statement.execute("flush");
- // unsequence insert, time > 200000
- for (int time = 200900; time < 201000; time++) {
-
- String sql =
- String.format("insert into root.vehicle.d0(timestamp,s0) values(%s,%s)", time, 6666);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s1) values(%s,%s)", time, 7777);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s2) values(%s,%s)", time, 8888);
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s3) values(%s,'%s')", time, "goodman");
- statement.execute(sql);
- sql =
- String.format(
- "insert into root.vehicle.d0(timestamp,s4) values(%s, %s)",
- time, TestConstant.booleanValue[time % 2]);
- statement.execute(sql);
- sql = String.format("insert into root.vehicle.d0(timestamp,s5) values(%s, %s)", time, 9999);
- statement.execute(sql);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s2));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s3));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s4));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s5));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0));
- pathList.add(
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d1 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(23400, cnt);
- }
-
- @Test
- public void selectOneSeriesWithValueFilterTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- QueryRouter queryRouter = new QueryRouter();
- List<PartialPath> pathList = new ArrayList<>();
- PartialPath path =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- pathList.add(path);
- SingleSeriesExpression singleSeriesExpression =
- new SingleSeriesExpression(path, ValueFilter.gtEq(20));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
- queryPlan.setExpression(singleSeriesExpression);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(16940, cnt);
- }
-
- @Test
- public void seriesTimeDigestReadTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- QueryRouter queryRouter = new QueryRouter();
- MeasurementPath path =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- SingleSeriesExpression expression = new SingleSeriesExpression(path, TimeFilter.gt(22987L));
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
- queryPlan.setDeduplicatedPathsAndUpdate(Collections.singletonList(path));
- queryPlan.setExpression(expression);
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
- assertEquals(3012, cnt);
- }
-
- @Test
- public void crossSeriesReadUpdateTest()
- throws IOException, StorageEngineException, QueryProcessException, MetadataException {
- QueryRouter queryRouter = new QueryRouter();
- MeasurementPath path1 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s0);
- MeasurementPath path2 =
- SchemaTestUtils.getMeasurementPath(
- TestConstant.d0 + TsFileConstant.PATH_SEPARATOR + TestConstant.s1);
-
- RawDataQueryPlan queryPlan = new RawDataQueryPlan();
-
- List<PartialPath> pathList = new ArrayList<>();
- pathList.add(path1);
- pathList.add(path2);
- queryPlan.setDeduplicatedPathsAndUpdate(pathList);
-
- SingleSeriesExpression singleSeriesExpression =
- new SingleSeriesExpression(path1, ValueFilter.lt(111));
- queryPlan.setExpression(singleSeriesExpression);
-
- QueryDataSet queryDataSet = queryRouter.rawDataQuery(queryPlan, TEST_QUERY_CONTEXT);
-
- int cnt = 0;
- while (queryDataSet.hasNext()) {
- queryDataSet.next();
- cnt++;
- }
-
- assertEquals(22300, cnt);
- }
-
- @Test
- public void queryEmptySeriesTest() throws SQLException {
- Statement statement = connection.createStatement();
- statement.execute(
- "CREATE TIMESERIES root.vehicle.d_empty.s1 WITH DATATYPE=INT64, ENCODING=RLE");
- ResultSet resultSet = statement.executeQuery("select * from root.vehicle.d_empty");
- try {
- assertFalse(resultSet.next());
- } finally {
- resultSet.close();
- }
- }
-
- /** Test when one un-sequenced file may cover a long time range. */
- @Test
- public void queryWithLongRangeUnSeqTest() throws SQLException {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- // make up data
- final String INSERT_TEMPLATE = "insert into root.sg.d1(time, s1) values(%d, %d)";
- final String FLUSH_CMD = "flush";
- for (int i = 1; i <= 10; i++) {
- statement.execute(String.format(INSERT_TEMPLATE, i, i));
- }
- statement.execute(FLUSH_CMD);
- for (int i = 12; i <= 20; i++) {
- statement.execute(String.format(INSERT_TEMPLATE, i, i));
- }
- statement.execute(FLUSH_CMD);
- for (int i = 21; i <= 110; i++) {
- statement.execute(String.format(INSERT_TEMPLATE, i, i));
- if (i % 10 == 0) {
- statement.execute(FLUSH_CMD);
- }
- }
- // unSeq from here
- for (int i = 11; i <= 101; i += 10) {
- statement.execute(String.format(INSERT_TEMPLATE, i, i));
- }
- statement.execute(FLUSH_CMD);
-
- // query from here
- ResultSet resultSet = statement.executeQuery("select s1 from root.sg.d1 where time > 10");
- int cnt = 0;
- while (resultSet.next()) {
- cnt++;
- }
- Assert.assertEquals(100, cnt);
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUDFNestAggregationIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUDFNestAggregationIT.java
deleted file mode 100644
index 075fe5a5c8..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUDFNestAggregationIT.java
+++ /dev/null
@@ -1,774 +0,0 @@
-/*
- * 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.integration.aggregation;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.Locale;
-
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBUDFNestAggregationIT {
-
- private static final double E = 1e-6;
- private static final String TIMESTAMP_STR = "Time";
-
- private static String[] creationSqls =
- new String[] {
- "CREATE DATABASE root.vehicle.d0",
- "CREATE DATABASE root.vehicle.d1",
- "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN"
- };
- private static String[] dataSet2 =
- new String[] {
- "CREATE DATABASE root.ln.wf01.wt01",
- "CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, ENCODING=PLAIN",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(1, 1.1, false, 11)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(2, 2.2, true, 22)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(3, 3.3, false, 33 )",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(4, 4.4, false, 44)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(5, 5.5, false, 55)"
- };
- private static String[] dataSet3 =
- new String[] {
- "CREATE DATABASE root.sg",
- "CREATE TIMESERIES root.sg.d1.s1 WITH DATATYPE=INT32, ENCODING=RLE",
- "insert into root.sg.d1(timestamp,s1) values(5,5)",
- "insert into root.sg.d1(timestamp,s1) values(12,12)",
- "flush",
- "insert into root.sg.d1(timestamp,s1) values(15,15)",
- "insert into root.sg.d1(timestamp,s1) values(25,25)",
- "flush",
- "insert into root.sg.d1(timestamp,s1) values(1,111)",
- "insert into root.sg.d1(timestamp,s1) values(20,200)",
- "flush"
- };
-
- private static final String[] dataSet4 =
- new String[] {
- "CREATE DATABASE root.sg1",
- "CREATE DATABASE root.sg2",
- "CREATE TIMESERIES root.sg1.d1.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg1.d1.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg1.d2.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg1.d2.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg2.d1.status WITH DATATYPE=INT32, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg2.d1.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "CREATE TIMESERIES root.sg2.d2.temperature WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "INSERT INTO root.sg1.d1(timestamp,status) values(150,true)",
- "INSERT INTO root.sg1.d1(timestamp,status,temperature) values(200,false,20.71)",
- "INSERT INTO root.sg1.d1(timestamp,status,temperature) values(600,false,71.12)",
- "INSERT INTO root.sg1.d2(timestamp,status,temperature) values(200,false,42.66)",
- "INSERT INTO root.sg1.d2(timestamp,status,temperature) values(300,false,46.77)",
- "INSERT INTO root.sg1.d2(timestamp,status,temperature) values(700,true,62.15)",
- "INSERT INTO root.sg2.d1(timestamp,status,temperature) values(100,3,88.24)",
- "INSERT INTO root.sg2.d1(timestamp,status,temperature) values(500,5,125.5)",
- "INSERT INTO root.sg2.d2(timestamp,temperature) values(200,105.5)",
- "INSERT INTO root.sg2.d2(timestamp,temperature) values(800,61.22)",
- };
-
- private static final String[] dataSet5 =
- new String[] {
- "CREATE DATABASE root.st",
- "CREATE TIMESERIES root.st.a WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "CREATE TIMESERIES root.st.b WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "CREATE TIMESERIES root.st.c WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "INSERT INTO root.st(timestamp,a,b,c) values(10,10,10,10)",
- "INSERT INTO root.st(timestamp,a,b,c) values(20,20,20,20)",
- "INSERT INTO root.st(timestamp,a,b,c) values(30,30,30,30)",
- "INSERT INTO root.st(timestamp,a,b,c) values(40,40,40,40)",
- "INSERT INTO root.st(timestamp,a,b,c) values(50,50,50,50)",
- "INSERT INTO root.st(timestamp,a,b,c) values(60,60,60,60)",
- "INSERT INTO root.st(timestamp,a) values(70,70)",
- "INSERT INTO root.st(timestamp,b) values(80,80)",
- "INSERT INTO root.st(timestamp,c) values(90,90)",
- };
-
- private final String d0s0 = "root.vehicle.d0.s0";
- private final String d0s1 = "root.vehicle.d0.s1";
- private final String d0s2 = "root.vehicle.d0.s2";
- private final String d0s3 = "root.vehicle.d0.s3";
- private static final String insertTemplate =
- "INSERT INTO root.vehicle.d0(timestamp,s0,s1,s2,s3,s4)" + " VALUES(%d,%d,%d,%f,%s,%s)";
- private static long prevPartitionInterval;
-
- @BeforeClass
- public static void setUp() throws Exception {
- prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
- ConfigFactory.getConfig().setPartitionInterval(1000);
- EnvFactory.getEnv().initBeforeClass();
- prepareData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- EnvFactory.getEnv().cleanAfterClass();
- ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
- }
-
- // Test FunctionExpression, NegativeExpression and BinaryExpression with time filter
- @Test
- public void complexExpressionsWithTimeFilterTest() {
- Object[] retResults = {
- 0L, 2L, 6.950000047683716D, 7.0D, 0.9092974268256817D, 1.9092974268256817D, -2L, 2L
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT"
- + " count(temperature)"
- + ", count(temperature) + avg(temperature) "
- + ", count(temperature) + max_time(hardware)"
- + ", sin(count(temperature))"
- + ", sin(count(temperature)) + 1"
- + ", -count(temperature)"
- + ", count(temperature)"
- + " FROM root.ln.wf01.wt01 WHERE time > 3";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((long) retResults[1], resultSet.getLong(1));
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertEquals((double) retResults[3], resultSet.getDouble(3), E);
- Assert.assertEquals((double) retResults[4], resultSet.getDouble(4), E);
- Assert.assertEquals((double) retResults[5], resultSet.getDouble(5), E);
- Assert.assertEquals((long) retResults[6], resultSet.getLong(6), E);
- Assert.assertEquals((long) retResults[7], resultSet.getLong(7), E);
- Assert.assertFalse(resultSet.next());
- }
-
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((long) retResults[1], resultSet.getLong(1));
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertEquals((double) retResults[3], resultSet.getDouble(3), E);
- Assert.assertEquals((double) retResults[4], resultSet.getDouble(4), E);
- Assert.assertEquals((double) retResults[5], resultSet.getDouble(5), E);
- Assert.assertEquals((long) retResults[6], resultSet.getLong(6), E);
- Assert.assertEquals((long) retResults[7], resultSet.getLong(7), E);
- Assert.assertFalse(resultSet.next());
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void complexExpressionsWithTimeFilterTest2() {
- Object[] retResults = {0L, 1.14112000806D, 0.28224001612D};
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT sin(count(temperature) + 1) + 1,sin(count(temperature) + 1) * 2 FROM root.ln.wf01.wt01 WHERE time > 3";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((double) retResults[1], resultSet.getDouble(1), E);
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertFalse(resultSet.next());
- }
-
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((double) retResults[1], resultSet.getDouble(1), E);
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertFalse(resultSet.next());
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void expressionNestExtremeTest() {
- // Issue: https://issues.apache.org/jira/browse/IOTDB-2151
- Object[] retResults = {0L, 5.5F, 0.21511998808D};
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT extreme(temperature), sin(extreme(temperature) + 1) FROM root.ln.wf01.wt01";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((float) retResults[1], resultSet.getFloat(1), E);
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertFalse(resultSet.next());
- }
-
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((float) retResults[1], resultSet.getFloat(1), E);
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertFalse(resultSet.next());
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- // Test FunctionExpression, NegativeExpression and BinaryExpression with value filter
- @Test
- public void complexExpressionsWithValueFilterTest() {
- Object[] retResults = {0L, 4L, 6.75D, 8.0D, -0.7568024953D, 5.0D, -4L, 4L};
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT"
- + " count(temperature)"
- + ", count(temperature) + avg(temperature) "
- + ", count(temperature) + max_time(hardware)"
- + ", sin(count(temperature))"
- + ", count(temperature) + 1"
- + ", -count(temperature)"
- + ", count(temperature)"
- + " FROM root.ln.wf01.wt01 WHERE temperature < 5";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((long) retResults[1], resultSet.getLong(1));
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertEquals((double) retResults[3], resultSet.getDouble(3), E);
- Assert.assertEquals((double) retResults[4], resultSet.getDouble(4), E);
- Assert.assertEquals((double) retResults[5], resultSet.getDouble(5), E);
- Assert.assertEquals((long) retResults[6], resultSet.getLong(6), E);
- Assert.assertEquals((long) retResults[7], resultSet.getLong(7), E);
- Assert.assertFalse(resultSet.next());
- }
-
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals((long) retResults[0], resultSet.getLong(TIMESTAMP_STR));
- Assert.assertEquals((long) retResults[1], resultSet.getLong(1));
- Assert.assertEquals((double) retResults[2], resultSet.getDouble(2), E);
- Assert.assertEquals((double) retResults[3], resultSet.getDouble(3), E);
- Assert.assertEquals((double) retResults[4], resultSet.getDouble(4), E);
- Assert.assertEquals((double) retResults[5], resultSet.getDouble(5), E);
- Assert.assertEquals((long) retResults[6], resultSet.getLong(6), E);
- Assert.assertEquals((long) retResults[7], resultSet.getLong(7), E);
- Assert.assertFalse(resultSet.next());
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- // Test FunctionExpression, NegativeExpression and BinaryExpression with wildcard
- @Test
- public void complexExpressionWithWildcardTest() throws Exception {
- double[] retArray =
- new double[] {
- 91.83,
- 151.58,
- 92.83,
- 152.58,
- -0.66224654127,
- 0.70580058691,
- -91.83,
- -151.58,
- 91.83,
- 151.58,
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- statement.execute(
- "select sum(temperature), sum(temperature) + 1, sin(sum(temperature)), -sum(temperature), sum(temperature) from root.sg1.**");
-
- try (ResultSet resultSet = statement.getResultSet()) {
- Assert.assertTrue(resultSet.next());
- Assert.assertEquals(0L, resultSet.getLong(TIMESTAMP_STR));
- for (int i = 1; i <= 10; i++) {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i), retArray[i - 1], resultSet.getDouble(i), E);
- }
- Assert.assertFalse(resultSet.next());
- }
- }
- }
-
- @Test
- public void complexExpressionWithGroupByTimeWithTimeFilterTest() {
- Object[][] retArray = {
- {0L, null, null, null, null, null, null},
- {1000L, null, null, null, null, null, null},
- {2000L, null, null, null, null, null, null},
- {3000L, null, null, null, null, null, null},
- {4000L, null, null, null, null, null, null},
- {5000L, null, null, null, null, null, null},
- {6000L, -0.32466497009092804D, 6499500.0D, 1.64995E7D, 8254.75D, -6499500.0D, 6499500.0D},
- {7000L, -0.6648173658103295D, 3874750.0D, 1.387475E7D, 10129.75D, -3874750.0D, 3874750.0D},
- {8000L, 0.8033729538397475D, 4124750.0D, 1.412475E7D, 10879.75D, -4124750.0D, 4124750.0D},
- };
-
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT sin(sum(s0)), sum(s0), sum(s0)+10000000, ((avg(s2)-1000) * 3 + 11) / 2, -sum(s0), sum(s0) "
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000 GROUP BY([0, 9000), 1s)";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 7; i++) {
- if (retArray[cnt][1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray.length, cnt);
- // keep the correctness of `order by time desc`
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- cnt = retArray.length;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- cnt--;
- Assert.assertEquals((long) retArray[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 7; i++) {
- if (retArray[cnt][1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- }
- }
- Assert.assertEquals(0, cnt);
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void complexExpressionWithGroupByTimeWithValueFilterTest() {
- Object[][] retArray = {
- {0L, null, null, null, null, null, null},
- {1000L, null, null, null, null, null, null},
- {2000L, null, null, null, null, null, null},
- {3000L, null, null, null, null, null, null},
- {4000L, null, null, null, null, null, null},
- {5000L, null, null, null, null, null, null},
- {6000L, -0.32466497009092804D, 6499500.0D, 1.64995E7D, 8254.75D, -6499500.0D, 6499500.0D},
- {7000L, -0.6648173658103295D, 3874750.0D, 1.387475E7D, 10129.75D, -3874750.0D, 3874750.0D},
- {8000L, 0.8033729538397475D, 4124750.0D, 1.412475E7D, 10879.75D, -4124750.0D, 4124750.0D},
- };
-
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT sin(sum(s0)), sum(s0), sum(s0)+10000000, ((avg(s2)-1000) * 3 + 11) / 2, -sum(s0), sum(s0) "
- + "FROM root.vehicle.d0 WHERE s0 >= 6000 AND s0 <= 9000 GROUP BY([0, 9000), 1s)";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 7; i++) {
- if (retArray[cnt][1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray.length, cnt);
- // keep the correctness of `order by time desc`
- hasResultSet = statement.execute(query + " ORDER BY TIME DESC");
-
- Assert.assertTrue(hasResultSet);
- cnt = retArray.length;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- cnt--;
- Assert.assertEquals((long) retArray[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 7; i++) {
- if (retArray[cnt][1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- }
- }
- Assert.assertEquals(0, cnt);
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- // test clause 'with null'
- @Test
- public void withNullClauseTest() {
- Object[][] retArray1 = {
- {10L, 11.0, 11.0, 3.0},
- {20L, 21.0, 21.0, 3.0},
- {30L, 31.0, 31.0, 3.0},
- {40L, 41.0, 41.0, 3.0},
- {50L, 51.0, 51.0, 3.0},
- {60L, 61.0, 61.0, 3.0},
- {70L, 71.0, 71.0, 3.0},
- {80L, null, null, 1.0},
- {90L, null, null, 1.0},
- };
-
- Object[][] retArray2 = {
- {10L, 11.0, 11.0, 3.0},
- {20L, 21.0, 21.0, 3.0},
- {30L, 31.0, 31.0, 3.0},
- {40L, 41.0, 41.0, 3.0},
- {50L, 51.0, 51.0, 3.0},
- {60L, 61.0, 61.0, 3.0},
- {70L, 71.0, 71.0, 3.0},
- };
-
- Object[][] retArray3 = {
- {10L, 11.0, 11.0},
- {20L, 21.0, 21.0},
- {30L, 31.0, 31.0},
- {40L, 41.0, 41.0},
- {50L, 51.0, 51.0},
- {60L, 61.0, 61.0},
- {70L, 71.0, 71.0},
- };
-
- // query without 'without null'
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- String query =
- "SELECT avg(a)+1, 1+sum(a),count(a)*2+1 FROM root.st GROUP BY([10, 100), 10ms)";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray1[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 4; ++i) {
- if (retArray1[cnt][i - 1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray1[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray1.length, cnt);
-
- // query without 'without null any'
- hasResultSet = statement.execute(query + " WITHOUT NULL ANY");
- Assert.assertTrue(hasResultSet);
- cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray2[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 4; ++i) {
- if (retArray1[cnt][i - 1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray2[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray2.length, cnt);
-
- // query without 'without null all'
- query =
- "SELECT avg(a) + 1, count(a) + avg(a) FROM root.st GROUP BY([10, 100), 10ms) WITHOUT NULL ALL";
- hasResultSet = statement.execute(query);
- Assert.assertTrue(hasResultSet);
- cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray3[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 3; ++i) {
- if (retArray1[cnt][i - 1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray3[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray3.length, cnt);
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
- // test whether row number is right with function count()'
- @Test
- public void rowNumberWithFunctionCountTest() {
- Object[][] retArray1 = {
- {10L, 11.0, 11.0, 3.0},
- {20L, 21.0, 21.0, 3.0},
- {30L, 31.0, 31.0, 3.0},
- {40L, 41.0, 41.0, 3.0},
- {50L, 51.0, 51.0, 3.0},
- {60L, 61.0, 61.0, 3.0},
- {70L, 71.0, 71.0, 3.0},
- {80L, null, null, 1.0},
- {90L, null, null, 1.0},
- };
-
- Object[][] retArray2 = {
- {10L, 11.0},
- {20L, 21.0},
- {30L, 31.0},
- {40L, 41.0},
- {50L, 51.0},
- {60L, 61.0},
- {70L, 71.0},
- {80L, null},
- {90L, null},
- };
-
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- // multi columns
- String query =
- "SELECT avg(a)+1, count(a)+avg(a),count(a)*2+1 FROM root.st GROUP BY([10, 100), 10ms)";
- boolean hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray1[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 4; ++i) {
- if (retArray1[cnt][i - 1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray1[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- // row num should be 9 instead of 7.
- Assert.assertEquals(retArray1.length, cnt);
-
- // only one column
- query = "SELECT count(a)+avg(a)" + "FROM root.st GROUP BY([10, 100), 10ms)";
- hasResultSet = statement.execute(query);
-
- Assert.assertTrue(hasResultSet);
- cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- Assert.assertEquals((long) retArray2[cnt][0], resultSet.getLong(TIMESTAMP_STR));
- for (int i = 2; i <= 2; ++i) {
- if (retArray2[cnt][i - 1] == null) {
- Assert.assertNull(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
- } else {
- Assert.assertEquals(
- resultSet.getMetaData().getColumnName(i),
- (double) retArray2[cnt][i - 1],
- resultSet.getDouble(i),
- E);
- }
- }
- cnt++;
- }
- }
- Assert.assertEquals(retArray2.length, cnt);
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- private static void prepareData() {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
-
- for (String sql : creationSqls) {
- statement.execute(sql);
- }
-
- // prepare BufferWrite file
- for (int i = 5000; i < 7000; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- statement.execute("FLUSH");
- for (int i = 7500; i < 8500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
- statement.execute("FLUSH");
- // prepare Unseq-File
- for (int i = 500; i < 1500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- statement.execute("FLUSH");
- for (int i = 3000; i < 6500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
- statement.execute("merge");
-
- // prepare BufferWrite cache
- for (int i = 9000; i < 10000; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- // prepare Overflow cache
- for (int i = 2000; i < 2500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
-
- for (String sql : dataSet3) {
- statement.execute(sql);
- }
-
- for (String sql : dataSet2) {
- statement.execute(sql);
- }
-
- for (String sql : dataSet4) {
- statement.execute(sql);
- }
-
- for (String sql : dataSet5) {
- statement.execute(sql);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUserDefinedAggregationFunctionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUserDefinedAggregationFunctionIT.java
deleted file mode 100644
index 39b0faec33..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aggregation/IoTDBUserDefinedAggregationFunctionIT.java
+++ /dev/null
@@ -1,732 +0,0 @@
-/*
- * 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.integration.aggregation;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.jdbc.Config;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.Locale;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.fail;
-
-public class IoTDBUserDefinedAggregationFunctionIT {
-
- private static final double DETLA = 1e-6;
- private static final String TIMESTAMP_STR = "Time";
- private static final String TEMPERATURE_STR = "root.ln.wf01.wt01.temperature";
-
- private static String[] creationSqls =
- new String[] {
- "CREATE DATABASE root.vehicle.d0",
- "CREATE DATABASE root.vehicle.d1",
- "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN"
- };
- private static String[] dataSet2 =
- new String[] {
- "CREATE DATABASE root.ln.wf01.wt01",
- "CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, ENCODING=PLAIN",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(1, 1.1, false, 11)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(2, 2.2, true, 22)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(3, 3.3, false, 33 )",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(4, 4.4, false, 44)",
- "INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) "
- + "values(5, 5.5, false, 55)"
- };
- private static String[] dataSet3 =
- new String[] {
- "CREATE DATABASE root.sg",
- "CREATE TIMESERIES root.sg.d1.s1 WITH DATATYPE=INT32, ENCODING=RLE",
- "insert into root.sg.d1(timestamp,s1) values(5,5)",
- "insert into root.sg.d1(timestamp,s1) values(12,12)",
- "flush",
- "insert into root.sg.d1(timestamp,s1) values(15,15)",
- "insert into root.sg.d1(timestamp,s1) values(25,25)",
- "flush",
- "insert into root.sg.d1(timestamp,s1) values(1,111)",
- "insert into root.sg.d1(timestamp,s1) values(20,200)",
- "flush"
- };
- private final String d0s0 = "root.vehicle.d0.s0";
- private final String d0s1 = "root.vehicle.d0.s1";
- private final String d0s2 = "root.vehicle.d0.s2";
- private final String d0s3 = "root.vehicle.d0.s3";
- private static final String insertTemplate =
- "INSERT INTO root.vehicle.d0(timestamp,s0,s1,s2,s3,s4)" + " VALUES(%d,%d,%d,%f,%s,%s)";
- private static long prevPartitionInterval =
- IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
-
- @BeforeClass
- public static void setUp() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setTimePartitionInterval(1000000);
- EnvironmentUtils.envSetUp();
- Class.forName(Config.JDBC_DRIVER_NAME);
- prepareData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- EnvironmentUtils.cleanEnv();
- IoTDBDescriptor.getInstance().getConfig().setTimePartitionInterval(prevPartitionInterval);
- }
-
- // add test for part of points in page don't satisfy filter
- // details in: https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-54
- @Test
- public void additionTest1() {
- String[] retArray = new String[] {"0,3.0", "0,6.0,7.0", "0,4.0,6.0"};
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "SELECT count(temperature) + 1 FROM root.ln.wf01.wt01 WHERE hardware > 35");
-
- Assert.assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(1);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(temperature) + 1 FROM root.ln.wf01.wt01 WHERE hardware > 35 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans = resultSet.getString(TIMESTAMP_STR) + "," + resultSet.getString(1);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(temperature) + min_time(temperature), count(temperature) + max_time(temperature) FROM root.ln.wf01.wt01 WHERE time > 3");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + Double.valueOf(resultSet.getString(2)).toString();
- Assert.assertEquals(retArray[cnt], ans);
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(temperature) + min_time(temperature), count(temperature) + max_time(temperature) FROM root.ln.wf01.wt01 WHERE time > 3 order by time desc ");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT min_time(temperature), count(temperature) + min_time(temperature) FROM root.ln.wf01.wt01 WHERE time > 3");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- cnt++;
- }
- Assert.assertEquals(3, cnt);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void addtionTest2() {
- String[] retArray =
- new String[] {
- "0,2002.0,2003.0,2004.0,2005.0", "0,15000.0,7500,7500", "0,7500,15000.0,7500"
- };
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "SELECT count(s0)+1,count(s1)+2,count(s2)+3,count(s3)+4 "
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
-
- Assert.assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2)
- + ","
- + resultSet.getString(3)
- + ","
- + resultSet.getString(4);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
- // keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
- "SELECT count(s0)+1,count(s1)+2,count(s2)+3,count(s3)+4 "
- + "FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2)
- + ","
- + resultSet.getString(3)
- + ","
- + resultSet.getString(4);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(s0)+count(s1),count(s2),count(s3) " + "FROM root.vehicle.d0");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 1;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2)
- + ","
- + resultSet.getString(3);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(s0)+count(s1),count(s2),count(s3) "
- + "FROM root.vehicle.d0 order by time desc");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 1;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2)
- + ","
- + resultSet.getString(3);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT count(s0),count(s0)+count(s1),count(s2) " + "FROM root.vehicle.d0");
-
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 2;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2)
- + ","
- + resultSet.getString(3);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(3, cnt);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void polyNominalWithFirstAndLastValueTest() {
- String[] retArray = new String[] {"0,10001.0,2000"};
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "SELECT ((first_value(s0)+ last_value(s1))*2-first_value(s2)+2)/2, first_value(s1) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <= 9000");
- Assert.assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT ((first_value(s0)+ last_value(s1))*2-first_value(s2)+2)/2, first_value(s1) "
- + "FROM root.vehicle.d0 WHERE time >= 1500 AND time <= 9000 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void polyNominalWithMaxMinTimeTest() {
- String[] retArray = new String[] {"0,500,0.0", "0,100.0,2499", "0,-100.0,-2499"};
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "SELECT min_time(s2),((max_time(s0)+min_time(s2))*2+2)%10 "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000");
- Assert.assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT min_time(s2),((max_time(s0)+min_time(s2))*2+2)%10 "
- + "FROM root.vehicle.d0 WHERE time >= 100 AND time < 9000 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT ((max_time(s0)-min_time(s2))+1)/5,max_time(s0) "
- + "FROM root.vehicle.d0 WHERE time <= 2500 AND time > 1800");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 1;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT ((max_time(s0)-min_time(s2))+1)/5,max_time(s0) "
- + "FROM root.vehicle.d0 WHERE time <= 2500 AND time > 1800 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 1;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
- hasResultSet =
- statement.execute(
- "SELECT -((max_time(s0)-min_time(s2))+1)/5,-max_time(s0) "
- + "FROM root.vehicle.d0 WHERE time <= 2500 AND time > 1800");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 2;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(3, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT -((max_time(s0)-min_time(s2))+1)/5,-max_time(s0) "
- + "FROM root.vehicle.d0 WHERE time <= 2500 AND time > 1800 order by time desc");
- Assert.assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 2;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(1)
- + ","
- + resultSet.getString(2);
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(3, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void polynominalWithAvgAndSumTest() {
- double[][] retArray = {
- {0.0, 2.4508E7, 6250.374812593702},
- {0.0, 626750.0, 1250.9980039920158}
- };
-
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "SELECT sum(s0)+10000000,avg(s2)-1000 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
-
- Assert.assertTrue(hasResultSet);
- int cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(1));
- ans[2] = Double.valueOf(resultSet.getString(2));
- assertArrayEquals(retArray[cnt], ans, DETLA);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
- // keep the correctness of `order by time desc`
- hasResultSet =
- statement.execute(
- "SELECT sum(s0)+10000000,avg(s2)-1000 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000 order by time desc");
-
- Assert.assertTrue(hasResultSet);
- cnt = 0;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(1));
- ans[2] = Double.valueOf(resultSet.getString(2));
- assertArrayEquals(retArray[cnt], ans, DETLA);
- cnt++;
- }
- Assert.assertEquals(1, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "SELECT (sum(s0)+15)-3*5,avg(s2) FROM root.vehicle.d0 WHERE time >= 1000 AND time <= 2000");
- Assert.assertTrue(hasResultSet);
- cnt = 1;
- try (ResultSet resultSet = statement.getResultSet()) {
- while (resultSet.next()) {
- double[] ans = new double[3];
- ans[0] = Double.valueOf(resultSet.getString(TIMESTAMP_STR));
- ans[1] = Double.valueOf(resultSet.getString(1));
- ans[2] = Double.valueOf(resultSet.getString(2));
- assertArrayEquals(retArray[cnt], ans, DETLA);
- cnt++;
- }
- Assert.assertEquals(2, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void avgSumErrorTest() {
- try (Connection connection =
- DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- try {
- statement.execute(
- "SELECT avg(s3)+1 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
- resultSet.next();
- fail();
- }
- } catch (Exception e) {
- Assert.assertTrue(
- e.getMessage()
- .contains(
- "Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE, MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
- }
- try {
- statement.execute(
- "SELECT sum(s3)+1 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
- resultSet.next();
- fail();
- }
- } catch (Exception e) {
- Assert.assertTrue(
- e.getMessage()
- .contains(
- "Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE, MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
- }
- try {
- statement.execute(
- "SELECT avg(s4)+1 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
- resultSet.next();
- fail();
- }
- } catch (Exception e) {
- Assert.assertTrue(
- e.getMessage()
- .contains(
- "Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE, MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
- }
- try {
- statement.execute(
- "SELECT sum(s4)+1 FROM root.vehicle.d0 WHERE time >= 6000 AND time <= 9000");
- try (ResultSet resultSet = statement.getResultSet()) {
- resultSet.next();
- fail();
- }
- } catch (Exception e) {
- Assert.assertTrue(
- e.getMessage()
- .contains(
- "Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE, MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
- }
- try {
- statement.execute("SELECT avg(status)+2 FROM root.ln.wf01.wt01");
- try (ResultSet resultSet = statement.getResultSet()) {
- resultSet.next();
- fail();
- }
- } catch (Exception e) {
- Assert.assertTrue(
- e.getMessage()
- .contains(
- "Aggregate functions [AVG, SUM, EXTREME, MIN_VALUE, MAX_VALUE] only support numeric data types [INT32, INT64, FLOAT, DOUBLE]"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- private static void prepareData() {
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- for (String sql : creationSqls) {
- statement.execute(sql);
- }
-
- // prepare BufferWrite file
- for (int i = 5000; i < 7000; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- statement.execute("FLUSH");
- for (int i = 7500; i < 8500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
- statement.execute("FLUSH");
- // prepare Unseq-File
- for (int i = 500; i < 1500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- statement.execute("FLUSH");
- for (int i = 3000; i < 6500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
- statement.execute("merge");
-
- // prepare BufferWrite cache
- for (int i = 9000; i < 10000; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "true"));
- }
- // prepare Overflow cache
- for (int i = 2000; i < 2500; i++) {
- statement.execute(
- String.format(
- Locale.ENGLISH, insertTemplate, i, i, i, (double) i, "'" + i + "'", "false"));
- }
-
- for (String sql : dataSet3) {
- statement.execute(sql);
- }
-
- for (String sql : dataSet2) {
- statement.execute(sql);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/AlignedWriteUtil.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/AlignedWriteUtil.java
deleted file mode 100644
index a19ab2597e..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/AlignedWriteUtil.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.jdbc.Config;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.Statement;
-
-/**
- * This class generates data for test cases in aligned time series scenarios.
- *
- * <p>You can comprehensively view the generated data in the following online doc:
- *
- * <p>https://docs.google.com/spreadsheets/d/1kfrSR1_paSd9B1Z0jnPBD3WQIMDslDuNm4R0mpWx9Ms/edit?usp=sharing
- */
-public class AlignedWriteUtil {
-
- private static final String[] sqls =
- new String[] {
- "CREATE DATABASE root.sg1",
- "create aligned timeseries root.sg1.d1(s1 FLOAT encoding=RLE, s2 INT32 encoding=Gorilla compression=SNAPPY, s3 INT64, s4 BOOLEAN, s5 TEXT)",
- "create timeseries root.sg1.d2.s1 WITH DATATYPE=FLOAT, encoding=RLE",
- "create timeseries root.sg1.d2.s2 WITH DATATYPE=INT32, encoding=Gorilla",
- "create timeseries root.sg1.d2.s3 WITH DATATYPE=INT64",
- "create timeseries root.sg1.d2.s4 WITH DATATYPE=BOOLEAN",
- "create timeseries root.sg1.d2.s5 WITH DATATYPE=TEXT",
- "insert into root.sg1.d1(time, s1, s2, s3, s4, s5) aligned values(1, 1.0, 1, 1, TRUE, 'aligned_test1')",
- "insert into root.sg1.d1(time, s1, s2, s3, s5) aligned values(2, 2.0, 2, 2, 'aligned_test2')",
- "insert into root.sg1.d1(time, s1, s3, s4, s5) aligned values(3, 3.0, 3, FALSE, 'aligned_test3')",
- "insert into root.sg1.d1(time, s1, s2, s4, s5) aligned values(4, 4.0, 4, TRUE, 'aligned_test4')",
- "insert into root.sg1.d1(time, s1, s2, s4, s5) aligned values(5, 5.0, 5, TRUE, 'aligned_test5')",
- "insert into root.sg1.d1(time, s1, s2, s3, s4) aligned values(6, 6.0, 6, 6, TRUE)",
- "insert into root.sg1.d1(time, s1, s2, s3, s4, s5) aligned values(7, 7.0, 7, 7, FALSE, 'aligned_test7')",
- "insert into root.sg1.d1(time, s1, s2, s3, s5) aligned values(8, 8.0, 8, 8, 'aligned_test8')",
- "insert into root.sg1.d1(time, s1, s2, s3, s4, s5) aligned values(9, 9.0, 9, 9, FALSE, 'aligned_test9')",
- "insert into root.sg1.d1(time, s2, s3, s4, s5) aligned values(10, 10, 10, TRUE, 'aligned_test10')",
- "insert into root.sg1.d2(time, s1, s2, s3, s4, s5) values(1, 1.0, 1, 1, TRUE, 'non_aligned_test1')",
- "insert into root.sg1.d2(time, s1, s2, s3, s5) values(2, 2.0, 2, 2, 'non_aligned_test2')",
- "insert into root.sg1.d2(time, s1, s3, s4, s5) values(3, 3.0, 3, FALSE, 'non_aligned_test3')",
- "insert into root.sg1.d2(time, s1, s2, s4, s5) values(4, 4.0, 4, TRUE, 'non_aligned_test4')",
- "insert into root.sg1.d2(time, s1, s2, s4, s5) values(5, 5.0, 5, TRUE, 'non_aligned_test5')",
- "insert into root.sg1.d2(time, s1, s2, s3, s4) values(6, 6.0, 6, 6, TRUE)",
- "insert into root.sg1.d2(time, s1, s2, s3, s4, s5) values(7, 7.0, 7, 7, FALSE, 'non_aligned_test7')",
- "insert into root.sg1.d2(time, s1, s2, s3, s5) values(8, 8.0, 8, 8, 'non_aligned_test8')",
- "insert into root.sg1.d2(time, s1, s2, s3, s4, s5) values(9, 9.0, 9, 9, FALSE, 'non_aligned_test9')",
- "insert into root.sg1.d2(time, s2, s3, s4, s5) values(10, 10, 10, TRUE, 'non_aligned_test10')",
- "flush",
- "insert into root.sg1.d1(time, s1, s3, s4, s5) aligned values(3, 30000.0, 30000, TRUE, 'aligned_unseq_test3')",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(11, 11.0, 11, 11)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(12, 12.0, 12, 12)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(13, 13.0, 13, 13)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(14, 14.0, 14, 14)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(15, 15.0, 15, 15)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(16, 16.0, 16, 16)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(17, 17.0, 17, 17)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(18, 18.0, 18, 18)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(19, 19.0, 19, 19)",
- "insert into root.sg1.d1(time, s1, s2, s3) aligned values(20, 20.0, 20, 20)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(11, 11.0, 11, 11)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(12, 12.0, 12, 12)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(13, 13.0, 13, 13)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(14, 14.0, 14, 14)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(15, 15.0, 15, 15)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(16, 16.0, 16, 16)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(17, 17.0, 17, 17)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(18, 18.0, 18, 18)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(19, 19.0, 19, 19)",
- "insert into root.sg1.d2(time, s1, s2, s3) values(20, 20.0, 20, 20)",
- "flush",
- "insert into root.sg1.d1(time, s1, s2, s3, s4, s5) aligned values(13, 130000.0, 130000, 130000, TRUE, 'aligned_unseq_test13')",
- "insert into root.sg1.d1(time, s3, s4) aligned values(21, 21, TRUE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(22, 22, TRUE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(23, 23, TRUE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(24, 24, TRUE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(25, 25, TRUE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(26, 26, FALSE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(27, 27, FALSE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(28, 28, FALSE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(29, 29, FALSE)",
- "insert into root.sg1.d1(time, s3, s4) aligned values(30, 30, FALSE)",
- "insert into root.sg1.d2(time, s3, s4) values(21, 21, TRUE)",
- "insert into root.sg1.d2(time, s3, s4) values(22, 22, TRUE)",
- "insert into root.sg1.d2(time, s3, s4) values(23, 23, TRUE)",
- "insert into root.sg1.d2(time, s3, s4) values(24, 24, TRUE)",
- "insert into root.sg1.d2(time, s3, s4) values(25, 25, TRUE)",
- "insert into root.sg1.d2(time, s3, s4) values(26, 26, FALSE)",
- "insert into root.sg1.d2(time, s3, s4) values(27, 27, FALSE)",
- "insert into root.sg1.d2(time, s3, s4) values(28, 28, FALSE)",
- "insert into root.sg1.d2(time, s3, s4) values(29, 29, FALSE)",
- "insert into root.sg1.d2(time, s3, s4) values(30, 30, FALSE)",
- "flush",
- "insert into root.sg1.d1(time, s1, s3, s4) aligned values(23, 230000.0, 230000, FALSE)",
- "insert into root.sg1.d1(time, s2, s5) aligned values(31, 31, 'aligned_test31')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(32, 32, 'aligned_test32')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(33, 33, 'aligned_test33')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(34, 34, 'aligned_test34')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(35, 35, 'aligned_test35')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(36, 36, 'aligned_test36')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(37, 37, 'aligned_test37')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(38, 38, 'aligned_test38')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(39, 39, 'aligned_test39')",
- "insert into root.sg1.d1(time, s2, s5) aligned values(40, 40, 'aligned_test40')",
- "insert into root.sg1.d2(time, s2, s5) values(31, 31, 'non_aligned_test31')",
- "insert into root.sg1.d2(time, s2, s5) values(32, 32, 'non_aligned_test32')",
- "insert into root.sg1.d2(time, s2, s5) values(33, 33, 'non_aligned_test33')",
- "insert into root.sg1.d2(time, s2, s5) values(34, 34, 'non_aligned_test34')",
- "insert into root.sg1.d2(time, s2, s5) values(35, 35, 'non_aligned_test35')",
- "insert into root.sg1.d2(time, s2, s5) values(36, 36, 'non_aligned_test36')",
- "insert into root.sg1.d2(time, s2, s5) values(37, 37, 'non_aligned_test37')",
- "insert into root.sg1.d2(time, s2, s5) values(38, 38, 'non_aligned_test38')",
- "insert into root.sg1.d2(time, s2, s5) values(39, 39, 'non_aligned_test39')",
- "insert into root.sg1.d2(time, s2, s5) values(40, 40, 'non_aligned_test40')",
- };
-
- public static void insertData() throws ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- // create aligned and non-aligned time series
- for (String sql : sqls) {
- statement.execute(sql);
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBEmptyDataIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBEmptyDataIT.java
deleted file mode 100644
index 269f0af6fd..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBEmptyDataIT.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.ClusterTest;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class, ClusterTest.class})
-public class IoTDBEmptyDataIT {
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvFactory.getEnv().initBeforeTest();
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
-
- statement.execute("create aligned timeseries root.sg.d1(s1 int32);");
- statement.execute("insert into root.sg.d1(time, s1) aligned values(1400, null); ");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- EnvFactory.getEnv().cleanAfterTest();
- }
-
- @Test
- public void selectAllAlignedWithoutValueFilterTest() {
-
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
-
- try (ResultSet resultSet = statement.executeQuery("select * from root.sg.d1")) {
- int cnt = 0;
- while (resultSet.next()) {
- cnt++;
- }
- assertEquals(0, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryBigDataIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryBigDataIT.java
deleted file mode 100644
index 531800c53c..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryBigDataIT.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.apache.iotdb.db.constant.TestConstant.avg;
-import static org.apache.iotdb.db.constant.TestConstant.sum;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBGroupByFillQueryBigDataIT {
-
- private static final String[] sqls =
- new String[] {
- "CREATE DATABASE root.sg1",
- "create aligned timeseries root.sg1.d1(s1 FLOAT encoding=RLE, s2 INT32 encoding=Gorilla compression=SNAPPY, s3 INT64)",
- "create timeseries root.sg1.d2.s1 WITH DATATYPE=FLOAT, encoding=RLE",
- "create timeseries root.sg1.d2.s2 WITH DATATYPE=INT32, encoding=Gorilla",
- "create timeseries root.sg1.d2.s3 WITH DATATYPE=INT64",
- };
-
- protected static boolean enableSeqSpaceCompaction;
- protected static boolean enableUnseqSpaceCompaction;
- protected static boolean enableCrossSpaceCompaction;
- protected static long prevPartitionInterval;
-
- private static final String TIMESTAMP_STR = "Time";
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvFactory.getEnv().initBeforeClass();
- // TODO When the aligned time series support compaction, we need to set compaction to true
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
- ConfigFactory.getConfig().setEnableSeqSpaceCompaction(false);
- ConfigFactory.getConfig().setEnableUnseqSpaceCompaction(false);
- ConfigFactory.getConfig().setEnableCrossSpaceCompaction(false);
-
- // set group by fill cache size to 0.1 MB for testing ElasticSerializableTVList
- IoTDBDescriptor.getInstance().getConfig().setGroupByFillCacheSizeInMB((float) 0.1);
-
- insertData();
- }
-
- public static void insertData() throws ClassNotFoundException {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
-
- // create aligned and non-aligned time series
- for (String sql : sqls) {
- statement.execute(sql);
- }
-
- // insert aligned and non-aligned data
- for (int i = 0; i < 100000; i++) {
- statement.execute(
- String.format(
- "insert into root.sg1.d1(time, s2, s3) aligned values(%d, %d, %d)", i, i, i));
- statement.execute(
- String.format("insert into root.sg1.d2(time, s2, s3) values(%d, %d, %d)", i, i, i));
- if (i % 1000 == 0) {
- statement.execute("flush");
- }
- }
- statement.execute("insert into root.sg1.d1(time, s1) aligned values(0, 0)");
- statement.execute("insert into root.sg1.d1(time, s1) aligned values(99999, 99999)");
- statement.execute("insert into root.sg1.d2(time, s1) values(0, 0)");
- statement.execute("insert into root.sg1.d2(time, s1) values(99999, 99999)");
- statement.execute("flush");
- // wait flush
- Thread.sleep(100);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- ConfigFactory.getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- ConfigFactory.getConfig().setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- ConfigFactory.getConfig().setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
- IoTDBDescriptor.getInstance().getConfig().setGroupByFillCacheSizeInMB((float) 1.0);
- EnvFactory.getEnv().cleanAfterClass();
- }
-
- @Test
- public void alignedBigDataLinearFillTest() throws SQLException {
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select avg(d1.s1), avg(d1.s2), avg(d1.s3), sum(d2.s1), sum(d2.s2), sum(d2.s3) from root.sg1 "
- + "GROUP BY ([0, 100000), 1ms) FILL (linear)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s3"));
- Assert.assertEquals(
- String.format("%d,%d.0,%d.0,%d.0,%d.0,%d.0,%d.0", cnt, cnt, cnt, cnt, cnt, cnt, cnt),
- ans);
- cnt++;
- }
- Assert.assertEquals(100000, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select avg(d1.s1), avg(d1.s2), avg(d1.s3), sum(d2.s1), sum(d2.s2), sum(d2.s3) from root.sg1 "
- + "GROUP BY ([0, 100000), 1ms) FILL (linear) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 99999;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s3"));
- Assert.assertEquals(
- String.format("%d,%d.0,%d.0,%d.0,%d.0,%d.0,%d.0", cnt, cnt, cnt, cnt, cnt, cnt, cnt),
- ans);
- cnt--;
- }
- Assert.assertEquals(-1, cnt);
- }
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryIT.java
deleted file mode 100644
index 67b375d81f..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBGroupByFillQueryIT.java
+++ /dev/null
@@ -1,989 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-import static org.apache.iotdb.db.constant.TestConstant.avg;
-import static org.apache.iotdb.db.constant.TestConstant.count;
-import static org.apache.iotdb.db.constant.TestConstant.firstValue;
-import static org.apache.iotdb.db.constant.TestConstant.lastValue;
-import static org.apache.iotdb.db.constant.TestConstant.maxTime;
-import static org.apache.iotdb.db.constant.TestConstant.maxValue;
-import static org.apache.iotdb.db.constant.TestConstant.minTime;
-import static org.apache.iotdb.db.constant.TestConstant.minValue;
-import static org.apache.iotdb.db.constant.TestConstant.sum;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBGroupByFillQueryIT {
-
- protected static boolean enableSeqSpaceCompaction;
- protected static boolean enableUnseqSpaceCompaction;
- protected static boolean enableCrossSpaceCompaction;
- protected static long prevPartitionInterval;
-
- private static final String TIMESTAMP_STR = "Time";
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvFactory.getEnv().initBeforeClass();
- // TODO When the aligned time series support compaction, we need to set compaction to true
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- prevPartitionInterval = IoTDBDescriptor.getInstance().getConfig().getTimePartitionInterval();
- ConfigFactory.getConfig().setEnableSeqSpaceCompaction(false);
- ConfigFactory.getConfig().setEnableUnseqSpaceCompaction(false);
- ConfigFactory.getConfig().setEnableCrossSpaceCompaction(false);
- AlignedWriteUtil.insertData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- ConfigFactory.getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- ConfigFactory.getConfig().setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- ConfigFactory.getConfig().setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- ConfigFactory.getConfig().setPartitionInterval(prevPartitionInterval);
- EnvFactory.getEnv().cleanAfterClass();
- }
-
- @Test
- public void countSumAvgPreviousFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,4,40.0,7.5", "11,10,130142.0,13014.2", "21,1,130142.0,230000.0", "31,0,355.0,230000.0"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(s1), sum(s2), avg(s1) from root.sg1.d1 "
- + "where time > 5 GROUP BY ([1, 41), 10ms) FILL (previous, 15ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select count(s1), sum(s2), avg(s1) from root.sg1.d1 "
- + " where time > 5 GROUP BY ([1, 41), 10ms) FILL (previous, 15ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void countSumAvgValueFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,1,3.14,30000.0",
- "6,4,40.0,7.5",
- "11,5,130052.0,26010.4",
- "16,5,90.0,18.0",
- "21,1,3.14,230000.0",
- "26,0,3.14,3.14",
- "31,0,3.14,3.14"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(s1), sum(s2), avg(s1) from root.sg1.d1 "
- + "where s3 > 5 and time < 30 GROUP BY ([1, 36), 5ms) FILL (3.14)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select count(s1), sum(s2), avg(s1) from root.sg1.d1 "
- + " where s3 > 5 and time < 30 GROUP BY ([1, 36), 5ms) FILL (3.14) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d1.s1"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void countSumAvgWithNonAlignedTimeseriesLinearFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,0,null,null,0,null,null",
- "7,3,34.0,8.0,4,34.0,8.5",
- "13,4,58.0,14.5,4,130045.0,14.5",
- "19,2,39.0,19.5,4,39.0,20.5",
- "25,0,84.5,null,4,84.5,26.5",
- "31,0,130.0,null,0,130.0,null",
- "37,0,154.0,null,0,154.0,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(d1.s1), sum(d2.s2), avg(d2.s1), count(d1.s3), sum(d1.s2), avg(d2.s3) "
- + "from root.sg1 where time > 5 GROUP BY ([1, 41), 4ms, 6ms) FILL (linear, 15ms, 15ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select count(d1.s1), sum(d2.s2), avg(d2.s1), count(d1.s3), sum(d1.s2), avg(d2.s3) "
- + "from root.sg1 where time > 5 GROUP BY ([1, 41), 4ms, 6ms) FILL (linear, 15ms, 15ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(sum("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(sum("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(avg("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void maxMinValueTimePreviousUntilLastFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,30000,6.0,9,3",
- "11,130000,11.0,20,11",
- "21,230000,230000.0,null,23",
- "31,null,null,null,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + "where s1 > 5 and time < 35 GROUP BY ([1, 41), 10ms) FILL(previousUntilLast)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + " where s1 > 5 and time < 35 GROUP BY ([1, 41), 10ms) FILL(previousUntilLast) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void maxMinValueTimeValueFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,30000,30000.0,null,3",
- "6,10,6.0,10,6",
- "11,130000,11.0,15,11",
- "16,20,16.0,20,16",
- "21,230000,230000.0,null,21",
- "26,29,null,null,26"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + "where s3 > 5 and time < 30 GROUP BY ([1, 31), 5ms) FILL ('fill string')");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + " where s3 > 5 and time < 30 GROUP BY ([1, 31), 5ms) FILL ('fill string') order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void maxMinValueTimeWithSlidingStepSmallBeforeRangePreviousFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,30000,30000.0,null,3",
- "7,10,7.0,10,7",
- "13,130000,14.0,16,13",
- "19,22,19.0,20,19",
- "25,28,19.0,20,25",
- "31,28,null,null,25",
- "37,null,null,null,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + "where s3 > 5 and time < 30 GROUP BY ([1, 41), 4ms, 6ms) FILL(previous, 6ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select max_value(s3), min_value(s1), max_time(s2), min_time(s3) from root.sg1.d1 "
- + " where s3 > 5 and time < 30 GROUP BY ([1, 41), 4ms, 6ms) FILL(previous, 6ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void maxMinValueTimeWithNonAlignedTimeseriesValueFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,null,null,null,null,null,null,null",
- "7,10,7.0,10,7,10,7.0,10,7",
- "13,16,14.0,16,14,16,14.0,16,14",
- "19,22,19.0,20,19,22,19.0,20,19",
- "25,null,null,null,null,null,null,null,null",
- "31,null,null,null,null,null,null,null,null",
- "37,null,null,null,null,null,null,null,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(d2.s3), min_value(d1.s1), max_time(d2.s2), min_time(d1.s3), "
- + "max_value(d1.s3), min_value(d2.s1), max_time(d1.s2), min_time(d2.s3) "
- + "from root.sg1 where d2.s3 > 5 and d1.s3 < 25 GROUP BY ([1, 41), 4ms, 6ms) FILL ('3.14')");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d2.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select max_value(d2.s3), min_value(d1.s1), max_time(d2.s2), min_time(d1.s3), "
- + "max_value(d1.s3), min_value(d2.s1), max_time(d1.s2), min_time(d2.s3) "
- + "from root.sg1 where d2.s3 > 5 and d1.s3 < 25 GROUP BY ([1, 41), 4ms, 6ms) FILL ('3.14')"
- + " order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d2.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void maxMinValueTimeWithNonAlignedTimeseriesValueFillTest2() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,3.14,null,null,null,3.14,null,null",
- "7,10,7.0,10,7,10,7.0,10,7",
- "13,16,14.0,16,14,16,14.0,16,14",
- "19,22,19.0,20,19,22,19.0,20,19",
- "25,null,3.14,null,null,null,3.14,null,null",
- "31,null,3.14,null,null,null,3.14,null,null",
- "37,null,3.14,null,null,null,3.14,null,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select max_value(d2.s3), min_value(d1.s1), max_time(d2.s2), min_time(d1.s3), "
- + "max_value(d1.s3), min_value(d2.s1), max_time(d1.s2), min_time(d2.s3) "
- + "from root.sg1 where d2.s3 > 5 and d1.s3 < 25 GROUP BY ([1, 41), 4ms, 6ms) FILL (3.14)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d2.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select max_value(d2.s3), min_value(d1.s1), max_time(d2.s2), min_time(d1.s3), "
- + "max_value(d1.s3), min_value(d2.s1), max_time(d1.s2), min_time(d2.s3) "
- + "from root.sg1 where d2.s3 > 5 and d1.s3 < 25 GROUP BY ([1, 41), 4ms, 6ms) FILL (3.14)"
- + " order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(maxValue("root.sg1.d2.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d2.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(maxValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(minValue("root.sg1.d2.s1"))
- + ","
- + resultSet.getString(maxTime("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(minTime("root.sg1.d2.s3"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void firstLastLinearFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,null", "6,true,aligned_test7", "11,true,aligned_unseq_test13", "16,null,null",
- "21,true,null", "26,false,null", "31,null,aligned_test31", "36,null,aligned_test36"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(s4), first_value(s5) from root.sg1.d1 "
- + "where time > 5 and time < 38 GROUP BY ([1, 41), 5ms) FILL(linear, 100ms, 100ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(s4), first_value(s5) from root.sg1.d1 "
- + " where time > 5 and time < 38 GROUP BY ([1, 41), 5ms) FILL(linear, 100ms, 100ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void firstLastWithSlidingStepPreviousUntilLastFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,null",
- "7,true,aligned_test7",
- "13,true,aligned_unseq_test13",
- "19,true,aligned_unseq_test13",
- "25,false,null",
- "31,null,aligned_test31",
- "37,null,aligned_test37"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(s4), first_value(s5) from root.sg1.d1 "
- + "where time > 5 and time < 38 GROUP BY ([1, 41), 4ms, 6ms) FILL(previousUntilLast, 10ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(s4), first_value(s5) from root.sg1.d1 "
- + " where time > 5 and time < 38 GROUP BY ([1, 41), 4ms, 6ms) FILL(previousUntilLast, 10ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void firstLastWithNonAlignedTimeseriesPreviousFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,null,null,null",
- "7,non_aligned_test10,false,aligned_test10,false",
- "13,non_aligned_test10,true,aligned_unseq_test13,false",
- "19,non_aligned_test10,true,aligned_unseq_test13,true",
- "25,non_aligned_test10,true,aligned_unseq_test13,true",
- "31,non_aligned_test34,true,aligned_test34,true",
- "37,non_aligned_test37,true,aligned_test37,true"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(d2.s5), first_value(d1.s4), last_value(d1.s5), first_value(d2.s4) "
- + "from root.sg1 where time > 5 and time < 38 GROUP BY ([1, 41), 4ms, 6ms) FILL(previous)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d2.s5"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d2.s4"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(d2.s5), first_value(d1.s4), last_value(d1.s5), first_value(d2.s4) "
- + "from root.sg1 where time > 5 and time < 38 "
- + "GROUP BY ([1, 41), 4ms, 6ms) FILL(previous) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d2.s5"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"))
- + ","
- + resultSet.getString(firstValue("root.sg1.d2.s4"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void groupByWithWildcardPreviousFillTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,5,4,5,4,4,9.0,9,9,false,aligned_test9",
- "11,10,10,10,1,1,20.0,20,20,true,aligned_unseq_test13",
- "21,1,0,1,1,0,230000.0,20,230000,false,aligned_unseq_test13",
- "31,0,0,0,0,0,230000.0,null,230000,false,null"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select count(*), last_value(*) from root.sg1.d1 "
- + " where s1 > 5 and time < 35 GROUP BY ([1, 41), 10ms) FILL(previous, 10ms)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s5"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select count(*), last_value(*) from root.sg1.d1 "
- + " where s1 > 5 and time < 35 GROUP BY ([1, 41), 10ms) FILL(previous, 10ms) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(count("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(count("root.sg1.d1.s5"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-
- @Test
- public void groupByWithWildcardPreviousFillAllTest() throws SQLException {
- String[] retArray =
- new String[] {
- "1,null,null,null,null,null",
- "5,7.0,7,7,false,aligned_test7",
- "9,11.0,11,11,true,aligned_test10",
- "13,15.0,15,15,true,aligned_unseq_test13",
- "17,19.0,19,19,true,aligned_unseq_test13",
- "21,230000.0,19,230000,false,aligned_unseq_test13",
- "25,230000.0,19,27,false,aligned_unseq_test13",
- "29,230000.0,31,30,false,aligned_test31",
- "33,230000.0,35,30,false,aligned_test35",
- "37,230000.0,37,30,false,aligned_test37"
- };
- try (Connection connection = EnvFactory.getEnv().getConnection();
- Statement statement = connection.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(*) from root.sg1.d1 "
- + "where time > 5 and time < 38 GROUP BY ([1, 41), 3ms, 4ms) FILL(previous)");
- Assert.assertTrue(hasResultSet);
-
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt], ans);
- cnt++;
- }
- Assert.assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(*) from root.sg1.d1 "
- + " where time > 5 and time < 38 GROUP BY ([1, 41), 3ms, 4ms) FILL(previous) order by time desc");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = retArray.length;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s1"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s2"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s3"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s4"))
- + ","
- + resultSet.getString(lastValue("root.sg1.d1.s5"));
- Assert.assertEquals(retArray[cnt - 1], ans);
- cnt--;
- }
- Assert.assertEquals(0, cnt);
- }
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBLoadExternalAlignedTsFileIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBLoadExternalAlignedTsFileIT.java
deleted file mode 100644
index 29a345280c..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBLoadExternalAlignedTsFileIT.java
+++ /dev/null
@@ -1,1037 +0,0 @@
-/*
- * 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.integration.aligned;
-//
-// import org.apache.iotdb.commons.exception.IllegalPathException;
-// import org.apache.iotdb.commons.path.PartialPath;
-// import org.apache.iotdb.db.conf.IoTDBConfig;
-// import org.apache.iotdb.db.conf.IoTDBDescriptor;
-// import org.apache.iotdb.db.engine.StorageEngine;
-// import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
-// import org.apache.iotdb.db.engine.storagegroup.timeindex.TimeIndexLevel;
-// import org.apache.iotdb.db.exception.StorageEngineException;
-// import org.apache.iotdb.db.utils.EnvironmentUtils;
-// import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-// import org.apache.iotdb.jdbc.Config;
-//
-// import org.junit.After;
-// import org.junit.Assert;
-// import org.junit.Before;
-// import org.junit.Test;
-// import org.junit.experimental.categories.Category;
-// import org.slf4j.Logger;
-// import org.slf4j.LoggerFactory;
-//
-// import java.io.File;
-// import java.sql.Connection;
-// import java.sql.DriverManager;
-// import java.sql.ResultSet;
-// import java.sql.SQLException;
-// import java.sql.Statement;
-// import java.util.ArrayList;
-// import java.util.Arrays;
-// import java.util.HashSet;
-// import java.util.List;
-// import java.util.Set;
-//
-// import static org.junit.Assert.assertEquals;
-// import static org.junit.Assert.assertNotNull;
-// import static org.junit.Assert.assertTrue;
-// import static org.junit.Assert.fail;
-//
-// @Category({LocalStandaloneTest.class})
-// public class IoTDBLoadExternalAlignedTsFileIT {
-//
-// private static final Logger LOGGER =
-// LoggerFactory.getLogger(IoTDBLoadExternalAlignedTsFileIT.class);
-//
-// private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
-//
-// private static String[] insertSequenceSqls =
-// new String[] {
-// "CREATE DATABASE root.vehicle",
-// "CREATE DATABASE root.test",
-// "CREATE ALIGNED TIMESERIES root.vehicle.d0(s0 INT32 encoding=RLE, s1 TEXT
-// encoding=PLAIN)",
-// "CREATE ALIGNED TIMESERIES root.vehicle.d1(s2 FLOAT encoding=RLE, s3 BOOLEAN
-// encoding=PLAIN)",
-// "CREATE ALIGNED TIMESERIES root.test.d0(s0 INT32 encoding=RLE, s1 TEXT encoding=PLAIN)",
-// "CREATE ALIGNED TIMESERIES root.test.d1.g0(s0 INT32 encoding=RLE)",
-// "insert into root.vehicle.d0(timestamp,s0) aligned values(10,100)",
-// "insert into root.vehicle.d0(timestamp,s0,s1) aligned values(12,101,'102')",
-// "insert into root.vehicle.d0(timestamp,s1) aligned values(19,'103')",
-// "insert into root.vehicle.d1(timestamp,s2) aligned values(11,104.0)",
-// "insert into root.vehicle.d1(timestamp,s2,s3) aligned values(15,105.0,true)",
-// "insert into root.vehicle.d1(timestamp,s3) aligned values(17,false)",
-// "insert into root.vehicle.d0(timestamp,s0) aligned values(20,1000)",
-// "insert into root.test.d0(timestamp,s0) aligned values(10,106)",
-// "insert into root.test.d0(timestamp,s0,s1) aligned values(14,107,'108')",
-// "insert into root.test.d0(timestamp,s1) aligned values(16,'109')",
-// "insert into root.test.d1.g0(timestamp,s0) aligned values(1,110)",
-// "insert into root.test.d0(timestamp,s0) aligned values(30,1006)",
-// "insert into root.test.d0(timestamp,s0,s1) aligned values(34,1007,'1008')",
-// "insert into root.test.d0(timestamp,s1) aligned values(36,'1090')",
-// "insert into root.test.d1.g0(timestamp,s0) aligned values(10,1100)",
-// "flush",
-// "insert into root.test.d0(timestamp,s0) aligned values(150,126)",
-// "insert into root.test.d0(timestamp,s0,s1) aligned values(80,127,'128')",
-// "insert into root.test.d0(timestamp,s1) aligned values(200,'129')",
-// "insert into root.test.d1.g0(timestamp,s0) aligned values(140,430)",
-// "insert into root.test.d0(timestamp,s0) aligned values(150,426)",
-// "flush"
-// };
-//
-// private static String[] insertUnsequenceSqls =
-// new String[] {
-// "insert into root.vehicle.d0(timestamp,s0) aligned values(6,120)",
-// "insert into root.vehicle.d0(timestamp,s0,s1) aligned values(38,121,'122')",
-// "insert into root.vehicle.d0(timestamp,s1) aligned values(9,'123')",
-// "insert into root.vehicle.d0(timestamp,s0) aligned values(16,128)",
-// "insert into root.vehicle.d0(timestamp,s0,s1) aligned values(18,189,'198')",
-// "insert into root.vehicle.d0(timestamp,s1) aligned values(99,'1234')",
-// "insert into root.vehicle.d1(timestamp,s2) aligned values(14,1024.0)",
-// "insert into root.vehicle.d1(timestamp,s2,s3) aligned values(29,1205.0,true)",
-// "insert into root.vehicle.d1(timestamp,s3) aligned values(33,true)",
-// "insert into root.test.d0(timestamp,s0) aligned values(45,126)",
-// "insert into root.test.d0(timestamp,s0,s1) aligned values(68,127,'128')",
-// "insert into root.test.d0(timestamp,s1) aligned values(78,'129')",
-// "insert into root.test.d1.g0(timestamp,s0) aligned values(14,430)",
-// "flush",
-// "insert into root.test.d0(timestamp,s0) aligned values(20,426)",
-// "insert into root.test.d0(timestamp,s0,s1) aligned values(13,427,'528')",
-// "insert into root.test.d0(timestamp,s1) aligned values(2,'1209')",
-// "insert into root.test.d1.g0(timestamp,s0) aligned values(4,330)",
-// "flush",
-// };
-//
-// private static String[] deleteTimeseiresSqls =
-// new String[] {"delete from root.vehicle.** where time >= 10 and time<=20", "flush"};
-//
-// private static final String TIMESTAMP_STR = "Time";
-// private static final String VEHICLE_D0_S0_STR = "root.vehicle.d0.s0";
-// private static final String VEHICLE_D0_S1_STR = "root.vehicle.d0.s1";
-// private static final String VEHICLE_D0_S2_STR = "root.vehicle.d1.s2";
-// private static final String VEHICLE_D0_S3_STR = "root.vehicle.d1.s3";
-// private static final String TEST_D0_S0_STR = "root.test.d0.s0";
-// private static final String TEST_D0_S1_STR = "root.test.d0.s1";
-// private static final String TEST_D1_STR = "root.test.d1.g0.s0";
-//
-// private int prevVirtualPartitionNum;
-// private int prevCompactionThread;
-//
-// private static String[] deleteSqls =
-// new String[] {"DELETE DATABASE root.vehicle", "DELETE DATABASE root.test"};
-//
-// @Before
-// public void setUp() throws Exception {
-// prevVirtualPartitionNum = IoTDBDescriptor.getInstance().getConfig().getDataRegionNum();
-// IoTDBDescriptor.getInstance().getConfig().setDataRegionNum(1);
-// prevCompactionThread = IoTDBDescriptor.getInstance().getConfig().getCompactionThreadCount();
-// EnvironmentUtils.envSetUp();
-// Class.forName(Config.JDBC_DRIVER_NAME);
-// prepareData(insertSequenceSqls);
-// }
-//
-// @After
-// public void tearDown() throws Exception {
-// EnvironmentUtils.cleanEnv();
-// IoTDBDescriptor.getInstance().getConfig().setCompactionThreadCount(prevCompactionThread);
-// IoTDBDescriptor.getInstance().getConfig().setDataRegionNum(prevVirtualPartitionNum);
-// }
-//
-// @Test
-// public void unloadTsfileTest() throws SQLException {
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// // move root.vehicle
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(1, resources.size());
-// File tmpDir =
-// new File(
-// resources.get(0).getTsFile().getParentFile().getParentFile(),
-// "tmp" + File.separator + new PartialPath("root.vehicle"));
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-// assertEquals(
-// 0,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList()
-// .size());
-// assertNotNull(tmpDir.listFiles());
-// assertEquals(1, tmpDir.listFiles().length >> 1);
-//
-// // move root.test
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// tmpDir =
-// new File(
-// resources.get(0).getTsFile().getParentFile().getParentFile(),
-// "tmp" + File.separator + new PartialPath("root.test"));
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// // test unload using relative path
-// statement.execute(
-// String.format("unload '%s' '%s'", "./" + resource.getTsFilePath(), tmpDir));
-// }
-// assertEquals(
-// 0,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// assertNotNull(tmpDir.listFiles());
-// assertEquals(2, tmpDir.listFiles().length >> 1);
-// } catch (StorageEngineException | IllegalPathException e) {
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void loadSequenceTsfileTest() throws SQLException {
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// // move root.vehicle
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// File tmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp"
-// + File.separator
-// + new PartialPath("root.vehicle")
-// + File.separator
-// + "0"
-// + File.separator
-// + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // move root.test
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// tmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp"
-// + File.separator
-// + new PartialPath("root.test")
-// + File.separator
-// + "0"
-// + File.separator
-// + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // load all tsfile in tmp dir
-// tmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp");
-// statement.execute(String.format("load '%s'", tmpDir.getAbsolutePath()));
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(1, resources.size());
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// assertNotNull(tmpDir.listFiles());
-// assertEquals(
-// 0,
-// new File(
-// tmpDir,
-// new PartialPath("root.vehicle") + File.separator + "0" + File.separator + "0")
-// .listFiles()
-// .length);
-// assertEquals(
-// 0,
-// new File(
-// tmpDir,
-// new PartialPath("root.test") + File.separator + "0" + File.separator + "0")
-// .listFiles()
-// .length);
-// } catch (StorageEngineException | IllegalPathException e) {
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void loadUnsequenceTsfileTest() throws SQLException {
-// prepareData(insertUnsequenceSqls);
-// String[] queryRes =
-// new String[] {
-// "1,null,null,null,null,null,null,110",
-// "2,null,null,null,null,null,1209,null",
-// "4,null,null,null,null,null,null,330",
-// "6,120,null,null,null,null,null,null",
-// "9,null,123,null,null,null,null,null",
-// "10,100,null,null,null,106,null,1100",
-// "11,null,null,104.0,null,null,null,null",
-// "12,101,102,null,null,null,null,null",
-// "13,null,null,null,null,427,528,null",
-// "14,null,null,1024.0,null,107,108,430",
-// "15,null,null,105.0,true,null,null,null",
-// "16,128,null,null,null,null,109,null",
-// "17,null,null,null,false,null,null,null",
-// "18,189,198,null,null,null,null,null",
-// "19,null,103,null,null,null,null,null",
-// "20,1000,null,null,null,426,null,null",
-// "29,null,null,1205.0,true,null,null,null",
-// "30,null,null,null,null,1006,null,null",
-// "33,null,null,null,true,null,null,null",
-// "34,null,null,null,null,1007,1008,null",
-// "36,null,null,null,null,null,1090,null",
-// "38,121,122,null,null,null,null,null",
-// "45,null,null,null,null,126,null,null",
-// "68,null,null,null,null,127,128,null",
-// "78,null,null,null,null,null,129,null",
-// "80,null,null,null,null,127,128,null",
-// "99,null,1234,null,null,null,null,null",
-// "140,null,null,null,null,null,null,430",
-// "150,null,null,null,null,426,null,null",
-// "200,null,null,null,null,null,129,null"
-// };
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// // check query result
-// boolean hasResultSet = statement.execute("SELECT * FROM root.**");
-// Assert.assertTrue(hasResultSet);
-// try (ResultSet resultSet = statement.getResultSet()) {
-// int cnt = 0;
-// while (resultSet.next()) {
-// String queryString =
-// resultSet.getString(TIMESTAMP_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S0_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S1_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S2_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S3_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S0_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S1_STR)
-// + ","
-// + resultSet.getString(TEST_D1_STR);
-// Assert.assertEquals(queryRes[cnt++], queryString);
-// }
-// }
-//
-// // move root.vehicle
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// File tmpDir =
-// new File(
-// resources.get(0).getTsFile().getParentFile().getParentFile().getParentFile(),
-// "tmp" + File.separator + new PartialPath("root.vehicle") + File.separator + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getUnSequenceFileList());
-// assertEquals(1, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // move root.test
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// tmpDir = new File(tmpDir.getParentFile().getParentFile(), "root.test" + File.separator +
-// "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList());
-// assertEquals(2, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // load all tsfile in tmp dir
-// tmpDir = tmpDir.getParentFile().getParentFile();
-// statement.execute(String.format("load '%s'", tmpDir.getAbsolutePath()));
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList()
-// .size());
-// assertEquals(
-// 1,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getUnSequenceFileList()
-// .size());
-// if (config.getTimeIndexLevel().equals(TimeIndexLevel.DEVICE_TIME_INDEX)) {
-// if (StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList()
-// .size()
-// == 1) {
-// assertEquals(
-// 3,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// } else {
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// }
-// } else if (config.getTimeIndexLevel().equals(TimeIndexLevel.FILE_TIME_INDEX)) {
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList()
-// .size());
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// }
-// assertNotNull(tmpDir.listFiles());
-// assertEquals(
-// 0,
-// new File(tmpDir, new PartialPath("root.vehicle") + File.separator + "0")
-// .listFiles()
-// .length);
-// assertEquals(
-// 0,
-// new File(tmpDir, new PartialPath("root.test") + File.separator +
-// "0").listFiles().length);
-//
-// // check query result
-// hasResultSet = statement.execute("SELECT * FROM root.**");
-// Assert.assertTrue(hasResultSet);
-// try (ResultSet resultSet = statement.getResultSet()) {
-// int cnt = 0;
-// while (resultSet.next()) {
-// String queryString =
-// resultSet.getString(TIMESTAMP_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S0_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S1_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S2_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S3_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S0_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S1_STR)
-// + ","
-// + resultSet.getString(TEST_D1_STR);
-// Assert.assertEquals(queryRes[cnt++], queryString);
-// }
-// }
-// } catch (StorageEngineException | IllegalPathException e) {
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void loadTsfileWithModsTest() throws SQLException {
-// prepareData(insertUnsequenceSqls);
-// prepareData(deleteTimeseiresSqls);
-// String[] queryRes =
-// new String[] {
-// "1,null,null,null,null,null,null,110",
-// "2,null,null,null,null,null,1209,null",
-// "4,null,null,null,null,null,null,330",
-// "6,120,null,null,null,null,null,null",
-// "9,null,123,null,null,null,null,null",
-// "10,null,null,null,null,106,null,1100",
-// "13,null,null,null,null,427,528,null",
-// "14,null,null,null,null,107,108,430",
-// "16,null,null,null,null,null,109,null",
-// "20,null,null,null,null,426,null,null",
-// "29,null,null,1205.0,true,null,null,null",
-// "30,null,null,null,null,1006,null,null",
-// "33,null,null,null,true,null,null,null",
-// "34,null,null,null,null,1007,1008,null",
-// "36,null,null,null,null,null,1090,null",
-// "38,121,122,null,null,null,null,null",
-// "45,null,null,null,null,126,null,null",
-// "68,null,null,null,null,127,128,null",
-// "78,null,null,null,null,null,129,null",
-// "80,null,null,null,null,127,128,null",
-// "99,null,1234,null,null,null,null,null",
-// "140,null,null,null,null,null,null,430",
-// "150,null,null,null,null,426,null,null",
-// "200,null,null,null,null,null,129,null"
-// };
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// // check query result
-// boolean hasResultSet = statement.execute("SELECT * FROM root.**");
-// Assert.assertTrue(hasResultSet);
-// try (ResultSet resultSet = statement.getResultSet()) {
-// int cnt = 0;
-// while (resultSet.next()) {
-// String queryString =
-// resultSet.getString(TIMESTAMP_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S0_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S1_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S2_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S3_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S0_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S1_STR)
-// + ","
-// + resultSet.getString(TEST_D1_STR);
-// Assert.assertEquals(queryRes[cnt++], queryString);
-// }
-// }
-//
-// // move root.vehicle
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// File tmpDir =
-// new File(
-// resources.get(0).getTsFile().getParentFile().getParentFile().getParentFile(),
-// "tmp" + File.separator + new PartialPath("root.vehicle") + File.separator + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getUnSequenceFileList());
-// assertEquals(1, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // move root.test
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// tmpDir = new File(tmpDir.getParentFile().getParentFile(), "root.test" + File.separator +
-// "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList());
-// assertEquals(2, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // load all tsfile in tmp dir
-// tmpDir = tmpDir.getParentFile().getParentFile();
-// statement.execute(String.format("load '%s'", tmpDir.getAbsolutePath()));
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList()
-// .size());
-// assertEquals(
-// 1,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getUnSequenceFileList()
-// .size());
-// if (config.getTimeIndexLevel().equals(TimeIndexLevel.DEVICE_TIME_INDEX)) {
-// if (StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList()
-// .size()
-// == 1) {
-// assertEquals(
-// 3,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// } else {
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// }
-// } else if (config.getTimeIndexLevel().equals(TimeIndexLevel.FILE_TIME_INDEX)) {
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getUnSequenceFileList()
-// .size());
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// }
-// assertNotNull(tmpDir.listFiles());
-// assertEquals(
-// 0,
-// new File(tmpDir, new PartialPath("root.vehicle") + File.separator + "0")
-// .listFiles()
-// .length);
-// assertEquals(
-// 0,
-// new File(tmpDir, new PartialPath("root.test") + File.separator +
-// "0").listFiles().length);
-//
-// // check query result
-// hasResultSet = statement.execute("SELECT * FROM root.**");
-// Assert.assertTrue(hasResultSet);
-// try (ResultSet resultSet = statement.getResultSet()) {
-// int cnt = 0;
-// while (resultSet.next()) {
-// String queryString =
-// resultSet.getString(TIMESTAMP_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S0_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S1_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S2_STR)
-// + ","
-// + resultSet.getString(VEHICLE_D0_S3_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S0_STR)
-// + ","
-// + resultSet.getString(TEST_D0_S1_STR)
-// + ","
-// + resultSet.getString(TEST_D1_STR);
-// Assert.assertEquals(queryRes[cnt++], queryString);
-// }
-// }
-// } catch (StorageEngineException | IllegalPathException e) {
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void loadTsFileTestWithAutoCreateSchema() throws SQLException {
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// // move root.vehicle
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-//
-// File tmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp"
-// + File.separator
-// + "root.vehicle"
-// + File.separator
-// + "0"
-// + File.separator
-// + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// // move root.test
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// tmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp" + File.separator + "root.test" + File.separator + "0" + File.separator + "0");
-// if (!tmpDir.exists()) {
-// tmpDir.mkdirs();
-// }
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(), tmpDir));
-// }
-//
-// Set<String> expectedSet =
-// new HashSet<>(
-// Arrays.asList(
-// "root.vehicle.d0.s0,root.vehicle,INT32",
-// "root.vehicle.d0.s1,root.vehicle,TEXT",
-// "root.vehicle.d1.s2,root.vehicle,FLOAT",
-// "root.vehicle.d1.s3,root.vehicle,BOOLEAN",
-// "root.test.d0.s0,root.test,INT32",
-// "root.test.d0.s1,root.test,TEXT",
-// "root.test.d1.g0.s0,root.test,INT32"));
-//
-// boolean hasResultSet = statement.execute("SHOW timeseries");
-// Assert.assertTrue(hasResultSet);
-// try (ResultSet resultSet = statement.getResultSet()) {
-// while (resultSet.next()) {
-// Assert.assertTrue(
-// expectedSet.contains(
-// resultSet.getString(1)
-// + ","
-// + resultSet.getString(3)
-// + ","
-// + resultSet.getString(4)));
-// }
-// }
-//
-// // remove metadata
-// for (String sql : deleteSqls) {
-// statement.execute(sql);
-// }
-//
-// // test not load metadata automatically, it will occur errors.
-// // UPDATE: load grammar is updated in 0.14, change this into load metadata automatically
-// boolean hasError = false;
-// try {
-// statement.execute(String.format("load '%s' sglevel=1", tmpDir.getAbsolutePath()));
-// } catch (Exception e) {
-// hasError = true;
-// }
-// Assert.assertFalse(hasError);
-//
-// // test load metadata automatically, it will succeed.
-// tmpDir = tmpDir.getParentFile().getParentFile().getParentFile();
-// statement.execute(String.format("load '%s' sglevel=1", tmpDir.getAbsolutePath()));
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(1, resources.size());
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// assertEquals(2, tmpDir.listFiles().length);
-// for (File dir : tmpDir.listFiles()) {
-// assertEquals(0, dir.listFiles()[0].listFiles()[0].listFiles().length);
-// }
-// } catch (StorageEngineException | IllegalPathException e) {
-// e.printStackTrace();
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void loadTsFileTestWithVerifyMetadata() throws Exception {
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(1, resources.size());
-// File vehicleTmpDir =
-// new File(
-// resources
-// .get(0)
-// .getTsFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile()
-// .getParentFile(),
-// "tmp" + File.separator + "root.vehicle");
-// if (!vehicleTmpDir.exists()) {
-// vehicleTmpDir.mkdirs();
-// }
-//
-// for (TsFileResource resource : resources) {
-// statement.execute(
-// String.format("unload '%s' '%s'", resource.getTsFilePath(), vehicleTmpDir));
-// }
-//
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-//
-// File testTmpDir = new File(vehicleTmpDir.getParentFile(), "root.test");
-// if (!testTmpDir.exists()) {
-// testTmpDir.mkdirs();
-// }
-//
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("unload '%s' '%s'", resource.getTsFilePath(),
-// testTmpDir));
-// }
-//
-// for (String sql : deleteSqls) {
-// statement.execute(sql);
-// }
-//
-// List<String> metaDataSqls =
-// new ArrayList<>(
-// Arrays.asList(
-// "CREATE DATABASE root.vehicle",
-// "CREATE DATABASE root.test",
-// "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT64, ENCODING=RLE",
-// "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
-// "CREATE TIMESERIES root.vehicle.d1.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
-// "CREATE TIMESERIES root.vehicle.d1.s3 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
-// "CREATE ALIGNED TIMESERIES root.test.d0(s0 FLOAT encoding=RLE, s1 TEXT
-// encoding=PLAIN)",
-// "CREATE ALIGNED TIMESERIES root.test.d1.g0(s0 INT32 encoding=RLE)"));
-//
-// for (String sql : metaDataSqls) {
-// statement.execute(sql);
-// }
-//
-// // load vehicle
-// boolean hasError = false;
-// try {
-// statement.execute(String.format("load '%s'", vehicleTmpDir));
-// } catch (Exception e) {
-// hasError = true;
-// assertTrue(
-// e.getMessage()
-// .contains("is aligned in the loading TsFile but is not aligned in IoTDB."));
-// }
-// assertTrue(hasError);
-//
-// statement.execute(String.format("load '%s' verify=false", vehicleTmpDir));
-// assertEquals(
-// 1,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList()
-// .size());
-//
-// // load test
-// hasError = false;
-// try {
-// statement.execute(String.format("load '%s'", testTmpDir));
-// } catch (Exception e) {
-// hasError = true;
-// assertTrue(
-// e.getMessage()
-// .contains(
-// "because root.test.d0.s0 is INT32 in the loading TsFile but is FLOAT in
-// IoTDB."));
-// }
-// assertTrue(hasError);
-//
-// statement.execute(String.format("load '%s' verify=false", testTmpDir));
-// assertEquals(
-// 2,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-//
-// } catch (Exception e) {
-// e.printStackTrace();
-// Assert.fail();
-// }
-// }
-//
-// @Test
-// public void removeTsFileTest() throws SQLException {
-// try (Connection connection =
-// DriverManager.getConnection("jdbc:iotdb://127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-// List<TsFileResource> resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList());
-// assertEquals(1, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("remove '%s'", resource.getTsFilePath()));
-// }
-// assertEquals(
-// 0,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.vehicle"))
-// .getSequenceFileList()
-// .size());
-//
-// resources =
-// new ArrayList<>(
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList());
-// assertEquals(2, resources.size());
-// for (TsFileResource resource : resources) {
-// statement.execute(String.format("remove '%s'", resource.getTsFilePath()));
-// }
-// assertEquals(
-// 0,
-// StorageEngine.getInstance()
-// .getProcessor(new PartialPath("root.test"))
-// .getSequenceFileList()
-// .size());
-// } catch (StorageEngineException | IllegalPathException e) {
-// Assert.fail();
-// }
-// }
-//
-// private void prepareData(String[] sqls) {
-// try (Connection connection =
-// DriverManager.getConnection(
-// Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
-// Statement statement = connection.createStatement()) {
-//
-// for (String sql : sqls) {
-// statement.execute(sql);
-// }
-//
-// } catch (Exception e) {
-// LOGGER.error("Can not execute sql.", e);
-// fail();
-// }
-// }
-// }
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilter2IT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilter2IT.java
deleted file mode 100644
index 46c46032fc..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilter2IT.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBRawQueryWithValueFilter2IT extends IoTDBRawQueryWithValueFilterIT {
-
- private static int numOfPointsPerPage;
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
- // TODO When the aligned time series support compaction, we need to set compaction to true
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- numOfPointsPerPage = TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
- TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(3);
- AlignedWriteUtil.insertData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(numOfPointsPerPage);
- EnvironmentUtils.cleanEnv();
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterIT.java
deleted file mode 100644
index 3993624f61..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterIT.java
+++ /dev/null
@@ -1,763 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBRawQueryWithValueFilterIT {
- protected static boolean enableSeqSpaceCompaction;
- protected static boolean enableUnseqSpaceCompaction;
- protected static boolean enableCrossSpaceCompaction;
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
- // TODO When the aligned time series support compaction, we need to set compaction to true
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
- AlignedWriteUtil.insertData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- EnvironmentUtils.cleanEnv();
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "1,1.0,1,1,true,aligned_test1",
- "3,30000.0,null,30000,true,aligned_unseq_test3",
- "4,4.0,4,null,true,aligned_test4",
- "5,5.0,5,null,true,aligned_test5",
- "6,6.0,6,6,true,null",
- "10,null,10,10,true,aligned_test10",
- "13,130000.0,130000,130000,true,aligned_unseq_test13",
- "21,null,null,21,true,null",
- "22,null,null,22,true,null",
- "24,null,null,24,true,null",
- "25,null,null,25,true,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1", "root.sg1.d1.s2", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet = statement.execute("select * from root.sg1.d1 where s4 = true");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "12,12.0,12,12,null,null",
- "14,14.0,14,14,null,null",
- "15,15.0,15,15,null,null",
- "16,16.0,16,16,null,null",
- "17,17.0,17,17,null,null",
- "18,18.0,18,18,null,null",
- "19,19.0,19,19,null,null",
- "20,20.0,20,20,null,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1", "root.sg1.d1.s2", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select * from root.sg1.d1 where s1 > 11 and s2 <= 33");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest3() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "1,1.0,1,1,true,aligned_test1",
- "2,2.0,2,2,null,aligned_test2",
- "3,30000.0,null,30000,true,aligned_unseq_test3",
- "4,4.0,4,null,true,aligned_test4",
- "5,5.0,5,null,true,aligned_test5",
- "6,6.0,6,6,true,null",
- "7,7.0,7,7,false,aligned_test7",
- "8,8.0,8,8,null,aligned_test8",
- "9,9.0,9,9,false,aligned_test9",
- "10,null,10,10,true,aligned_test10",
- "11,11.0,11,11,null,null",
- "12,12.0,12,12,null,null",
- "13,130000.0,130000,130000,true,aligned_unseq_test13",
- "14,14.0,14,14,null,null",
- "15,15.0,15,15,null,null",
- "16,16.0,16,16,null,null",
- "17,17.0,17,17,null,null",
- "18,18.0,18,18,null,null",
- "19,19.0,19,19,null,null",
- "20,20.0,20,20,null,null",
- "23,230000.0,null,230000,false,null",
- "31,null,31,null,null,aligned_test31",
- "32,null,32,null,null,aligned_test32",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1", "root.sg1.d1.s2", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select * from root.sg1.d1 where s1 >= 13 or s2 < 33");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedAndNonAlignedTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "13,130000.0,130000,130000,true,aligned_unseq_test13,13.0,13,13,null,null",
- "17,17.0,17,17,null,null,17.0,17,17,null,null",
- "18,18.0,18,18,null,null,18.0,18,18,null,null",
- "19,19.0,19,19,null,null,19.0,19,19,null,null",
- "20,20.0,20,20,null,null,20.0,20,20,null,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1",
- "root.sg1.d1.s2",
- "root.sg1.d1.s3",
- "root.sg1.d1.s4",
- "root.sg1.d1.s5",
- "root.sg1.d2.s1",
- "root.sg1.d2.s2",
- "root.sg1.d2.s3",
- "root.sg1.d2.s4",
- "root.sg1.d2.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.* where root.sg1.d1.s2 > 16 and root.sg1.d2.s3 <= 36");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedAndNonAlignedTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "3,30000.0,null,30000,true,aligned_unseq_test3,3.0,null,3,false,non_aligned_test3",
- "7,7.0,7,7,false,aligned_test7,7.0,7,7,false,non_aligned_test7",
- "9,9.0,9,9,false,aligned_test9,9.0,9,9,false,non_aligned_test9",
- "13,130000.0,130000,130000,true,aligned_unseq_test13,13.0,13,13,null,null",
- "17,17.0,17,17,null,null,17.0,17,17,null,null",
- "18,18.0,18,18,null,null,18.0,18,18,null,null",
- "19,19.0,19,19,null,null,19.0,19,19,null,null",
- "20,20.0,20,20,null,null,20.0,20,20,null,null",
- "26,null,null,26,false,null,null,null,26,false,null",
- "27,null,null,27,false,null,null,null,27,false,null",
- "28,null,null,28,false,null,null,null,28,false,null",
- "29,null,null,29,false,null,null,null,29,false,null",
- "30,null,null,30,false,null,null,null,30,false,null",
- "31,null,31,null,null,aligned_test31,null,31,null,null,non_aligned_test31",
- "32,null,32,null,null,aligned_test32,null,32,null,null,non_aligned_test32",
- "33,null,33,null,null,aligned_test33,null,33,null,null,non_aligned_test33",
- "34,null,34,null,null,aligned_test34,null,34,null,null,non_aligned_test34",
- "35,null,35,null,null,aligned_test35,null,35,null,null,non_aligned_test35",
- "36,null,36,null,null,aligned_test36,null,36,null,null,non_aligned_test36",
- "37,null,37,null,null,aligned_test37,null,37,null,null,non_aligned_test37",
- "38,null,38,null,null,aligned_test38,null,38,null,null,non_aligned_test38",
- "39,null,39,null,null,aligned_test39,null,39,null,null,non_aligned_test39",
- "40,null,40,null,null,aligned_test40,null,40,null,null,non_aligned_test40",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1",
- "root.sg1.d1.s2",
- "root.sg1.d1.s3",
- "root.sg1.d1.s4",
- "root.sg1.d1.s5",
- "root.sg1.d2.s1",
- "root.sg1.d2.s2",
- "root.sg1.d2.s3",
- "root.sg1.d2.s4",
- "root.sg1.d2.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.* where root.sg1.d1.s2 > 16 or root.sg1.d2.s4 = false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithTimeAndValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "9,9.0,9,9,false,aligned_test9",
- "11,11.0,11,11,null,null",
- "12,12.0,12,12,null,null",
- "14,14.0,14,14,null,null",
- "15,15.0,15,15,null,null",
- "16,16.0,16,16,null,null",
- "17,17.0,17,17,null,null",
- "18,18.0,18,18,null,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1", "root.sg1.d1.s2", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select * from root.sg1.d1 where time >= 9 and time <= 33 and s1 < 19");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithTimeAndValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "9,9.0,9,9,false,aligned_test9",
- "10,null,10,10,true,aligned_test10",
- "11,11.0,11,11,null,null",
- "12,12.0,12,12,null,null",
- "13,130000.0,130000,130000,true,aligned_unseq_test13",
- "14,14.0,14,14,null,null",
- "15,15.0,15,15,null,null",
- "16,16.0,16,16,null,null",
- "17,17.0,17,17,null,null",
- "18,18.0,18,18,null,null",
- "19,19.0,19,19,null,null",
- "20,20.0,20,20,null,null",
- "21,null,null,21,true,null",
- "22,null,null,22,true,null",
- "23,230000.0,null,230000,false,null",
- "24,null,null,24,true,null",
- "25,null,null,25,true,null",
- "26,null,null,26,false,null",
- "27,null,null,27,false,null",
- "28,null,null,28,false,null",
- "29,null,null,29,false,null",
- "30,null,null,30,false,null",
- "31,null,31,null,null,aligned_test31",
- "32,null,32,null,null,aligned_test32",
- "33,null,33,null,null,aligned_test33",
- "36,null,36,null,null,aligned_test36",
- "37,null,37,null,null,aligned_test37",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1", "root.sg1.d1.s2", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.d1 where time >= 9 and time <= 33 or s5 = 'aligned_test36' or s5 = 'aligned_test37'");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "1,1.0,true,aligned_test1",
- "2,2.0,null,aligned_test2",
- "4,4.0,true,aligned_test4",
- "5,5.0,true,aligned_test5",
- "6,6.0,true,null",
- "7,7.0,false,aligned_test7",
- "8,8.0,null,aligned_test8",
- "9,9.0,false,aligned_test9",
- "11,11.0,null,null",
- "12,12.0,null,null",
- "14,14.0,null,null",
- "15,15.0,null,null",
- "16,16.0,null,null",
- "34,null,null,aligned_test34",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select s1,s4,s5 from root.sg1.d1 where s1 < 17 or s5 = 'aligned_test34'");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "7,7.0,false", "9,9.0,false",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select s1,s4 from root.sg1.d1 where s1 < 19 and s4 = false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithTimeAndValueFilterTest() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "23,230000.0,false,null",
- "26,null,false,null",
- "27,null,false,null",
- "28,null,false,null",
- "29,null,false,null",
- "30,null,false,null",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select s1,s4,s5 from root.sg1.d1 where time >= 16 and time <= 34 and s4=false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedAndNonAlignedWithTimeAndValueFilterTest()
- throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "18,null,null,18.0,null,null,18.0",
- "19,null,null,19.0,null,null,19.0",
- "20,null,null,20.0,null,null,20.0",
- "21,null,true,null,null,true,null",
- "22,null,true,null,null,true,null",
- "23,null,false,null,null,true,230000.0",
- "24,null,true,null,null,true,null",
- "25,null,true,null,null,true,null",
- };
-
- String[] columnNames = {
- "root.sg1.d2.s5",
- "root.sg1.d1.s4",
- "root.sg1.d2.s1",
- "root.sg1.d1.s5",
- "root.sg1.d2.s4",
- "root.sg1.d1.s1"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- // 1 4 5
- boolean hasResultSet =
- statement.execute(
- "select d2.s5, d1.s4, d2.s1, d1.s5, d2.s4, d1.s1 from root.sg1 where time >= 16 and time <= 34 and (d1.s1 >= 18 or d2.s4 = true)");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletion2IT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletion2IT.java
deleted file mode 100644
index 6fc22924e3..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletion2IT.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.Statement;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBRawQueryWithValueFilterWithDeletion2IT
- extends IoTDBRawQueryWithValueFilterWithDeletionIT {
-
- private static int numOfPointsPerPage;
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
-
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- numOfPointsPerPage = TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage();
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
- TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(3);
- AlignedWriteUtil.insertData();
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("delete timeseries root.sg1.d1.s2");
- statement.execute("delete from root.sg1.d1.s1 where time <= 21");
- statement.execute("delete from root.sg1.d1.s5 where time <= 31 and time > 20");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- TSFileDescriptor.getInstance().getConfig().setMaxNumberOfPointsInPage(numOfPointsPerPage);
- EnvironmentUtils.cleanEnv();
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletionIT.java
deleted file mode 100644
index 3da780f7e6..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/aligned/IoTDBRawQueryWithValueFilterWithDeletionIT.java
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * 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.integration.aligned;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-import org.apache.iotdb.jdbc.Config;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBRawQueryWithValueFilterWithDeletionIT {
-
- protected static boolean enableSeqSpaceCompaction;
- protected static boolean enableUnseqSpaceCompaction;
- protected static boolean enableCrossSpaceCompaction;
-
- @BeforeClass
- public static void setUp() throws Exception {
- EnvironmentUtils.envSetUp();
-
- enableSeqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableSeqSpaceCompaction();
- enableUnseqSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableUnseqSpaceCompaction();
- enableCrossSpaceCompaction =
- IoTDBDescriptor.getInstance().getConfig().isEnableCrossSpaceCompaction();
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableUnseqSpaceCompaction(false);
- IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
-
- AlignedWriteUtil.insertData();
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
- statement.execute("delete timeseries root.sg1.d1.s2");
- statement.execute("delete from root.sg1.d1.s1 where time <= 21");
- statement.execute("delete from root.sg1.d1.s5 where time <= 31 and time > 20");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setEnableSeqSpaceCompaction(enableSeqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableUnseqSpaceCompaction(enableUnseqSpaceCompaction);
- IoTDBDescriptor.getInstance()
- .getConfig()
- .setEnableCrossSpaceCompaction(enableCrossSpaceCompaction);
- EnvironmentUtils.cleanEnv();
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "1,null,1,true,aligned_test1",
- "3,null,30000,true,aligned_unseq_test3",
- "4,null,null,true,aligned_test4",
- "5,null,null,true,aligned_test5",
- "6,null,6,true,null",
- "10,null,10,true,aligned_test10",
- "13,null,130000,true,aligned_unseq_test13",
- "21,null,21,true,null",
- "22,null,22,true,null",
- "24,null,24,true,null",
- "25,null,25,true,null",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet = statement.execute("select * from root.sg1.d1 where s4 = true");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "7,null,7,false,aligned_test7",
- "9,null,9,false,aligned_test9",
- "26,null,26,false,null",
- "27,null,27,false,null",
- "28,null,28,false,null",
- "29,null,29,false,null",
- "30,null,30,false,null",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select * from root.sg1.d1 where s4 = false and s3 <= 33");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithValueFilterTest3() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "1,null,1,true,aligned_test1",
- "2,null,2,null,aligned_test2",
- "6,null,6,true,null",
- "7,null,7,false,aligned_test7",
- "8,null,8,null,aligned_test8",
- "9,null,9,false,aligned_test9",
- "10,null,10,true,aligned_test10",
- "11,null,11,null,null",
- "12,null,12,null,null",
- "14,null,14,null,null",
- "15,null,15,null,null",
- "16,null,16,null,null",
- "17,null,17,null,null",
- "18,null,18,null,null",
- "19,null,19,null,null",
- "20,null,20,null,null",
- "21,null,21,true,null",
- "22,null,22,true,null",
- "23,230000.0,230000,false,null",
- "24,null,24,true,null",
- "25,null,25,true,null",
- "26,null,26,false,null",
- "27,null,27,false,null",
- "28,null,28,false,null",
- "29,null,29,false,null",
- "30,null,30,false,null",
- "40,null,null,null,aligned_test40",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.d1 where s5 = 'aligned_test40' or s4 = false or s3 <= 33");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedAndNonAlignedTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "3,null,30000,true,aligned_unseq_test3,3.0,null,3,false,non_aligned_test3",
- "13,null,130000,true,aligned_unseq_test13,13.0,13,13,null,null",
- "17,null,17,null,null,17.0,17,17,null,null",
- "18,null,18,null,null,18.0,18,18,null,null",
- "19,null,19,null,null,19.0,19,19,null,null",
- "20,null,20,null,null,20.0,20,20,null,null",
- "21,null,21,true,null,null,null,21,true,null",
- "22,null,22,true,null,null,null,22,true,null",
- "23,230000.0,230000,false,null,null,null,23,true,null",
- "24,null,24,true,null,null,null,24,true,null",
- "25,null,25,true,null,null,null,25,true,null",
- "26,null,26,false,null,null,null,26,false,null",
- "27,null,27,false,null,null,null,27,false,null",
- "28,null,28,false,null,null,null,28,false,null",
- "29,null,29,false,null,null,null,29,false,null",
- "30,null,30,false,null,null,null,30,false,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1",
- "root.sg1.d1.s3",
- "root.sg1.d1.s4",
- "root.sg1.d1.s5",
- "root.sg1.d2.s1",
- "root.sg1.d2.s2",
- "root.sg1.d2.s3",
- "root.sg1.d2.s4",
- "root.sg1.d2.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.* where root.sg1.d1.s3 > 16 and root.sg1.d2.s3 <= 36");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedAndNonAlignedTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "3,null,30000,true,aligned_unseq_test3,3.0,null,3,false,non_aligned_test3",
- "7,null,7,false,aligned_test7,7.0,7,7,false,non_aligned_test7",
- "9,null,9,false,aligned_test9,9.0,9,9,false,non_aligned_test9",
- "13,null,130000,true,aligned_unseq_test13,13.0,13,13,null,null",
- "17,null,17,null,null,17.0,17,17,null,null",
- "18,null,18,null,null,18.0,18,18,null,null",
- "19,null,19,null,null,19.0,19,19,null,null",
- "20,null,20,null,null,20.0,20,20,null,null",
- "21,null,21,true,null,null,null,21,true,null",
- "22,null,22,true,null,null,null,22,true,null",
- "23,230000.0,230000,false,null,null,null,23,true,null",
- "24,null,24,true,null,null,null,24,true,null",
- "25,null,25,true,null,null,null,25,true,null",
- "26,null,26,false,null,null,null,26,false,null",
- "27,null,27,false,null,null,null,27,false,null",
- "28,null,28,false,null,null,null,28,false,null",
- "29,null,29,false,null,null,null,29,false,null",
- "30,null,30,false,null,null,null,30,false,null",
- };
-
- String[] columnNames = {
- "root.sg1.d1.s1",
- "root.sg1.d1.s3",
- "root.sg1.d1.s4",
- "root.sg1.d1.s5",
- "root.sg1.d2.s1",
- "root.sg1.d2.s2",
- "root.sg1.d2.s3",
- "root.sg1.d2.s4",
- "root.sg1.d2.s5"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.* where root.sg1.d1.s3 > 16 or root.sg1.d2.s4 = false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithTimeAndValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "9,null,9,false,aligned_test9",
- "10,null,10,true,aligned_test10",
- "11,null,11,null,null",
- "12,null,12,null,null",
- "14,null,14,null,null",
- "15,null,15,null,null",
- "16,null,16,null,null",
- "17,null,17,null,null",
- "18,null,18,null,null",
- "19,null,19,null,null",
- "20,null,20,null,null",
- "21,null,21,true,null",
- "22,null,22,true,null",
- "24,null,24,true,null",
- "25,null,25,true,null",
- "26,null,26,false,null",
- "27,null,27,false,null",
- "28,null,28,false,null",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select * from root.sg1.d1 where time >= 9 and time <= 33 and s3 < 29");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectAllAlignedWithTimeAndValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "9,null,9,false,aligned_test9",
- "10,null,10,true,aligned_test10",
- "11,null,11,null,null",
- "12,null,12,null,null",
- "13,null,130000,true,aligned_unseq_test13",
- "14,null,14,null,null",
- "15,null,15,null,null",
- "16,null,16,null,null",
- "17,null,17,null,null",
- "18,null,18,null,null",
- "19,null,19,null,null",
- "20,null,20,null,null",
- "21,null,21,true,null",
- "22,null,22,true,null",
- "23,230000.0,230000,false,null",
- "24,null,24,true,null",
- "25,null,25,true,null",
- "26,null,26,false,null",
- "27,null,27,false,null",
- "28,null,28,false,null",
- "29,null,29,false,null",
- "30,null,30,false,null",
- "32,null,null,null,aligned_test32",
- "33,null,null,null,aligned_test33",
- "36,null,null,null,aligned_test36",
- "37,null,null,null,aligned_test37",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s3", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select * from root.sg1.d1 where time >= 9 and time <= 33 or s5 = 'aligned_test36' or s5 = 'aligned_test37'");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithValueFilterTest1() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "7,null,false,aligned_test7",
- "9,null,false,aligned_test9",
- "23,230000.0,false,null",
- "26,null,false,null",
- "27,null,false,null",
- "28,null,false,null",
- "29,null,false,null",
- "30,null,false,null",
- "34,null,null,aligned_test34",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select s1,s4,s5 from root.sg1.d1 where s4 = false or s5 = 'aligned_test34'");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithValueFilterTest2() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "23,230000.0,false",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute("select s1,s4 from root.sg1.d1 where s1 > 29 and s4 = false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedWithTimeAndValueFilterTest() throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "23,230000.0,false,null",
- "26,null,false,null",
- "27,null,false,null",
- "28,null,false,null",
- "29,null,false,null",
- "30,null,false,null",
- };
-
- String[] columnNames = {"root.sg1.d1.s1", "root.sg1.d1.s4", "root.sg1.d1.s5"};
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet =
- statement.execute(
- "select s1,s4,s5 from root.sg1.d1 where time >= 16 and time <= 34 and s4=false");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void selectSomeAlignedAndNonAlignedWithTimeAndValueFilterTest()
- throws ClassNotFoundException {
-
- String[] retArray =
- new String[] {
- "21,null,true,null,null,true,null",
- "22,null,true,null,null,true,null",
- "23,null,false,null,null,true,230000.0",
- "24,null,true,null,null,true,null",
- "25,null,true,null,null,true,null",
- "32,non_aligned_test32,null,null,aligned_test32,null,null",
- "33,non_aligned_test33,null,null,aligned_test33,null,null",
- "34,non_aligned_test34,null,null,aligned_test34,null,null",
- };
-
- String[] columnNames = {
- "root.sg1.d2.s5",
- "root.sg1.d1.s4",
- "root.sg1.d2.s1",
- "root.sg1.d1.s5",
- "root.sg1.d2.s4",
- "root.sg1.d1.s1"
- };
-
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection =
- DriverManager.getConnection(
- Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root", "root");
- Statement statement = connection.createStatement()) {
-
- // 1 4 5
- boolean hasResultSet =
- statement.execute(
- "select d2.s5, d1.s4, d2.s1, d1.s5, d2.s4, d1.s1 from root.sg1 where time >= 16 and time <= 34 and (d1.s5 = 'aligned_test31' or d1.s5 = 'aligned_test32' or d1.s5 = 'aligned_test33' or d1.s5 = 'aligned_test34' or d2.s4 = true)");
- Assert.assertTrue(hasResultSet);
-
- try (ResultSet resultSet = statement.getResultSet()) {
- ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
- Map<String, Integer> map = new HashMap<>();
- for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
- map.put(resultSetMetaData.getColumnName(i), i);
- }
- assertEquals(columnNames.length + 1, resultSetMetaData.getColumnCount());
- int cnt = 0;
- while (resultSet.next()) {
- StringBuilder builder = new StringBuilder();
- builder.append(resultSet.getString(1));
- for (String columnName : columnNames) {
- int index = map.get(columnName);
- builder.append(",").append(resultSet.getString(index));
- }
- assertEquals(retArray[cnt], builder.toString());
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- } catch (SQLException e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/groupby/IoTDBGroupByFillIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/groupby/IoTDBGroupByFillIT.java
deleted file mode 100644
index a5afbaa37b..0000000000
--- a/integration/src/test/java/org/apache/iotdb/db/integration/groupby/IoTDBGroupByFillIT.java
+++ /dev/null
@@ -1,2657 +0,0 @@
-/*
- * 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.integration.groupby;
-
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.qp.logical.crud.AggregationQueryOperator;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.integration.env.ConfigFactory;
-import org.apache.iotdb.integration.env.EnvFactory;
-import org.apache.iotdb.itbase.category.LocalStandaloneTest;
-
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-
-import static org.apache.iotdb.db.constant.TestConstant.TIMESTAMP_STR;
-import static org.apache.iotdb.db.constant.TestConstant.avg;
-import static org.apache.iotdb.db.constant.TestConstant.count;
-import static org.apache.iotdb.db.constant.TestConstant.firstValue;
-import static org.apache.iotdb.db.constant.TestConstant.lastValue;
-import static org.apache.iotdb.db.constant.TestConstant.maxTime;
-import static org.apache.iotdb.db.constant.TestConstant.maxValue;
-import static org.apache.iotdb.db.constant.TestConstant.minTime;
-import static org.apache.iotdb.db.constant.TestConstant.minValue;
-import static org.apache.iotdb.db.constant.TestConstant.sum;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@Category({LocalStandaloneTest.class})
-public class IoTDBGroupByFillIT {
-
- private static String[] dataSet1 =
- new String[] {
- "CREATE DATABASE root.ln.wf01.wt01",
- "CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=INT32, ENCODING=PLAIN",
- "CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=DOUBLE, ENCODING=PLAIN",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(10, 21, false, 11.1)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(12, 23, true, 22.3)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(14, 25, false, 33.5)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(23, 28, true, 34.9)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(25, 23, false, 31.7)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(33, 29, false, 44.6)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(36, 24, true, 44.8)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(48, 28, false, 54.6)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(50, 30, true, 55.8)",
- "INSERT INTO root.ln.wf01.wt01(timestamp, temperature, status, hardware) "
- + "values(66, 40, false, 33.0)",
- "flush"
- };
-
- @BeforeClass
- public static void setUp() throws Exception {
- ConfigFactory.getConfig().setPartitionInterval(1000);
- EnvFactory.getEnv().initBeforeClass();
- prepareData();
- }
-
- @AfterClass
- public static void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setTimePartitionInterval(86400000);
- EnvironmentUtils.cleanEnv();
- }
-
- @Test
- public void oldTypePreviousLastValueTest() {
- String[] retArray =
- new String[] {"17,null", "22,23", "27,23", "32,24", "37,24", "42,24", "47,30", "52,30"};
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(temperature) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(int32[previous])");
- assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.ln.wf01.wt01.temperature"));
- assertEquals(retArray[cnt], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(temperature) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(int32[previous]) order by time desc");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.ln.wf01.wt01.temperature"));
- assertEquals(retArray[retArray.length - cnt - 1], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void previousLastValueWithValueFilterTest() {
- String[] retArray =
- new String[] {"17,null", "22,28", "27,28", "32,29", "37,29", "42,29", "47,30", "52,30"};
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select last_value(temperature) from "
- + "root.ln.wf01.wt01 "
- + "WHERE temperature > 25 "
- + "GROUP BY ([17, 55), 5ms) FILL(previous)");
- assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.ln.wf01.wt01.temperature"));
- assertEquals(retArray[cnt], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select last_value(temperature) from "
- + "root.ln.wf01.wt01 "
- + "WHERE temperature > 25 "
- + "GROUP BY ([17, 55), 5ms) FILL(previous) order by time desc");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(lastValue("root.ln.wf01.wt01.temperature"));
- assertEquals(retArray[retArray.length - cnt - 1], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void oldTypePreviousFirstValueTest() {
- String[] retArray =
- new String[] {
- "17,null", "22,34.9", "27,34.9", "32,44.6", "37,44.6", "42,44.6", "47,54.6", "52,54.6"
- };
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select first_value(hardware) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(double[previous])");
-
- assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(firstValue("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[cnt], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select first_value(hardware) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(double[previous]) order by time desc");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(firstValue("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[retArray.length - cnt - 1], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void previousAvgTest() {
- String[] retArray =
- new String[] {
- "17,null", "22,33.3", "27,33.3", "32,44.7", "37,44.7", "42,44.7", "47,55.2", "52,55.2"
- };
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select avg(hardware) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(previous)");
- assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[cnt], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select avg(hardware) from "
- + "root.ln.wf01.wt01 "
- + "GROUP BY ([17, 55), 5ms) FILL(previous) order by time desc");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[retArray.length - cnt - 1], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void oldTypePreviousAvgWithValueFilterTest() {
- String[] retArray =
- new String[] {
- "17,null", "22,null", "27,null", "32,44.7", "37,44.7", "42,44.7", "47,55.2", "52,55.2"
- };
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
- "select avg(hardware) from "
- + "root.ln.wf01.wt01 "
- + "WHERE hardware > 35.0 "
- + "GROUP BY ([17, 55), 5ms) FILL(double[previous])");
- assertTrue(hasResultSet);
- int cnt;
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[cnt], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
-
- hasResultSet =
- statement.execute(
- "select avg(hardware) from "
- + "root.ln.wf01.wt01 "
- + "WHERE hardware > 35.0 "
- + "GROUP BY ([17, 55), 5ms) FILL(double[previous]) order by time desc");
- assertTrue(hasResultSet);
- try (ResultSet resultSet = statement.getResultSet()) {
- cnt = 0;
- while (resultSet.next()) {
- String ans =
- resultSet.getString(TIMESTAMP_STR)
- + ","
- + resultSet.getString(avg("root.ln.wf01.wt01.hardware"));
- assertEquals(retArray[retArray.length - cnt - 1], ans);
- cnt++;
- }
- assertEquals(retArray.length, cnt);
- }
- } catch (Exception e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @Test
- public void previousCountTest() {
- String[] retArray =
- new String[] {"17,0", "22,2", "27,0", "32,2", "37,0", "42,0", "47,2", "52,0"};
-
- try (Connection conn = EnvFactory.getEnv().getConnection();
- Statement statement = conn.createStatement()) {
- boolean hasResultSet =
- statement.execute(
... 49958 lines suppressed ...