You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2022/05/20 20:06:18 UTC

[iotdb] branch master updated: [IOTDB-3249] Migrate udf package to node-commons and redesign the udf package (#5977)

This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 8f81a4334d [IOTDB-3249] Migrate udf package to node-commons and redesign the udf package (#5977)
8f81a4334d is described below

commit 8f81a4334d91734996e995a76c745e6be38458ca
Author: Steve Yurong Su <ro...@apache.org>
AuthorDate: Sat May 21 04:06:12 2022 +0800

    [IOTDB-3249] Migrate udf package to node-commons and redesign the udf package (#5977)
    
    1. Migrate part of the udf package to node-commons for further mpp cluster development
    2. Redesign the package structure of udf for better understanding
    3. Move the expression package and the transformer package into mpp package
---
 .../query/ClusterPhysicalGeneratorTest.java        |   4 +-
 .../query/last/ClusterLastQueryExecutorTest.java   |   2 +-
 .../java/org/apache/iotdb/udf/UDTFExample.java     |  14 +--
 .../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 +--
 .../IoTDBSyntaxConventionStringLiteralIT.java      |   2 +-
 .../iotdb/db/integration/IoTDBUDFManagementIT.java |   2 +-
 .../org/apache/iotdb/library/anomaly/UDTFIQR.java  |  14 +--
 .../apache/iotdb/library/anomaly/UDTFKSigma.java   |  14 +--
 .../org/apache/iotdb/library/anomaly/UDTFLOF.java  |  14 +--
 .../iotdb/library/anomaly/UDTFMissDetect.java      |  14 +--
 .../apache/iotdb/library/anomaly/UDTFRange.java    |  14 +--
 .../iotdb/library/anomaly/UDTFTwoSidedFilter.java  |  14 +--
 .../iotdb/library/anomaly/util/MissDetector.java   |   4 +-
 .../iotdb/library/anomaly/util/WindowDetect.java   |   4 +-
 .../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   |   4 +-
 .../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 +-
 .../selectinto/InsertTabletPlansIterator.java      |   2 +-
 .../execution/operator/process/FilterOperator.java |   4 +-
 .../operator/process/TransformOperator.java        |  16 ++--
 .../apache/iotdb/db/mpp/plan/analyze/Analysis.java |   2 +-
 .../apache/iotdb/db/mpp/plan/analyze/Analyzer.java |   2 +-
 .../db/mpp/plan/analyze/ConcatPathRewriter.java    |   2 +-
 .../db/mpp/plan/analyze/ExpressionAnalyzer.java    |  38 ++++----
 .../iotdb/db/mpp/plan/analyze/ExpressionUtils.java |  50 +++++-----
 .../mpp/plan/analyze/GroupByLevelController.java   |   6 +-
 .../{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       |  46 +++++-----
 .../db/mpp/plan/parser/StatementGenerator.java     |  12 +--
 .../db/mpp/plan/planner/LocalExecutionPlanner.java |   2 +-
 .../db/mpp/plan/planner/LogicalPlanBuilder.java    |   6 +-
 .../iotdb/db/mpp/plan/planner/LogicalPlanner.java  |   2 +-
 .../plan/planner/plan/node/process/FilterNode.java |   2 +-
 .../planner/plan/node/process/FilterNullNode.java  |   2 +-
 .../planner/plan/node/process/TransformNode.java   |   2 +-
 .../plan/parameter/AggregationDescriptor.java      |   2 +-
 .../plan/parameter/FilterNullParameter.java        |   2 +-
 .../statement/component/FilterNullComponent.java   |   2 +-
 .../mpp/plan/statement/component/ResultColumn.java |   2 +-
 .../plan/statement/component/SelectComponent.java  |   2 +-
 .../plan/statement/component/WhereCondition.java   |   2 +-
 .../db/mpp/plan/statement/crud/QueryStatement.java |   4 +-
 .../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 +-
 .../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    |  50 +++++-----
 .../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 +-
 .../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 +-
 .../db/tools/watermark/WatermarkDetector.java      |   9 +-
 .../db/mpp/plan/plan/QueryLogicalPlanUtil.java     |  14 +--
 .../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 +-
 .../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 +--
 356 files changed, 1771 insertions(+), 1835 deletions(-)

diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterPhysicalGeneratorTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterPhysicalGeneratorTest.java
index d0585de36b..c53f8e2eaf 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterPhysicalGeneratorTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterPhysicalGeneratorTest.java
@@ -23,12 +23,12 @@ import org.apache.iotdb.cluster.common.TestUtils;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.qp.logical.crud.FromComponent;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
 import org.apache.iotdb.db.qp.logical.crud.SelectComponent;
 import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutorTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutorTest.java
index 0cbd269cfa..39d54bf0a8 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutorTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutorTest.java
@@ -26,10 +26,10 @@ import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.physical.crud.LastQueryPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.QueryResourceManager;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.expression.IExpression;
 import org.apache.iotdb.tsfile.read.expression.impl.GlobalTimeExpression;
diff --git a/example/udf/src/main/java/org/apache/iotdb/udf/UDTFExample.java b/example/udf/src/main/java/org/apache/iotdb/udf/UDTFExample.java
index 66a07482d5..b5882d72fd 100644
--- a/example/udf/src/main/java/org/apache/iotdb/udf/UDTFExample.java
+++ b/example/udf/src/main/java/org/apache/iotdb/udf/UDTFExample.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.udf;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java
index cb6387f2eb..e7393f85c9 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Accumulator.java
@@ -19,17 +19,17 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java
index 2b1fc1f13d..8b9ea955f4 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Adder.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java
index 6ca4deaac6..b6b8955e9f 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Counter.java
@@ -19,15 +19,15 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java
index ef4aa50c6a..42795487c0 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Max.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java
index 9b90126381..8055ab1435 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/Multiplier.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java
index 436eaf9cb2..2ead453dd4 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester0.java
@@ -19,12 +19,12 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java
index fc132333c7..ed6050c2ad 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingSizeWindowConstructorTester1.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java
index 917811ff34..111aad3c75 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/SlidingTimeWindowConstructionTester.java
@@ -19,14 +19,14 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java
index a7fba82c72..909984940c 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/TerminateTester.java
@@ -19,12 +19,12 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java
index b5c0dea54f..7f53d9fe59 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/ValidateTester.java
@@ -19,11 +19,11 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class ValidateTester implements UDTF {
diff --git a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
index 2745becbdf..ccf002aea0 100644
--- a/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
+++ b/integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSyntaxConventionStringLiteralIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSyntaxConventionStringLiteralIT.java
index de3eba8a91..957c967453 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSyntaxConventionStringLiteralIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSyntaxConventionStringLiteralIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.query.udf.builtin.BuiltinFunction;
+import org.apache.iotdb.commons.udf.builtin.BuiltinFunction;
 import org.apache.iotdb.integration.env.EnvFactory;
 import org.apache.iotdb.itbase.category.ClusterTest;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
index 4ad46aa1f5..84c1920805 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
@@ -20,8 +20,8 @@
 package org.apache.iotdb.db.integration;
 
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.udf.builtin.BuiltinFunction;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
-import org.apache.iotdb.db.query.udf.builtin.BuiltinFunction;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFIQR.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFIQR.java
index 5f358200ad..4646fe103d 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFIQR.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFIQR.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFKSigma.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFKSigma.java
index 4c734115ef..1ddd01ad4d 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFKSigma.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFKSigma.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.CircularQueue;
 import org.apache.iotdb.library.util.LongCircularQueue;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFLOF.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFLOF.java
index 5c5d8d2294..e747b2a066 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFLOF.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFLOF.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFMissDetect.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFMissDetect.java
index a146799b19..29bc70c9d4 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFMissDetect.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFMissDetect.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.anomaly.util.StreamMissDetector;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFRange.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFRange.java
index c0fec32696..26a9af205f 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFRange.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFRange.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFTwoSidedFilter.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFTwoSidedFilter.java
index 80a4f545d5..f8f72a5437 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFTwoSidedFilter.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/UDTFTwoSidedFilter.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.anomaly;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.anomaly.util.WindowDetect;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/MissDetector.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/MissDetector.java
index 18a2db5cf2..8d654ace8a 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/MissDetector.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/MissDetector.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.library.anomaly.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import org.apache.commons.math3.stat.regression.SimpleRegression;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/WindowDetect.java b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/WindowDetect.java
index 0d8e15d23e..9828d61acb 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/WindowDetect.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/anomaly/util/WindowDetect.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.library.anomaly.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import java.util.ArrayList;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFCov.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFCov.java
index bf61929ac3..403f51d6d1 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFCov.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFCov.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dmatch;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFDtw.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFDtw.java
index 90fae2816e..fd9c408f8a 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFDtw.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFDtw.java
@@ -19,14 +19,14 @@
 
 package org.apache.iotdb.library.dmatch;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFPearson.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFPearson.java
index 3a8e97ac1a..56a1a6dcf0 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFPearson.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDAFPearson.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dmatch;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java
index 98478e751b..f95d46e4a9 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFPtnSym.java
@@ -19,14 +19,14 @@
 
 package org.apache.iotdb.library.dmatch;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFXCorr.java b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFXCorr.java
index b72a3a276d..4f08709be8 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFXCorr.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dmatch/UDTFXCorr.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dmatch;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dmatch.util.CrossCorrelation;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegral.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegral.java
index 87fa45a63a..0299557484 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegral.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegral.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegralAvg.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegralAvg.java
index 2250ca9816..486ec29b38 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegralAvg.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFIntegralAvg.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMad.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMad.java
index 9164198c35..602b6f6cdc 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMad.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMad.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.ExactOrderStatistics;
 import org.apache.iotdb.library.dprofile.util.MADSketch;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMedian.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMedian.java
index 00b45af92c..8c61703245 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMedian.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMedian.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.ExactOrderStatistics;
 import org.apache.iotdb.library.dprofile.util.GKArray;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMode.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMode.java
index e19cce850a..002c52484b 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMode.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFMode.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.MaxSelector;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPercentile.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPercentile.java
index 6eebfee988..100cd80109 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPercentile.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPercentile.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.ExactOrderStatistics;
 import org.apache.iotdb.library.dprofile.util.GKArray;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPeriod.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPeriod.java
index 892e553f79..c8f6469be0 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPeriod.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFPeriod.java
@@ -19,15 +19,15 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSkew.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSkew.java
index 559f1cc857..4d3c82c734 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSkew.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSkew.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSpread.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSpread.java
index 414ff37c0a..7a237fa938 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSpread.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFSpread.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.NoNumberException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFStddev.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFStddev.java
index 5611c0116c..b01598cdf3 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFStddev.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDAFStddev.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFACF.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFACF.java
index 3bc410c816..8ab3337f84 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFACF.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFACF.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.CrossCorrelation;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFDistinct.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFDistinct.java
index 5f0ab6c89d..d1b552ef16 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFDistinct.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFDistinct.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.eclipse.collections.api.iterator.MutableBooleanIterator;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFHistogram.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFHistogram.java
index 4f0c4ce529..a24dcc197b 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFHistogram.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFHistogram.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMinMax.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMinMax.java
index a7812c0c4a..ee5e0fb9c6 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMinMax.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMinMax.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMvAvg.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMvAvg.java
index 4226354db8..b5aea28fa1 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMvAvg.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFMvAvg.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.DoubleCircularQueue;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFPACF.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFPACF.java
index e9622ee2fb..7c73e53511 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFPACF.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFPACF.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.YuleWalker;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFQLB.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFQLB.java
index f213ef824b..6f014c894a 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFQLB.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFQLB.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFResample.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFResample.java
index 229dbef8c6..220b08f247 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFResample.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFResample.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.Resampler;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
index 370e244143..5df57ecf91 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSample.java
@@ -19,16 +19,16 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSegment.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSegment.java
index dbdfc08011..0c56942d00 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSegment.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSegment.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.dprofile.util.Segment;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSpline.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSpline.java
index cf6925e5db..13d3ef5fb7 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSpline.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFSpline.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFZScore.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFZScore.java
index 1f1a8ead60..4b1c5f0ceb 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFZScore.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/UDTFZScore.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dprofile;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/ExactOrderStatistics.java b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/ExactOrderStatistics.java
index e6aa0e9d3a..61d5aa24e8 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/ExactOrderStatistics.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dprofile/util/ExactOrderStatistics.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.dprofile.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.eclipse.collections.impl.list.mutable.primitive.DoubleArrayList;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFCompleteness.java b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFCompleteness.java
index db1d356632..d4d8b55ece 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFCompleteness.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFCompleteness.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dquality;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.library.dquality.util.TimeSeriesQuality;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFConsistency.java b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFConsistency.java
index b01a7f35a3..5b131d4a1f 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFConsistency.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFConsistency.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dquality;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.library.dquality.util.TimeSeriesQuality;
 import org.apache.iotdb.library.util.NoNumberException;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFTimeliness.java b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFTimeliness.java
index 89552f4b16..26203c026c 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFTimeliness.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFTimeliness.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dquality;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.library.dquality.util.TimeSeriesQuality;
 import org.apache.iotdb.library.util.NoNumberException;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFValidity.java b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFValidity.java
index 99e3345c72..2f66d491af 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFValidity.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dquality/UDTFValidity.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.dquality;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.library.dquality.util.TimeSeriesQuality;
 import org.apache.iotdb.library.util.NoNumberException;
 import org.apache.iotdb.library.util.Util;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/dquality/util/TimeSeriesQuality.java b/library-udf/src/main/java/org/apache/iotdb/library/dquality/util/TimeSeriesQuality.java
index 2734413d66..39e5a82d0e 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/dquality/util/TimeSeriesQuality.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/dquality/util/TimeSeriesQuality.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.library.dquality.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import org.apache.commons.math3.stat.descriptive.rank.Median;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFTimestampRepair.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFTimestampRepair.java
index 85bcbc3bb0..143d77d575 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFTimestampRepair.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFTimestampRepair.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.drepair;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.drepair.util.TimestampRepair;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueFill.java
index 9d148b573b..a43d581fe1 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueFill.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.drepair;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.drepair.util.ARFill;
 import org.apache.iotdb.library.drepair.util.LikelihoodFill;
 import org.apache.iotdb.library.drepair.util.LinearFill;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueRepair.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueRepair.java
index a7cd8ca774..9207d8e4b8 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueRepair.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/UDTFValueRepair.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.drepair;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
 import org.apache.iotdb.library.drepair.util.LsGreedy;
 import org.apache.iotdb.library.drepair.util.Screen;
 import org.apache.iotdb.library.drepair.util.ValueRepair;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ARFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ARFill.java
index cc362cbfe4..44a3f77c62 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ARFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ARFill.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 
 public class ARFill extends ValueFill {
   // TODO Higer order AR regression
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LikelihoodFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LikelihoodFill.java
index cc26be1a24..5e035cf3df 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LikelihoodFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LikelihoodFill.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LinearFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LinearFill.java
index 8c8a41b29b..635b6f6b11 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LinearFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LinearFill.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 
 public class LinearFill extends ValueFill {
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LsGreedy.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LsGreedy.java
index 21decefc20..52ea1023c0 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LsGreedy.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/LsGreedy.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import java.util.PriorityQueue;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MAFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MAFill.java
index c1e90d5382..4488b4ad4f 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MAFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MAFill.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 
 public class MAFill extends ValueFill {
   int window_size = 5;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MeanFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MeanFill.java
index f7d8d6377b..7db2f2fd78 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MeanFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/MeanFill.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 
 public class MeanFill extends ValueFill {
   public MeanFill(RowIterator dataIterator) throws Exception {
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/PreviousFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/PreviousFill.java
index a424d50b99..a3a58d546b 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/PreviousFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/PreviousFill.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 
 public class PreviousFill extends ValueFill {
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/Screen.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/Screen.java
index 8c3877478a..7eb09c6093 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/Screen.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/Screen.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import org.apache.commons.lang3.tuple.Pair;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ScreenFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ScreenFill.java
index 40131bc9e6..4c96e1ee76 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ScreenFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ScreenFill.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 import org.apache.iotdb.library.util.Util;
 
 import org.apache.commons.lang3.tuple.Pair;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/TimestampRepair.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/TimestampRepair.java
index b01e87a56f..196e35a64f 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/TimestampRepair.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/TimestampRepair.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import org.slf4j.Logger;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueFill.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueFill.java
index 1275f960db..3d1d9c7b0e 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueFill.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueFill.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 import org.apache.iotdb.library.util.Util;
 
 import java.util.ArrayList;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueRepair.java b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueRepair.java
index 0d8f53256a..49c0056ad9 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueRepair.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/drepair/util/ValueRepair.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.drepair.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
 import org.apache.iotdb.library.util.Util;
 
 import java.util.ArrayList;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFConv.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFConv.java
index e756f794fb..bddc15639a 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFConv.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFConv.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDWT.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDWT.java
index 615de54b4c..069a369b75 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDWT.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDWT.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.frequency.util.DWTUtil;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDeconv.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDeconv.java
index 7f6e743486..a44521271b 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDeconv.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFDeconv.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFFFT.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFFFT.java
index 2aae08c477..6dfece67cf 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFFFT.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFFFT.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.frequency.util.FFTUtil;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFHighPass.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFHighPass.java
index 070f193041..0a0eb49c84 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFHighPass.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFHighPass.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIDWT.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIDWT.java
index 38d75b24a4..b086499dd0 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIDWT.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIDWT.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.frequency.util.DWTUtil;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIFFT.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIFFT.java
index bf2ddb95fa..408654d503 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIFFT.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFIFFT.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFLowPass.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFLowPass.java
index 855d17041e..7260dc9935 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFLowPass.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/UDTFLowPass.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.library.frequency;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/frequency/util/FFTUtil.java b/library-udf/src/main/java/org/apache/iotdb/library/frequency/util/FFTUtil.java
index 848a158794..574f770a1d 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/frequency/util/FFTUtil.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/frequency/util/FFTUtil.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.frequency.util;
 
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveSequences.java b/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveSequences.java
index 66d5abb24d..9c043bd47a 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveSequences.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveSequences.java
@@ -16,13 +16,13 @@
 
 package org.apache.iotdb.library.series;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.series.util.ConsecutiveUtil;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveWindows.java b/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveWindows.java
index 9424a7ac26..9a2765fcf4 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveWindows.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/series/UDTFConsecutiveWindows.java
@@ -16,13 +16,13 @@
 
 package org.apache.iotdb.library.series;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.library.series.util.ConsecutiveUtil;
 import org.apache.iotdb.library.util.Util;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/series/util/ConsecutiveUtil.java b/library-udf/src/main/java/org/apache/iotdb/library/series/util/ConsecutiveUtil.java
index a5e085b46f..35d8d0d9d5 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/series/util/ConsecutiveUtil.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/series/util/ConsecutiveUtil.java
@@ -15,8 +15,8 @@
  */
 package org.apache.iotdb.library.series.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
 import org.apache.iotdb.library.util.Util;
 
 import org.apache.commons.lang3.tuple.Pair;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexMatch.java b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexMatch.java
index cbe4ef62cf..5b4580a24f 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexMatch.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexMatch.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.string;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.util.regex.Matcher;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexReplace.java b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexReplace.java
index 2af3bbbc7c..80891ae0f2 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexReplace.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexReplace.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.string;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.eclipse.collections.impl.list.mutable.primitive.IntArrayList;
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexSplit.java b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexSplit.java
index 45a9c79d1e..9f00641b18 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexSplit.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFRegexSplit.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.string;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 /** This function splits string from an input series according to given regex. */
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFStrReplace.java b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFStrReplace.java
index b6b19f4bcc..1b67789c96 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFStrReplace.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/string/UDTFStrReplace.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.library.string;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 /** This function does limited times of replacement of substring from an input series. */
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/util/LinearRegression.java b/library-udf/src/main/java/org/apache/iotdb/library/util/LinearRegression.java
index b79ac7f8c3..00d9d4b160 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/util/LinearRegression.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/util/LinearRegression.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.library.util;
 
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 
 import java.util.Arrays;
 
diff --git a/library-udf/src/main/java/org/apache/iotdb/library/util/Util.java b/library-udf/src/main/java/org/apache/iotdb/library/util/Util.java
index f1a1896546..734005aa38 100644
--- a/library-udf/src/main/java/org/apache/iotdb/library/util/Util.java
+++ b/library-udf/src/main/java/org/apache/iotdb/library/util/Util.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.library.util;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.apache.commons.math3.stat.descriptive.rank.Median;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/UDF.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDF.java
similarity index 82%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/UDF.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDF.java
index ffa19132e7..e7d37fdd02 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/UDF.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDF.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api;
+package org.apache.iotdb.commons.udf.api;
 
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 
 public interface UDF {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/UDTF.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDTF.java
similarity index 86%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/UDTF.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDTF.java
index 7f29e1f1d1..48b8b1e91f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/UDTF.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/UDTF.java
@@ -17,17 +17,17 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api;
+package org.apache.iotdb.commons.udf.api;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 
 /**
  * User-defined Time-series Generating Function (UDTF)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/Row.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/Row.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/access/Row.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/Row.java
index eaf1f7c960..989a33c66d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/Row.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/Row.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.access;
+package org.apache.iotdb.commons.udf.api.access;
 
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowIterator.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowIterator.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowIterator.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowIterator.java
index fa941dfcc9..fd8b1bec99 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowIterator.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowIterator.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.access;
+package org.apache.iotdb.commons.udf.api.access;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowWindow.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowWindow.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowWindow.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowWindow.java
index 54b6caf0ec..99d5ff8550 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/access/RowWindow.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/access/RowWindow.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.access;
+package org.apache.iotdb.commons.udf.api.access;
 
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/collector/PointCollector.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/collector/PointCollector.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/collector/PointCollector.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/collector/PointCollector.java
index d1f4b9fafb..1867933902 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/collector/PointCollector.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/collector/PointCollector.java
@@ -17,14 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.collector;
+package org.apache.iotdb.commons.udf.api.collector;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
@@ -116,10 +115,10 @@ public interface PointCollector {
    * @param timestamp timestamp to collect
    * @param value Binary value to collect
    * @throws IOException if any I/O errors occur
-   * @throws QueryProcessException if memory is not enough to continue collecting data points
+   * @throws RuntimeException if memory is not enough to continue collecting data points
    * @see TSDataType
    */
-  void putBinary(long timestamp, Binary value) throws IOException, QueryProcessException;
+  void putBinary(long timestamp, Binary value) throws IOException;
 
   /**
    * Collects a String data point with timestamp.
@@ -131,8 +130,8 @@ public interface PointCollector {
    * @param timestamp timestamp to collect
    * @param value String value to collect
    * @throws IOException if any I/O errors occur
-   * @throws QueryProcessException if memory is not enough to continue collecting data points
+   * @throws RuntimeException if memory is not enough to continue collecting data points
    * @see TSDataType
    */
-  void putString(long timestamp, String value) throws IOException, QueryProcessException;
+  void putString(long timestamp, String value) throws IOException;
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDFConfigurations.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDFConfigurations.java
similarity index 81%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDFConfigurations.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDFConfigurations.java
index 9b4c55f04a..713b6e162e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDFConfigurations.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDFConfigurations.java
@@ -17,9 +17,8 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.config;
+package org.apache.iotdb.commons.udf.api.customizer.config;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public abstract class UDFConfigurations {
@@ -30,9 +29,9 @@ public abstract class UDFConfigurations {
     return outputDataType;
   }
 
-  public void check() throws QueryProcessException {
+  public void check() {
     if (outputDataType == null) {
-      throw new QueryProcessException("UDF outputDataType is not set.");
+      throw new RuntimeException("UDF outputDataType is not set.");
     }
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDTFConfigurations.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDTFConfigurations.java
similarity index 76%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDTFConfigurations.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDTFConfigurations.java
index ab431d6856..51985352cb 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/config/UDTFConfigurations.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/config/UDTFConfigurations.java
@@ -17,18 +17,17 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.config;
+package org.apache.iotdb.commons.udf.api.customizer.config;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.AccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.AccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.time.ZoneId;
@@ -96,10 +95,10 @@ public class UDTFConfigurations extends UDFConfigurations {
   }
 
   @Override
-  public void check() throws QueryProcessException {
+  public void check() {
     super.check();
     if (accessStrategy == null) {
-      throw new QueryProcessException("Access strategy is not set.");
+      throw new RuntimeException("Access strategy is not set.");
     }
     accessStrategy.check();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameterValidator.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameterValidator.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameterValidator.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameterValidator.java
index abc983e930..34f9255423 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameterValidator.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameterValidator.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.parameter;
+package org.apache.iotdb.commons.udf.api.customizer.parameter;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFAttributeNotProvidedException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesIndexNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesNumberNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFParameterNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFAttributeNotProvidedException;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesIndexNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesNumberNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFParameterNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class UDFParameterValidator {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameters.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameters.java
similarity index 70%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameters.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameters.java
index 9b9b6640f0..65de587a88 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/parameter/UDFParameters.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/parameter/UDFParameters.java
@@ -17,19 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.parameter;
+package org.apache.iotdb.commons.udf.api.customizer.parameter;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -47,40 +42,28 @@ import java.util.Map;
  */
 public class UDFParameters {
 
-  private final List<Expression> expressions;
-  private final List<PartialPath> paths;
+  private final List<String> childExpressions;
+  private final List<PartialPath> maybeTimeSeriesPaths;
+  private final List<TSDataType> childExpressionDataTypes;
   private final Map<String, String> attributes;
-  private final List<TSDataType> dataTypes;
 
   public UDFParameters(
-      FunctionExpression functionExpression, Map<Expression, TSDataType> expressionDataTypeMap)
-      throws QueryProcessException {
-    expressions = functionExpression.getExpressions();
-    paths = functionExpression.getPaths();
-    attributes = functionExpression.getFunctionAttributes();
-    dataTypes = new ArrayList<>();
-    for (Expression expression : expressions) {
-      dataTypes.add(expressionDataTypeMap.get(expression));
-    }
+      List<String> childExpressions,
+      List<PartialPath> maybeTimeSeriesPaths,
+      List<TSDataType> childExpressionDataTypes,
+      Map<String, String> attributes) {
+    this.childExpressions = childExpressions;
+    this.maybeTimeSeriesPaths = maybeTimeSeriesPaths;
+    this.childExpressionDataTypes = childExpressionDataTypes;
+    this.attributes = attributes;
   }
 
-  public UDFParameters(FunctionExpression functionExpression, TypeProvider typeProvider)
-      throws QueryProcessException {
-    expressions = functionExpression.getExpressions();
-    paths = functionExpression.getPaths();
-    attributes = functionExpression.getFunctionAttributes();
-    dataTypes = new ArrayList<>();
-    for (Expression expression : expressions) {
-      dataTypes.add(typeProvider.getType(expression.toString()));
-    }
-  }
-
-  public List<Expression> getExpressions() {
-    return expressions;
+  public List<String> getChildExpressions() {
+    return childExpressions;
   }
 
   public List<PartialPath> getPaths() {
-    return paths;
+    return maybeTimeSeriesPaths;
   }
 
   public Map<String, String> getAttributes() {
@@ -88,15 +71,15 @@ public class UDFParameters {
   }
 
   public List<TSDataType> getDataTypes() throws MetadataException {
-    return dataTypes;
+    return childExpressionDataTypes;
   }
 
   public PartialPath getPath(int index) {
-    return paths.get(index);
+    return maybeTimeSeriesPaths.get(index);
   }
 
   public TSDataType getDataType(int index) throws MetadataException {
-    return dataTypes.get(index);
+    return childExpressionDataTypes.get(index);
   }
 
   public boolean hasAttribute(String attributeKey) {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/AccessStrategy.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/AccessStrategy.java
similarity index 76%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/AccessStrategy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/AccessStrategy.java
index e825ad2179..15ff92910b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/AccessStrategy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/AccessStrategy.java
@@ -17,12 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.strategy;
+package org.apache.iotdb.commons.udf.api.customizer.strategy;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 
 /**
  * Used to customize the strategy for accessing raw data in {@link UDTF#beforeStart(UDFParameters,
@@ -45,9 +44,9 @@ public interface AccessStrategy {
   /**
    * Used by the system to check the access strategy.
    *
-   * @throws QueryProcessException if invalid strategy is set
+   * @throws RuntimeException if invalid strategy is set
    */
-  void check() throws QueryProcessException;
+  void check();
 
   /**
    * Returns the actual access strategy type.
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/RowByRowAccessStrategy.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/RowByRowAccessStrategy.java
similarity index 83%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/RowByRowAccessStrategy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/RowByRowAccessStrategy.java
index d441772370..7880af5528 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/RowByRowAccessStrategy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/RowByRowAccessStrategy.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.strategy;
+package org.apache.iotdb.commons.udf.api.customizer.strategy;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 
 /**
  * Used in {@link UDTF#beforeStart(UDFParameters, UDTFConfigurations)}.
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java
index e7e7f101b7..c534a81fe5 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingSizeWindowAccessStrategy.java
@@ -17,14 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.strategy;
+package org.apache.iotdb.commons.udf.api.customizer.strategy;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 
 /**
  * Used in {@link UDTF#beforeStart(UDFParameters, UDTFConfigurations)}.
@@ -98,13 +97,13 @@ public class SlidingSizeWindowAccessStrategy implements AccessStrategy {
   }
 
   @Override
-  public void check() throws QueryProcessException {
+  public void check() {
     if (windowSize <= 0) {
-      throw new QueryProcessException(
+      throw new RuntimeException(
           String.format("Parameter windowSize(%d) should be positive.", windowSize));
     }
     if (slidingStep <= 0) {
-      throw new QueryProcessException(
+      throw new RuntimeException(
           String.format("Parameter slidingStep(%d) should be positive.", slidingStep));
     }
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java
similarity index 71%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java
index 2d08b464ae..4eab05ca35 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/customizer/strategy/SlidingTimeWindowAccessStrategy.java
@@ -17,15 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.customizer.strategy;
+package org.apache.iotdb.commons.udf.api.customizer.strategy;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.qp.utils.DatetimeUtils;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 
 import java.time.ZoneId;
 
@@ -62,7 +60,7 @@ import java.time.ZoneId;
  *       parameters.getLong(0),       // display window begin
  *       parameters.getLong(10000))); // display window end
  * }</pre>
- * <p>Style 2:
+ * <p>Style 2 (deprecated since v0.14):
  * <pre>{@code
  * @Override
  * public void beforeStart(UDFParameters parameters, UDTFConfigurations configurations) {
@@ -78,21 +76,16 @@ import java.time.ZoneId;
  */
 public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
 
-  private final boolean inputInString;
-
-  private String timeIntervalString;
-  private String slidingStepString;
-  private String displayWindowBeginString;
-  private String displayWindowEndString;
-
-  private long timeInterval;
-  private long slidingStep;
-  private long displayWindowBegin;
-  private long displayWindowEnd;
+  private final long timeInterval;
+  private final long slidingStep;
+  private final long displayWindowBegin;
+  private final long displayWindowEnd;
 
   private ZoneId zoneId;
 
   /**
+   * Deprecated since v0.14.
+   *
    * @param timeIntervalString time interval in string. examples: 12d8m9ns, 1y1mo, etc. supported
    *     units: y, mo, w, d, h, m, s, ms, us, ns.
    * @param slidingStepString sliding step in string. examples: 12d8m9ns, 1y1mo, etc. supported
@@ -101,49 +94,48 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
    *     2011-12-03T10:15:30+01:00.
    * @param displayWindowEndString display window end in string. format: 2011-12-03T10:15:30 or
    *     2011-12-03T10:15:30+01:00.
-   * @see DatetimeUtils.DurationUnit
+   * @throws UnsupportedOperationException deprecated since v0.14
    */
+  @Deprecated
   public SlidingTimeWindowAccessStrategy(
       String timeIntervalString,
       String slidingStepString,
       String displayWindowBeginString,
       String displayWindowEndString) {
-    inputInString = true;
-    this.timeIntervalString = timeIntervalString;
-    this.slidingStepString = slidingStepString;
-    this.displayWindowBeginString = displayWindowBeginString;
-    this.displayWindowEndString = displayWindowEndString;
+    throw new UnsupportedOperationException("The method is deprecated since v0.14.");
   }
 
   /**
-   * Display window begin will be set to the same as the minimum timestamp of the query result set,
-   * and display window end will be set to the same as the maximum timestamp of the query result
-   * set.
+   * Deprecated since v0.14.
+   *
+   * <p>Display window begin will be set to the same as the minimum timestamp of the query result
+   * set, and display window end will be set to the same as the maximum timestamp of the query
+   * result set.
    *
    * @param timeIntervalString time interval in string. examples: 12d8m9ns, 1y1mo, etc. supported
    *     units: y, mo, w, d, h, m, s, ms, us, ns.
    * @param slidingStepString sliding step in string. examples: 12d8m9ns, 1y1mo, etc. supported
    *     units: y, mo, w, d, h, m, s, ms, us, ns.
-   * @see DatetimeUtils.DurationUnit
+   * @throws UnsupportedOperationException deprecated since v0.14
    */
+  @Deprecated
   public SlidingTimeWindowAccessStrategy(String timeIntervalString, String slidingStepString) {
-    inputInString = true;
-    this.timeIntervalString = timeIntervalString;
-    this.slidingStepString = slidingStepString;
+    throw new UnsupportedOperationException("The method is deprecated since v0.14.");
   }
 
   /**
-   * Sliding step will be set to the same as the time interval, display window begin will be set to
-   * the same as the minimum timestamp of the query result set, and display window end will be set
-   * to the same as the maximum timestamp of the query result set.
+   * Deprecated since v0.14.
+   *
+   * <p>Sliding step will be set to the same as the time interval, display window begin will be set
+   * to the same as the minimum timestamp of the query result set, and display window end will be
+   * set to the same as the maximum timestamp of the query result set.
    *
    * @param timeIntervalString time interval in string. examples: 12d8m9ns, 1y1mo, etc. supported
    *     units: y, mo, w, d, h, m, s, ms, us, ns.
-   * @see DatetimeUtils.DurationUnit
+   * @throws UnsupportedOperationException deprecated since v0.14
    */
   public SlidingTimeWindowAccessStrategy(String timeIntervalString) {
-    inputInString = true;
-    this.timeIntervalString = timeIntervalString;
+    throw new UnsupportedOperationException("The method is deprecated since v0.14.");
   }
 
   /**
@@ -154,7 +146,6 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
    */
   public SlidingTimeWindowAccessStrategy(
       long timeInterval, long slidingStep, long displayWindowBegin, long displayWindowEnd) {
-    inputInString = false;
     this.timeInterval = timeInterval;
     this.slidingStep = slidingStep;
     this.displayWindowBegin = displayWindowBegin;
@@ -170,7 +161,6 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
    * @param slidingStep 0 < slidingStep
    */
   public SlidingTimeWindowAccessStrategy(long timeInterval, long slidingStep) {
-    inputInString = false;
     this.timeInterval = timeInterval;
     this.slidingStep = slidingStep;
     this.displayWindowBegin = Long.MIN_VALUE;
@@ -185,7 +175,6 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
    * @param timeInterval 0 < timeInterval
    */
   public SlidingTimeWindowAccessStrategy(long timeInterval) {
-    inputInString = false;
     this.timeInterval = timeInterval;
     this.slidingStep = timeInterval;
     this.displayWindowBegin = Long.MIN_VALUE;
@@ -193,21 +182,17 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
   }
 
   @Override
-  public void check() throws QueryProcessException {
-    if (inputInString) {
-      parseStringParameters();
-    }
-
+  public void check() {
     if (timeInterval <= 0) {
-      throw new QueryProcessException(
+      throw new RuntimeException(
           String.format("Parameter timeInterval(%d) should be positive.", timeInterval));
     }
     if (slidingStep <= 0) {
-      throw new QueryProcessException(
+      throw new RuntimeException(
           String.format("Parameter slidingStep(%d) should be positive.", slidingStep));
     }
     if (displayWindowEnd < displayWindowBegin) {
-      throw new QueryProcessException(
+      throw new RuntimeException(
           String.format(
               "displayWindowEnd(%d) < displayWindowBegin(%d)",
               displayWindowEnd, displayWindowBegin));
@@ -242,20 +227,4 @@ public class SlidingTimeWindowAccessStrategy implements AccessStrategy {
   public AccessStrategyType getAccessStrategyType() {
     return AccessStrategyType.SLIDING_TIME_WINDOW;
   }
-
-  private void parseStringParameters() throws QueryProcessException {
-    timeInterval = DatetimeUtils.convertDurationStrToLong(timeIntervalString);
-    slidingStep =
-        slidingStepString == null
-            ? timeInterval
-            : DatetimeUtils.convertDurationStrToLong(slidingStepString);
-    displayWindowBegin =
-        displayWindowBeginString == null
-            ? Long.MIN_VALUE
-            : DatetimeUtils.convertDatetimeStrToLong(displayWindowBeginString, zoneId);
-    displayWindowEnd =
-        displayWindowEndString == null
-            ? Long.MAX_VALUE
-            : DatetimeUtils.convertDatetimeStrToLong(displayWindowEndString, zoneId);
-  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFAttributeNotProvidedException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFAttributeNotProvidedException.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFAttributeNotProvidedException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFAttributeNotProvidedException.java
index 0ff2a128fc..fe966149dd 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFAttributeNotProvidedException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFAttributeNotProvidedException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFAttributeNotProvidedException extends UDFParameterNotValidException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFException.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFException.java
index b2dcd90a0f..c4a974cd34 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFException extends Exception {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java
index 7bcd9bcd96..96df90aa63 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesDataTypeNotValidException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesIndexNotValidException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesIndexNotValidException.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesIndexNotValidException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesIndexNotValidException.java
index 7239fd76f9..d5197298ed 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesIndexNotValidException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesIndexNotValidException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFInputSeriesIndexNotValidException extends UDFParameterNotValidException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesNumberNotValidException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesNumberNotValidException.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesNumberNotValidException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesNumberNotValidException.java
index bd899763aa..3ee4e75f43 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFInputSeriesNumberNotValidException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFInputSeriesNumberNotValidException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFInputSeriesNumberNotValidException extends UDFParameterNotValidException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java
index f94591d97e..ff484594a9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFOutputSeriesDataTypeNotValidException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFOutputSeriesDataTypeNotValidException extends UDFParameterNotValidException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFParameterNotValidException.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFParameterNotValidException.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFParameterNotValidException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFParameterNotValidException.java
index 0951c354aa..4fbfe2268b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/api/exception/UDFParameterNotValidException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/api/exception/UDFParameterNotValidException.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.api.exception;
+package org.apache.iotdb.commons.udf.api.exception;
 
 public class UDFParameterNotValidException extends UDFException {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/BuiltinFunction.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/BuiltinFunction.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/BuiltinFunction.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/BuiltinFunction.java
index bf1b7031e8..ed8bc85d33 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/BuiltinFunction.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/BuiltinFunction.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 /** All built-in UDFs need to register their function names and classes here. */
 public enum BuiltinFunction {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAbs.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java
similarity index 81%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAbs.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java
index 82ed1b7651..8de5c909ac 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAbs.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAbs.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAcos.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAcos.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAcos.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAcos.java
index dbcd5b5c98..1491c239dd 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAcos.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAcos.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFAcos extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAsin.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAsin.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAsin.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAsin.java
index 7e375da6f5..f83394a7c1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAsin.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAsin.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFAsin extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAtan.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAtan.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAtan.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAtan.java
index 8f03ae84ae..e36a04ea48 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFAtan.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFAtan.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFAtan extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFBottomK.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFBottomK.java
similarity index 79%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFBottomK.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFBottomK.java
index ccf21080b8..dcc692f842 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFBottomK.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFBottomK.java
@@ -17,15 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
-import org.apache.commons.collections4.ComparatorUtils;
-
 import java.util.Comparator;
+import java.util.Objects;
 import java.util.PriorityQueue;
 
 public class UDTFBottomK extends UDTFSelectK {
@@ -48,7 +47,25 @@ public class UDTFBottomK extends UDTFSelectK {
       case TEXT:
         stringPQ =
             new PriorityQueue<>(
-                k, ComparatorUtils.reversedComparator(Comparator.comparing(o -> o.right)));
+                k,
+                (pairA, pairB) -> {
+                  final String cs1 = pairB.right;
+                  final String cs2 = pairA.right;
+
+                  if (Objects.requireNonNull(cs1) == Objects.requireNonNull(cs2)) {
+                    return 0;
+                  }
+
+                  for (int i = 0, len = Math.min(cs1.length(), cs2.length()); i < len; i++) {
+                    final char a = cs1.charAt(i);
+                    final char b = cs2.charAt(i);
+                    if (a != b) {
+                      return a - b;
+                    }
+                  }
+
+                  return cs1.length() - cs2.length();
+                });
         break;
       default:
         // This will not happen.
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCast.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCast.java
similarity index 84%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCast.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCast.java
index 2a2ad1e3e5..ca57453072 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCast.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCast.java
@@ -17,19 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFAttributeNotProvidedException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesNumberNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFAttributeNotProvidedException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesNumberNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
@@ -58,8 +57,7 @@ public class UDTFCast implements UDTF {
   }
 
   @Override
-  public void transform(Row row, PointCollector collector)
-      throws IOException, QueryProcessException {
+  public void transform(Row row, PointCollector collector) throws IOException {
     switch (sourceDataType) {
       case INT32:
         cast(row.getTime(), row.getInt(0), collector);
@@ -84,8 +82,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, int value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, int value, PointCollector collector) throws IOException {
     switch (targetDataType) {
       case INT32:
         collector.putInt(time, value);
@@ -110,8 +107,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, long value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, long value, PointCollector collector) throws IOException {
     switch (targetDataType) {
       case INT32:
         collector.putInt(time, (int) value);
@@ -136,8 +132,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, float value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, float value, PointCollector collector) throws IOException {
     switch (targetDataType) {
       case INT32:
         collector.putInt(time, (int) value);
@@ -162,8 +157,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, double value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, double value, PointCollector collector) throws IOException {
     switch (targetDataType) {
       case INT32:
         collector.putInt(time, (int) value);
@@ -188,8 +182,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, boolean value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, boolean value, PointCollector collector) throws IOException {
     switch (targetDataType) {
       case INT32:
         collector.putInt(time, value ? 1 : 0);
@@ -214,8 +207,7 @@ public class UDTFCast implements UDTF {
     }
   }
 
-  private void cast(long time, Binary value, PointCollector collector)
-      throws IOException, QueryProcessException {
+  private void cast(long time, Binary value, PointCollector collector) throws IOException {
     String stringValue = value.getStringValue();
     switch (targetDataType) {
       case INT32:
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCeil.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCeil.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCeil.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCeil.java
index 76b49b4adf..a4ba41c8b0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCeil.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCeil.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFCeil extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonDerivative.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonDerivative.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonDerivative.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonDerivative.java
index deb1c7b17b..4e3684a02a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonDerivative.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonDerivative.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonValueDifference.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonValueDifference.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonValueDifference.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonValueDifference.java
index 1dbd2222d4..6a16a5173f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCommonValueDifference.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCommonValueDifference.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConst.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConst.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConst.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConst.java
index 89784252f8..63849e2b0c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConst.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConst.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFParameterNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFParameterNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstE.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstE.java
similarity index 73%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstE.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstE.java
index 0e6ee37697..c6d831de69 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstE.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstE.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class UDTFConstE implements UDTF {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstPi.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstPi.java
similarity index 73%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstPi.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstPi.java
index c2724c7c7e..30d158b8d6 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFConstPi.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFConstPi.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class UDTFConstPi implements UDTF {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContains.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContains.java
similarity index 72%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContains.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContains.java
index 09ee073a60..a9b0fd10c1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContains.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContains.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class UDTFContains implements UDTF {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContinuouslySatisfy.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContinuouslySatisfy.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContinuouslySatisfy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContinuouslySatisfy.java
index 34569181c8..70d9d5480a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFContinuouslySatisfy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFContinuouslySatisfy.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCos.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCos.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCos.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCos.java
index 0bfe2459fa..777494050f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCos.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCos.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFCos extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCosh.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCosh.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCosh.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCosh.java
index 01289d8f88..028d727d82 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFCosh.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFCosh.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFCosh extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDegrees.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDegrees.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDegrees.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDegrees.java
index 712278a46f..bfff41e1c0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDegrees.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDegrees.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFDegrees extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDerivative.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDerivative.java
similarity index 77%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDerivative.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDerivative.java
index ffadabb339..f2308fd728 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFDerivative.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFDerivative.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketAggSample.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketAggSample.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketAggSample.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketAggSample.java
index 84fa4688ea..1c26191dfa 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketAggSample.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketAggSample.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFParameterNotValidException;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFParameterNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketM4Sample.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketM4Sample.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketM4Sample.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketM4Sample.java
index b4b7b2c1c5..0e8859e7f1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketM4Sample.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketM4Sample.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
-
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+package org.apache.iotdb.commons.udf.builtin;
+
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketOutlierSample.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketOutlierSample.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketOutlierSample.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketOutlierSample.java
index 249c46ecb1..ff33170fc0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketOutlierSample.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketOutlierSample.java
@@ -17,19 +17,19 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFParameterNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFParameterNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketRandomSample.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketRandomSample.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
index 3b45f194c8..e156b1622c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketRandomSample.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketRandomSample.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketSample.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketSample.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketSample.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketSample.java
index 78f1fa57c0..447c38d9b7 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFEqualSizeBucketSample.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFEqualSizeBucketSample.java
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public abstract class UDTFEqualSizeBucketSample implements UDTF {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFExp.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFExp.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFExp.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFExp.java
index e0e16ef7b8..f86c226919 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFExp.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFExp.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFExp extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFFloor.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFFloor.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFFloor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFFloor.java
index 92b6063fb4..b9e392df3b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFFloor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFFloor.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFFloor extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFInRange.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFInRange.java
similarity index 81%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFInRange.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFInRange.java
index 422bfd9d21..fd2820b9c2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFInRange.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFInRange.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFJexl.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFJexl.java
similarity index 86%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFJexl.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFJexl.java
index 20a529e31d..04cabac29e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFJexl.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFJexl.java
@@ -17,20 +17,19 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFOutputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFOutputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.apache.commons.jexl3.JexlBuilder;
@@ -120,7 +119,7 @@ public class UDTFJexl implements UDTF {
 
   // 23, 23L, 23f, 23d, "string", true are hard codes for probing
   private HashMap<TSDataType, Object> initialMap() {
-    HashMap<TSDataType, Object> map = new HashMap<TSDataType, Object>();
+    HashMap<TSDataType, Object> map = new HashMap<>();
     map.put(TSDataType.INT32, 23);
     map.put(TSDataType.INT64, 23L);
     map.put(TSDataType.FLOAT, 23f);
@@ -153,7 +152,7 @@ public class UDTFJexl implements UDTF {
 
   @Override
   public void transform(Row row, PointCollector collector)
-      throws IOException, UDFOutputSeriesDataTypeNotValidException, QueryProcessException,
+      throws IOException, UDFOutputSeriesDataTypeNotValidException,
           UDFInputSeriesDataTypeNotValidException {
     switch (outputDataType) {
       case DOUBLE:
@@ -176,7 +175,7 @@ public class UDTFJexl implements UDTF {
         throws IOException, UDFInputSeriesDataTypeNotValidException;
 
     void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException, UDFInputSeriesDataTypeNotValidException;
+        throws IOException, UDFInputSeriesDataTypeNotValidException;
 
     void evaluateBoolean(Row row, PointCollector collector)
         throws IOException, UDFInputSeriesDataTypeNotValidException;
@@ -190,8 +189,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getInt(0)));
     }
 
@@ -209,8 +207,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getLong(0)));
     }
 
@@ -228,8 +225,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getFloat(0)));
     }
 
@@ -247,8 +243,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getDouble(0)));
     }
 
@@ -266,8 +261,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getString(0)));
     }
 
@@ -285,8 +279,7 @@ public class UDTFJexl implements UDTF {
     }
 
     @Override
-    public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException {
+    public void evaluateText(Row row, PointCollector collector) throws IOException {
       collector.putString(row.getTime(), (String) script.execute(null, row.getBoolean(0)));
     }
 
@@ -309,7 +302,7 @@ public class UDTFJexl implements UDTF {
 
     @Override
     public void evaluateText(Row row, PointCollector collector)
-        throws IOException, QueryProcessException, UDFInputSeriesDataTypeNotValidException {
+        throws IOException, UDFInputSeriesDataTypeNotValidException {
       getValues(row);
       collector.putString(row.getTime(), (String) script.execute(null, values));
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog.java
index b968893654..7d0296fec0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFLog extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog10.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog10.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog10.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog10.java
index 80d3546bf0..68ae840015 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFLog10.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFLog10.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFLog10 extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMatches.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMatches.java
similarity index 73%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMatches.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMatches.java
index cecb9db992..53301ad0ca 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMatches.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMatches.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
-
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
+package org.apache.iotdb.commons.udf.builtin;
+
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.util.regex.Pattern;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMath.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMath.java
similarity index 79%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMath.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMath.java
index 20c6963395..3e0b42fc46 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFMath.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFMath.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeDerivative.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeDerivative.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeDerivative.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeDerivative.java
index 8e44c50eaf..0666249735 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeDerivative.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeDerivative.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeValueDifference.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeValueDifference.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeValueDifference.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeValueDifference.java
index 0a6549a572..033d316210 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonNegativeValueDifference.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonNegativeValueDifference.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroCount.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroCount.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroCount.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroCount.java
index d777c69e16..f88dc376cf 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroCount.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroCount.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFNonZeroCount extends UDTFContinuouslySatisfy {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroDuration.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroDuration.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroDuration.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroDuration.java
index 145dc2a8b2..61407180c4 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFNonZeroDuration.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFNonZeroDuration.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFNonZeroDuration extends UDTFContinuouslySatisfy {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFOnOff.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFOnOff.java
similarity index 80%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFOnOff.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFOnOff.java
index fa2e9bff8d..f742225883 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFOnOff.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFOnOff.java
@@ -17,17 +17,17 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRadians.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRadians.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRadians.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRadians.java
index 150ad0eb60..d866e1b013 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRadians.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRadians.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFRadians extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRound.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRound.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRound.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRound.java
index 6587f2ac3a..85adb5f437 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFRound.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFRound.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFRound extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSelectK.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSelectK.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSelectK.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSelectK.java
index 6e7b2a5cc1..fef9908d57 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSelectK.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSelectK.java
@@ -17,19 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
@@ -121,7 +120,7 @@ public abstract class UDTFSelectK implements UDTF {
 
   @Override
   public void terminate(PointCollector collector)
-      throws UDFInputSeriesDataTypeNotValidException, IOException, QueryProcessException {
+      throws UDFInputSeriesDataTypeNotValidException, IOException {
     switch (dataType) {
       case INT32:
         for (Pair<Long, Integer> pair :
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSign.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSign.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSign.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSign.java
index ea9318691d..633f55c6e6 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSign.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSign.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFSign extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSin.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSin.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSin.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSin.java
index 882daac719..d141a7c967 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSin.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSin.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFSin extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSinh.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSinh.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSinh.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSinh.java
index 5403c3fbc5..b25cf132bf 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSinh.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSinh.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFSinh extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSqrt.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSqrt.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSqrt.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSqrt.java
index c246f6270d..9958998205 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFSqrt.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFSqrt.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFSqrt extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTan.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTan.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTan.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTan.java
index b5f5bf9411..984c6d7607 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTan.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTan.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFTan extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTanh.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTanh.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTanh.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTanh.java
index 034cd67259..f9291d4aee 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTanh.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTanh.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFTanh extends UDTFMath {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTimeDifference.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTimeDifference.java
similarity index 77%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTimeDifference.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTimeDifference.java
index ee2c69c7a4..6b13904a55 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTimeDifference.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTimeDifference.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
-
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+package org.apache.iotdb.commons.udf.builtin;
+
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTopK.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTopK.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTopK.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTopK.java
index 3f35fe6af6..266100b67d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFTopK.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFTopK.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueDifference.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueDifference.java
similarity index 75%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueDifference.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueDifference.java
index 0d7d41b5ba..6c48eb7104 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueDifference.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueDifference.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 import org.apache.iotdb.commons.exception.MetadataException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueTrend.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueTrend.java
similarity index 83%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueTrend.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueTrend.java
index 8862ef1e03..d872df8762 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFValueTrend.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFValueTrend.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.exception.UDFException;
-import org.apache.iotdb.db.query.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.exception.UDFException;
+import org.apache.iotdb.commons.udf.api.exception.UDFInputSeriesDataTypeNotValidException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroCount.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroCount.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroCount.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroCount.java
index 3a7499d8eb..83add40462 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroCount.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroCount.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFZeroCount extends UDTFContinuouslySatisfy {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroDuration.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroDuration.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroDuration.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroDuration.java
index bacc1ed740..a0e40f25c3 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFZeroDuration.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/UDTFZeroDuration.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.builtin;
+package org.apache.iotdb.commons.udf.builtin;
 
 public class UDTFZeroDuration extends UDTFContinuouslySatisfy {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java b/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
index fd309d667d..da291e6ef4 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/selectinto/InsertTabletPlansIterator.java
@@ -22,9 +22,9 @@ package org.apache.iotdb.db.engine.selectinto;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.read.common.RowRecord;
 import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/FilterOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/FilterOperator.java
index 8522d065cc..b9050c27ad 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/FilterOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/FilterOperator.java
@@ -23,9 +23,9 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.execution.operator.Operator;
 import org.apache.iotdb.db.mpp.execution.operator.OperatorContext;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.block.TsBlock;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/TransformOperator.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/TransformOperator.java
index 784573cd1b..ed0dbb0f86 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/TransformOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/TransformOperator.java
@@ -24,13 +24,13 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.execution.operator.Operator;
 import org.apache.iotdb.db.mpp.execution.operator.OperatorContext;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.layer.EvaluationDAGBuilder;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.TsBlockInputDataSet;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.builder.EvaluationDAGBuilder;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.input.TsBlockInputDataSet;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 import org.apache.iotdb.db.query.udf.service.UDFClassLoaderManager;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.db.utils.datastructure.TimeSelector;
@@ -67,7 +67,7 @@ public class TransformOperator implements ProcessOperator {
 
   protected boolean isFirstIteration;
 
-  protected RawQueryInputLayer inputLayer;
+  protected QueryDataSetInputLayer inputLayer;
   protected UDTFContext udtfContext;
   protected LayerPointReader[] transformers;
   protected TimeSelector timeHeap;
@@ -96,7 +96,7 @@ public class TransformOperator implements ProcessOperator {
 
   private void initInputLayer(List<TSDataType> inputDataTypes) throws QueryProcessException {
     inputLayer =
-        new RawQueryInputLayer(
+        new QueryDataSetInputLayer(
             operatorContext.getOperatorId(),
             udfReaderMemoryBudgetInMB,
             new TsBlockInputDataSet(inputOperator, inputDataTypes));
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
index ded3afa59c..450bda895d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analysis.java
@@ -25,11 +25,11 @@ import org.apache.iotdb.commons.partition.SchemaPartition;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.mpp.common.header.DatasetHeader;
 import org.apache.iotdb.db.mpp.common.schematree.SchemaTree;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FillDescriptor;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FilterNullParameter;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
 import org.apache.iotdb.db.mpp.plan.statement.Statement;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
index a47f4fce44..884b345b4b 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/Analyzer.java
@@ -35,6 +35,7 @@ import org.apache.iotdb.db.mpp.common.header.HeaderConstant;
 import org.apache.iotdb.db.mpp.common.schematree.DeviceSchemaInfo;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
 import org.apache.iotdb.db.mpp.common.schematree.SchemaTree;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FillDescriptor;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FilterNullParameter;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
@@ -68,7 +69,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowDevicesStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowStorageGroupStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowTTLStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowTimeSeriesStatement;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.GroupByFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ConcatPathRewriter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ConcatPathRewriter.java
index f38351a50c..f3816fd289 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ConcatPathRewriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ConcatPathRewriter.java
@@ -22,12 +22,12 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.exception.sql.StatementAnalyzeException;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.Statement;
 import org.apache.iotdb.db.mpp.plan.statement.component.FilterNullComponent;
 import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
 import org.apache.iotdb.db.mpp.plan.statement.component.SelectComponent;
 import org.apache.iotdb.db.mpp.plan.statement.crud.QueryStatement;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
index 104545e7fe..0c5cfc5b1d 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionAnalyzer.java
@@ -25,27 +25,27 @@ import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
 import org.apache.iotdb.db.mpp.common.schematree.SchemaTree;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.plan.expression.binary.BinaryExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.LeafOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.UnaryExpression;
 import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.expression.binary.BinaryExpression;
-import org.apache.iotdb.db.query.expression.binary.EqualToExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LessEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicOrExpression;
-import org.apache.iotdb.db.query.expression.binary.NonEqualExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.LeafOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.InExpression;
-import org.apache.iotdb.db.query.expression.unary.LogicNotExpression;
-import org.apache.iotdb.db.query.expression.unary.UnaryExpression;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.read.filter.TimeFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionUtils.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionUtils.java
index 2618d6ab6e..7664c51e5f 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/ExpressionUtils.java
@@ -20,31 +20,31 @@
 package org.apache.iotdb.db.mpp.plan.analyze;
 
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.expression.binary.AdditionExpression;
-import org.apache.iotdb.db.query.expression.binary.DivisionExpression;
-import org.apache.iotdb.db.query.expression.binary.EqualToExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LessEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicOrExpression;
-import org.apache.iotdb.db.query.expression.binary.ModuloExpression;
-import org.apache.iotdb.db.query.expression.binary.MultiplicationExpression;
-import org.apache.iotdb.db.query.expression.binary.NonEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.SubtractionExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.InExpression;
-import org.apache.iotdb.db.query.expression.unary.LikeExpression;
-import org.apache.iotdb.db.query.expression.unary.LogicNotExpression;
-import org.apache.iotdb.db.query.expression.unary.NegationExpression;
-import org.apache.iotdb.db.query.expression.unary.RegularExpression;
-import org.apache.iotdb.db.query.expression.unary.UnaryExpression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LikeExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.RegularExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.UnaryExpression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.TimeFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
index 7be09fd68e..1aa25ce06f 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/GroupByLevelController.java
@@ -23,9 +23,9 @@ import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.exception.sql.StatementAnalyzeException;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/Expression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/Expression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
index ee460b61b4..bf0b1efcf7 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/Expression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/Expression.java
@@ -17,42 +17,42 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression;
+package org.apache.iotdb.db.mpp.plan.expression;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LikeExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.RegularExpression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.binary.AdditionExpression;
-import org.apache.iotdb.db.query.expression.binary.DivisionExpression;
-import org.apache.iotdb.db.query.expression.binary.EqualToExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LessEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicOrExpression;
-import org.apache.iotdb.db.query.expression.binary.ModuloExpression;
-import org.apache.iotdb.db.query.expression.binary.MultiplicationExpression;
-import org.apache.iotdb.db.query.expression.binary.NonEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.SubtractionExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.InExpression;
-import org.apache.iotdb.db.query.expression.unary.LikeExpression;
-import org.apache.iotdb.db.query.expression.unary.LogicNotExpression;
-import org.apache.iotdb.db.query.expression.unary.NegationExpression;
-import org.apache.iotdb.db.query.expression.unary.RegularExpression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
@@ -150,7 +150,7 @@ public abstract class Expression {
   public abstract IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -159,7 +159,7 @@ public abstract class Expression {
   public abstract IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/ExpressionType.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/ExpressionType.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
index 180afeecc6..4d3352da2b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/ExpressionType.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ExpressionType.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.query.expression;
+package org.apache.iotdb.db.mpp.plan.expression;
 
 public enum ExpressionType {
   CONSTANT((short) -4, (short) 1400),
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/ResultColumn.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ResultColumn.java
similarity index 99%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/ResultColumn.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ResultColumn.java
index 32f7f92718..791da53e6e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/ResultColumn.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/ResultColumn.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression;
+package org.apache.iotdb.db.mpp.plan.expression;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/AdditionExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/AdditionExpression.java
index 6fd5e698fc..d4c80fe955 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/AdditionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/AdditionExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticAdditionTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticAdditionTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticBinaryTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ArithmeticBinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ArithmeticBinaryExpression.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/ArithmeticBinaryExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ArithmeticBinaryExpression.java
index 185a8ce617..3fdd5659a9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ArithmeticBinaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ArithmeticBinaryExpression.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
index 6dac04bf29..218b67af82 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/BinaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/BinaryExpression.java
@@ -17,25 +17,25 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnMultiReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnSingleReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.BinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.BinaryTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
@@ -222,7 +222,7 @@ public abstract class BinaryExpression extends Expression {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -271,7 +271,7 @@ public abstract class BinaryExpression extends Expression {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/CompareBinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/CompareBinaryExpression.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/CompareBinaryExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/CompareBinaryExpression.java
index 66f795faa1..5ea63fe7d1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/CompareBinaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/CompareBinaryExpression.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/DivisionExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/DivisionExpression.java
index 8eb9308d91..26ecfdb071 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/DivisionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/DivisionExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticDivisionTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticDivisionTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/EqualToExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/EqualToExpression.java
index d966284402..a9a683ce87 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/EqualToExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/EqualToExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareEqualToTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareEqualToTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterEqualExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterEqualExpression.java
index 6d06a29284..d87a42046f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterEqualExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterEqualExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareGreaterEqualTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareGreaterEqualTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterThanExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterThanExpression.java
index 6a574f68e9..848557695c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/GreaterThanExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/GreaterThanExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareGreaterThanTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareGreaterThanTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessEqualExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessEqualExpression.java
index a0fff83b49..36c9e12294 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessEqualExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessEqualExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareLessEqualTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareLessEqualTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessThanExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessThanExpression.java
index 8f49780392..630b7a4edc 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LessThanExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LessThanExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareLessThanTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareLessThanTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicAndExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicAndExpression.java
index 26ac76b3c2..68addddc49 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicAndExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicAndExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicAndTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicBinaryTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.LogicAndTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.LogicBinaryTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicBinaryExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicBinaryExpression.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicBinaryExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicBinaryExpression.java
index 9ad7e20bfa..b4d644f681 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicBinaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicBinaryExpression.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicOrExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicOrExpression.java
index eff1d56357..785263b210 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/LogicOrExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/LogicOrExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.LogicOrTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.LogicBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.LogicOrTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ModuloExpression.java
similarity index 77%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ModuloExpression.java
index 39f4738aca..24f7ab6b40 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/ModuloExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/ModuloExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticModuloTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticModuloTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/MultiplicationExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/MultiplicationExpression.java
index 6b72d5a2d2..adc381612d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/MultiplicationExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/MultiplicationExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticMultiplicationTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticMultiplicationTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/NonEqualExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/NonEqualExpression.java
index 542d4a7c25..2a25f392f2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/NonEqualExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/NonEqualExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.CompareNonEqualTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.CompareNonEqualTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/SubtractionExpression.java
similarity index 78%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/SubtractionExpression.java
index 372d56cc73..946179f782 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/binary/SubtractionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/binary/SubtractionExpression.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.binary;
+package org.apache.iotdb.db.mpp.plan.expression.binary;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticBinaryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.binary.ArithmeticSubtractionTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticBinaryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.binary.ArithmeticSubtractionTransformer;
 
 import java.nio.ByteBuffer;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/ConstantOperand.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/ConstantOperand.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/leaf/ConstantOperand.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/ConstantOperand.java
index 8a6c4589c0..db142fc023 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/ConstantOperand.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/ConstantOperand.java
@@ -17,20 +17,20 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.leaf;
+package org.apache.iotdb.db.mpp.plan.expression.leaf;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.ConstantIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.layer.ConstantIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
@@ -120,7 +120,7 @@ public class ConstantOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -139,7 +139,7 @@ public class ConstantOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/LeafOperand.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/LeafOperand.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/leaf/LeafOperand.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/LeafOperand.java
index 500ae89520..9f4bc80438 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/LeafOperand.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/LeafOperand.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.leaf;
+package org.apache.iotdb.db.mpp.plan.expression.leaf;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 
 import java.time.ZoneId;
 import java.util.Collections;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimeSeriesOperand.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimeSeriesOperand.java
similarity index 86%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimeSeriesOperand.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimeSeriesOperand.java
index cdab2e4adc..9326672048 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimeSeriesOperand.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimeSeriesOperand.java
@@ -17,24 +17,24 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.leaf;
+package org.apache.iotdb.db.mpp.plan.expression.leaf;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.PathDeserializeUtil;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnMultiReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnSingleReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
@@ -118,7 +118,7 @@ public class TimeSeriesOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -146,7 +146,7 @@ public class TimeSeriesOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimestampOperand.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimestampOperand.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimestampOperand.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimestampOperand.java
index 8c9f6c741d..fec495d53e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/leaf/TimestampOperand.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/leaf/TimestampOperand.java
@@ -17,23 +17,23 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.leaf;
+package org.apache.iotdb.db.mpp.plan.expression.leaf;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnMultiReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnSingleReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
@@ -103,7 +103,7 @@ public class TimestampOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -130,7 +130,7 @@ public class TimestampOperand extends LeafOperand {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
index caa87859e6..8dbe67c10d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/multi/FunctionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/multi/FunctionExpression.java
@@ -17,36 +17,36 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.multi;
+package org.apache.iotdb.db.mpp.plan.expression.multi;
 
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.AccessStrategy;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.MultiInputColumnIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnMultiReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnSingleReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.multi.UDFQueryRowTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.multi.UDFQueryRowWindowTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.multi.UDFQueryTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.TransparentTransformer;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFTypeInferrer;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.AccessStrategy;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFTypeInferrer;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.MultiInputColumnIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryRowTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryRowWindowTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.multi.UDFQueryTransformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.TransparentTransformer;
 import org.apache.iotdb.db.utils.TypeInferenceUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
@@ -240,7 +240,7 @@ public class FunctionExpression extends Expression {
     for (Expression expression : expressions) {
       expression.constructUdfExecutors(expressionName2Executor, zoneId);
     }
-    expressionName2Executor.put(expressionString, new UDTFExecutor(this, zoneId));
+    expressionName2Executor.put(expressionString, new UDTFExecutor(functionName, zoneId));
   }
 
   @Override
@@ -254,7 +254,15 @@ public class FunctionExpression extends Expression {
 
       if (isTimeSeriesGeneratingFunctionExpression()) {
         typeProvider.setType(
-            expressionString, new UDTFTypeInferrer(this).inferOutputType(typeProvider));
+            expressionString,
+            new UDTFTypeInferrer(functionName)
+                .inferOutputType(
+                    expressions.stream().map(Expression::toString).collect(Collectors.toList()),
+                    getPaths(),
+                    expressions.stream()
+                        .map(f -> typeProvider.getType(f.toString()))
+                        .collect(Collectors.toList()),
+                    functionAttributes));
       } else {
         if (expressions.size() != 1) {
           throw new SemanticException(
@@ -305,7 +313,7 @@ public class FunctionExpression extends Expression {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
@@ -345,7 +353,7 @@ public class FunctionExpression extends Expression {
   private IntermediateLayer constructUdfInputIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
@@ -381,7 +389,15 @@ public class FunctionExpression extends Expression {
       throws QueryProcessException, IOException {
     UDTFExecutor executor = udtfContext.getExecutorByFunctionExpression(this);
 
-    executor.beforeStart(queryId, memoryAssigner.assign(), typeProvider);
+    executor.beforeStart(
+        queryId,
+        memoryAssigner.assign(),
+        expressions.stream().map(Expression::toString).collect(Collectors.toList()),
+        getPaths(),
+        expressions.stream()
+            .map(f -> typeProvider.getType(f.toString()))
+            .collect(Collectors.toList()),
+        functionAttributes);
 
     AccessStrategy accessStrategy = executor.getConfigurations().getAccessStrategy();
     switch (accessStrategy.getAccessStrategyType()) {
@@ -402,7 +418,7 @@ public class FunctionExpression extends Expression {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -449,7 +465,7 @@ public class FunctionExpression extends Expression {
   private IntermediateLayer constructUdfInputIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -487,7 +503,13 @@ public class FunctionExpression extends Expression {
       throws QueryProcessException, IOException {
     UDTFExecutor executor = udtfContext.getExecutorByFunctionExpression(this);
 
-    executor.beforeStart(queryId, memoryAssigner.assign(), expressionDataTypeMap);
+    executor.beforeStart(
+        queryId,
+        memoryAssigner.assign(),
+        expressions.stream().map(Expression::toString).collect(Collectors.toList()),
+        getPaths(),
+        expressions.stream().map(expressionDataTypeMap::get).collect(Collectors.toList()),
+        functionAttributes);
 
     AccessStrategy accessStrategy = executor.getConfigurations().getAccessStrategy();
     switch (accessStrategy.getAccessStrategyType()) {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/InExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/InExpression.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/InExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/InExpression.java
index 979d4c2bbc..28e5c3307d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/InExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/InExpression.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.InTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.InTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LikeExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/LikeExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
index 0e94037e72..1c9164240b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LikeExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LikeExpression.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.RegularTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.RegularTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
@@ -122,7 +122,7 @@ public class LikeExpression extends UnaryExpression {
   public TSDataType inferTypes(TypeProvider typeProvider) throws SemanticException {
     final String expressionString = toString();
     if (!typeProvider.containsTypeInfoOf(expressionString)) {
-      checkInputExpressionDataType(
+      Expression.checkInputExpressionDataType(
           expression.toString(), expression.inferTypes(typeProvider), TSDataType.TEXT);
       typeProvider.setType(expressionString, TSDataType.TEXT);
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LogicNotExpression.java
similarity index 77%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LogicNotExpression.java
index a538e4a028..9a7191d497 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/LogicNotExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/LogicNotExpression.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.LogicNotTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.LogicNotTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.nio.ByteBuffer;
@@ -57,7 +57,7 @@ public class LogicNotExpression extends UnaryExpression {
   public TSDataType inferTypes(TypeProvider typeProvider) throws SemanticException {
     final String expressionString = toString();
     if (!typeProvider.containsTypeInfoOf(expressionString)) {
-      checkInputExpressionDataType(
+      Expression.checkInputExpressionDataType(
           expression.toString(), expression.inferTypes(typeProvider), TSDataType.BOOLEAN);
       typeProvider.setType(expressionString, TSDataType.BOOLEAN);
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/NegationExpression.java
similarity index 79%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/NegationExpression.java
index 6d8c111078..2b9cba69b8 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/NegationExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/NegationExpression.java
@@ -17,18 +17,18 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.ArithmeticNegationTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.ArithmeticNegationTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.nio.ByteBuffer;
@@ -58,7 +58,7 @@ public class NegationExpression extends UnaryExpression {
     final String expressionString = toString();
     if (!typeProvider.containsTypeInfoOf(expressionString)) {
       TSDataType inputExpressionType = expression.inferTypes(typeProvider);
-      checkInputExpressionDataType(
+      Expression.checkInputExpressionDataType(
           expression.toString(),
           inputExpressionType,
           TSDataType.INT32,
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/RegularExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/RegularExpression.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/RegularExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/RegularExpression.java
index a8b30f0d5a..8d8b1e1186 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/RegularExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/RegularExpression.java
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ExpressionType;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
-import org.apache.iotdb.db.query.udf.core.transformer.unary.RegularTransformer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.unary.RegularTransformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/UnaryExpression.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/UnaryExpression.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/expression/unary/UnaryExpression.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/UnaryExpression.java
index 02ec49a4b1..8370eba56a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/UnaryExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/expression/unary/UnaryExpression.java
@@ -17,25 +17,25 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.expression.unary;
+package org.apache.iotdb.db.mpp.plan.expression.unary;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnMultiReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.SingleInputColumnSingleReferenceIntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.qp.utils.WildcardsRemover;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.layer.IntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.LayerMemoryAssigner;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnMultiReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.layer.SingleInputColumnSingleReferenceIntermediateLayer;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
@@ -118,7 +118,7 @@ public abstract class UnaryExpression extends Expression {
   public final IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       Map<Expression, TSDataType> expressionDataTypeMap,
       LayerMemoryAssigner memoryAssigner)
@@ -156,7 +156,7 @@ public abstract class UnaryExpression extends Expression {
   public IntermediateLayer constructIntermediateLayer(
       long queryId,
       UDTFContext udtfContext,
-      RawQueryInputLayer rawTimeSeriesInputLayer,
+      QueryDataSetInputLayer rawTimeSeriesInputLayer,
       Map<Expression, IntermediateLayer> expressionIntermediateLayerMap,
       TypeProvider typeProvider,
       LayerMemoryAssigner memoryAssigner)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index dab981d3ea..ec6a293d53 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -28,6 +28,29 @@ import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.common.filter.BasicFunctionFilter;
 import org.apache.iotdb.db.mpp.common.filter.QueryFilter;
 import org.apache.iotdb.db.mpp.plan.analyze.ExpressionAnalyzer;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LikeExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.RegularExpression;
 import org.apache.iotdb.db.mpp.plan.statement.Statement;
 import org.apache.iotdb.db.mpp.plan.statement.component.FillComponent;
 import org.apache.iotdb.db.mpp.plan.statement.component.FillPolicy;
@@ -78,29 +101,6 @@ import org.apache.iotdb.db.qp.sql.IoTDBSqlParser.CountTimeseriesContext;
 import org.apache.iotdb.db.qp.sql.IoTDBSqlParser.ExpressionContext;
 import org.apache.iotdb.db.qp.sql.IoTDBSqlParserBaseVisitor;
 import org.apache.iotdb.db.qp.utils.DatetimeUtils;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.binary.AdditionExpression;
-import org.apache.iotdb.db.query.expression.binary.DivisionExpression;
-import org.apache.iotdb.db.query.expression.binary.EqualToExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LessEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicOrExpression;
-import org.apache.iotdb.db.query.expression.binary.ModuloExpression;
-import org.apache.iotdb.db.query.expression.binary.MultiplicationExpression;
-import org.apache.iotdb.db.query.expression.binary.NonEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.SubtractionExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.InExpression;
-import org.apache.iotdb.db.query.expression.unary.LikeExpression;
-import org.apache.iotdb.db.query.expression.unary.LogicNotExpression;
-import org.apache.iotdb.db.query.expression.unary.NegationExpression;
-import org.apache.iotdb.db.query.expression.unary.RegularExpression;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
index 6c3749afb0..7103246f38 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/StatementGenerator.java
@@ -24,6 +24,12 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.common.filter.BasicFunctionFilter;
 import org.apache.iotdb.db.mpp.plan.constant.FilterConstant;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
 import org.apache.iotdb.db.mpp.plan.statement.Statement;
 import org.apache.iotdb.db.mpp.plan.statement.component.FromComponent;
 import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
@@ -43,12 +49,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.SetStorageGroupStatement;
 import org.apache.iotdb.db.qp.sql.IoTDBSqlParser;
 import org.apache.iotdb.db.qp.sql.SqlLexer;
 import org.apache.iotdb.db.qp.strategy.SQLParseError;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
 import org.apache.iotdb.db.utils.QueryDataSetUtils;
 import org.apache.iotdb.service.rpc.thrift.TSCreateAlignedTimeseriesReq;
 import org.apache.iotdb.service.rpc.thrift.TSCreateMultiTimeseriesReq;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
index 6fae3156b0..34f18ad5e9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LocalExecutionPlanner.java
@@ -93,6 +93,7 @@ import org.apache.iotdb.db.mpp.execution.operator.source.ExchangeOperator;
 import org.apache.iotdb.db.mpp.execution.operator.source.SeriesAggregationScanOperator;
 import org.apache.iotdb.db.mpp.execution.operator.source.SeriesScanOperator;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.metedata.read.ChildNodesSchemaScanNode;
@@ -133,7 +134,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.OutputColumn;
 import org.apache.iotdb.db.mpp.plan.statement.component.FillPolicy;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.mpp.plan.statement.literal.Literal;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.utils.datastructure.TimeSelector;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
index 45dab8de2d..589685a687 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanBuilder.java
@@ -29,6 +29,9 @@ import org.apache.iotdb.db.mpp.common.MPPQueryContext;
 import org.apache.iotdb.db.mpp.common.schematree.PathPatternTree;
 import org.apache.iotdb.db.mpp.plan.analyze.ExpressionAnalyzer;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.metedata.read.ChildNodesSchemaScanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.metedata.read.ChildPathsSchemaScanNode;
@@ -64,9 +67,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FilterNullParameter;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanner.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanner.java
index 1265b4d6ab..4de3c11ab5 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/LogicalPlanner.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.mpp.plan.planner;
 import org.apache.iotdb.confignode.rpc.thrift.NodeManagementType;
 import org.apache.iotdb.db.mpp.common.MPPQueryContext;
 import org.apache.iotdb.db.mpp.plan.analyze.Analysis;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.optimization.PlanOptimizer;
 import org.apache.iotdb.db.mpp.plan.planner.plan.LogicalQueryPlan;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
@@ -54,7 +55,6 @@ import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildNodesStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowChildPathsStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowDevicesStatement;
 import org.apache.iotdb.db.mpp.plan.statement.metadata.ShowTimeSeriesStatement;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNode.java
index 338a519123..3b9a1ec475 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNode.java
@@ -18,11 +18,11 @@
  */
 package org.apache.iotdb.db.mpp.plan.planner.plan.node.process;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNullNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNullNode.java
index c980aa5a9e..7c76a3cfc9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNullNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/FilterNullNode.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.db.mpp.plan.planner.plan.node.process;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.FilterNullParameter;
 import org.apache.iotdb.db.mpp.plan.statement.component.FilterNullPolicy;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import com.google.common.collect.ImmutableList;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/TransformNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/TransformNode.java
index 75dd967780..7f9870fc18 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/TransformNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/process/TransformNode.java
@@ -19,11 +19,11 @@
 
 package org.apache.iotdb.db.mpp.plan.planner.plan.node.process;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeType;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanVisitor;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import com.google.common.collect.ImmutableList;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/AggregationDescriptor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/AggregationDescriptor.java
index 74fd995005..67ec816dfb 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/AggregationDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/AggregationDescriptor.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.planner.plan.parameter;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/FilterNullParameter.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/FilterNullParameter.java
index cf8b61f10f..c357fb2966 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/FilterNullParameter.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/parameter/FilterNullParameter.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.planner.plan.parameter;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.component.FilterNullPolicy;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/FilterNullComponent.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/FilterNullComponent.java
index 3c29d3149b..e0e2c4c6e9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/FilterNullComponent.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/FilterNullComponent.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.statement.component;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
 import java.nio.ByteBuffer;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/ResultColumn.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/ResultColumn.java
index a138f6bfa1..ae23d5e3d5 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/ResultColumn.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/ResultColumn.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.statement.component;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.Objects;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/SelectComponent.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/SelectComponent.java
index 3131d23ad5..cc92430f11 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/SelectComponent.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/SelectComponent.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.statement.component;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.time.ZoneId;
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/WhereCondition.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/WhereCondition.java
index cd62ab8742..9014f345f7 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/WhereCondition.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/component/WhereCondition.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.mpp.plan.statement.component;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.statement.StatementNode;
-import org.apache.iotdb.db.query.expression.Expression;
 
 /** This class maintains information of {@code WHERE} clause. */
 public class WhereCondition extends StatementNode {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
index a626c17e0c..35a565f3e7 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/statement/crud/QueryStatement.java
@@ -23,6 +23,8 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.sql.SemanticException;
 import org.apache.iotdb.db.mpp.plan.analyze.ExpressionAnalyzer;
 import org.apache.iotdb.db.mpp.plan.constant.StatementType;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.statement.Statement;
 import org.apache.iotdb.db.mpp.plan.statement.StatementVisitor;
 import org.apache.iotdb.db.mpp.plan.statement.component.FillComponent;
@@ -35,8 +37,6 @@ import org.apache.iotdb.db.mpp.plan.statement.component.ResultColumn;
 import org.apache.iotdb.db.mpp.plan.statement.component.ResultSetFormat;
 import org.apache.iotdb.db.mpp.plan.statement.component.SelectComponent;
 import org.apache.iotdb.db.mpp.plan.statement.component.WhereCondition;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerPointReader.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerPointReader.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerPointReader.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerPointReader.java
index 3ee7c5a985..9f831e7bec 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerPointReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerPointReader.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.reader;
+package org.apache.iotdb.db.mpp.transformation.api;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowReader.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowReader.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowReader.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowReader.java
index e2a2f23872..798a882a32 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowReader.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.reader;
+package org.apache.iotdb.db.mpp.transformation.api;
 
+import org.apache.iotdb.commons.udf.api.access.Row;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.access.Row;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowWindowReader.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowWindowReader.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowWindowReader.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowWindowReader.java
index 4e2b129fd3..699dda9398 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/LayerRowWindowReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/api/LayerRowWindowReader.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.reader;
+package org.apache.iotdb.db.mpp.transformation.api;
 
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnRow.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnRow.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnRow.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnRow.java
index d29b0d5dc5..da49bc41fb 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnRow.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnRow.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.Row;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindow.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindow.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java
index d384267516..c7c6fbc314 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindow.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindow.java
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java
index 801e43f35d..7333fd58f3 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableRowRecordListBackedMultiColumnWindowIterator.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnRow.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnRow.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java
index 1207f32ee1..609f8faadc 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnRow.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnRow.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindow.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindow.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java
index f8fcf92d22..709f661ae5 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindow.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindow.java
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 public class ElasticSerializableTVListBackedSingleColumnWindow implements RowWindow {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindowIterator.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java
similarity index 86%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindowIterator.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java
index 7dc35d6c3f..beaefb13bb 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/ElasticSerializableTVListBackedSingleColumnWindowIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/ElasticSerializableTVListBackedSingleColumnWindowIterator.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowIterator;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowIterator;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/LayerPointReaderBackedSingleColumnRow.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/LayerPointReaderBackedSingleColumnRow.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/access/LayerPointReaderBackedSingleColumnRow.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/LayerPointReaderBackedSingleColumnRow.java
index a7258788bf..48a0badabf 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/access/LayerPointReaderBackedSingleColumnRow.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/adapter/LayerPointReaderBackedSingleColumnRow.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.access;
+package org.apache.iotdb.db.mpp.transformation.dag.adapter;
 
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/DAGBuilder.java
similarity index 85%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/DAGBuilder.java
index 270482b1e6..abe194bf2a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/DAGBuilder.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/DAGBuilder.java
@@ -17,13 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.builder;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
@@ -34,7 +37,7 @@ public class DAGBuilder {
 
   private final long queryId;
   private final UDTFPlan udtfPlan;
-  private final RawQueryInputLayer rawTimeSeriesInputLayer;
+  private final QueryDataSetInputLayer rawTimeSeriesInputLayer;
 
   // input
   private final Expression[] resultColumnExpressions;
@@ -51,7 +54,7 @@ public class DAGBuilder {
   private final Map<Expression, TSDataType> expressionDataTypeMap;
 
   public DAGBuilder(
-      long queryId, UDTFPlan udtfPlan, RawQueryInputLayer inputLayer, float memoryBudgetInMB) {
+      long queryId, UDTFPlan udtfPlan, QueryDataSetInputLayer inputLayer, float memoryBudgetInMB) {
     this.queryId = queryId;
     this.udtfPlan = udtfPlan;
     this.rawTimeSeriesInputLayer = inputLayer;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/EvaluationDAGBuilder.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/EvaluationDAGBuilder.java
similarity index 86%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/EvaluationDAGBuilder.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/EvaluationDAGBuilder.java
index d083191b34..7a7a76bf5a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/EvaluationDAGBuilder.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/builder/EvaluationDAGBuilder.java
@@ -17,14 +17,17 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.builder;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.InputLocation;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.intermediate.IntermediateLayer;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.LayerMemoryAssigner;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -35,7 +38,7 @@ public class EvaluationDAGBuilder {
 
   private final long queryId;
 
-  private final RawQueryInputLayer inputLayer;
+  private final QueryDataSetInputLayer inputLayer;
   private final Map<String, List<InputLocation>> inputLocations;
 
   private final Expression[] outputExpressions;
@@ -55,7 +58,7 @@ public class EvaluationDAGBuilder {
 
   public EvaluationDAGBuilder(
       long queryId,
-      RawQueryInputLayer inputLayer,
+      QueryDataSetInputLayer inputLayer,
       Map<String, List<InputLocation>> inputLocations,
       Expression[] outputExpressions,
       TypeProvider typeProvider,
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/ConstantLayerPointReader.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/ConstantInputReader.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/ConstantLayerPointReader.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/ConstantInputReader.java
index c0d99e9189..a8cf12f972 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/reader/ConstantLayerPointReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/ConstantInputReader.java
@@ -17,10 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.reader;
+package org.apache.iotdb.db.mpp.transformation.dag.input;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.utils.CommonUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
@@ -30,7 +31,7 @@ import org.apache.commons.lang3.Validate;
 import java.io.IOException;
 
 /** LayerPointReader for constants. */
-public class ConstantLayerPointReader implements LayerPointReader {
+public class ConstantInputReader implements LayerPointReader {
 
   private final ConstantOperand expression;
 
@@ -41,7 +42,7 @@ public class ConstantLayerPointReader implements LayerPointReader {
   protected boolean cachedBoolean;
   protected Binary cachedBinary;
 
-  public ConstantLayerPointReader(ConstantOperand expression) throws QueryProcessException {
+  public ConstantInputReader(ConstantOperand expression) throws QueryProcessException {
     this.expression = Validate.notNull(expression);
 
     Object value =
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/RawQueryInputLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/QueryDataSetInputLayer.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/RawQueryInputLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/QueryDataSetInputLayer.java
index 4f5288d771..9490461bb0 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/RawQueryInputLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/QueryDataSetInputLayer.java
@@ -17,19 +17,20 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.input;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.SafetyLine;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.SafetyLine.SafetyPile;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.query.dataset.IUDFInputDataSet;
 import org.apache.iotdb.db.query.dataset.RawQueryDataSetWithValueFilter;
 import org.apache.iotdb.db.query.dataset.UDFRawQueryInputDataSetWithoutValueFilter;
 import org.apache.iotdb.db.query.reader.series.IReaderByTimestamp;
 import org.apache.iotdb.db.query.reader.series.ManagedSeriesReader;
-import org.apache.iotdb.db.query.udf.core.layer.SafetyLine.SafetyPile;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.query.timegenerator.TimeGenerator;
 import org.apache.iotdb.tsfile.utils.Binary;
@@ -37,7 +38,7 @@ import org.apache.iotdb.tsfile.utils.Binary;
 import java.io.IOException;
 import java.util.List;
 
-public class RawQueryInputLayer {
+public class QueryDataSetInputLayer {
 
   private IUDFInputDataSet queryDataSet;
   private TSDataType[] dataTypes;
@@ -47,7 +48,7 @@ public class RawQueryInputLayer {
   private SafetyLine safetyLine;
 
   /** InputLayerWithoutValueFilter */
-  public RawQueryInputLayer(
+  public QueryDataSetInputLayer(
       long queryId, float memoryBudgetInMB, UDTFPlan queryPlan, List<ManagedSeriesReader> readers)
       throws QueryProcessException, IOException, InterruptedException {
     construct(
@@ -57,7 +58,7 @@ public class RawQueryInputLayer {
   }
 
   /** InputLayerWithValueFilter */
-  public RawQueryInputLayer(
+  public QueryDataSetInputLayer(
       long queryId,
       float memoryBudgetInMB,
       List<PartialPath> paths,
@@ -74,7 +75,7 @@ public class RawQueryInputLayer {
             paths, dataTypes, timeGenerator, readers, readerToIndexList, cached, true));
   }
 
-  public RawQueryInputLayer(long queryId, float memoryBudgetInMB, IUDFInputDataSet queryDataSet)
+  public QueryDataSetInputLayer(long queryId, float memoryBudgetInMB, IUDFInputDataSet queryDataSet)
       throws QueryProcessException {
     construct(queryId, memoryBudgetInMB, queryDataSet);
   }
@@ -94,10 +95,6 @@ public class RawQueryInputLayer {
     rowRecordList.setEvictionUpperBound(safetyLine.getSafetyLine());
   }
 
-  public int getInputColumnCount() {
-    return dataTypes.length;
-  }
-
   public LayerPointReader constructTimePointReader() {
     return new TimePointReader();
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/TsBlockInputDataSet.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/TsBlockInputDataSet.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/TsBlockInputDataSet.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/TsBlockInputDataSet.java
index ff9130d427..135c9c1f8d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/TsBlockInputDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/input/TsBlockInputDataSet.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.input;
 
 import org.apache.iotdb.db.mpp.execution.operator.Operator;
 import org.apache.iotdb.db.query.dataset.IUDFInputDataSet;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/ConstantIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/ConstantIntermediateLayer.java
similarity index 75%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/ConstantIntermediateLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/ConstantIntermediateLayer.java
index b82b268976..1af198720a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/ConstantIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/ConstantIntermediateLayer.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.intermediate;
 
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.core.reader.ConstantLayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.input.ConstantInputReader;
 
 /** IntermediateLayer for constants. */
 public class ConstantIntermediateLayer extends IntermediateLayer {
@@ -36,7 +36,7 @@ public class ConstantIntermediateLayer extends IntermediateLayer {
   public ConstantIntermediateLayer(ConstantOperand expression, long queryId, float memoryBudgetInMB)
       throws QueryProcessException {
     super(expression, queryId, memoryBudgetInMB);
-    constantLayerPointReaderCache = new ConstantLayerPointReader(expression);
+    constantLayerPointReaderCache = new ConstantInputReader(expression);
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/IntermediateLayer.java
similarity index 81%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/IntermediateLayer.java
index 890a6b4259..18fc3f84d9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/IntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/IntermediateLayer.java
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.intermediate;
 
+import org.apache.iotdb.commons.udf.api.customizer.strategy.AccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.AccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/MultiInputColumnIntermediateLayer.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/MultiInputColumnIntermediateLayer.java
index 843bd85504..f7d14a396a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/MultiInputColumnIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/MultiInputColumnIntermediateLayer.java
@@ -17,21 +17,23 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.intermediate;
 
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.ElasticSerializableRowRecordListBackedMultiColumnRow;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.ElasticSerializableRowRecordListBackedMultiColumnWindow;
+import org.apache.iotdb.db.mpp.transformation.dag.util.InputRowUtils;
+import org.apache.iotdb.db.mpp.transformation.dag.util.LayerCacheUtils;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.db.query.dataset.IUDFInputDataSet;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.core.access.ElasticSerializableRowRecordListBackedMultiColumnRow;
-import org.apache.iotdb.db.query.udf.core.access.ElasticSerializableRowRecordListBackedMultiColumnWindow;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.db.utils.datastructure.TimeSelector;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnMultiReferenceIntermediateLayer.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnMultiReferenceIntermediateLayer.java
index ba4f91a66f..7be2b1fdfa 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnMultiReferenceIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnMultiReferenceIntermediateLayer.java
@@ -17,21 +17,23 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.intermediate;
 
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.core.access.ElasticSerializableTVListBackedSingleColumnRow;
-import org.apache.iotdb.db.query.udf.core.access.ElasticSerializableTVListBackedSingleColumnWindow;
-import org.apache.iotdb.db.query.udf.core.layer.SafetyLine.SafetyPile;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.ElasticSerializableTVListBackedSingleColumnRow;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.ElasticSerializableTVListBackedSingleColumnWindow;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.SafetyLine;
+import org.apache.iotdb.db.mpp.transformation.dag.memory.SafetyLine.SafetyPile;
+import org.apache.iotdb.db.mpp.transformation.dag.util.LayerCacheUtils;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
@@ -55,8 +57,7 @@ public class SingleInputColumnMultiReferenceIntermediateLayer extends Intermedia
       Expression expression,
       long queryId,
       float memoryBudgetInMB,
-      LayerPointReader parentLayerPointReader)
-      throws QueryProcessException {
+      LayerPointReader parentLayerPointReader) {
     super(expression, queryId, memoryBudgetInMB);
     this.parentLayerPointReader = parentLayerPointReader;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnSingleReferenceIntermediateLayer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnSingleReferenceIntermediateLayer.java
index 29549ccdd0..846b77b738 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SingleInputColumnSingleReferenceIntermediateLayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/intermediate/SingleInputColumnSingleReferenceIntermediateLayer.java
@@ -17,20 +17,21 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.intermediate;
 
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingSizeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.SlidingTimeWindowAccessStrategy;
-import org.apache.iotdb.db.query.udf.core.access.ElasticSerializableTVListBackedSingleColumnWindow;
-import org.apache.iotdb.db.query.udf.core.access.LayerPointReaderBackedSingleColumnRow;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.ElasticSerializableTVListBackedSingleColumnWindow;
+import org.apache.iotdb.db.mpp.transformation.dag.adapter.LayerPointReaderBackedSingleColumnRow;
+import org.apache.iotdb.db.mpp.transformation.dag.util.LayerCacheUtils;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
@@ -113,8 +114,7 @@ public class SingleInputColumnSingleReferenceIntermediateLayer extends Intermedi
 
   @Override
   protected LayerRowWindowReader constructRowSlidingSizeWindowReader(
-      SlidingSizeWindowAccessStrategy strategy, float memoryBudgetInMB)
-      throws QueryProcessException {
+      SlidingSizeWindowAccessStrategy strategy, float memoryBudgetInMB) {
 
     return new LayerRowWindowReader() {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/LayerMemoryAssigner.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/LayerMemoryAssigner.java
index 03f6fbe8b2..928c662883 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerMemoryAssigner.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/LayerMemoryAssigner.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.memory;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SafetyLine.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/SafetyLine.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SafetyLine.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/SafetyLine.java
index 9f36b0540c..cdd61ab824 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/SafetyLine.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/memory/SafetyLine.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.memory;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 
 /** Tells the {@link ElasticSerializableTVList} if it is safe to remove a cache block. */
 public class SafetyLine {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/Transformer.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/Transformer.java
index a666924a5c..17d91d60a2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/Transformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/Transformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.utils.Binary;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticAdditionTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticAdditionTransformer.java
index 439378f39b..1940fcbf2e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticAdditionTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticAdditionTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class ArithmeticAdditionTransformer extends ArithmeticBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java
index 751fc534d6..5e3da9f1d6 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticBinaryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticBinaryTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticDivisionTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticDivisionTransformer.java
index 30fb3d248f..8792fc4393 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticDivisionTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticDivisionTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class ArithmeticDivisionTransformer extends ArithmeticBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticModuloTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticModuloTransformer.java
index a22f2d4400..1b56cdfaab 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticModuloTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticModuloTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class ArithmeticModuloTransformer extends ArithmeticBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticMultiplicationTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticMultiplicationTransformer.java
index b24522267b..1a1733c245 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticMultiplicationTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticMultiplicationTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class ArithmeticMultiplicationTransformer extends ArithmeticBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticSubtractionTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticSubtractionTransformer.java
index 6659a40ff0..dde1b40ec8 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/ArithmeticSubtractionTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/ArithmeticSubtractionTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class ArithmeticSubtractionTransformer extends ArithmeticBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/BinaryTransformer.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/BinaryTransformer.java
index c99a4e1b3c..13cd2a4d5b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/BinaryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/BinaryTransformer.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareBinaryTransformer.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareBinaryTransformer.java
index 42b42e1058..e81b4e96c4 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareBinaryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareBinaryTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareEqualToTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareEqualToTransformer.java
index af6b2c8d65..4ea813e083 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareEqualToTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareEqualToTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class CompareEqualToTransformer extends CompareBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
index 1e98bfe423..b5d53f0dc9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterEqualTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterEqualTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class CompareGreaterEqualTransformer extends CompareBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
index 9e7a5ea3ba..798df4a1b7 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareGreaterThanTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareGreaterThanTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class CompareGreaterThanTransformer extends CompareBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
index 0c53e86949..9b322c7297 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessEqualTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessEqualTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class CompareLessEqualTransformer extends CompareBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessThanTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessThanTransformer.java
index 9e77e2aa21..19a65ce8ef 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareLessThanTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareLessThanTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class CompareLessThanTransformer extends CompareBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
index 024c54deb5..65bed1face 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/CompareNonEqualTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/CompareNonEqualTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 
 public class CompareNonEqualTransformer extends CompareBinaryTransformer {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicAndTransformer.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicAndTransformer.java
index 3dc5c1d240..f2c25b46b8 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicAndTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicAndTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class LogicAndTransformer extends LogicBinaryTransformer {
 
@@ -27,6 +27,7 @@ public class LogicAndTransformer extends LogicBinaryTransformer {
     super(leftPointReader, rightPointReader);
   }
 
+  @Override
   protected boolean evaluate(boolean leftOperand, boolean rightOperand) {
     return leftOperand && rightOperand;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicBinaryTransformer.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicBinaryTransformer.java
index 7eee752775..15cf8aa75c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicBinaryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicBinaryTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicOrTransformer.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicOrTransformer.java
index b8ac911a91..2ef1e35614 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/binary/LogicOrTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/binary/LogicOrTransformer.java
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.binary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.binary;
 
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 
 public class LogicOrTransformer extends LogicBinaryTransformer {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowTransformer.java
similarity index 88%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowTransformer.java
index 354a102736..c96af9fd7f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowTransformer.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.multi;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.multi;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java
similarity index 87%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java
index 1f810694e2..65188bed3d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryRowWindowTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryRowWindowTransformer.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.multi;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.multi;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.reader.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerRowWindowReader;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 
 import java.io.IOException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryTransformer.java
index 28b18f6cfc..77e5a2ffa7 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/multi/UDFQueryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/multi/UDFQueryTransformer.java
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.multi;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.multi;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFExecutor;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFExecutor;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java
index 1dbd1ba046..06bad592de 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/ArithmeticNegationTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/ArithmeticNegationTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/InTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/InTransformer.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/InTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/InTransformer.java
index 5d219f50cf..05673d3119 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/InTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/InTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/LogicNotTransformer.java
similarity index 92%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/LogicNotTransformer.java
index 558bd6caea..da23d377f4 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/LogicNotTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/LogicNotTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/RegularTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/RegularTransformer.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/RegularTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/RegularTransformer.java
index e7095eb010..862c7fe563 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/RegularTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/RegularTransformer.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/TransparentTransformer.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/TransparentTransformer.java
index 5cec6149bc..6b544c1025 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/TransparentTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/TransparentTransformer.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/UnaryTransformer.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/UnaryTransformer.java
index c291d131be..7953b12a1c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/transformer/unary/UnaryTransformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/transformer/unary/UnaryTransformer.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.transformer.unary;
+package org.apache.iotdb.db.mpp.transformation.dag.transformer.unary;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.core.transformer.Transformer;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.transformer.Transformer;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFContext.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFContext.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFContext.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFContext.java
index 9350376708..1876756d85 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFContext.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFContext.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.executor;
+package org.apache.iotdb.db.mpp.transformation.dag.udf;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.query.udf.service.UDFClassLoaderManager;
 
 import java.time.ZoneId;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFExecutor.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFExecutor.java
similarity index 54%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFExecutor.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFExecutor.java
index b8f697f6b7..dd03c7e06c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFExecutor.java
@@ -17,19 +17,16 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.executor;
-
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.access.RowWindow;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+package org.apache.iotdb.db.mpp.transformation.dag.udf;
+
+import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.access.RowWindow;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
@@ -37,57 +34,36 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.time.ZoneId;
+import java.util.List;
 import java.util.Map;
 
 public class UDTFExecutor {
 
   private static final Logger LOGGER = LoggerFactory.getLogger(UDTFExecutor.class);
 
-  protected final FunctionExpression expression;
+  protected final String functionName;
   protected final UDTFConfigurations configurations;
 
   protected UDTF udtf;
   protected ElasticSerializableTVList collector;
 
-  public UDTFExecutor(FunctionExpression expression, ZoneId zoneId) {
-    this.expression = expression;
+  public UDTFExecutor(String functionName, ZoneId zoneId) {
+    this.functionName = functionName;
     configurations = new UDTFConfigurations(zoneId);
   }
 
-  public void beforeStart(long queryId, float collectorMemoryBudgetInMB, TypeProvider typeProvider)
-      throws QueryProcessException {
-    udtf = (UDTF) UDFRegistrationService.getInstance().reflect(expression);
-
-    UDFParameters parameters = new UDFParameters(expression, typeProvider);
-
-    try {
-      udtf.validate(new UDFParameterValidator(parameters));
-    } catch (Exception e) {
-      onError("validate(UDFParameterValidator)", e);
-    }
-
-    try {
-      udtf.beforeStart(parameters, configurations);
-    } catch (Exception e) {
-      onError("beforeStart(UDFParameters, UDTFConfigurations)", e);
-    }
-    configurations.check();
-
-    collector =
-        ElasticSerializableTVList.newElasticSerializableTVList(
-            configurations.getOutputDataType(), queryId, collectorMemoryBudgetInMB, 1);
-  }
-
-  // TODO: remove it after MPP finished
-  @Deprecated
   public void beforeStart(
       long queryId,
       float collectorMemoryBudgetInMB,
-      Map<Expression, TSDataType> expressionDataTypeMap)
-      throws QueryProcessException {
-    udtf = (UDTF) UDFRegistrationService.getInstance().reflect(expression);
+      List<String> childExpressions,
+      List<PartialPath> maybeTimeSeriesPaths,
+      List<TSDataType> childExpressionDataTypes,
+      Map<String, String> attributes) {
+    udtf = (UDTF) UDFRegistrationService.getInstance().reflect(functionName);
 
-    UDFParameters parameters = new UDFParameters(expression, expressionDataTypeMap);
+    final UDFParameters parameters =
+        new UDFParameters(
+            childExpressions, maybeTimeSeriesPaths, childExpressionDataTypes, attributes);
 
     try {
       udtf.validate(new UDFParameterValidator(parameters));
@@ -107,7 +83,7 @@ public class UDTFExecutor {
             configurations.getOutputDataType(), queryId, collectorMemoryBudgetInMB, 1);
   }
 
-  public void execute(Row row, boolean isCurrentRowNull) throws QueryProcessException {
+  public void execute(Row row, boolean isCurrentRowNull) {
     try {
       if (isCurrentRowNull) {
         // A null row will never trigger any UDF computing
@@ -120,7 +96,7 @@ public class UDTFExecutor {
     }
   }
 
-  public void execute(RowWindow rowWindow) throws QueryProcessException {
+  public void execute(RowWindow rowWindow) {
     try {
       udtf.transform(rowWindow, collector);
     } catch (Exception e) {
@@ -128,7 +104,7 @@ public class UDTFExecutor {
     }
   }
 
-  public void terminate() throws QueryProcessException {
+  public void terminate() {
     try {
       udtf.terminate(collector);
     } catch (Exception e) {
@@ -142,18 +118,14 @@ public class UDTFExecutor {
     }
   }
 
-  private void onError(String methodName, Exception e) throws QueryProcessException {
+  private void onError(String methodName, Exception e) {
     LOGGER.warn("Error occurred during executing UDTF", e);
-    throw new QueryProcessException(
+    throw new RuntimeException(
         String.format(
                 "Error occurred during executing UDTF#%s: %s", methodName, System.lineSeparator())
             + e);
   }
 
-  public FunctionExpression getExpression() {
-    return expression;
-  }
-
   public UDTFConfigurations getConfigurations() {
     return configurations;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFTypeInferrer.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFTypeInferrer.java
similarity index 67%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFTypeInferrer.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFTypeInferrer.java
index ca7233906a..4e3342c202 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/executor/UDTFTypeInferrer.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/udf/UDTFTypeInferrer.java
@@ -17,15 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.executor;
+package org.apache.iotdb.db.mpp.transformation.dag.udf;
 
+import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
 import org.apache.iotdb.db.exception.sql.SemanticException;
-import org.apache.iotdb.db.mpp.plan.analyze.TypeProvider;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
@@ -33,22 +32,30 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.time.ZoneId;
+import java.util.List;
+import java.util.Map;
 
 public class UDTFTypeInferrer {
 
   private static final Logger LOGGER = LoggerFactory.getLogger(UDTFTypeInferrer.class);
 
-  protected final FunctionExpression expression;
+  protected final String functionName;
 
-  public UDTFTypeInferrer(FunctionExpression expression) {
-    this.expression = expression;
+  public UDTFTypeInferrer(String functionName) {
+    this.functionName = functionName;
   }
 
-  public TSDataType inferOutputType(TypeProvider typeProvider) {
+  public TSDataType inferOutputType(
+      List<String> childExpressions,
+      List<PartialPath> maybeTimeSeriesPaths,
+      List<TSDataType> childExpressionDataTypes,
+      Map<String, String> attributes) {
     try {
-      UDTF udtf = (UDTF) UDFRegistrationService.getInstance().reflect(expression);
+      UDTF udtf = (UDTF) UDFRegistrationService.getInstance().reflect(functionName);
 
-      UDFParameters parameters = new UDFParameters(expression, typeProvider);
+      UDFParameters parameters =
+          new UDFParameters(
+              childExpressions, maybeTimeSeriesPaths, childExpressionDataTypes, attributes);
       udtf.validate(new UDFParameterValidator(parameters));
 
       // use ZoneId.systemDefault() because UDF's data type is ZoneId independent
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/InputRowUtils.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/InputRowUtils.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/InputRowUtils.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/InputRowUtils.java
index 5a56256944..007b8f8397 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/InputRowUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/InputRowUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.util;
 
 import org.apache.iotdb.db.query.dataset.IUDFInputDataSet;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerCacheUtils.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/LayerCacheUtils.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerCacheUtils.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/LayerCacheUtils.java
index ab63797f92..fdef1eb903 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/core/layer/LayerCacheUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/dag/util/LayerCacheUtils.java
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.core.layer;
+package org.apache.iotdb.db.mpp.transformation.dag.util;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.db.query.dataset.IUDFInputDataSet;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/Cache.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/Cache.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/Cache.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/Cache.java
index 3194b821e8..c70f5446bb 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/Cache.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/Cache.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure;
+package org.apache.iotdb.db.mpp.transformation.datastructure;
 
 /** <b>Note: It's not thread safe.</b> */
 public abstract class Cache {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/SerializableList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/SerializableList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/SerializableList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/SerializableList.java
index 7ab360be20..9ab4449a69 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/SerializableList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/SerializableList.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure;
+package org.apache.iotdb.db.mpp.transformation.datastructure;
 
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
+import org.apache.iotdb.db.service.TemporaryQueryDataFileService;
 import org.apache.iotdb.tsfile.utils.PublicBAOS;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/ElasticSerializableRowRecordList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/ElasticSerializableRowRecordList.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/ElasticSerializableRowRecordList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/ElasticSerializableRowRecordList.java
index d7d9ef6407..0d57428ea2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/ElasticSerializableRowRecordList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/ElasticSerializableRowRecordList.java
@@ -17,11 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.row;
+package org.apache.iotdb.db.mpp.transformation.datastructure.row;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.layer.InputRowUtils;
-import org.apache.iotdb.db.query.udf.datastructure.Cache;
+import org.apache.iotdb.db.mpp.transformation.dag.util.InputRowUtils;
+import org.apache.iotdb.db.mpp.transformation.datastructure.Cache;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 import org.apache.iotdb.tsfile.utils.BitMap;
@@ -30,8 +31,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.apache.iotdb.db.query.udf.datastructure.SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
-
 /** An elastic list of records that implements memory control using LRU strategy. */
 public class ElasticSerializableRowRecordList {
 
@@ -73,7 +72,9 @@ public class ElasticSerializableRowRecordList {
     this.memoryLimitInMB = memoryLimitInMB;
     int allocatableCapacity =
         SerializableRowRecordList.calculateCapacity(
-            dataTypes, memoryLimitInMB, INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
+            dataTypes,
+            memoryLimitInMB,
+            SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
     internalRowRecordListCapacity = allocatableCapacity / numCacheBlock;
     if (internalRowRecordListCapacity == 0) {
       numCacheBlock = 1;
@@ -102,7 +103,7 @@ public class ElasticSerializableRowRecordList {
         indexListOfTextFields[fieldIndex++] = i;
       }
     }
-    byteArrayLengthForMemoryControl = INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
+    byteArrayLengthForMemoryControl = SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
     totalByteArrayLengthLimit = 0;
     totalByteArrayLength = 0;
   }
@@ -222,10 +223,10 @@ public class ElasticSerializableRowRecordList {
             ((totalByteArrayLength - totalByteArrayLengthLimit)
                 / size
                 / indexListOfTextFields.length
-                / INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
+                / SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
     newByteArrayLengthForMemoryControl =
         byteArrayLengthForMemoryControl
-            + 2 * (delta + 1) * INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
+            + 2 * (delta + 1) * SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
     newInternalTVListCapacity =
         SerializableRowRecordList.calculateCapacity(
                 dataTypes, memoryLimitInMB, newByteArrayLengthForMemoryControl)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/SerializableRowRecordList.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/SerializableRowRecordList.java
index f49e449461..b13096659f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/row/SerializableRowRecordList.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.row;
+package org.apache.iotdb.db.mpp.transformation.datastructure.row;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.datastructure.SerializableList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableBinaryTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java
similarity index 83%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableBinaryTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java
index 0e481b7a5f..29f507aad1 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableBinaryTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableBinaryTVList.java
@@ -17,16 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
 import java.io.IOException;
 
-import static org.apache.iotdb.db.query.udf.datastructure.SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
-
 public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
 
   protected static final int MEMORY_CHECK_THRESHOLD = 1000;
@@ -36,16 +34,15 @@ public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
   protected long totalByteArrayLengthLimit;
   protected long totalByteArrayLength;
 
-  public ElasticSerializableBinaryTVList(long queryId, float memoryLimitInMB, int cacheSize)
-      throws QueryProcessException {
+  public ElasticSerializableBinaryTVList(long queryId, float memoryLimitInMB, int cacheSize) {
     super(TSDataType.TEXT, queryId, memoryLimitInMB, cacheSize);
-    byteArrayLengthForMemoryControl = INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
+    byteArrayLengthForMemoryControl = SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
     totalByteArrayLengthLimit = 0;
     totalByteArrayLength = 0;
   }
 
   @Override
-  public void putBinary(long timestamp, Binary value) throws IOException, QueryProcessException {
+  public void putBinary(long timestamp, Binary value) throws IOException {
     super.putBinary(timestamp, value);
     totalByteArrayLengthLimit += byteArrayLengthForMemoryControl;
     totalByteArrayLength += value.getLength();
@@ -53,7 +50,7 @@ public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
   }
 
   @Override
-  public void putString(long timestamp, String value) throws IOException, QueryProcessException {
+  public void putString(long timestamp, String value) throws IOException {
     Binary binary = Binary.valueOf(value);
     super.putBinary(timestamp, binary);
     totalByteArrayLengthLimit += byteArrayLengthForMemoryControl;
@@ -61,13 +58,13 @@ public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
     checkMemoryUsage();
   }
 
-  protected void checkMemoryUsage() throws IOException, QueryProcessException {
+  protected void checkMemoryUsage() throws IOException {
     if (size % MEMORY_CHECK_THRESHOLD != 0 || totalByteArrayLength <= totalByteArrayLengthLimit) {
       return;
     }
 
     int newByteArrayLengthForMemoryControl = byteArrayLengthForMemoryControl;
-    while (newByteArrayLengthForMemoryControl * size < totalByteArrayLength) {
+    while ((long) newByteArrayLengthForMemoryControl * size < totalByteArrayLength) {
       newByteArrayLengthForMemoryControl *= 2;
     }
     int newInternalTVListCapacity =
@@ -84,10 +81,10 @@ public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
         (int)
             ((totalByteArrayLength - totalByteArrayLengthLimit)
                 / size
-                / INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
+                / SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL);
     newByteArrayLengthForMemoryControl =
         byteArrayLengthForMemoryControl
-            + 2 * (delta + 1) * INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
+            + 2 * (delta + 1) * SerializableList.INITIAL_BYTE_ARRAY_LENGTH_FOR_MEMORY_CONTROL;
     newInternalTVListCapacity =
         SerializableBinaryTVList.calculateCapacity(
                 memoryLimitInMB, newByteArrayLengthForMemoryControl)
@@ -98,12 +95,11 @@ public class ElasticSerializableBinaryTVList extends ElasticSerializableTVList {
       return;
     }
 
-    throw new QueryProcessException("Memory is not enough for current query.");
+    throw new RuntimeException("Memory is not enough for current query.");
   }
 
   protected void applyNewMemoryControlParameters(
-      int newByteArrayLengthForMemoryControl, int newInternalTVListCapacity)
-      throws IOException, QueryProcessException {
+      int newByteArrayLengthForMemoryControl, int newInternalTVListCapacity) throws IOException {
     ElasticSerializableTVList newElasticSerializableTVList =
         new ElasticSerializableTVList(
             TSDataType.TEXT, queryId, memoryLimitInMB, newInternalTVListCapacity, cacheSize);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableTVList.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableTVList.java
index adf9abc09a..91fa3de508 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/ElasticSerializableTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/ElasticSerializableTVList.java
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.datastructure.Cache;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.datastructure.Cache;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.BatchData;
@@ -36,12 +36,10 @@ import java.util.List;
 public class ElasticSerializableTVList implements PointCollector {
 
   public static ElasticSerializableTVList newElasticSerializableTVList(
-      TSDataType dataType, long queryId, float memoryLimitInMB, int cacheSize)
-      throws QueryProcessException {
-    if (dataType.equals(TSDataType.TEXT)) {
-      return new ElasticSerializableBinaryTVList(queryId, memoryLimitInMB, cacheSize);
-    }
-    return new ElasticSerializableTVList(dataType, queryId, memoryLimitInMB, cacheSize);
+      TSDataType dataType, long queryId, float memoryLimitInMB, int cacheSize) {
+    return dataType.equals(TSDataType.TEXT)
+        ? new ElasticSerializableBinaryTVList(queryId, memoryLimitInMB, cacheSize)
+        : new ElasticSerializableTVList(dataType, queryId, memoryLimitInMB, cacheSize);
   }
 
   protected TSDataType dataType;
@@ -62,8 +60,7 @@ public class ElasticSerializableTVList implements PointCollector {
   protected int evictionUpperBound;
 
   protected ElasticSerializableTVList(
-      TSDataType dataType, long queryId, float memoryLimitInMB, int cacheSize)
-      throws QueryProcessException {
+      TSDataType dataType, long queryId, float memoryLimitInMB, int cacheSize) {
     this.dataType = dataType;
     this.queryId = queryId;
     this.memoryLimitInMB = memoryLimitInMB;
@@ -218,20 +215,20 @@ public class ElasticSerializableTVList implements PointCollector {
   }
 
   @Override
-  public void putBinary(long timestamp, Binary value) throws IOException, QueryProcessException {
+  public void putBinary(long timestamp, Binary value) throws IOException {
     checkExpansion();
     cache.get(size / internalTVListCapacity).putBinary(timestamp, value);
     ++size;
   }
 
   @Override
-  public void putString(long timestamp, String value) throws IOException, QueryProcessException {
+  public void putString(long timestamp, String value) throws IOException {
     checkExpansion();
     cache.get(size / internalTVListCapacity).putBinary(timestamp, Binary.valueOf(value));
     ++size;
   }
 
-  public void putNull(long timestamp) throws IOException, QueryProcessException {
+  public void putNull(long timestamp) throws IOException {
     switch (dataType) {
       case INT32:
         putInt(timestamp, 0);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBinaryTVList.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBinaryTVList.java
index 80f3fc5d0b..b03467f12c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBinaryTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBooleanTVList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBooleanTVList.java
index b19246e074..2cf5e22637 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableBooleanTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableDoubleTVList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableDoubleTVList.java
index f9d28856c3..1f1675e81f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableDoubleTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableFloatTVList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableFloatTVList.java
index 5415ad6b56..540749bb2d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableFloatTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableIntTVList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableIntTVList.java
index 86a0106aaa..21894d55ba 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableIntTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableLongTVList.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableLongTVList.java
index e3300b42b0..60fb06037c 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableLongTVList.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableTVList.java b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableTVList.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableTVList.java
rename to server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableTVList.java
index edbee1c376..a031be2a2b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/transformation/datastructure/tv/SerializableTVList.java
@@ -17,10 +17,9 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.datastructure.tv;
+package org.apache.iotdb.db.mpp.transformation.datastructure.tv;
 
-import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.datastructure.SerializableList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.BatchData;
@@ -47,8 +46,7 @@ public abstract class SerializableTVList extends BatchData implements Serializab
     }
   }
 
-  protected static int calculateCapacity(TSDataType dataType, float memoryLimitInMB)
-      throws QueryProcessException {
+  protected static int calculateCapacity(TSDataType dataType, float memoryLimitInMB) {
     int size;
     switch (dataType) {
       case INT32:
@@ -76,7 +74,7 @@ public abstract class SerializableTVList extends BatchData implements Serializab
     }
 
     if (size <= 0) {
-      throw new QueryProcessException("Memory is not enough for current query.");
+      throw new RuntimeException("Memory is not enough for current query.");
     }
     return size;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunction.java
index 3c800af525..2904d1d220 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunction.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.protocol.influxdb.function;
 
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunctionFactory.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunctionFactory.java
index 8c20c80a91..9310990b46 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunctionFactory.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/InfluxFunctionFactory.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.protocol.influxdb.function;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.aggregator.InfluxCountFunction;
 import org.apache.iotdb.db.protocol.influxdb.function.aggregator.InfluxMeanFunction;
@@ -30,7 +31,6 @@ import org.apache.iotdb.db.protocol.influxdb.function.selector.InfluxFirstFuncti
 import org.apache.iotdb.db.protocol.influxdb.function.selector.InfluxLastFunction;
 import org.apache.iotdb.db.protocol.influxdb.function.selector.InfluxMaxFunction;
 import org.apache.iotdb.db.protocol.influxdb.function.selector.InfluxMinFunction;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxAggregator.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxAggregator.java
index 5d82ad966d..458f378053 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxAggregator.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxAggregator.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunction;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxCountFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxCountFunction.java
index f6acb4287c..7cbc59971f 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxCountFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxCountFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMeanFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMeanFunction.java
index 8a5a0c6930..fb1b936e2a 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMeanFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMeanFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.utils.MathUtils;
 
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMedianFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMedianFunction.java
index 33d919a0b3..eea844f9c0 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMedianFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxMedianFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxModeFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxModeFunction.java
index 48501047af..ff1f63c8e2 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxModeFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxModeFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.HashMap;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSpreadFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSpreadFunction.java
index b76ac494f6..a5cfcbde1e 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSpreadFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSpreadFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxStddevFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxStddevFunction.java
index 614f4026d9..21790b6177 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxStddevFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxStddevFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.utils.MathUtils;
 
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSumFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSumFunction.java
index f175a1aaf2..a0ed37920c 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSumFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/aggregator/InfluxSumFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.aggregator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.utils.MathUtils;
 
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxFirstFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxFirstFunction.java
index bba41c0acc..0599b8ddc5 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxFirstFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxFirstFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.selector;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxLastFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxLastFunction.java
index 2674e0e8ec..be9cce9119 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxLastFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxLastFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.selector;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMaxFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMaxFunction.java
index 448955fde8..c31f404b57 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMaxFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMaxFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.selector;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMinFunction.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMinFunction.java
index 073a640d86..52d6177c58 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMinFunction.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxMinFunction.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.selector;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxSelector.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxSelector.java
index c4c9e3367d..e13013b3b6 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/function/selector/InfluxSelector.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.protocol.influxdb.function.selector;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunction;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunctionValue;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
index 12f78ccde2..e7b0881b6d 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/handler/QueryHandler.java
@@ -23,6 +23,10 @@ import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxConstant;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
 import org.apache.iotdb.db.protocol.influxdb.function.InfluxFunction;
@@ -46,10 +50,6 @@ import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.SessionManager;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.service.basic.ServiceProvider;
 import org.apache.iotdb.protocol.influxdb.rpc.thrift.InfluxQueryResultRsp;
 import org.apache.iotdb.rpc.RpcUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/operator/InfluxSelectComponent.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/operator/InfluxSelectComponent.java
index 05e5c39fec..79a1150f66 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/operator/InfluxSelectComponent.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/operator/InfluxSelectComponent.java
@@ -18,11 +18,11 @@
  */
 package org.apache.iotdb.db.protocol.influxdb.operator;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.protocol.influxdb.constant.InfluxSQLConstant;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 
 import java.time.ZoneId;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBSqlVisitor.java
index b66e14ce47..f413a4a4b3 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBSqlVisitor.java
@@ -19,6 +19,16 @@
 package org.apache.iotdb.db.protocol.influxdb.sql;
 
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
 import org.apache.iotdb.db.protocol.influxdb.operator.InfluxQueryOperator;
 import org.apache.iotdb.db.protocol.influxdb.operator.InfluxSelectComponent;
 import org.apache.iotdb.db.qp.constant.FilterConstant;
@@ -31,16 +41,6 @@ import org.apache.iotdb.db.qp.logical.crud.WhereComponent;
 import org.apache.iotdb.db.qp.sql.InfluxDBSqlParser;
 import org.apache.iotdb.db.qp.sql.InfluxDBSqlParserBaseVisitor;
 import org.apache.iotdb.db.qp.utils.DatetimeUtils;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.binary.AdditionExpression;
-import org.apache.iotdb.db.query.expression.binary.DivisionExpression;
-import org.apache.iotdb.db.query.expression.binary.ModuloExpression;
-import org.apache.iotdb.db.query.expression.binary.MultiplicationExpression;
-import org.apache.iotdb.db.query.expression.binary.SubtractionExpression;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.NegationExpression;
 
 public class InfluxDBSqlVisitor extends InfluxDBSqlParserBaseVisitor<Operator> {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
index 6f68d4df19..f12c02e179 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/QueryDataSetHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.iotdb.db.protocol.rest.handler;
 
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.AggregationPlan;
@@ -29,7 +30,6 @@ import org.apache.iotdb.db.query.dataset.ShowDevicesDataSet;
 import org.apache.iotdb.db.query.dataset.ShowTimeseriesDataSet;
 import org.apache.iotdb.db.query.dataset.SingleDataSet;
 import org.apache.iotdb.db.query.dataset.groupby.GroupByLevelDataSet;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.rpc.TSStatusCode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Field;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/constant/FilterConstant.java b/server/src/main/java/org/apache/iotdb/db/qp/constant/FilterConstant.java
index 2e4ebbe383..5a92fa4ecd 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/constant/FilterConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/constant/FilterConstant.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.qp.constant;
 
+import org.apache.iotdb.db.mpp.plan.expression.ExpressionType;
 import org.apache.iotdb.db.qp.sql.SqlLexer;
-import org.apache.iotdb.db.query.expression.ExpressionType;
 
 import java.util.EnumMap;
 import java.util.HashMap;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
index e5d80719ca..8bd7d6a7a9 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
@@ -23,16 +23,16 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.AggregationPlan;
 import org.apache.iotdb.db.qp.physical.crud.AlignByDevicePlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
index 63eddbe346..98ecd4c220 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
@@ -21,12 +21,12 @@ package org.apache.iotdb.db.qp.logical.crud;
 
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.LastQueryPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 
 public class LastQueryOperator extends QueryOperator {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
index 9d426332d3..3259f3ae6c 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
@@ -25,6 +25,10 @@ import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.index.common.IndexType;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
@@ -34,10 +38,6 @@ import org.apache.iotdb.db.qp.physical.crud.QueryIndexPlan;
 import org.apache.iotdb.db.qp.physical.crud.QueryPlan;
 import org.apache.iotdb.db.qp.physical.crud.RawDataQueryPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SelectComponent.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SelectComponent.java
index 19e2840224..2b4616278e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SelectComponent.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SelectComponent.java
@@ -20,10 +20,10 @@
 package org.apache.iotdb.db.qp.logical.crud;
 
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 
 import java.time.ZoneId;
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SpecialClauseComponent.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SpecialClauseComponent.java
index ec0c3a74de..f9b411a1b8 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SpecialClauseComponent.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SpecialClauseComponent.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.qp.logical.crud;
 
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.qp.utils.GroupByLevelController;
-import org.apache.iotdb.db.query.expression.Expression;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDAFQueryOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDAFQueryOperator.java
index fd9888f36e..be2b53a8c9 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDAFQueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/UDAFQueryOperator.java
@@ -20,14 +20,14 @@ package org.apache.iotdb.db.qp.logical.crud;
 
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.AggregationPlan;
 import org.apache.iotdb.db.qp.physical.crud.UDAFPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
index d0a87bf44d..b8954ec81c 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AggregationPlan.java
@@ -20,10 +20,10 @@ package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.utils.GroupByLevelController;
 import org.apache.iotdb.db.query.aggregation.AggregateResult;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
index 35a22188e4..561aae819d 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/AlignByDevicePlan.java
@@ -20,12 +20,12 @@ package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
 import org.apache.iotdb.db.qp.logical.crud.SpecialClauseComponent;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 import org.apache.iotdb.service.rpc.thrift.TSExecuteStatementResp;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
index b7a54911eb..eea48cf4ed 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/LastQueryPlan.java
@@ -21,9 +21,9 @@ package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.db.service.StaticResps;
 import org.apache.iotdb.service.rpc.thrift.TSExecuteStatementResp;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
index 0dc86af4fc..ba8b4ad5ba 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
@@ -22,11 +22,11 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.logical.crud.SpecialClauseComponent;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.rpc.RpcUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
index 2f9dce7afc..b6952e754b 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
@@ -22,9 +22,9 @@ import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.AlignedPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.qp.logical.crud.SpecialClauseComponent;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Path;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDAFPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDAFPlan.java
index 483e2cdb23..7205fff532 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDAFPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDAFPlan.java
@@ -19,9 +19,9 @@
 package org.apache.iotdb.db.qp.physical.crud;
 
 import org.apache.iotdb.commons.exception.MetadataException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
 import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.Expression;
 import org.apache.iotdb.service.rpc.thrift.TSExecuteStatementResp;
 
 import org.apache.thrift.TException;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDFPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDFPlan.java
index a60640b1f1..9fb119f4ef 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDFPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDFPlan.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.qp.physical.crud;
 
-import org.apache.iotdb.db.query.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 
 import java.util.List;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDTFPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDTFPlan.java
index 5ee605a460..158e454c8d 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDTFPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/UDTFPlan.java
@@ -22,11 +22,11 @@ package org.apache.iotdb.db.qp.physical.crud;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.transformation.dag.udf.UDTFContext;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.udf.core.executor.UDTFContext;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Pair;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index a81179f435..954d043a62 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -24,6 +24,31 @@ import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.trigger.executor.TriggerEvent;
 import org.apache.iotdb.db.exception.sql.SQLParserException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.binary.AdditionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.BinaryExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.DivisionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.EqualToExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LessThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicOrExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.ModuloExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.MultiplicationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.NonEqualExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.SubtractionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.InExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LikeExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.LogicNotExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.NegationExpression;
+import org.apache.iotdb.db.mpp.plan.expression.unary.RegularExpression;
 import org.apache.iotdb.db.qp.constant.FilterConstant;
 import org.apache.iotdb.db.qp.constant.FilterConstant.FilterType;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
@@ -126,31 +151,6 @@ import org.apache.iotdb.db.query.executor.fill.IFill;
 import org.apache.iotdb.db.query.executor.fill.LinearFill;
 import org.apache.iotdb.db.query.executor.fill.PreviousFill;
 import org.apache.iotdb.db.query.executor.fill.ValueFill;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.binary.AdditionExpression;
-import org.apache.iotdb.db.query.expression.binary.BinaryExpression;
-import org.apache.iotdb.db.query.expression.binary.DivisionExpression;
-import org.apache.iotdb.db.query.expression.binary.EqualToExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LessEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.LessThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicOrExpression;
-import org.apache.iotdb.db.query.expression.binary.ModuloExpression;
-import org.apache.iotdb.db.query.expression.binary.MultiplicationExpression;
-import org.apache.iotdb.db.query.expression.binary.NonEqualExpression;
-import org.apache.iotdb.db.query.expression.binary.SubtractionExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.expression.unary.InExpression;
-import org.apache.iotdb.db.query.expression.unary.LikeExpression;
-import org.apache.iotdb.db.query.expression.unary.LogicNotExpression;
-import org.apache.iotdb.db.query.expression.unary.NegationExpression;
-import org.apache.iotdb.db.query.expression.unary.RegularExpression;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index 9e12f0655c..b7944c64ee 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -22,6 +22,8 @@ import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.TestOnly;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.qp.constant.FilterConstant.FilterType;
 import org.apache.iotdb.db.qp.logical.Operator;
 import org.apache.iotdb.db.qp.logical.crud.BasicFunctionOperator;
@@ -34,8 +36,6 @@ import org.apache.iotdb.db.qp.logical.crud.WhereComponent;
 import org.apache.iotdb.db.qp.sql.IoTDBSqlParser;
 import org.apache.iotdb.db.qp.sql.IoTDBSqlVisitor;
 import org.apache.iotdb.db.qp.sql.SqlLexer;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.service.rpc.thrift.TSLastDataQueryReq;
 import org.apache.iotdb.service.rpc.thrift.TSRawDataQueryReq;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
index 46a37fe3e9..c25498042d 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
@@ -26,6 +26,9 @@ import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.PathNumOverLimitException;
 import org.apache.iotdb.db.exception.sql.SQLParserException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.qp.constant.FilterConstant.FilterType;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.qp.logical.Operator;
@@ -41,9 +44,6 @@ import org.apache.iotdb.db.qp.logical.crud.SelectComponent;
 import org.apache.iotdb.db.qp.logical.crud.WhereComponent;
 import org.apache.iotdb.db.qp.utils.GroupByLevelController;
 import org.apache.iotdb.db.qp.utils.WildcardsRemover;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.service.IoTDB;
 
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/utils/DatetimeUtils.java b/server/src/main/java/org/apache/iotdb/db/qp/utils/DatetimeUtils.java
index 9a1dd4fc64..e77d67344b 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/utils/DatetimeUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/utils/DatetimeUtils.java
@@ -20,7 +20,6 @@ package org.apache.iotdb.db.qp.utils;
 
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.query.control.SessionManager;
 
 import java.time.DateTimeException;
@@ -450,13 +449,11 @@ public class DatetimeUtils {
           .appendOptional(ISO_OFFSET_DATE_TIME_WITH_DOT_WITH_SPACE_NS)
           .toFormatter();
 
-  public static long convertDatetimeStrToLong(String str, ZoneId zoneId)
-      throws LogicalOperatorException {
+  public static long convertDatetimeStrToLong(String str, ZoneId zoneId) {
     return convertDatetimeStrToLong(str, toZoneOffset(zoneId), 0);
   }
 
-  public static long getInstantWithPrecision(String str, String timestampPrecision)
-      throws LogicalOperatorException {
+  public static long getInstantWithPrecision(String str, String timestampPrecision) {
     try {
       ZonedDateTime zonedDateTime = ZonedDateTime.parse(str, formatter);
       Instant instant = zonedDateTime.toInstant();
@@ -476,13 +473,12 @@ public class DatetimeUtils {
       }
       return instant.toEpochMilli();
     } catch (DateTimeParseException e) {
-      throw new LogicalOperatorException(e.getMessage());
+      throw new RuntimeException(e.getMessage());
     }
   }
 
   /** convert date time string to millisecond, microsecond or nanosecond. */
-  public static long convertDatetimeStrToLong(String str, ZoneOffset offset, int depth)
-      throws LogicalOperatorException {
+  public static long convertDatetimeStrToLong(String str, ZoneOffset offset, int depth) {
 
     String timestampPrecision = IoTDBDescriptor.getInstance().getConfig().getTimestampPrecision();
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java b/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
index c1fb4657f8..781838c88b 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
@@ -22,10 +22,10 @@ package org.apache.iotdb.db.qp.utils;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java b/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
index e0c22188f6..30cf3df9f3 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/utils/WildcardsRemover.java
@@ -25,10 +25,10 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.PathNumOverLimitException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
 import org.apache.iotdb.db.qp.strategy.optimizer.ConcatPathOptimizer;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.ResultColumn;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.tsfile.utils.Pair;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
index 5dd6e0a648..2f436fd392 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/QueryResourceManager.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.idtable.IDTable;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.externalsort.serialize.IExternalSortFileDeserializer;
-import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
+import org.apache.iotdb.db.service.TemporaryQueryDataFileService;
 import org.apache.iotdb.db.utils.QueryUtils;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
@@ -199,7 +199,7 @@ public class QueryResourceManager {
    * Whenever the jdbc request is closed normally or abnormally, this method must be invoked. All
    * query tokens created by this jdbc request must be cleared.
    */
-  @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
+  // Suppress high Cognitive Complexity warning
   public void endQuery(long queryId) throws StorageEngineException {
     // close file stream of external sort files, and delete
     if (externalSortFileMap.get(queryId) != null) {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFAlignByTimeDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFAlignByTimeDataSet.java
index 4752434a7f..71a5708979 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFAlignByTimeDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFAlignByTimeDataSet.java
@@ -20,11 +20,11 @@
 package org.apache.iotdb.db.query.dataset;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.reader.series.IReaderByTimestamp;
 import org.apache.iotdb.db.query.reader.series.ManagedSeriesReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.db.tools.watermark.WatermarkEncoder;
 import org.apache.iotdb.db.utils.datastructure.TimeSelector;
 import org.apache.iotdb.service.rpc.thrift.TSQueryDataSet;
@@ -246,7 +246,7 @@ public class UDTFAlignByTimeDataSet extends UDTFDataSet implements DirectAlignBy
         --rowOffset;
       }
 
-      rawQueryInputLayer.updateRowRecordListEvictionUpperBound();
+      queryDataSetInputLayer.updateRowRecordListEvictionUpperBound();
     }
 
     /*
@@ -350,7 +350,7 @@ public class UDTFAlignByTimeDataSet extends UDTFDataSet implements DirectAlignBy
       throw new IOException(e.getMessage());
     }
 
-    rawQueryInputLayer.updateRowRecordListEvictionUpperBound();
+    queryDataSetInputLayer.updateRowRecordListEvictionUpperBound();
 
     return rowRecord;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFDataSet.java
index 7c1dfa2af9..1f816f1a2a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFDataSet.java
@@ -22,13 +22,13 @@ package org.apache.iotdb.db.query.dataset;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.dag.builder.DAGBuilder;
+import org.apache.iotdb.db.mpp.transformation.dag.input.QueryDataSetInputLayer;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.reader.series.IReaderByTimestamp;
 import org.apache.iotdb.db.query.reader.series.ManagedSeriesReader;
-import org.apache.iotdb.db.query.udf.core.layer.DAGBuilder;
-import org.apache.iotdb.db.query.udf.core.layer.RawQueryInputLayer;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.db.query.udf.service.UDFClassLoaderManager;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -50,7 +50,7 @@ public abstract class UDTFDataSet extends QueryDataSet {
 
   protected final long queryId;
   protected final UDTFPlan udtfPlan;
-  protected final RawQueryInputLayer rawQueryInputLayer;
+  protected final QueryDataSetInputLayer queryDataSetInputLayer;
 
   protected LayerPointReader[] transformers;
 
@@ -68,8 +68,8 @@ public abstract class UDTFDataSet extends QueryDataSet {
     super(new ArrayList<>(deduplicatedPaths), deduplicatedDataTypes);
     queryId = queryContext.getQueryId();
     this.udtfPlan = udtfPlan;
-    rawQueryInputLayer =
-        new RawQueryInputLayer(
+    queryDataSetInputLayer =
+        new QueryDataSetInputLayer(
             queryId,
             UDF_READER_MEMORY_BUDGET_IN_MB,
             deduplicatedPaths,
@@ -94,8 +94,8 @@ public abstract class UDTFDataSet extends QueryDataSet {
     super(new ArrayList<>(deduplicatedPaths), deduplicatedDataTypes);
     queryId = queryContext.getQueryId();
     this.udtfPlan = udtfPlan;
-    rawQueryInputLayer =
-        new RawQueryInputLayer(
+    queryDataSetInputLayer =
+        new QueryDataSetInputLayer(
             queryId, UDF_READER_MEMORY_BUDGET_IN_MB, udtfPlan, readersOfSelectedSeries);
 
     initTransformers();
@@ -106,7 +106,8 @@ public abstract class UDTFDataSet extends QueryDataSet {
       throws QueryProcessException, IOException {
     queryId = queryContext.getQueryId();
     this.udtfPlan = udtfPlan;
-    rawQueryInputLayer = new RawQueryInputLayer(queryId, UDF_READER_MEMORY_BUDGET_IN_MB, dataSet);
+    queryDataSetInputLayer =
+        new QueryDataSetInputLayer(queryId, UDF_READER_MEMORY_BUDGET_IN_MB, dataSet);
     initTransformers();
     initDataSetFields();
   }
@@ -121,7 +122,7 @@ public abstract class UDTFDataSet extends QueryDataSet {
           new DAGBuilder(
                   queryId,
                   udtfPlan,
-                  rawQueryInputLayer,
+                  queryDataSetInputLayer,
                   UDF_TRANSFORMER_MEMORY_BUDGET_IN_MB + UDF_COLLECTOR_MEMORY_BUDGET_IN_MB)
               .bindInputLayerColumnIndexWithExpression()
               .buildLayerMemoryAssigner()
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFNonAlignDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFNonAlignDataSet.java
index 01af59cac8..53a2acf177 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFNonAlignDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/UDTFNonAlignDataSet.java
@@ -20,11 +20,11 @@
 package org.apache.iotdb.db.query.dataset;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
 import org.apache.iotdb.db.qp.physical.crud.UDTFPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.reader.series.IReaderByTimestamp;
 import org.apache.iotdb.db.query.reader.series.ManagedSeriesReader;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
 import org.apache.iotdb.db.tools.watermark.WatermarkEncoder;
 import org.apache.iotdb.service.rpc.thrift.TSQueryNonAlignDataSet;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
@@ -115,7 +115,7 @@ public class UDTFNonAlignDataSet extends UDTFDataSet implements DirectNonAlignDa
       valueBufferList.add(timeValueByteBufferPair.right);
     }
 
-    rawQueryInputLayer.updateRowRecordListEvictionUpperBound();
+    queryDataSetInputLayer.updateRowRecordListEvictionUpperBound();
 
     tsQueryNonAlignDataSet.setTimeList(timeBufferList);
     tsQueryNonAlignDataSet.setValueList(valueBufferList);
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByFillDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByFillDataSet.java
index 5b0c9a7607..d88fadc167 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByFillDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/GroupByFillDataSet.java
@@ -22,13 +22,13 @@ import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.exception.query.UnSupportedFillTypeException;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.db.qp.physical.crud.GroupByTimeFillPlan;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.executor.fill.IFill;
 import org.apache.iotdb.db.query.executor.fill.LinearFill;
 import org.apache.iotdb.db.query.executor.fill.PreviousFill;
 import org.apache.iotdb.db.query.executor.fill.ValueFill;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.db.utils.TypeInferenceUtils;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.TimeValuePair;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
index 2af5764747..99cf877d3e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
@@ -46,9 +46,8 @@ public class UDFClassLoaderManager implements IService {
   /**
    * activeClassLoader is used to load all classes under libRoot. libRoot may be updated before the
    * user executes CREATE FUNCTION or after the user executes DROP FUNCTION. Therefore, we need to
-   * continuously maintain the activeClassLoader so that the classes it loads are always up to date.
+   * continuously maintain the activeClassLoader so that the classes it loads are always up-to-date.
    */
-  @SuppressWarnings("squid:S3077")
   private volatile UDFClassLoader activeClassLoader;
 
   UDFClassLoaderManager() {
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationInformation.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationInformation.java
index c09092fada..729629c0b2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationInformation.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationInformation.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.udf.service;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.UDTF;
 
 import java.lang.reflect.InvocationTargetException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
index af451f5e38..6c890da7f2 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
@@ -23,14 +23,12 @@ import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.service.IService;
 import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.udf.api.UDF;
+import org.apache.iotdb.commons.udf.builtin.BuiltinFunction;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.UDFRegistrationException;
-import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
-import org.apache.iotdb.db.query.udf.api.UDF;
-import org.apache.iotdb.db.query.udf.builtin.BuiltinFunction;
 import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
 
 import org.apache.commons.io.FileUtils;
@@ -239,8 +237,8 @@ public class UDFRegistrationService implements IService {
     }
   }
 
-  public UDF reflect(FunctionExpression expression) throws QueryProcessException {
-    String functionName = expression.getFunctionName().toUpperCase();
+  public UDF reflect(String functionName) {
+    functionName = functionName.toUpperCase();
     UDFRegistrationInformation information = registrationInformation.get(functionName);
     if (information == null) {
       String errorMessage =
@@ -248,7 +246,7 @@ public class UDFRegistrationService implements IService {
               "Failed to reflect UDF instance, because UDF %s has not been registered.",
               functionName);
       logger.warn(errorMessage);
-      throw new QueryProcessException(errorMessage);
+      throw new RuntimeException(errorMessage);
     }
 
     if (!information.isBuiltin()) {
@@ -267,7 +265,7 @@ public class UDFRegistrationService implements IService {
               "Failed to reflect UDF %s(%s) instance, because %s",
               functionName, information.getClassName(), e);
       logger.warn(errorMessage);
-      throw new QueryProcessException(errorMessage);
+      throw new RuntimeException(errorMessage);
     }
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index 8f51106bf9..d2333c674b 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -49,7 +49,6 @@ import org.apache.iotdb.db.mpp.execution.datatransfer.DataBlockService;
 import org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler;
 import org.apache.iotdb.db.protocol.influxdb.meta.InfluxDBMetaManager;
 import org.apache.iotdb.db.protocol.rest.RestService;
-import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
 import org.apache.iotdb.db.query.udf.service.UDFClassLoaderManager;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.db.service.basic.ServiceProvider;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index 54e2b3073a..ced6730c57 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -44,7 +44,6 @@ import org.apache.iotdb.db.mpp.execution.datatransfer.DataBlockService;
 import org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler;
 import org.apache.iotdb.db.protocol.influxdb.meta.InfluxDBMetaManager;
 import org.apache.iotdb.db.protocol.rest.RestService;
-import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
 import org.apache.iotdb.db.query.udf.service.UDFClassLoaderManager;
 import org.apache.iotdb.db.query.udf.service.UDFRegistrationService;
 import org.apache.iotdb.db.rescon.PrimitiveArrayManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java b/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java
rename to server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
index 5c691bc8c4..4cd00dde1a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
@@ -17,14 +17,14 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.query.udf.service;
+package org.apache.iotdb.db.service;
 
 import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.service.IService;
 import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.query.udf.datastructure.SerializableList.SerializationRecorder;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList.SerializationRecorder;
 
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/watermark/WatermarkDetector.java b/server/src/main/java/org/apache/iotdb/db/tools/watermark/WatermarkDetector.java
index 54b0a0bbf6..45f9e35a6f 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/watermark/WatermarkDetector.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/watermark/WatermarkDetector.java
@@ -68,7 +68,7 @@ public class WatermarkDetector {
         dataType);
   }
 
-  @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
+  // Suppress high Cognitive Complexity warning
   public static boolean isWatermarked(
       String filePath,
       String secretKey,
@@ -171,12 +171,7 @@ public class WatermarkDetector {
     try {
       timestamp = Long.parseLong(str);
     } catch (NumberFormatException e) {
-      try {
-        ZoneId zoneId = ZoneId.systemDefault();
-        timestamp = DatetimeUtils.convertDatetimeStrToLong(str, zoneId);
-      } catch (LogicalOperatorException e1) {
-        throw new LogicalOperatorException("The format of timestamp is not unexpected.");
-      }
+      timestamp = DatetimeUtils.convertDatetimeStrToLong(str, ZoneId.systemDefault());
     }
     return timestamp;
   }
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/QueryLogicalPlanUtil.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/QueryLogicalPlanUtil.java
index 411396ecd3..fdcabbe1b4 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/QueryLogicalPlanUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/QueryLogicalPlanUtil.java
@@ -25,6 +25,13 @@ import org.apache.iotdb.db.metadata.path.AlignedPath;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
 import org.apache.iotdb.db.mpp.common.QueryId;
 import org.apache.iotdb.db.mpp.common.header.HeaderConstant;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.LogicAndExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimestampOperand;
+import org.apache.iotdb.db.mpp.plan.expression.multi.FunctionExpression;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.AggregationNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.DeviceViewNode;
@@ -44,13 +51,6 @@ import org.apache.iotdb.db.mpp.plan.statement.component.FilterNullPolicy;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.binary.LogicAndExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimestampOperand;
-import org.apache.iotdb.db.query.expression.multi.FunctionExpression;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.TimeFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/AggregationNodeSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/AggregationNodeSerdeTest.java
index 1ebddfd736..1393453af9 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/AggregationNodeSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/AggregationNodeSerdeTest.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.plan.node.PlanNodeDeserializeHelper;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.AggregationNode;
@@ -33,7 +34,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.AggregationStep;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.operator.In;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNodeSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNodeSerdeTest.java
index 35346f29d8..43310e8f47 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNodeSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNodeSerdeTest.java
@@ -20,15 +20,15 @@ package org.apache.iotdb.db.mpp.plan.plan.node.process;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.mpp.plan.expression.Expression;
+import org.apache.iotdb.db.mpp.plan.expression.binary.GreaterThanExpression;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.ConstantOperand;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.plan.node.PlanNodeDeserializeHelper;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.FilterNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
-import org.apache.iotdb.db.query.expression.Expression;
-import org.apache.iotdb.db.query.expression.binary.GreaterThanExpression;
-import org.apache.iotdb.db.query.expression.leaf.ConstantOperand;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.Test;
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNullNodeSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNullNodeSerdeTest.java
index 2aeac41871..360b644d8d 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNullNodeSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/FilterNullNodeSerdeTest.java
@@ -20,13 +20,13 @@ package org.apache.iotdb.db.mpp.plan.plan.node.process;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.plan.node.PlanNodeDeserializeHelper;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.FilterNullNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.TimeJoinNode;
 import org.apache.iotdb.db.mpp.plan.statement.component.FilterNullPolicy;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 
 import org.junit.Test;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/GroupByLevelNodeSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/GroupByLevelNodeSerdeTest.java
index 7e94ffff86..53a4b72b68 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/GroupByLevelNodeSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/process/GroupByLevelNodeSerdeTest.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.plan.node.PlanNodeDeserializeHelper;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.process.GroupByLevelNode;
@@ -33,7 +34,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.AggregationStep;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.Test;
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/source/SeriesAggregationScanNodeSerdeTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/source/SeriesAggregationScanNodeSerdeTest.java
index 072cf1a0a4..9b07836baf 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/source/SeriesAggregationScanNodeSerdeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/plan/plan/node/source/SeriesAggregationScanNodeSerdeTest.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.MeasurementPath;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.mpp.plan.plan.node.PlanNodeDeserializeHelper;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.PlanNodeId;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.source.SeriesAggregationScanNode;
@@ -33,7 +34,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.AggregationStep;
 import org.apache.iotdb.db.mpp.plan.planner.plan.parameter.GroupByTimeParameter;
 import org.apache.iotdb.db.mpp.plan.statement.component.OrderBy;
 import org.apache.iotdb.db.query.aggregation.AggregationType;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.filter.operator.In;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBLogicalGeneratorTest.java b/server/src/test/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBLogicalGeneratorTest.java
index 31c662cdef..11ab3a6a1f 100644
--- a/server/src/test/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBLogicalGeneratorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/protocol/influxdb/sql/InfluxDBLogicalGeneratorTest.java
@@ -18,12 +18,12 @@
  */
 package org.apache.iotdb.db.protocol.influxdb.sql;
 
+import org.apache.iotdb.db.mpp.plan.expression.ResultColumn;
+import org.apache.iotdb.db.mpp.plan.expression.leaf.TimeSeriesOperand;
 import org.apache.iotdb.db.protocol.influxdb.operator.InfluxQueryOperator;
 import org.apache.iotdb.db.qp.logical.crud.BasicFunctionOperator;
 import org.apache.iotdb.db.qp.logical.crud.FilterOperator;
 import org.apache.iotdb.db.qp.logical.crud.WhereComponent;
-import org.apache.iotdb.db.query.expression.ResultColumn;
-import org.apache.iotdb.db.query.expression.leaf.TimeSeriesOperand;
 
 import org.junit.Test;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableRowRecordListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableRowRecordListTest.java
index 6ed4fb2b31..4a10c08463 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableRowRecordListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableRowRecordListTest.java
@@ -20,7 +20,8 @@
 package org.apache.iotdb.db.query.udf.datastructure;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.datastructure.row.ElasticSerializableRowRecordList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.ElasticSerializableRowRecordList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableTVListTest.java
index 865c270266..18a12b8d73 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/ElasticSerializableTVListTest.java
@@ -20,8 +20,9 @@
 package org.apache.iotdb.db.query.udf.datastructure;
 
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.db.query.udf.core.reader.LayerPointReader;
-import org.apache.iotdb.db.query.udf.datastructure.tv.ElasticSerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.api.LayerPointReader;
+import org.apache.iotdb.db.mpp.transformation.datastructure.SerializableList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.ElasticSerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
@@ -92,13 +93,9 @@ public class ElasticSerializableTVListTest extends SerializableListTest {
   }
 
   private void initESTVList(TSDataType dataType) {
-    try {
-      tvList =
-          ElasticSerializableTVList.newElasticSerializableTVList(
-              dataType, QUERY_ID, MEMORY_USAGE_LIMIT_IN_MB, CACHE_SIZE);
-    } catch (QueryProcessException e) {
-      fail(e.toString());
-    }
+    tvList =
+        ElasticSerializableTVList.newElasticSerializableTVList(
+            dataType, QUERY_ID, MEMORY_USAGE_LIMIT_IN_MB, CACHE_SIZE);
     assertEquals(0, tvList.size());
   }
 
@@ -160,7 +157,7 @@ public class ElasticSerializableTVListTest extends SerializableListTest {
           }
           break;
       }
-    } catch (IOException | QueryProcessException e) {
+    } catch (IOException e) {
       fail(e.toString());
     }
     assertEquals(ITERATION_TIMES, tvList.size());
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/LRUCache.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/LRUCache.java
index 5761b09c90..9447b22419 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/LRUCache.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/LRUCache.java
@@ -19,6 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
+import org.apache.iotdb.db.mpp.transformation.datastructure.Cache;
+
 import java.util.Arrays;
 
 public class LRUCache extends Cache {
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBinaryTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBinaryTVListTest.java
index 1338f27bfb..726a629da6 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBinaryTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBinaryTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableBinaryTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableBinaryTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBooleanTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBooleanTVListTest.java
index 6203fe3581..736f605d12 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBooleanTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableBooleanTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableBooleanTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableBooleanTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.After;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableDoubleTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableDoubleTVListTest.java
index 6f1914bc81..9c0a484abe 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableDoubleTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableDoubleTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableDoubleTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableDoubleTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.After;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableFloatTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableFloatTVListTest.java
index 346ccbd3af..ce43b3eb60 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableFloatTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableFloatTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableFloatTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableFloatTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.After;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableIntTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableIntTVListTest.java
index 33d9b4c126..0571979795 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableIntTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableIntTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableIntTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableIntTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.After;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableListTest.java
index 81bb35aadd..dbbd2c2bfa 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableListTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.service.TemporaryQueryDataFileService;
+import org.apache.iotdb.db.service.TemporaryQueryDataFileService;
 
 public abstract class SerializableListTest {
 
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableLongTVListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableLongTVListTest.java
index dfc181fb22..ace0af9720 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableLongTVListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableLongTVListTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableLongTVList;
-import org.apache.iotdb.db.query.udf.datastructure.tv.SerializableTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableLongTVList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.tv.SerializableTVList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.junit.After;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableRowRecordListTest.java b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableRowRecordListTest.java
index 29084b4ab5..af19c6cc1f 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableRowRecordListTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/datastructure/SerializableRowRecordListTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.udf.datastructure;
 
-import org.apache.iotdb.db.query.udf.datastructure.row.SerializableRowRecordList;
+import org.apache.iotdb.db.mpp.transformation.datastructure.row.SerializableRowRecordList;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.read.common.Field;
 import org.apache.iotdb.tsfile.read.common.RowRecord;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/udf/example/Adder.java b/server/src/test/java/org/apache/iotdb/db/query/udf/example/Adder.java
index 2b1fc1f13d..8b9ea955f4 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/udf/example/Adder.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/udf/example/Adder.java
@@ -19,13 +19,13 @@
 
 package org.apache.iotdb.db.query.udf.example;
 
-import org.apache.iotdb.db.query.udf.api.UDTF;
-import org.apache.iotdb.db.query.udf.api.access.Row;
-import org.apache.iotdb.db.query.udf.api.collector.PointCollector;
-import org.apache.iotdb.db.query.udf.api.customizer.config.UDTFConfigurations;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameterValidator;
-import org.apache.iotdb.db.query.udf.api.customizer.parameter.UDFParameters;
-import org.apache.iotdb.db.query.udf.api.customizer.strategy.RowByRowAccessStrategy;
+import org.apache.iotdb.commons.udf.api.UDTF;
+import org.apache.iotdb.commons.udf.api.access.Row;
+import org.apache.iotdb.commons.udf.api.collector.PointCollector;
+import org.apache.iotdb.commons.udf.api.customizer.config.UDTFConfigurations;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameterValidator;
+import org.apache.iotdb.commons.udf.api.customizer.parameter.UDFParameters;
+import org.apache.iotdb.commons.udf.api.customizer.strategy.RowByRowAccessStrategy;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;