This is an automated email from the ASF dual-hosted git repository. xingtanzjr pushed a commit to branch xingtanzjr/agg_distribution_plan in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit df427ed8b62bfd007120667b9d680898cf1ffdb1 Merge: 72478856fd 9a1bc7ccaf Author: Jinrui.Zhang <[email protected]> AuthorDate: Sun May 22 14:40:12 2022 +0800 Merge branch 'master' into xingtanzjr/agg_distribution_plan LICENSE | 18 +- .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 2 +- .../log/manage/PartitionedSnapshotLogManager.java | 4 +- .../server/handlers/caller/ElectionHandler.java | 4 +- .../cluster/utils/nodetool/ClusterMonitor.java | 4 +- .../query/ClusterPhysicalGeneratorTest.java | 4 +- .../query/last/ClusterLastQueryExecutorTest.java | 2 +- confignode/pom.xml | 5 - .../confignode/conf/ConfigNodeDescriptor.java | 1 - .../consensus/request/ConfigRequest.java | 4 + .../consensus/request/ConfigRequestType.java | 4 +- .../request/read/GetChildNodesPartitionReq.java | 67 + .../request/read/GetChildPathsPartitionReq.java | 67 + .../response/SchemaNodeManagementResp.java | 73 + .../iotdb/confignode/manager/ConfigManager.java | 38 +- .../apache/iotdb/confignode/manager/Manager.java | 15 + .../iotdb/confignode/manager/PartitionManager.java | 31 + .../confignode/persistence/ClusterSchemaInfo.java | 56 +- .../iotdb/confignode/persistence/NodeInfo.java | 43 +- .../confignode/persistence/PartitionInfo.java | 50 +- .../confignode/persistence/ProcedureInfo.java | 9 +- .../executor/ConfigRequestExecutor.java | 43 + .../iotdb/confignode/procedure/Procedure.java | 43 +- .../confignode/procedure/ProcedureExecutor.java | 68 +- .../procedure/StateMachineProcedure.java | 4 +- .../procedure/conf/ProcedureNodeConfig.java | 155 -- .../conf/ProcedureNodeConfigDescriptor.java | 219 --- .../procedure/conf/ProcedureNodeConstant.java | 32 - .../procedure/store/ConfigProcedureStore.java | 6 +- .../procedure/store/IProcedureStore.java | 4 +- .../procedure/store/ProcedureFactory.java | 5 +- .../confignode/procedure/store/ProcedureStore.java | 14 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 24 + .../confignode/persistence/AuthorInfoTest.java | 6 - .../confignode/procedure/NoopProcedureStore.java | 4 +- .../confignode/procedure/TestProcedureBase.java | 7 +- .../procedure/TestProcedureExecutor.java | 2 - .../procedure/store/TestProcedureStore.java | 9 +- .../thrift/ConfigNodeRPCServiceProcessorTest.java | 95 +- .../GrafanaPlugin/Dockerfile-0.14.0-iotdb | 42 + .../DockerCompose/GrafanaPlugin/docker-compose.yml | 48 + .../GrafanaPlugin/iotdb/conf/iotdb-rest.properties | 58 + docs/UserGuide/Maintenance-Tools/Metric-Tool.md | 205 ++- docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md | 206 ++- .../apache/iotdb/tsfile/TsFileSequenceRead.java | 2 +- .../java/org/apache/iotdb/udf/UDTFExample.java | 14 +- .../controller/DatabaseConnectController.java | 3 + .../iotdb/db/query/udf/example/Accumulator.java | 22 +- .../apache/iotdb/db/query/udf/example/Adder.java | 14 +- .../apache/iotdb/db/query/udf/example/Counter.java | 18 +- .../org/apache/iotdb/db/query/udf/example/Max.java | 14 +- .../iotdb/db/query/udf/example/Multiplier.java | 14 +- .../SlidingSizeWindowConstructorTester0.java | 12 +- .../SlidingSizeWindowConstructorTester1.java | 14 +- .../SlidingTimeWindowConstructionTester.java | 16 +- .../db/query/udf/example/TerminateTester.java | 12 +- .../iotdb/db/query/udf/example/ValidateTester.java | 10 +- .../iotdb/db/query/udf/example/WindowStartEnd.java | 14 +- .../iotdb/db/integration/IoTDBSnapshotIT.java | 259 ++++ .../IoTDBSyntaxConventionStringLiteralIT.java | 2 +- .../iotdb/db/integration/IoTDBTagAlterIT.java | 4 +- .../iotdb/db/integration/IoTDBUDFManagementIT.java | 2 +- library-udf/pom.xml | 24 +- .../UDTFMinMax.java => anomaly/UDTFIQR.java} | 83 +- .../apache/iotdb/library/anomaly/UDTFKSigma.java | 153 ++ .../org/apache/iotdb/library/anomaly/UDTFLOF.java | 215 +++ .../iotdb/library/anomaly/UDTFMissDetect.java | 74 + .../apache/iotdb/library/anomaly/UDTFRange.java | 97 ++ .../UDTFTwoSidedFilter.java} | 68 +- .../iotdb/library/anomaly/util/MissDetector.java | 240 +++ .../library/anomaly/util/StreamMissDetector.java | 189 +++ .../iotdb/library/anomaly/util/WindowDetect.java | 96 ++ .../org/apache/iotdb/library/dmatch/UDAFCov.java | 14 +- .../org/apache/iotdb/library/dmatch/UDAFDtw.java | 16 +- .../apache/iotdb/library/dmatch/UDAFPearson.java | 14 +- .../apache/iotdb/library/dmatch/UDTFPtnSym.java | 16 +- .../org/apache/iotdb/library/dmatch/UDTFXCorr.java | 14 +- .../iotdb/library/dprofile/UDAFIntegral.java | 14 +- .../iotdb/library/dprofile/UDAFIntegralAvg.java | 14 +- .../org/apache/iotdb/library/dprofile/UDAFMad.java | 14 +- .../apache/iotdb/library/dprofile/UDAFMedian.java | 14 +- .../apache/iotdb/library/dprofile/UDAFMode.java | 14 +- .../iotdb/library/dprofile/UDAFPercentile.java | 14 +- .../apache/iotdb/library/dprofile/UDAFPeriod.java | 18 +- .../apache/iotdb/library/dprofile/UDAFSkew.java | 14 +- .../apache/iotdb/library/dprofile/UDAFSpread.java | 14 +- .../apache/iotdb/library/dprofile/UDAFStddev.java | 14 +- .../org/apache/iotdb/library/dprofile/UDTFACF.java | 14 +- .../iotdb/library/dprofile/UDTFDistinct.java | 14 +- .../iotdb/library/dprofile/UDTFHistogram.java | 14 +- .../apache/iotdb/library/dprofile/UDTFMinMax.java | 14 +- .../apache/iotdb/library/dprofile/UDTFMvAvg.java | 14 +- .../apache/iotdb/library/dprofile/UDTFPACF.java | 14 +- .../org/apache/iotdb/library/dprofile/UDTFQLB.java | 14 +- .../iotdb/library/dprofile/UDTFResample.java | 14 +- .../apache/iotdb/library/dprofile/UDTFSample.java | 20 +- .../apache/iotdb/library/dprofile/UDTFSegment.java | 14 +- .../apache/iotdb/library/dprofile/UDTFSpline.java | 14 +- .../apache/iotdb/library/dprofile/UDTFZScore.java | 14 +- .../dprofile/util/ExactOrderStatistics.java | 4 +- .../iotdb/library/dquality/UDTFCompleteness.java | 14 +- .../iotdb/library/dquality/UDTFConsistency.java | 14 +- .../iotdb/library/dquality/UDTFTimeliness.java | 14 +- .../iotdb/library/dquality/UDTFValidity.java | 14 +- .../library/dquality/util/TimeSeriesQuality.java | 4 +- .../iotdb/library/drepair/UDTFTimestampRepair.java | 14 +- .../iotdb/library/drepair/UDTFValueFill.java | 14 +- .../iotdb/library/drepair/UDTFValueRepair.java | 14 +- .../apache/iotdb/library/drepair/util/ARFill.java | 4 +- .../iotdb/library/drepair/util/LikelihoodFill.java | 2 +- .../iotdb/library/drepair/util/LinearFill.java | 2 +- .../iotdb/library/drepair/util/LsGreedy.java | 2 +- .../apache/iotdb/library/drepair/util/MAFill.java | 2 +- .../iotdb/library/drepair/util/MeanFill.java | 2 +- .../iotdb/library/drepair/util/PreviousFill.java | 2 +- .../apache/iotdb/library/drepair/util/Screen.java | 2 +- .../iotdb/library/drepair/util/ScreenFill.java | 4 +- .../library/drepair/util/TimestampRepair.java | 4 +- .../iotdb/library/drepair/util/ValueFill.java | 6 +- .../iotdb/library/drepair/util/ValueRepair.java | 4 +- .../apache/iotdb/library/frequency/UDTFConv.java | 14 +- .../apache/iotdb/library/frequency/UDTFDWT.java | 14 +- .../apache/iotdb/library/frequency/UDTFDeconv.java | 14 +- .../apache/iotdb/library/frequency/UDTFFFT.java | 14 +- .../iotdb/library/frequency/UDTFHighPass.java | 14 +- .../apache/iotdb/library/frequency/UDTFIDWT.java | 14 +- .../apache/iotdb/library/frequency/UDTFIFFT.java | 14 +- .../iotdb/library/frequency/UDTFLowPass.java | 14 +- .../iotdb/library/frequency/util/FFTUtil.java | 2 +- .../library/series/UDTFConsecutiveSequences.java | 14 +- .../library/series/UDTFConsecutiveWindows.java | 14 +- .../iotdb/library/series/util/ConsecutiveUtil.java | 4 +- .../iotdb/library/string/UDTFRegexMatch.java | 14 +- .../iotdb/library/string/UDTFRegexReplace.java | 14 +- .../iotdb/library/string/UDTFRegexSplit.java | 14 +- .../iotdb/library/string/UDTFStrReplace.java | 14 +- .../iotdb/library/util/LinearRegression.java | 2 +- .../java/org/apache/iotdb/library/util/Util.java | 7 +- .../apache/iotdb/library/anomaly/AnomalyTests.java | 1534 ++++++++++++++++++++ .../dropwizard/DropwizardMetricManager.java | 32 - .../main/assembly/resources/conf/iotdb-metric.yml | 5 +- .../iotdb/metrics/DoNothingMetricService.java | 14 +- .../org/apache/iotdb/metrics/MetricManager.java | 8 - .../org/apache/iotdb/metrics/MetricService.java | 21 +- .../apache/iotdb/metrics/config/MetricConfig.java | 3 +- .../iotdb/metrics/impl/DoNothingMetricManager.java | 4 - .../IMetricSet.java} | 17 +- .../predefined/jvm/JvmClassLoaderMetrics.java | 52 + .../metrics/predefined/jvm/JvmCompileMetrics.java | 50 + .../iotdb/metrics/predefined/jvm/JvmGcMetrics.java | 292 ++++ .../metrics/predefined/jvm/JvmMemoryMetrics.java | 105 ++ .../iotdb/metrics/predefined/jvm/JvmMetrics.java | 49 + .../metrics/predefined/jvm/JvmThreadMetrics.java | 87 ++ .../metrics/predefined/logback/LogbackMetrics.java | 180 +++ .../utils/{PredefinedMetric.java => JvmUtils.java} | 28 +- .../iotdb/metrics/utils/PredefinedMetric.java | 5 +- .../micrometer/MicrometerMetricManager.java | 51 - .../apache/iotdb/commons/conf/CommonConfig.java | 25 +- .../iotdb/commons/conf/CommonDescriptor.java | 1 - .../apache/iotdb/commons/conf/IoTDBConstant.java | 3 + .../iotdb/commons/partition/DataPartition.java | 28 +- .../partition/SchemaNodeManagementPartition.java | 58 + .../iotdb/commons/partition/SchemaPartition.java | 45 +- .../org/apache/iotdb/commons}/udf/api/UDF.java | 8 +- .../org/apache/iotdb/commons}/udf/api/UDTF.java | 20 +- .../apache/iotdb/commons}/udf/api/access/Row.java | 2 +- .../iotdb/commons}/udf/api/access/RowIterator.java | 2 +- .../iotdb/commons}/udf/api/access/RowWindow.java | 6 +- .../commons}/udf/api/collector/PointCollector.java | 21 +- .../api/customizer/config/UDFConfigurations.java | 7 +- .../api/customizer/config/UDTFConfigurations.java | 25 +- .../parameter/UDFParameterValidator.java | 14 +- .../api/customizer/parameter/UDFParameters.java | 57 +- .../api/customizer/strategy/AccessStrategy.java | 13 +- .../strategy/RowByRowAccessStrategy.java | 12 +- .../strategy/SlidingSizeWindowAccessStrategy.java | 19 +- .../strategy/SlidingTimeWindowAccessStrategy.java | 101 +- .../UDFAttributeNotProvidedException.java | 2 +- .../commons}/udf/api/exception/UDFException.java | 2 +- .../UDFInputSeriesDataTypeNotValidException.java | 2 +- .../UDFInputSeriesIndexNotValidException.java | 2 +- .../UDFInputSeriesNumberNotValidException.java | 2 +- .../UDFOutputSeriesDataTypeNotValidException.java | 2 +- .../exception/UDFParameterNotValidException.java | 2 +- .../commons}/udf/builtin/BuiltinFunction.java | 2 +- .../apache/iotdb/commons}/udf/builtin/UDTFAbs.java | 14 +- .../iotdb/commons}/udf/builtin/UDTFAcos.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFAsin.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFAtan.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFBottomK.java | 27 +- .../iotdb/commons}/udf/builtin/UDTFCast.java | 42 +- .../iotdb/commons}/udf/builtin/UDTFCeil.java | 2 +- .../commons}/udf/builtin/UDTFCommonDerivative.java | 8 +- .../udf/builtin/UDTFCommonValueDifference.java | 8 +- .../iotdb/commons}/udf/builtin/UDTFConst.java | 18 +- .../iotdb/commons}/udf/builtin/UDTFConstE.java | 14 +- .../iotdb/commons}/udf/builtin/UDTFConstPi.java | 14 +- .../iotdb/commons}/udf/builtin/UDTFContains.java | 18 +- .../udf/builtin/UDTFContinuouslySatisfy.java | 20 +- .../apache/iotdb/commons}/udf/builtin/UDTFCos.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFCosh.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFDegrees.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFDerivative.java | 14 +- .../udf/builtin/UDTFEqualSizeBucketAggSample.java | 20 +- .../udf/builtin/UDTFEqualSizeBucketM4Sample.java | 20 +- .../builtin/UDTFEqualSizeBucketOutlierSample.java | 22 +- .../builtin/UDTFEqualSizeBucketRandomSample.java | 16 +- .../udf/builtin/UDTFEqualSizeBucketSample.java | 8 +- .../apache/iotdb/commons}/udf/builtin/UDTFExp.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFFloor.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFInRange.java | 20 +- .../iotdb/commons}/udf/builtin/UDTFJexl.java | 49 +- .../apache/iotdb/commons}/udf/builtin/UDTFLog.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFLog10.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFMatches.java | 20 +- .../iotdb/commons}/udf/builtin/UDTFMath.java | 20 +- .../udf/builtin/UDTFNonNegativeDerivative.java | 8 +- .../builtin/UDTFNonNegativeValueDifference.java | 8 +- .../commons}/udf/builtin/UDTFNonZeroCount.java | 2 +- .../commons}/udf/builtin/UDTFNonZeroDuration.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFOnOff.java | 18 +- .../iotdb/commons}/udf/builtin/UDTFRadians.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFRound.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFSelectK.java | 23 +- .../iotdb/commons}/udf/builtin/UDTFSign.java | 2 +- .../apache/iotdb/commons}/udf/builtin/UDTFSin.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFSinh.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFSqrt.java | 2 +- .../apache/iotdb/commons}/udf/builtin/UDTFTan.java | 2 +- .../iotdb/commons}/udf/builtin/UDTFTanh.java | 2 +- .../commons}/udf/builtin/UDTFTimeDifference.java | 16 +- .../iotdb/commons}/udf/builtin/UDTFTopK.java | 4 +- .../commons}/udf/builtin/UDTFValueDifference.java | 14 +- .../iotdb/commons}/udf/builtin/UDTFValueTrend.java | 14 +- .../iotdb/commons}/udf/builtin/UDTFZeroCount.java | 2 +- .../commons}/udf/builtin/UDTFZeroDuration.java | 2 +- .../commons/utils/ThriftConfigNodeSerDeUtils.java | 34 + .../iotdb/commons/partition/DataPartitionTest.java | 12 +- .../commons/partition/SchemaPartitionTest.java | 12 +- .../apache/iotdb/db/client/ConfigNodeClient.java | 19 + .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 27 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 1 - .../statemachine/DataRegionStateMachine.java | 38 +- .../apache/iotdb/db/engine/StorageEngineV2.java | 13 + .../apache/iotdb/db/engine/cache/ChunkCache.java | 4 +- .../db/engine/cache/TimeSeriesMetadataCache.java | 4 +- .../compaction/CompactionMetricsManager.java | 4 +- .../db/engine/compaction/CompactionScheduler.java | 4 +- .../db/engine/compaction/CompactionUtils.java | 4 +- .../constant/InnerSequenceCompactionSelector.java | 8 +- .../InnerUnsequenceCompactionSelector.java | 8 +- ...ement.java => AbstractCrossSpaceEstimator.java} | 25 +- .../rewrite/CrossSpaceCompactionResource.java | 89 ++ .../RewriteCrossSpaceCompactionResource.java | 206 --- .../RewriteCrossSpaceCompactionSelector.java | 17 +- .../selector/RewriteCompactionFileSelector.java | 195 +-- .../cross/utils/AbstractCompactionEstimator.java | 63 + .../IFileQueryMemMeasurement.java | 2 +- .../cross/utils/InplaceCompactionEstimator.java | 173 +++ .../utils/ReadPointCrossCompactionEstimator.java | 172 +++ .../AbstractInnerSpaceEstimator.java} | 25 +- .../sizetiered/SizeTieredCompactionSelector.java | 9 +- .../compaction/task/ICompactionSelector.java | 20 + .../apache/iotdb/db/engine/flush/FlushManager.java | 4 +- .../iotdb/db/engine/flush/MemTableFlushTask.java | 4 +- .../iotdb/db/engine/memtable/AbstractMemTable.java | 4 +- .../selectinto/InsertTabletPlansIterator.java | 2 +- .../iotdb/db/engine/snapshot/SnapshotLoader.java | 196 +++ .../iotdb/db/engine/snapshot/SnapshotTaker.java | 166 +++ .../exception/DirectoryNotLegalException.java} | 11 +- .../iotdb/db/engine/storagegroup/DataRegion.java | 8 +- .../engine/storagegroup/TsFileNameGenerator.java | 2 +- .../engine/storagegroup/TsFileProcessorInfo.java | 4 +- .../iotdb/db/metadata/mtree/MTreeAboveSG.java | 55 +- .../traverser/collector/MNodeAboveSGCollector.java | 6 +- .../db/metadata/rescon/TimeseriesStatistics.java | 4 +- .../apache/iotdb/db/metadata/utils/MetaUtils.java | 26 +- .../iotdb/db/mpp/aggregation/Aggregator.java | 12 +- .../db/mpp/aggregation/FirstValueAccumulator.java | 3 + .../db/mpp/aggregation/LastValueAccumulator.java | 3 + .../iotdb/db/mpp/common/header/DatasetHeader.java | 4 + .../iotdb/db/mpp/common/header/HeaderConstant.java | 10 + ...egateOperator.java => AggregationOperator.java} | 8 +- .../execution/operator/process/FillOperator.java | 50 +- .../execution/operator/process/FilterOperator.java | 4 +- .../execution/operator/process/LimitOperator.java | 3 + .../operator/process/LinearFillOperator.java | 191 +++ .../execution/operator/process/OffsetOperator.java | 3 + ...erator.java => RawDataAggregationOperator.java} | 10 +- .../operator/process/TransformOperator.java | 16 +- .../execution/operator/process/fill/IFill.java} | 10 +- .../process/fill/constant/BinaryConstantFill.java | 63 + .../process/fill/constant/BooleanConstantFill.java | 62 + .../process/fill/constant/DoubleConstantFill.java | 62 + .../process/fill/constant/FloatConstantFill.java | 62 + .../process/fill/constant/IntConstantFill.java | 62 + .../process/fill/constant/LongConstantFill.java | 62 + .../process/fill/linear/DoubleLinearFill.java | 94 ++ .../process/fill/linear/FloatLinearFill.java | 94 ++ .../process/fill/linear/IntLinearFill.java | 94 ++ .../operator/process/fill/linear/LinearFill.java | 186 +++ .../process/fill/linear/LongLinearFill.java | 94 ++ .../process/fill/previous/BinaryPreviousFill.java | 86 ++ .../process/fill/previous/BooleanPreviousFill.java | 85 ++ .../process/fill/previous/DoublePreviousFill.java | 85 ++ .../process/fill/previous/FloatPreviousFill.java | 85 ++ .../process/fill/previous/IntPreviousFill.java | 85 ++ .../process/fill/previous/LongPreviousFill.java | 85 ++ .../schema/ChildNodesSchemaScanOperator.java | 93 ++ .../schema/ChildPathsSchemaScanOperator.java | 93 ++ .../NodeManageMemoryMergeOperator.java} | 51 +- ...a => AlignedSeriesAggregationScanOperator.java} | 184 +-- ...tor.java => SeriesAggregationScanOperator.java} | 26 +- .../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 194 ++- .../apache/iotdb/db/mpp/plan/analyze/Analyzer.java | 638 ++++---- .../mpp/plan/analyze/ClusterPartitionFetcher.java | 44 + .../db/mpp/plan/analyze/ConcatPathRewriter.java | 67 +- .../db/mpp/plan/analyze/ExpressionAnalyzer.java | 440 +++--- .../iotdb/db/mpp/plan/analyze/ExpressionUtils.java | 50 +- .../mpp/plan/analyze/FakePartitionFetcherImpl.java | 8 + .../mpp/plan/analyze/GroupByLevelController.java | 6 +- .../db/mpp/plan/analyze/IPartitionFetcher.java | 5 + .../plan/analyze/StandalonePartitionFetcher.java | 8 + .../db/mpp/plan/execution/QueryExecution.java | 2 +- .../mpp/plan/execution/config/ConfigExecution.java | 2 +- .../memory/StatementMemorySourceVisitor.java | 39 + .../{query => mpp/plan}/expression/Expression.java | 60 +- .../plan}/expression/ExpressionType.java | 2 +- .../plan}/expression/ResultColumn.java | 2 +- .../expression/binary/AdditionExpression.java | 12 +- .../binary/ArithmeticBinaryExpression.java | 4 +- .../plan}/expression/binary/BinaryExpression.java | 28 +- .../expression/binary/CompareBinaryExpression.java | 4 +- .../expression/binary/DivisionExpression.java | 12 +- .../plan}/expression/binary/EqualToExpression.java | 12 +- .../expression/binary/GreaterEqualExpression.java | 12 +- .../expression/binary/GreaterThanExpression.java | 12 +- .../expression/binary/LessEqualExpression.java | 12 +- .../expression/binary/LessThanExpression.java | 12 +- .../expression/binary/LogicAndExpression.java | 12 +- .../expression/binary/LogicBinaryExpression.java | 4 +- .../plan}/expression/binary/LogicOrExpression.java | 12 +- .../plan}/expression/binary/ModuloExpression.java | 12 +- .../binary/MultiplicationExpression.java | 12 +- .../expression/binary/NonEqualExpression.java | 12 +- .../expression/binary/SubtractionExpression.java | 12 +- .../plan}/expression/leaf/ConstantOperand.java | 20 +- .../plan}/expression/leaf/LeafOperand.java | 6 +- .../plan}/expression/leaf/TimeSeriesOperand.java | 24 +- .../plan}/expression/leaf/TimestampOperand.java | 24 +- .../plan}/expression/multi/FunctionExpression.java | 76 +- .../plan}/expression/unary/InExpression.java | 12 +- .../plan}/expression/unary/LikeExpression.java | 14 +- .../plan}/expression/unary/LogicNotExpression.java | 20 +- .../plan}/expression/unary/NegationExpression.java | 20 +- .../plan}/expression/unary/RegularExpression.java | 12 +- .../plan}/expression/unary/UnaryExpression.java | 26 +- .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 80 +- .../db/mpp/plan/parser/StatementGenerator.java | 16 +- .../db/mpp/plan/planner/LocalExecutionPlanner.java | 269 +++- .../db/mpp/plan/planner/LogicalPlanBuilder.java | 186 +-- .../iotdb/db/mpp/plan/planner/LogicalPlanner.java | 82 +- .../mpp/plan/planner/plan/node/PlanNodeType.java | 14 +- .../db/mpp/plan/planner/plan/node/PlanVisitor.java | 17 +- .../metedata/read/ChildNodesSchemaScanNode.java | 87 ++ .../metedata/read/ChildPathsSchemaScanNode.java | 87 ++ .../read/NodeManagementMemoryMergeNode.java} | 92 +- .../plan/planner/plan/node/process/FillNode.java | 8 + .../plan/planner/plan/node/process/FilterNode.java | 2 +- .../planner/plan/node/process/FilterNullNode.java | 2 +- .../planner/plan/node/process/TransformNode.java | 2 +- .../source/AlignedSeriesAggregationScanNode.java | 5 +- .../plan/node/write/InsertMultiTabletsNode.java | 16 + .../plan/planner/plan/node/write/InsertNode.java | 30 + .../planner/plan/node/write/InsertRowNode.java | 10 +- .../planner/plan/node/write/InsertRowsNode.java | 16 + .../plan/node/write/InsertRowsOfOneDeviceNode.java | 16 + .../planner/plan/node/write/InsertTabletNode.java | 9 + .../plan/parameter/AggregationDescriptor.java | 2 +- .../planner/plan/parameter/FillDescriptor.java | 8 + .../plan/parameter/FilterNullParameter.java | 2 +- .../scheduler/FragmentInstanceDispatcherImpl.java | 4 +- .../db/mpp/plan/statement/StatementVisitor.java | 10 + .../statement/component/FilterNullComponent.java | 2 +- .../mpp/plan/statement/component/ResultColumn.java | 20 +- .../plan/statement/component/SelectComponent.java | 25 +- .../plan/statement/component/WhereCondition.java | 2 +- .../db/mpp/plan/statement/crud/QueryStatement.java | 46 +- .../mpp/plan/statement/literal/BooleanLiteral.java | 9 +- .../mpp/plan/statement/literal/DoubleLiteral.java | 14 +- .../db/mpp/plan/statement/literal/Literal.java | 25 + .../db/mpp/plan/statement/literal/LongLiteral.java | 25 +- .../mpp/plan/statement/literal/StringLiteral.java | 6 + .../metadata/ShowChildNodesStatement.java} | 23 +- .../metadata/ShowChildPathsStatement.java} | 23 +- .../transformation/api}/LayerPointReader.java | 2 +- .../transformation/api}/LayerRowReader.java | 4 +- .../transformation/api}/LayerRowWindowReader.java | 4 +- ...ializableRowRecordListBackedMultiColumnRow.java | 4 +- ...izableRowRecordListBackedMultiColumnWindow.java | 10 +- ...wRecordListBackedMultiColumnWindowIterator.java | 8 +- ...ticSerializableTVListBackedSingleColumnRow.java | 6 +- ...SerializableTVListBackedSingleColumnWindow.java | 10 +- ...ableTVListBackedSingleColumnWindowIterator.java | 8 +- .../LayerPointReaderBackedSingleColumnRow.java | 6 +- .../transformation/dag/builder}/DAGBuilder.java | 15 +- .../dag/builder}/EvaluationDAGBuilder.java | 15 +- .../dag/input/ConstantInputReader.java} | 9 +- .../dag/input/QueryDataSetInputLayer.java} | 21 +- .../dag/input}/TsBlockInputDataSet.java | 2 +- .../intermediate}/ConstantIntermediateLayer.java | 18 +- .../dag/intermediate}/IntermediateLayer.java | 16 +- .../MultiInputColumnIntermediateLayer.java | 26 +- ...InputColumnMultiReferenceIntermediateLayer.java | 31 +- ...nputColumnSingleReferenceIntermediateLayer.java | 28 +- .../dag/memory}/LayerMemoryAssigner.java | 6 +- .../transformation/dag/memory}/SafetyLine.java | 4 +- .../dag}/transformer/Transformer.java | 4 +- .../binary/ArithmeticAdditionTransformer.java | 4 +- .../binary/ArithmeticBinaryTransformer.java | 4 +- .../binary/ArithmeticDivisionTransformer.java | 4 +- .../binary/ArithmeticModuloTransformer.java | 4 +- .../ArithmeticMultiplicationTransformer.java | 4 +- .../binary/ArithmeticSubtractionTransformer.java | 4 +- .../dag}/transformer/binary/BinaryTransformer.java | 6 +- .../binary/CompareBinaryTransformer.java | 4 +- .../binary/CompareEqualToTransformer.java | 4 +- .../binary/CompareGreaterEqualTransformer.java | 4 +- .../binary/CompareGreaterThanTransformer.java | 4 +- .../binary/CompareLessEqualTransformer.java | 4 +- .../binary/CompareLessThanTransformer.java | 4 +- .../binary/CompareNonEqualTransformer.java | 4 +- .../transformer/binary/LogicAndTransformer.java | 5 +- .../transformer/binary/LogicBinaryTransformer.java | 4 +- .../transformer/binary/LogicOrTransformer.java | 4 +- .../transformer/multi/UDFQueryRowTransformer.java | 6 +- .../multi/UDFQueryRowWindowTransformer.java | 6 +- .../transformer/multi/UDFQueryTransformer.java | 8 +- .../unary/ArithmeticNegationTransformer.java | 4 +- .../dag}/transformer/unary/InTransformer.java | 4 +- .../transformer/unary/LogicNotTransformer.java | 4 +- .../dag}/transformer/unary/RegularTransformer.java | 4 +- .../transformer/unary/TransparentTransformer.java | 4 +- .../dag}/transformer/unary/UnaryTransformer.java | 6 +- .../transformation/dag/udf}/UDTFContext.java | 8 +- .../transformation/dag/udf}/UDTFExecutor.java | 82 +- .../transformation/dag/udf}/UDTFTypeInferrer.java | 33 +- .../transformation/dag/util}/InputRowUtils.java | 2 +- .../transformation/dag/util}/LayerCacheUtils.java | 8 +- .../transformation}/datastructure/Cache.java | 2 +- .../datastructure/SerializableList.java | 4 +- .../row/ElasticSerializableRowRecordList.java | 19 +- .../row/SerializableRowRecordList.java | 4 +- .../tv/ElasticSerializableBinaryTVList.java | 28 +- .../tv/ElasticSerializableTVList.java | 27 +- .../datastructure/tv/SerializableBinaryTVList.java | 2 +- .../tv/SerializableBooleanTVList.java | 2 +- .../datastructure/tv/SerializableDoubleTVList.java | 2 +- .../datastructure/tv/SerializableFloatTVList.java | 2 +- .../datastructure/tv/SerializableIntTVList.java | 2 +- .../datastructure/tv/SerializableLongTVList.java | 2 +- .../datastructure/tv/SerializableTVList.java | 10 +- .../protocol/influxdb/function/InfluxFunction.java | 4 +- .../influxdb/function/InfluxFunctionFactory.java | 2 +- .../function/aggregator/InfluxAggregator.java | 2 +- .../function/aggregator/InfluxCountFunction.java | 2 +- .../function/aggregator/InfluxMeanFunction.java | 2 +- .../function/aggregator/InfluxMedianFunction.java | 2 +- .../function/aggregator/InfluxModeFunction.java | 2 +- .../function/aggregator/InfluxSpreadFunction.java | 2 +- .../function/aggregator/InfluxStddevFunction.java | 2 +- .../function/aggregator/InfluxSumFunction.java | 2 +- .../function/selector/InfluxFirstFunction.java | 2 +- .../function/selector/InfluxLastFunction.java | 2 +- .../function/selector/InfluxMaxFunction.java | 2 +- .../function/selector/InfluxMinFunction.java | 2 +- .../influxdb/function/selector/InfluxSelector.java | 2 +- .../db/protocol/influxdb/handler/QueryHandler.java | 8 +- .../influxdb/operator/InfluxSelectComponent.java | 8 +- .../protocol/influxdb/sql/InfluxDBSqlVisitor.java | 20 +- .../protocol/rest/handler/QueryDataSetHandler.java | 2 +- .../iotdb/db/qp/constant/FilterConstant.java | 2 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +- .../qp/logical/crud/AggregationQueryOperator.java | 8 +- .../db/qp/logical/crud/LastQueryOperator.java | 6 +- .../iotdb/db/qp/logical/crud/QueryOperator.java | 8 +- .../iotdb/db/qp/logical/crud/SelectComponent.java | 8 +- .../db/qp/logical/crud/SpecialClauseComponent.java | 2 +- .../db/qp/logical/crud/UDAFQueryOperator.java | 8 +- .../iotdb/db/qp/physical/crud/AggregationPlan.java | 2 +- .../db/qp/physical/crud/AlignByDevicePlan.java | 2 +- .../iotdb/db/qp/physical/crud/LastQueryPlan.java | 2 +- .../iotdb/db/qp/physical/crud/QueryPlan.java | 2 +- .../db/qp/physical/crud/RawDataQueryPlan.java | 2 +- .../apache/iotdb/db/qp/physical/crud/UDAFPlan.java | 2 +- .../apache/iotdb/db/qp/physical/crud/UDFPlan.java | 2 +- .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 6 +- .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 58 +- .../iotdb/db/qp/strategy/LogicalGenerator.java | 4 +- .../qp/strategy/optimizer/ConcatPathOptimizer.java | 6 +- .../apache/iotdb/db/qp/utils/DatetimeUtils.java | 12 +- .../iotdb/db/qp/utils/GroupByLevelController.java | 6 +- .../apache/iotdb/db/qp/utils/WildcardsRemover.java | 4 +- .../db/query/control/QueryResourceManager.java | 4 +- .../db/query/dataset/UDTFAlignByTimeDataSet.java | 6 +- .../apache/iotdb/db/query/dataset/UDTFDataSet.java | 21 +- .../db/query/dataset/UDTFNonAlignDataSet.java | 4 +- .../query/dataset/groupby/GroupByFillDataSet.java | 2 +- .../groupby/impl/LocalAlignedGroupByExecutor.java | 2 - .../db/query/pool/RawQueryReadTaskPoolManager.java | 4 +- .../query/udf/service/UDFClassLoaderManager.java | 3 +- .../udf/service/UDFRegistrationInformation.java | 2 +- .../query/udf/service/UDFRegistrationService.java | 14 +- .../java/org/apache/iotdb/db/service/DataNode.java | 1 - .../java/org/apache/iotdb/db/service/IoTDB.java | 1 - .../service/TemporaryQueryDataFileService.java | 4 +- .../iotdb/db/service/metrics/MetricsService.java | 150 +- .../db/service/metrics/{ => enums}/Metric.java | 2 +- .../db/service/metrics/{ => enums}/Operation.java | 2 +- .../iotdb/db/service/metrics/{ => enums}/Tag.java | 2 +- .../FileMetrics.java} | 132 +- .../ProcessMetrics.java} | 51 +- .../SystemMetrics.java} | 37 +- .../db/service/thrift/ProcessorWithMetrics.java | 4 +- .../thrift/impl/DataNodeTSIServiceImpl.java | 2 +- .../service/thrift/impl/InternalServiceImpl.java | 59 +- .../db/service/thrift/impl/TSServiceImpl.java | 2 +- .../apache/iotdb/db/tools/TsFileSketchTool.java | 6 +- .../db/tools/watermark/WatermarkDetector.java | 9 +- .../org/apache/iotdb/db/utils/FileLoaderUtils.java | 2 +- .../java/org/apache/iotdb/db/utils/MergeUtils.java | 69 - .../compaction/cross/CrossSpaceCompactionTest.java | 17 +- .../engine/compaction/cross/MergeUpgradeTest.java | 6 +- .../cross/RewriteCompactionFileSelectorTest.java | 81 +- .../iotdb/db/metadata/mtree/MTreeAboveSGTest.java | 18 +- ...ratorTest.java => AggregationOperatorTest.java} | 70 +- ... AlignedSeriesAggregationScanOperatorTest.java} | 436 +++--- .../mpp/execution/operator/FillOperatorTest.java | 353 +++++ .../execution/operator/LinearFillOperatorTest.java | 441 ++++++ ...st.java => RawDataAggregationOperatorTest.java} | 50 +- ...java => SeriesAggregationScanOperatorTest.java} | 146 +- .../iotdb/db/mpp/plan/analyze/AnalyzeFailTest.java | 18 + .../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 40 + .../db/mpp/plan/plan/QueryLogicalPlanUtil.java | 360 ++--- .../NodeManagementMemoryMergeNodeSerdeTest.java | 111 ++ .../node/process/AggregationNodeSerdeTest.java | 2 +- .../plan/node/process/FilterNodeSerdeTest.java | 8 +- .../plan/node/process/FilterNullNodeSerdeTest.java | 2 +- .../node/process/GroupByLevelNodeSerdeTest.java | 2 +- .../source/SeriesAggregationScanNodeSerdeTest.java | 2 +- .../plan/node/write/InsertTabletNodeSerdeTest.java | 2 +- .../influxdb/sql/InfluxDBLogicalGeneratorTest.java | 4 +- .../ElasticSerializableRowRecordListTest.java | 3 +- .../ElasticSerializableTVListTest.java | 17 +- .../iotdb/db/query/udf/datastructure/LRUCache.java | 2 + .../SerializableBinaryTVListTest.java | 4 +- .../SerializableBooleanTVListTest.java | 4 +- .../SerializableDoubleTVListTest.java | 4 +- .../datastructure/SerializableFloatTVListTest.java | 4 +- .../datastructure/SerializableIntTVListTest.java | 4 +- .../udf/datastructure/SerializableListTest.java | 2 +- .../datastructure/SerializableLongTVListTest.java | 4 +- .../SerializableRowRecordListTest.java | 2 +- .../apache/iotdb/db/query/udf/example/Adder.java | 14 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 + .../.vuepress/theme/global-components/IoTDB.vue | 72 +- thrift-commons/src/main/thrift/common.thrift | 2 + .../src/main/thrift/confignode.thrift | 23 + .../iotdb/tsfile/read/TsFileSequenceReader.java | 67 +- .../org/apache/iotdb/tsfile/read/common/Path.java | 3 +- .../tsfile/v2/read/TsFileSequenceReaderForV2.java | 3 +- .../tsfile/write/MetadataIndexConstructorTest.java | 2 +- .../iotdb/tsfile/write/TsFileIOWriterTest.java | 2 +- 573 files changed, 13491 insertions(+), 5353 deletions(-) diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java index db9c3fe354,0345031d07..d735cad2cc --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/source/AlignedSeriesAggregationScanNode.java @@@ -69,8 -73,10 +70,10 @@@ public class AlignedSeriesAggregationSc PlanNodeId id, AlignedPath alignedPath, List<AggregationDescriptor> aggregationDescriptorList) { - super(id); + super(id, aggregationDescriptorList); this.alignedPath = alignedPath; + this.aggregationDescriptorList = + AggregationNode.getDeduplicatedDescriptors(aggregationDescriptorList); } public AlignedSeriesAggregationScanNode(
