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

jiangtian pushed a change to branch force_ci/alter_column_datatype
in repository https://gitbox.apache.org/repos/asf/iotdb.git


    from 5f081de325e compact compatibility with alter column datatype (#15010)
     add ee8b308d922 Fix resetPeerListTest for unstable port binding #15038
     add ce47273ba7f Subscription: let subscription module fully manage the 
parsing process of the insert node event (#15012)
     add ea4322722f3 Fix some issue in auth model.
     add 5bb6803e999 Pipe: Implemented runtime permission check (#14885)
     add 3b246f1f551 [Fix](query) Fix the calc logic of dispatch read time 
(#15036)
     add 55dc0478376 Fix division by zero error when flush memtable (#15045)
     add 59c1a8ef114 Load: Fix memory size counting on cases when query 
engine's memory is not sufficient (#15049)
     add af11a09648f Pipe: Fix tsfile resource deserialize failed (#15052) 
(#15053)
     add d7dbf41d95b Pipe: Fixed the pipe parsing bug for logical view (#15055)
     add cc0a99a456f Pipe: Optimize realtime performace when pipe starts after 
long time stop with heavy data backlog (#15048) (#15057)
     add f4fd9666876 Introduce User-defined Polymorphic Table Function
     add a7ebfa82873 DAL: Fix deletion buffer oom & enable DAL direct memory 
management
     add 40dd0315408 change next to nextWithTimer (#15071)
     add b2bacd3f284 Fix Memory Statistic in TimePartionInfoManager (#15073)
     add 5b917560d6d Fix the display of current database during switching 
between table and tree model
     add 24a93f578e9 Fixed the concurrency bug of create timeseries / 
set(unset) template & Optimized the table log & Removed the useless 
timeseries/table lock (#15062)
     add f16252d8105 [AINode] Support output time column for model inference
     add 3cab8602ebd IoTConsensusV2: Fix borrow tsfileWriter and delete 
tsfileWriter's file concurrency bug #15072
     add d756afb335f Timestamp of Long.MIN_VALUE may be deleted by ttl in 
compaction task (#15067)
     add e320964de18 Fix the exception handle of InsertionCompactionTask 
(#15074)
     add ce5cfed4cf7 Update DataNodeRegionManager.java (#15076)
     add 3f9778a6004 Compatibility modification for LikeViewExpression 
deserialization
     add df9dc4900fb Add exchange node for every children of 
MultiChildProcessNode
     add 1dcf94262f8 fix: memory cost for aligned tvlist (#15079)
     add 8aaaf8ea0c1 [feat](query) Implement column name match when query in 
TableModel (#14928)
     add 591fc141534 Try fix error inconsistent bug
     add 6a0815577c2 Modify the error message for when parameters do not match
     add 06c0911adca [RTO/RPO] Phi logging/concurrency Improvement (#15092)
     add 69fca073930 Pipe: Fix pipe executor stuck by unlimited file event 
memory allocation retries & Pipe: Fix IO triggered in disruptor & Pipe: Fix 
forceAllocateIfSufficient & Load: Remove RM detect logic during the second 
phase (#15085) (#15091)
     add 2d0ba711075 Int + Date and Long + Date do not check if the date 
exceeds the range
     add bcb18d24a01 IoTConsensusV2: Retry with power-increasing interval when 
follower is read-only (#15075)
     add 98f397c4c49 Optimize the logic of get ReplicaSets for devices
     add 8f15cceca31 Refactor DeviceEntry's attributeValues from List<Binary> 
to Binary[] to reduce the cost of ramBytesUsed()
     add a8e5080fc9c Remove useless metrics in AggTableScan and make the 
TimeseriesMetadataCache get time as FI level
     add 79a6e12b486 Close Session In ImportDataTable (#15065)
     add d3bd5c7bec3 Omitted the useless distinct logic for device when 
determined predicate does not contain "OR"
     add 07e0d21478a [opt](query) Improve the logic to calculate 
TRegionReplicaSets for devices (#15102)
     add 98acf8e5090 Optimized the query logic to make schema or weak data 
query read from local first & random if without local (#15106)
     add a637327f31d  fix create region group (#15108)
     add 19067243d0c Subscription IT: fix 
IoTDBConsumer2With1TopicShareProcessTsfileIT (#15110)
     add 010843f8933 Optimized the show/query devices logic to only return 
required attributes & Reduced unnecessary CPU usage in schema tsBlock building 
(#15109)
     add ec06abee8fc Fix template extension with null value (#15103)
     add 35377c69004 Make error msg be semantic when the functionality is not 
supported
     add 385d0df5f9f Enhance remove unexisted confignode error message #15117
     add c09bb166883 Optimize query execution in easy count(*) cases
     add 5ab0c1adbfd Try to compatiable with 1.3.X view
     add c6d1f493b0d Fix the wrong time index type check in 
CrossSpaceCompaction (#15095)
     add 93197a426ea fix mods file metrics (#15107)
     add 93ec99d7ad0 Make removed confignode can rejoin cluster without 
deleting data dir (#15118)
     add 411f45f99a2 feat: move costTime to execute finished
     add 8e650cbb1e1 Pipe: Reduced the log of epoch switching & Optimized the 
memory calculation of insertion event & Refactor & Optimized the memory 
reservation logic of tsFile parser provider & Added the missing parsing logic + 
Fixed the wrong listening types to table meta sync & Skipped the file parsing 
in privilege for empty file and root user & Subscription IT: assertGte for 
received tsfile count (#15068)
     add 0e395feb01c Pipe: Added memory control for receiver insert statements 
(#15046)
     add ab784fbfabb Revert "Optimized the query logic to make schema or weak 
data query read from local first & random if without local (#15106)" (#15127)
     add 50a48ce42b3 Load & Region Migrate: Notify all DNs before and after RM 
(#15032)
     add db614fb8eda IoTConsensusV2: Fix concurrency bug when client traffic is 
extremely high (#15129)
     add c792db04207 Trim port in stop scripts & data dir (#15134)
     add f76c2c98251 Enhance remove unexisted datanode error message #15138
     add f4e6660f06d Fix duplicate recovery of RelationalInsertTabletNode 
(#15105)
     add da246d7ae06 perf: various types of iterator for multiple tvlists in 
memchunk (#15114)
     add 90e3cb1fc97 Merge branch 'master' into force_ci/alter_column_datatype

No new revisions were added by this update.

Summary of changes:
 .../iotdb/udf/table/ExcludeColumnExample.java      |  108 ++
 .../org/apache/iotdb/udf/table/RepeatExample.java  |  125 ++
 .../org/apache/iotdb/udf/table/SplitExample.java   |  114 ++
 .../example/relational/MyErrorTableFunction.java   |  114 ++
 .../udf/example/relational/MyExcludeColumn.java    |   89 ++
 .../udf/example/relational/MyRepeatWithIndex.java  |  102 ++
 .../example/relational/MyRepeatWithoutIndex.java   |   99 ++
 .../db/query/udf/example/relational/MySplit.java   |   98 ++
 .../org/apache/iotdb/ainode/it/AINodeBasicIT.java  |   15 +-
 .../it/cluster/IoTDBClusterNodeGetterIT.java       |    2 +-
 .../iotdb/db/it/auth/IoTDBRelationalAuthIT.java    |   55 +-
 .../iotdb/db/it/schema/IoTDBExtendTemplateIT.java  |    7 +
 .../org/apache/iotdb/db/it/utils/TestUtils.java    |    1 -
 .../pipe/it/dual/tablemodel/TableModelUtils.java   |    6 +
 .../manual/basic/IoTDBPipeDataSinkIT.java          |    6 +
 .../manual/basic/IoTDBPipeExtractorIT.java         |    7 +
 .../manual/basic/IoTDBPipeLifeCycleIT.java         |   10 +
 .../manual/basic/IoTDBPipePermissionIT.java        |  226 ++++
 .../manual/basic/IoTDBPipeProtocolIT.java          |    4 +
 .../manual/basic/IoTDBPipeSwitchStatusIT.java      |    4 +
 .../tablemodel/manual/basic/IoTDBPipeSyntaxIT.java |    1 +
 .../manual/basic/IoTDBPipeWithLoadIT.java          |    4 +
 .../manual/basic/IoTDBTablePatternFormatIT.java    |    7 +
 .../manual/enhanced/IoTDBPipeAutoConflictIT.java   |    4 +
 .../manual/enhanced/IoTDBPipeAutoDropIT.java       |    2 +
 .../manual/enhanced/IoTDBPipeClusterIT.java        |   13 +
 .../enhanced/IoTDBPipeConnectorCompressionIT.java  |   12 +-
 .../enhanced/IoTDBPipeConnectorParallelIT.java     |    2 +
 .../manual/enhanced/IoTDBPipeIdempotentIT.java     |    1 +
 .../manual/enhanced/IoTDBPipeMetaIT.java           |    4 +
 .../manual/enhanced/IoTDBPipeNullValueIT.java      |    1 +
 .../pipe/it/single/IoTDBPipePermissionIT.java      |  157 +++
 .../it/db/it/IoTDBFlushQueryTableIT.java           |   30 +-
 .../db/it/IoTDBMultiTAGsWithAttributesTableIT.java |   16 +-
 .../it/db/it/udf/IoTDBSQLFunctionManagementIT.java |   22 +-
 .../db/it/udf/IoTDBUserDefinedTableFunctionIT.java |  272 ++++
 .../scalar/IoTDBFormatFunctionTableIT.java         |    2 +-
 .../it/query/old/query/IoTDBArithmeticTableIT.java |   12 +
 .../it/query/recent/IoTDBColumnsMatchTableIT.java  |  354 +++++
 .../IoTDBCorrelatedExistsSubqueryIT.java           |   24 +-
 .../relational/it/schema/IoTDBDatabaseIT.java      |    6 +-
 .../IoTDBDefaultPullConsumerDataSetIT.java         |   28 +-
 ...TDBConsumer2With1TopicShareProcessTsfileIT.java |   14 +-
 .../IoTDBPathLooseDeviceTsfilePushConsumerIT.java  |   10 +-
 .../IoTDBTimeLooseTsfilePushConsumerIT.java        |   10 +-
 .../IoTDBTSPatternTsfilePushConsumerIT.java        |    2 +-
 .../time/IoTDBRealTimeDBTsfilePushConsumerIT.java  |    8 +-
 .../time/IoTDBTimeRangeDBTsfilePushConsumerIT.java |   22 +-
 ...ensusRetryWithIncreasingIntervalException.java} |    4 +-
 .../iotdb/udf/api/relational/TableFunction.java    |   83 +-
 .../iotdb/udf/api/relational/access/Record.java    |    2 +
 .../relational/table/TableFunctionAnalysis.java    |   89 ++
 .../table/TableFunctionProcessorProvider.java      |   43 +
 .../api/relational/table/argument/Argument.java    |   33 +-
 .../relational/table/argument/DescribedSchema.java |   89 ++
 .../relational/table/argument/ScalarArgument.java  |  155 +++
 .../relational/table/argument/TableArgument.java   |  177 +++
 .../processor/TableFunctionDataProcessor.java      |   64 +
 .../processor/TableFunctionLeafProcessor.java      |   31 +-
 .../specification/ParameterSpecification.java      |   77 ++
 .../ScalarParameterSpecification.java              |   76 ++
 .../specification/TableParameterSpecification.java |   98 ++
 .../java/org/apache/iotdb/udf/api/type/Type.java   |   38 +
 .../java/org/apache/iotdb/cli/AbstractCli.java     |   22 +-
 .../org/apache/iotdb/tool/common/Constants.java    |    3 +-
 .../org/apache/iotdb/tool/common/OptionsUtil.java  |    3 -
 .../org/apache/iotdb/tool/data/ExportData.java     |   11 +-
 .../apache/iotdb/tool/data/ExportDataTable.java    |  192 +--
 .../org/apache/iotdb/tool/data/ExportDataTree.java |  185 +--
 .../org/apache/iotdb/tool/data/ImportData.java     |    2 +-
 .../apache/iotdb/tool/data/ImportDataTable.java    |   16 +-
 .../assembly/resources/sbin/stop-confignode.bat    |   25 +-
 .../src/assembly/resources/sbin/stop-confignode.sh |    4 +
 .../confignode/client/CnToCnNodeRequestType.java   |    2 +-
 .../client/async/CnToDnAsyncRequestType.java       |    1 +
 .../CnToDnInternalServiceAsyncRequestManager.java  |    6 +
 .../rpc/DataNodeAsyncRequestRPCHandler.java        |    1 +
 .../client/sync/SyncConfigNodeClientPool.java      |    6 +-
 .../write/pipe/payload/PipeDeleteDevicesPlan.java  |   44 +-
 .../request/write/table/AbstractTablePlan.java     |   15 +-
 .../confignode/manager/PermissionManager.java      |    4 +
 .../iotdb/confignode/manager/ProcedureManager.java |    2 +-
 .../load/cache/detector/PhiAccrualDetector.java    |    4 +-
 .../load/cache/node/AINodeHeartbeatCache.java      |   35 +-
 .../load/cache/node/ConfigNodeHeartbeatCache.java  |   24 +-
 .../load/cache/node/DataNodeHeartbeatCache.java    |   37 +-
 .../manager/load/cache/region/RegionCache.java     |   24 +-
 .../pipe/event/PipeConfigRegionSnapshotEvent.java  |   14 +-
 .../pipe/event/PipeConfigRegionWritePlanEvent.java |   26 +-
 .../extractor/ConfigRegionListeningFilter.java     |    3 +-
 .../pipe/extractor/IoTDBConfigRegionExtractor.java |  108 ++
 ...ConfigPhysicalPlanTablePatternParseVisitor.java |   62 +-
 ...nfigPhysicalPlanTablePrivilegeParseVisitor.java |  382 ++++++
 ...eConfigPhysicalPlanTreePatternParseVisitor.java |    2 +-
 .../receiver/protocol/IoTDBConfigNodeReceiver.java |   37 +-
 .../iotdb/confignode/persistence/AuthorInfo.java   |    4 +
 .../procedure/env/ConfigNodeProcedureEnv.java      |   20 +-
 .../impl/node/RemoveConfigNodeProcedure.java       |    8 +-
 .../impl/pipe/task/AlterPipeProcedureV2.java       |   66 +-
 .../impl/pipe/task/CreatePipeProcedureV2.java      |   97 ++
 .../impl/region/CreateRegionGroupsProcedure.java   |   35 +-
 .../region/NotifyRegionMigrationProcedure.java     |  137 ++
 .../impl/region/RegionMigrateProcedure.java        |    2 +
 .../impl/schema/UnsetTemplateProcedure.java        |  146 +-
 ...eState.java => NotifyRegionMigrationState.java} |    5 +-
 .../procedure/state/RemoveConfigNodeState.java     |    2 +-
 .../procedure/store/ProcedureFactory.java          |    7 +
 .../confignode/procedure/store/ProcedureType.java  |    1 +
 .../thrift/ConfigNodeRPCServiceProcessor.java      |   10 +-
 ...igPhysicalPlanTablePatternParseVisitorTest.java |    9 +
 ...figPhysicalPlanTreePatternParseVisitorTest.java |    2 +-
 .../consensus/iot/client/DispatchLogHandler.java   |   27 +-
 .../pipe/consensuspipe/ConsensusPipeManager.java   |    8 +-
 .../apache/iotdb/consensus/iot/StabilityTest.java  |   49 +-
 .../src/assembly/resources/conf/datanode-env.sh    |    3 +
 .../src/assembly/resources/sbin/stop-datanode.bat  |   23 +-
 .../src/assembly/resources/sbin/stop-datanode.sh   |    4 +
 .../ArithmeticBinaryColumnTransformer.ftl          |   11 +
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    2 +
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |    3 +
 .../template/NoTemplateOnMNodeException.java       |   34 -
 .../db/pipe/agent/task/PipeDataNodeTaskAgent.java  |   54 +-
 .../agent/task/connection/PipeEventCollector.java  |   24 +-
 .../agent/task/stage/PipeTaskProcessorStage.java   |    4 +-
 .../PipeRealtimePriorityBlockingQueue.java         |   49 +-
 .../subtask/processor/PipeProcessorSubtask.java    |    3 +
 .../protocol/opcda/OpcDaServerHandle.java          |    4 +-
 .../connector/protocol/opcua/OpcUaNameSpace.java   |    4 +-
 .../async/IoTDBDataRegionAsyncConnector.java       |   41 +-
 .../async/handler/PipeTransferTsFileHandler.java   |   15 +-
 .../protocol/writeback/WriteBackConnector.java     |   83 +-
 .../deletion/persist/PageCacheDeletionBuffer.java  |    9 +-
 .../db/pipe/event/UserDefinedEnrichedEvent.java    |   14 +-
 .../db/pipe/event/common/PipeInsertionEvent.java   |   17 +-
 .../common/deletion/PipeDeleteDataNodeEvent.java   |   31 +-
 .../event/common/heartbeat/PipeHeartbeatEvent.java |   15 +-
 .../schema/PipeSchemaRegionSnapshotEvent.java      |   16 +-
 .../schema/PipeSchemaRegionWritePlanEvent.java     |   18 +-
 .../tablet/PipeInsertNodeTabletInsertionEvent.java |   69 +-
 .../common/tablet/PipeRawTabletInsertionEvent.java |   22 +-
 .../tablet/parser/TabletInsertionEventParser.java  |   15 +-
 .../event/common/terminate/PipeTerminateEvent.java |   13 +-
 .../common/tsfile/PipeTsFileInsertionEvent.java    |  123 +-
 .../parser/TsFileInsertionEventParserProvider.java |   24 +-
 .../table/TsFileInsertionEventTableParser.java     |   22 +-
 .../db/pipe/event/realtime/PipeRealtimeEvent.java  |   28 +-
 .../event/realtime/PipeRealtimeEventFactory.java   |   22 +-
 .../dataregion/IoTDBDataRegionExtractor.java       |    2 +-
 ...oricalDataRegionTsFileAndDeletionExtractor.java |   24 +-
 .../realtime/PipeRealtimeDataRegionExtractor.java  |   20 +
 .../PipeRealtimeDataRegionHybridExtractor.java     |   19 +-
 .../realtime/assigner/PipeDataRegionAssigner.java  |    8 +
 .../realtime/epoch/TsFileEpochManager.java         |    8 +-
 .../listener/PipeInsertionDataNodeListener.java    |    6 +
 .../matcher/CachedSchemaPatternMatcher.java        |   40 +-
 .../realtime/matcher/PipeDataRegionMatcher.java    |    3 +
 .../schemaregion/IoTDBSchemaRegionExtractor.java   |   78 ++
 ...ava => PipePlanTablePrivilegeParseVisitor.java} |   46 +-
 .../schemaregion/PipeStatementToPlanVisitor.java   |   48 +
 .../pipeconsensus/PipeConsensusReceiver.java       |   49 +-
 .../protocol/thrift/IoTDBDataNodeReceiver.java     |   52 +-
 ...leStatementDataTypeConvertExecutionVisitor.java |    1 +
 .../resource/memory/InsertNodeMemoryEstimator.java |  319 +----
 .../db/pipe/resource/memory/PipeMemoryManager.java |   31 +-
 .../pipe/resource/tsfile/PipeTsFileResource.java   |    6 +-
 .../iotdb/db/protocol/client/ConfigNodeClient.java |    4 +-
 .../v1/handler/StatementConstructionHandler.java   |    2 +-
 .../impl/DataNodeInternalRPCServiceImpl.java       |  112 +-
 .../db/queryengine/execution/driver/Driver.java    |   15 +-
 .../execution/exchange/SharedTsBlockQueue.java     |   11 +
 .../execution/exchange/sink/ISinkChannel.java      |    2 +
 .../execution/exchange/sink/LocalSinkChannel.java  |   21 +-
 .../execution/exchange/sink/ShuffleSinkHandle.java |    3 +
 .../execution/exchange/sink/SinkChannel.java       |    3 +-
 .../exchange/source/LocalSourceHandle.java         |   12 +-
 .../execution/executor/RegionWriteExecutor.java    |   18 +-
 .../fragment/FragmentInstanceContext.java          |   70 +-
 .../fragment/FragmentInstanceExecution.java        |   18 +-
 .../fragment/FragmentInstanceManager.java          |   24 +-
 .../execution/fragment/QueryStatistics.java        |   10 +
 .../operator/process/AssignUniqueIdOperator.java   |    2 +-
 .../operator/process/CollectOperator.java          |    7 +
 .../operator/process/EnforceSingleRowOperator.java |    2 +-
 .../operator/process/ai/InferenceOperator.java     |   42 +-
 .../process/function/PartitionRecognizer.java      |  179 +++
 .../function/TableFunctionLeafOperator.java        |  111 ++
 .../process/function/TableFunctionOperator.java    |  269 ++++
 .../process/function/partition/PartitionState.java |   62 +
 .../operator/process/function/partition/Slice.java |  183 +++
 .../process/function/partition/SliceCache.java     |  106 ++
 .../process/window/TableWindowOperator.java        |    2 +-
 .../schema/source/DeviceAttributeUpdater.java      |   10 +-
 .../schema/source/DeviceBlackListConstructor.java  |   11 +-
 .../schema/source/DevicePredicateFilter.java       |   13 +-
 .../schema/source/DevicePredicateHandler.java      |   22 +-
 .../operator/schema/source/DeviceUpdater.java      |   13 +-
 .../schema/source/SchemaSourceFactory.java         |    4 +-
 .../schema/source/TableDeviceQuerySource.java      |   21 +-
 .../operator/sink/ShuffleHelperOperator.java       |    2 +-
 .../relational/AbstractAggTableScanOperator.java   |   17 +-
 .../relational/AbstractMergeSortJoinOperator.java  |    4 +-
 .../relational/AbstractTableScanOperator.java      |    2 +-
 .../relational/LastQueryAggTableScanOperator.java  |    6 +-
 .../relational/aggregation/TableAggregator.java    |    9 +-
 .../execution/schedule/AbstractDriverThread.java   |   27 +-
 .../execution/schedule/DriverScheduler.java        |    2 +-
 .../metric/SeriesScanCostMetricSet.java            |   40 +-
 .../queryengine/plan/analyze/AnalyzeVisitor.java   |   49 +-
 .../plan/analyze/ClusterPartitionFetcher.java      |    5 -
 .../plan/analyze/IPartitionFetcher.java            |    4 -
 .../plan/analyze/lock/SchemaLockType.java          |   13 -
 .../plan/analyze/schema/TemplateSchemaFetcher.java |   11 +-
 .../queryengine/plan/execution/QueryExecution.java |    5 +
 .../execution/config/TableConfigTaskVisitor.java   |   80 +-
 .../config/executor/ClusterConfigTaskExecutor.java |   34 +-
 .../config/metadata/ShowFunctionsTask.java         |    6 +
 .../db/queryengine/plan/parser/ASTVisitor.java     |    3 +
 .../plan/parser/StatementGenerator.java            |    4 +-
 .../plan/planner/LogicalPlanBuilder.java           |    1 +
 .../plan/planner/LogicalPlanVisitor.java           |    2 +-
 .../plan/planner/OperatorTreeGenerator.java        |    1 +
 .../plan/planner/TableOperatorGenerator.java       |  113 +-
 .../SimpleFragmentParallelPlanner.java             |    2 +-
 .../plan/planner/plan/PlanFragment.java            |   22 +-
 .../plan/planner/plan/node/PlanGraphPrinter.java   |   54 +
 .../plan/planner/plan/node/PlanNodeType.java       |    9 +-
 .../plan/planner/plan/node/PlanVisitor.java        |   10 +
 .../plan/node/process/AI/InferenceNode.java        |   18 +-
 .../plan/relational/analyzer/Analysis.java         |   27 +-
 .../relational/analyzer/ExpressionAnalyzer.java    |    6 +
 .../relational/analyzer/StatementAnalyzer.java     | 1392 +++++++++++++++++++-
 .../tablefunction/ArgumentAnalysis.java}           |   29 +-
 .../tablefunction/ArgumentsAnalysis.java}          |   54 +-
 .../tablefunction/TableArgumentAnalysis.java       |  152 +++
 .../TableFunctionInvocationAnalysis.java           |   68 +
 .../relational/metadata/AlignedDeviceEntry.java    |   20 +-
 .../plan/relational/metadata/DeviceEntry.java      |   26 +-
 .../plan/relational/metadata/Metadata.java         |    3 +
 .../metadata/NonAlignedAlignedDeviceEntry.java     |   20 +-
 .../relational/metadata/TableMetadataImpl.java     |   15 +-
 .../plan/relational/metadata/TableSchema.java      |    2 +-
 .../fetcher/DeviceInCacheFilterVisitor.java        |    4 +-
 .../metadata/fetcher/SchemaPredicateUtil.java      |   10 +-
 .../metadata/fetcher/TableDeviceSchemaFetcher.java |   21 +-
 .../planner/DataOrganizationSpecification.java     |  106 ++
 .../plan/relational/planner/QueryPlanner.java      |   20 +
 .../plan/relational/planner/RelationPlanner.java   |  137 ++
 .../relational/planner/TableLogicalPlanner.java    |   15 +-
 .../planner/distribute/AddExchangeNodes.java       |   36 +-
 .../distribute/TableDistributedPlanGenerator.java  |  178 ++-
 .../distribute/TableDistributedPlanner.java        |   12 +-
 .../distribute/TableModelQueryFragmentPlanner.java |   17 +-
 .../plan/relational/planner/ir/IrUtils.java        |   13 +-
 .../rule/ImplementTableFunctionSource.java         |  163 +++
 .../rule/PruneTableFunctionProcessorColumns.java   |   86 ++
 .../PruneTableFunctionProcessorSourceColumns.java  |   96 ++
 .../plan/relational/planner/node/ExchangeNode.java |    6 +-
 .../plan/relational/planner/node/OutputNode.java   |    2 +
 .../plan/relational/planner/node/Patterns.java     |   13 +-
 .../relational/planner/node/TableFunctionNode.java |  358 +++++
 .../planner/node/TableFunctionProcessorNode.java   |  274 ++++
 .../optimizations/LogicalOptimizeFactory.java      |    6 +
 .../PushLimitOffsetIntoTableScan.java              |   11 +
 .../optimizations/PushPredicateIntoTableScan.java  |    3 +-
 .../planner/optimizations/SymbolMapper.java        |    7 +
 .../optimizations/UnaliasSymbolReferences.java     |  107 ++
 .../plan/relational/security/AccessControl.java    |   12 +
 .../relational/security/AccessControlImpl.java     |   23 +-
 .../relational/security/AllowAllAccessControl.java |   10 +
 .../relational/security/ITableAuthChecker.java     |    3 +
 .../relational/security/ITableAuthCheckerImpl.java |   18 +
 .../sql/ast/AbstractQueryDeviceWithCache.java      |   33 +-
 .../relational/sql/ast/AbstractTraverseDevice.java |   11 +-
 .../plan/relational/sql/ast/AstVisitor.java        |   17 +
 .../sql/ast/{NotExpression.java => Columns.java}   |   51 +-
 .../plan/relational/sql/ast/DeleteDevice.java      |   19 +-
 .../plan/relational/sql/ast/ShowDevice.java        |   10 +-
 .../plan/relational/sql/ast/SingleColumn.java      |   21 +
 .../ast/{Table.java => TableFunctionArgument.java} |   53 +-
 .../{Table.java => TableFunctionInvocation.java}   |   53 +-
 .../sql/ast/TableFunctionTableArgument.java        |  119 ++
 .../queryengine/plan/relational/sql/ast/Trim.java  |    2 +-
 .../plan/relational/sql/parser/AstBuilder.java     |  165 ++-
 .../relational/sql/util/ExpressionFormatter.java   |    6 +
 .../plan/relational/sql/util/SqlFormatter.java     |   75 ++
 .../scheduler/FragmentInstanceDispatcherImpl.java  |   54 +-
 .../scheduler/load/LoadTsFileDispatcherImpl.java   |   27 +-
 .../plan/scheduler/load/LoadTsFileScheduler.java   |   34 +-
 .../plan/statement/crud/InsertBaseStatement.java   |   46 +-
 .../crud/InsertMultiTabletsStatement.java          |   16 +
 .../plan/statement/crud/InsertRowStatement.java    |   13 +
 .../crud/InsertRowsOfOneDeviceStatement.java       |   16 +
 .../plan/statement/crud/InsertRowsStatement.java   |   16 +
 .../plan/statement/crud/InsertTabletStatement.java |   18 +
 .../plan/statement/crud/QueryStatement.java        |    9 +
 .../attribute/update/UpdateDetailContainer.java    |    2 +-
 .../schemaregion/impl/SchemaRegionMemoryImpl.java  |   29 +-
 .../read/resp/info/impl/ShowDevicesResult.java     |    2 +-
 .../db/schemaengine/table/DataNodeTableCache.java  |   28 +-
 .../template/TemplateInternalRPCUpdateType.java    |    5 +-
 .../iotdb/db/service/RegionMigrateService.java     |   18 +
 .../buffer/TimeSeriesMetadataCache.java            |   23 +-
 .../db/storageengine/dataregion/DataRegion.java    |   11 +-
 .../dataregion/VirtualDataRegion.java              |    2 +-
 .../task/InsertionCrossSpaceCompactionTask.java    |   10 +-
 .../execute/utils/MultiTsFileDeviceIterator.java   |    5 +-
 .../writer/AbstractCrossCompactionWriter.java      |   25 +-
 .../utils/writer/FastCrossCompactionWriter.java    |   12 +
 .../memtable/AlignedReadOnlyMemChunk.java          |  248 ++--
 .../memtable/AlignedWritableMemChunk.java          |  166 +--
 .../dataregion/memtable/ReadOnlyMemChunk.java      |  160 +--
 .../dataregion/memtable/WritableMemChunk.java      |  164 +--
 .../read/reader/chunk/MemAlignedChunkReader.java   |  154 +--
 .../read/reader/chunk/MemAlignedPageReader.java    |   22 +-
 .../read/reader/chunk/MemChunkReader.java          |  111 +-
 .../read/reader/chunk/MemPageReader.java           |   23 +-
 .../dataregion/tsfile/TsFileResource.java          |   68 +-
 .../dataregion/tsfile/TsFileResourceBlockType.java |    3 +
 .../tsfile/timeindex/ArrayDeviceTimeIndex.java     |   15 +-
 .../dataregion/tsfile/timeindex/FileTimeIndex.java |    2 +-
 .../wal/recover/file/TsFilePlanRedoer.java         |   27 +-
 .../dataregion/wal/utils/WALEntryHandler.java      |    4 +-
 .../dataregion/wal/utils/WALInsertNodeCache.java   |   11 +-
 ...leStatementDataTypeConvertExecutionVisitor.java |    1 +
 .../load/memory/LoadTsFileMemoryManager.java       |   27 +-
 .../rescon/memory/TimePartitionManager.java        |    4 +-
 .../db/tools/schema/SRStatementGenerator.java      |   23 +-
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |    3 +-
 .../db/utils/datastructure/AlignedTVList.java      |  464 +++++--
 .../{SortKey.java => MemPointIterator.java}        |   12 +-
 .../datastructure/MemPointIteratorFactory.java     |  381 ++++++
 .../MergeSortAlignedTVListIterator.java            |  194 ---
 .../MergeSortMultiAlignedTVListIterator.java       |  176 +++
 .../MergeSortMultiTVListIterator.java              |   83 ++
 .../datastructure/MergeSortTVListIterator.java     |  180 ---
 .../datastructure/MultiAlignedTVListIterator.java  |  241 ++++
 .../utils/datastructure/MultiTVListIterator.java   |  179 +++
 .../OrderedMultiAlignedTVListIterator.java         |  116 ++
 ...TVList.java => OrderedMultiTVListIterator.java} |   43 +-
 .../iotdb/db/utils/datastructure/TVList.java       |  215 ++-
 .../db/pipe/consensus/DeletionResourceTest.java    |    7 +-
 .../pipe/event/TsFileInsertionEventParserTest.java |    4 +-
 .../db/pipe/extractor/PipeRealtimeExtractTest.java |    5 +
 .../pattern/CachedSchemaPatternMatcherTest.java    |   53 +-
 .../process/tvf/TableFunctionOperatorTest.java     |  302 +++++
 .../plan/analyze/FakePartitionFetcherImpl.java     |    5 -
 .../db/queryengine/plan/function/Exclude.java      |   89 ++
 .../iotdb/db/queryengine/plan/function/Repeat.java |  106 ++
 .../iotdb/db/queryengine/plan/function/Split.java  |   98 ++
 .../plan/parser/StatementGeneratorTest.java        |    2 +-
 .../plan/planner/distribution/Util.java            |    5 -
 .../plan/planner/distribution/Util2.java           |    5 -
 .../plan/relational/analyzer/AggregationTest.java  |  305 ++---
 .../plan/relational/analyzer/AnalyzerTest.java     |  152 +--
 .../plan/relational/analyzer/DistinctTest.java     |   48 +-
 .../plan/relational/analyzer/JoinTest.java         |   94 +-
 .../analyzer/LimitOffsetPushDownTest.java          |  183 +--
 .../analyzer/MockTableModelDataPartition.java      |   63 +-
 .../plan/relational/analyzer/SortTest.java         |  288 ++--
 .../plan/relational/analyzer/SubQueryTest.java     |   44 +-
 .../plan/relational/analyzer/TSBSMetadata.java     |   35 +-
 .../relational/analyzer/TableFunctionTest.java     |  311 +++++
 .../plan/relational/analyzer/TestMatadata.java     |   39 +-
 .../plan/relational/analyzer/TestUtils.java        |   26 +
 .../plan/relational/analyzer/TreeViewTest.java     |   72 +-
 .../plan/relational/planner/ExampleTest.java       |   34 +-
 .../planner/UncorrelatedSubqueryTest.java          |  164 ++-
 .../planner/assertions/ExchangeNodeMatcher.java    |    8 +-
 .../planner/assertions/PlanMatchPattern.java       |   24 +-
 .../planner/assertions/PlanMatchingVisitor.java    |   12 +-
 .../planner/assertions/SpecificationProvider.java  |   79 ++
 .../assertions/TableFunctionProcessorMatcher.java  |  303 +++++
 .../compaction/CompactionWithMinTimestampTest.java |  136 ++
 .../FastCrossCompactionPerformerTest.java          |   78 ++
 .../dataregion/memtable/TsFileProcessorTest.java   |   28 +-
 .../reader/chunk/AlignedMemPageReaderTest.java     |    8 +-
 .../reader/chunk/MemAlignedChunkLoaderTest.java    |   12 +-
 .../read/reader/chunk/MemChunkLoaderTest.java      |   58 +-
 .../read/reader/chunk/MemPageReaderTest.java       |    4 +-
 .../wal/recover/file/TsFilePlanRedoerTest.java     |   69 +
 .../commons/auth/authorizer/BasicAuthorizer.java   |   35 +-
 .../iotdb/commons/auth/authorizer/IAuthorizer.java |   10 +-
 .../org/apache/iotdb/commons/auth/entity/Role.java |    4 +
 .../iotdb/commons/auth/user/BasicUserManager.java  |   12 +-
 .../apache/iotdb/commons/conf/CommonConfig.java    |   56 +-
 .../iotdb/commons/conf/CommonDescriptor.java       |   33 +-
 .../consensus/index/impl/HybridProgressIndex.java  |    4 +-
 .../apache/iotdb/commons/memory/IMemoryBlock.java  |    3 -
 .../commons/pipe/agent/task/PipeTaskAgent.java     |    2 +-
 .../task/subtask/PipeAbstractConnectorSubtask.java |    4 +-
 .../agent/task/subtask/PipeReportableSubtask.java  |   13 +-
 .../iotdb/commons/pipe/config/PipeConfig.java      |   34 +-
 .../config/constant/PipeConnectorConstant.java     |    4 +
 .../config/constant/PipeExtractorConstant.java     |   12 +
 .../queue/ConcurrentIterableLinkedQueue.java       |   30 +
 .../iotdb/commons/pipe/event/EnrichedEvent.java    |   28 +
 .../commons/pipe/event/PipeSnapshotEvent.java      |    4 +
 .../commons/pipe/event/PipeWritePlanEvent.java     |    4 +
 .../commons/pipe/event/ProgressReportEvent.java    |   25 +-
 .../commons/pipe/extractor/IoTDBExtractor.java     |   48 +-
 .../extractor/IoTDBNonDataRegionExtractor.java     |   74 +-
 .../pipe/receiver/PipeReceiverStatusHandler.java   |    8 +
 .../schema/table/column/TsTableColumnCategory.java |    2 +-
 .../commons/schema/view/LogicalViewSchema.java     |   13 +-
 .../multi/FunctionViewExpression.java              |   14 +
 .../viewExpression/unary/LikeViewExpression.java   |   84 +-
 .../iotdb/commons/service/metric/enums/Metric.java |    1 +
 .../commons/subscription/meta/topic/TopicMeta.java |    3 +
 .../iotdb/commons/udf/access/RecordIterator.java   |  141 +-
 .../relational/TableBuiltinTableFunction.java      |   50 +-
 .../builtin/relational/tvf/HOPTableFunction.java   |  153 +++
 .../org/apache/iotdb/commons/utils/RetryUtils.java |    8 +
 .../iotdb/commons/utils/TimePartitionUtils.java    |    7 +-
 .../ConcurrentIterableLinkedQueueTest.java         |    1 +
 .../schema/LikeViewExpreesionSerDeTest.java        |   48 +
 .../db/relational/grammar/sql/RelationalSql.g4     |   32 +-
 .../src/main/thrift/confignode.thrift              |    4 +-
 .../src/main/thrift/datanode.thrift                |   11 +-
 418 files changed, 16782 insertions(+), 4498 deletions(-)
 create mode 100644 
example/udf/src/main/java/org/apache/iotdb/udf/table/ExcludeColumnExample.java
 create mode 100644 
example/udf/src/main/java/org/apache/iotdb/udf/table/RepeatExample.java
 create mode 100644 
example/udf/src/main/java/org/apache/iotdb/udf/table/SplitExample.java
 create mode 100644 
integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/relational/MyErrorTableFunction.java
 create mode 100644 
integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/relational/MyExcludeColumn.java
 create mode 100644 
integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/relational/MyRepeatWithIndex.java
 create mode 100644 
integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/relational/MyRepeatWithoutIndex.java
 create mode 100644 
integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/relational/MySplit.java
 create mode 100644 
integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/basic/IoTDBPipePermissionIT.java
 create mode 100644 
integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipePermissionIT.java
 create mode 100644 
integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/udf/IoTDBUserDefinedTableFunctionIT.java
 create mode 100644 
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBColumnsMatchTableIT.java
 copy 
iotdb-api/pipe-api/src/main/java/org/apache/iotdb/pipe/api/exception/{PipeStrategyNotValidException.java
 => PipeConsensusRetryWithIncreasingIntervalException.java} (84%)
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/TableFunctionAnalysis.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/TableFunctionProcessorProvider.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/function/FunctionKind.java
 => 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/argument/Argument.java
 (58%)
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/argument/DescribedSchema.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/argument/ScalarArgument.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/argument/TableArgument.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/processor/TableFunctionDataProcessor.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/Literal.java
 => 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/processor/TableFunctionLeafProcessor.java
 (58%)
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/specification/ParameterSpecification.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/specification/ScalarParameterSpecification.java
 create mode 100644 
iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/relational/table/specification/TableParameterSpecification.java
 create mode 100644 
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/extractor/PipeConfigPhysicalPlanTablePrivilegeParseVisitor.java
 create mode 100644 
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/NotifyRegionMigrationProcedure.java
 copy 
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/state/{RemoveAINodeState.java
 => NotifyRegionMigrationState.java} (93%)
 delete mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/exception/metadata/template/NoTemplateOnMNodeException.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/{PipePlanTablePatternParseVisitor.java
 => PipePlanTablePrivilegeParseVisitor.java} (59%)
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/schemaregion/PipeStatementToPlanVisitor.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/PartitionRecognizer.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionLeafOperator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/TableFunctionOperator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/PartitionState.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/Slice.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/function/partition/SliceCache.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/{type/TypeNotFoundException.java
 => analyzer/tablefunction/ArgumentAnalysis.java} (53%)
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/{sql/ast/ShowConfigNodes.java
 => analyzer/tablefunction/ArgumentsAnalysis.java} (50%)
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableArgumentAnalysis.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/tablefunction/TableFunctionInvocationAnalysis.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/DataOrganizationSpecification.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/ImplementTableFunctionSource.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorColumns.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/iterative/rule/PruneTableFunctionProcessorSourceColumns.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionNode.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/planner/node/TableFunctionProcessorNode.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/{NotExpression.java
 => Columns.java} (64%)
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/{Table.java
 => TableFunctionArgument.java} (57%)
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/{Table.java
 => TableFunctionInvocation.java} (58%)
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/sql/ast/TableFunctionTableArgument.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/{SortKey.java
 => MemPointIterator.java} (82%)
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MemPointIteratorFactory.java
 delete mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortAlignedTVListIterator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortMultiAlignedTVListIterator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortMultiTVListIterator.java
 delete mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MergeSortTVListIterator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MultiAlignedTVListIterator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/MultiTVListIterator.java
 create mode 100644 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/OrderedMultiAlignedTVListIterator.java
 copy 
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/utils/datastructure/{TimAlignedTVList.java
 => OrderedMultiTVListIterator.java} (50%)
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/process/tvf/TableFunctionOperatorTest.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/Exclude.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/Repeat.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/Split.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/TableFunctionTest.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/SpecificationProvider.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/planner/assertions/TableFunctionProcessorMatcher.java
 create mode 100644 
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionWithMinTimestampTest.java
 copy 
integration-test/src/main/java/org/apache/iotdb/itbase/constant/BuiltinAggregationFunctionEnum.java
 => 
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/relational/TableBuiltinTableFunction.java
 (53%)
 create mode 100644 
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/relational/tvf/HOPTableFunction.java
 create mode 100644 
iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/schema/LikeViewExpreesionSerDeTest.java


Reply via email to