You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2024/02/29 07:28:37 UTC
(iotdb) branch ty/TableModelGrammar updated (4676d100dbf -> 5bbcd7b1ee4)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a change to branch ty/TableModelGrammar
in repository https://gitbox.apache.org/repos/asf/iotdb.git
from 4676d100dbf finish analyze
add c26c545b16b Bump jackson.version from 2.15.2 to 2.15.3 (#12014)
add d4fd2de8c90 IT framework supports restarting cluster (#12022)
add ee136f10449 Fix typo for parameter dn_multi_dir_strategy (#12033)
add 9534fecc1a9 Upgrade github action version to fix the warning (#12032)
add f8562c7c983 Introduce UDAF(User-Defined Aggregation Functions)
add 1e37accd4e8 Pipe: Move parsing event logic into PipeProcessorSubtask to separate CPU intensive and IO intensive tasks (#11965)
add 01e487e33f7 DataNodeDevicePathCache should use free memory of memtable (#12034)
add b78a88002f1 Pipe: Revert "Pipe: stop pipe using restarting strategy to unpin the wal's reference count to avoid WAL stacking (#11971)" to avoid unnecessary pipe drop during subtask exception handling (#12031)
add 89b98042239 Pipe: Removed mayLinkedTsFileCountReachDangerousThreshold judgement from stuck restart logic (#12041)
add 1e7c9c0885a Pipe: fixed the bug that processor dies when encountered memory shortage for tablets in a period of time (#12042)
add cc4dc0a9ed0 Pipe: Reduced pipe logs and controlled how often the log is printed below a certain frequency (#11973)
add bcedeb7d0fd [IOTDB-6296] Fix memory leak in MQTTService
add 76702b0e2fa Pipe: Pattern parsing pruning: When pattern is at the level below database, the parsing logic can be skipped if tsfiles / tablets completely match with the pattern (#12049)
add 1039a5471a8 Bump org.apache.commons:commons-compress from 1.21 to 1.26.0 (#12058)
add 24638f699ce Bump ip from 2.0.0 to 2.0.1 in /iotdb-connector/grafana-plugin (#12057)
add a67b0c02b6e Pipe: fixed potential lose point bug caused by cancelled flush of historical extractor (#12056)
add f35b2a5306e Fix it which use 'merge' command (#12060)
add 4ca47c7c539 Pipe: Fixed the bug that CN cannot sense drop pipe failure in meta sync and may lead to constantly skip of drop pipe (#12059)
add f5b88fb0e93 [IOTDB-6297] Optimize the distribute plan in the situation of `aggregation with align by device`
add 8b5a6d7bfa7 [IOTDB-6298] Fix number overflow in group by time interval
add b5dfbfd4129 [IOTDB-6299] Fix bug in merging overlapped data process caused by filter & offset push down
add 2a91bb5904e Introduce Aggregation Function MinBy
add 5f796ba7c8d Add recover IT for Procedure, and delete ProcedureStore (#12045)
add bc8d866f4e8 PBTree: Implement dual-buffer container for MNode management (#12048)
add 8aeab9f81d1 Optimize flushing memtable check (#12081)
add 4bb3c65c712 [IOTDB-6302] Enhance the support of ISO_LOCAL_DATE_TIME timestamp format (#12086)
add 657230f25b7 IT: revert some changes in restart IT to make the error log clear when failed to restart (#12066)
add 78634968b9c change ci to github ci (#12073)
add ba6900331ec feat(bat): add title and set format (#12069)
add 60cb68c806c Fix dead lock in PBTree.SchemaFile (#12079)
add cb93f12ca0a fix.root privileges lost and grant role
add 086445cccd9 [IOTDB-6300] Support place time column at any column index in insert statement
add 1b9c712dfd7 Make Drop database timeout return message more detailed (#12082)
add 3e1061717bd Fix VolatileSubtreeIterator missing update buffer if all nodes in new buffer are not qualified (#12093)
add ba866841453 Pbtree: MNode iterating with merge sort upon disk and buffer (#12077)
add 80857ee026f Add FileUtils.moveFileSafe function (#12094)
add 7833e6dd079 Add logs for data partition allocation (#12090)
add e7918cc5b5f fix: IoTDBPreparedStatement implement addBatch function (#12095)
add 686ae1b54ff [IOTDB-6303] Correct the default path of user, role and procedure folder (#12089)
add c3c48a2e321 Cache clusterId in IoTDBConfig (#12053)
new cd254c2fdd3 Merge remote-tracking branch 'origin/master' into ty/TableModelGrammar
new 5bbcd7b1ee4 first UT
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/client-cpp.yml | 10 +-
.github/workflows/client-go.yml | 6 +-
.github/workflows/client-python.yml | 4 +-
.github/workflows/cluster-it-1c1d.yml | 8 +-
.github/workflows/cluster-it-1c3d.yml | 22 +-
.github/workflows/grafana-plugin.yml | 10 +-
.github/workflows/pipe-it-2cluster.yml | 6 +-
.github/workflows/sonar-codecov.yml | 12 +-
.github/workflows/unit-test.yml | 6 +-
.../java/org/apache/iotdb/udf/UDAFExample.java | 198 +++++++++
integration-test/pom.xml | 14 +-
.../apache/iotdb/db/query/udf/example/UDAFAvg.java | 190 ++++++++
.../iotdb/db/query/udf/example/UDAFCount.java | 112 +++++
.../apache/iotdb/db/query/udf/example/UDAFSum.java | 189 ++++++++
.../it/env/cluster/config/MppCommonConfig.java | 6 +
.../env/cluster/config/MppSharedCommonConfig.java | 7 +
.../iotdb/it/env/cluster/env/AbstractEnv.java | 188 +++++---
.../it/env/remote/config/RemoteCommonConfig.java | 5 +
.../iotdb/it/env/remote/env/RemoteServerEnv.java | 20 +
.../constant/BuiltinAggregationFunctionEnum.java | 3 +-
.../apache/iotdb/itbase/constant/TestConstant.java | 12 +
.../java/org/apache/iotdb/itbase/env/BaseEnv.java | 24 +-
.../org/apache/iotdb/itbase/env/CommonConfig.java | 2 +
.../it/cluster/IoTDBClusterRestartIT.java | 42 +-
.../confignode/it/cluster/IoTDBClusterStartIT.java | 28 +-
.../confignode/it/procedure/IoTDBProcedureIT.java | 137 ++++++
.../db/it/IOTDBInsertWithTimeAtAnyIndexIT.java | 99 +++++
.../iotdb/db/it/IoTDBInsertWithoutTimeIT.java | 8 +-
.../org/apache/iotdb/db/it/IoTDBRecoverIT.java | 307 +++++--------
.../apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java | 166 +++----
.../org/apache/iotdb/db/it/IoTDBSimpleQueryIT.java | 20 -
.../it/IoTDBSyntaxConventionStringLiteralIT.java | 8 +-
.../db/it/aggregation/IoTDBAggregationIT.java | 52 +++
.../aggregation/IoTDBCountTimeAlignedDeviceIT.java | 2 +-
.../db/it/aggregation/maxby/IoTDBMaxByIT.java | 3 +-
.../db/it/aggregation/minby/IoTDBMinBy2IT.java | 25 +-
.../db/it/aggregation/minby/IoTDBMinBy3IT.java | 32 +-
.../minby/IoTDBMinByAlignedSeriesIT.java | 71 +++
.../IoTDBMaxByIT.java => minby/IoTDBMinByIT.java} | 131 +++---
.../db/it/aligned/IoTDBAlignedSeriesQueryIT.java | 48 ++
.../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 2 +
.../org/apache/iotdb/db/it/cq/IoTDBCQExecIT.java | 10 +-
.../apache/iotdb/db/it/cq/IoTDBCQExecInNsIT.java | 10 +-
.../apache/iotdb/db/it/cq/IoTDBCQExecInUsIT.java | 10 +-
.../db/it/udaf/IoTDBUDAFGroupByConditionIT.java | 325 ++++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByCountIT.java | 292 ++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByLevelIT.java | 495 +++++++++++++++++++++
.../db/it/udaf/IoTDBUDAFGroupBySessionIT.java | 302 +++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByTimeIT.java | 340 ++++++++++++++
.../db/it/udaf/IoTDBUDAFGroupByVariationIT.java | 494 ++++++++++++++++++++
.../apache/iotdb/db/it/udaf/IoTDBUDAFHavingIT.java | 287 ++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFManagementIT.java | 336 ++++++++++++++
.../apache/iotdb/db/it/udaf/IoTDBUDAFMiscIT.java | 126 ++++++
.../iotdb/db/it/udaf/IoTDBUDAFNormalQueryIT.java | 440 ++++++++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFOrderByIT.java | 468 +++++++++++++++++++
.../org/apache/iotdb/db/it/utils/TestUtils.java | 21 +-
.../apache/iotdb/pipe/it/IoTDBPipeClusterIT.java | 38 +-
.../apache/iotdb/pipe/it/IoTDBPipeLifeCycleIT.java | 25 +-
.../test/java/org/apache/iotdb/spark/it/Utils.java | 1 -
.../java/org/apache/iotdb/tsfile/utils/BitMap.java | 0
.../main/java/org/apache/iotdb/udf/api/State.java | 28 +-
.../main/java/org/apache/iotdb/udf/api/UDAF.java | 71 +++
.../api/customizer/config/UDAFConfigurations.java | 17 +-
.../apache/iotdb/udf/api/utils/ResultValue.java | 76 ++++
.../cli/src/assembly/resources/sbin/start-cli.bat | 2 +
.../src/assembly/resources/tools/collect-info.bat | 2 +
.../src/assembly/resources/tools/export-csv.bat | 3 +
.../src/assembly/resources/tools/export-tsfile.bat | 3 +
.../src/assembly/resources/tools/import-csv.bat | 3 +
.../src/assembly/resources/tools/load-tsfile.bat | 2 +
.../java/org/apache/iotdb/tool/ExportTsFile.java | 3 +-
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 4 +-
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 2 +-
.../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 4 +-
.../sql/factory/IoTDBDynamicTableFactory.java | 1 +
iotdb-connector/grafana-plugin/yarn.lock | 6 +-
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 18 +-
.../assembly/resources/sbin/start-confignode.bat | 4 +
.../iotdb/confignode/manager/ClusterManager.java | 23 +
.../iotdb/confignode/manager/ConfigManager.java | 7 +
.../apache/iotdb/confignode/manager/IManager.java | 9 +
.../iotdb/confignode/manager/ProcedureManager.java | 13 +-
.../manager/load/balancer/PartitionBalancer.java | 31 +-
.../iotdb/confignode/manager/node/NodeManager.java | 37 +-
.../confignode/persistence/ProcedureInfo.java | 7 +-
.../confignode/persistence/pipe/PipeTaskInfo.java | 4 +-
.../iotdb/confignode/procedure/Procedure.java | 15 +
.../confignode/procedure/ProcedureExecutor.java | 2 +
.../impl/CreateManyDatabasesProcedure.java | 116 +++++
.../procedure/store/ConfigProcedureStore.java | 9 +
.../procedure/store/ProcedureFactory.java | 9 +-
.../confignode/procedure/store/ProcedureStore.java | 192 --------
.../confignode/procedure/store/ProcedureType.java | 5 +-
.../thrift/ConfigNodeRPCServiceProcessor.java | 5 +
...TestSTMProcedure.java => STMProcedureTest.java} | 2 +-
.../procedure/store/TestProcedureStore.java | 113 -----
.../resources/conf/iotdb-datanode.properties | 6 +-
.../src/assembly/resources/sbin/start-datanode.bat | 5 +
.../src/main/codegen/templates/ModeAccumulator.ftl | 5 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 34 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 30 +-
.../db/pipe/agent/runtime/PipeRuntimeAgent.java | 21 -
.../db/pipe/agent/task/PipeTaskDataNodeAgent.java | 30 +-
.../protocol/airgap/IoTDBAirGapConnector.java | 34 +-
.../async/IoTDBThriftAsyncClientManager.java | 6 +-
.../thrift/async/IoTDBThriftAsyncConnector.java | 46 +-
.../PipeTransferTabletBatchEventHandler.java | 9 +-
.../PipeTransferTabletInsertionEventHandler.java | 4 +-
.../thrift/sync/IoTDBThriftSyncClientManager.java | 7 +-
.../thrift/sync/IoTDBThriftSyncConnector.java | 34 --
.../protocol/writeback/WriteBackConnector.java | 20 -
.../apache/iotdb/db/pipe/event/EnrichedEvent.java | 42 +-
.../tablet/PipeInsertNodeTabletInsertionEvent.java | 18 +-
.../common/tablet/PipeRawTabletInsertionEvent.java | 25 +-
.../common/tsfile/PipeTsFileInsertionEvent.java | 31 +-
.../tsfile/TsFileInsertionDataContainer.java | 16 +
.../PipeRealtimeDataRegionHybridExtractor.java | 22 +-
.../PipeRealtimeDataRegionLogExtractor.java | 12 +-
.../pipe/extractor/realtime/epoch/TsFileEpoch.java | 14 +
.../realtime/epoch/TsFileEpochManager.java | 5 +-
.../receiver/thrift/IoTDBThriftReceiverV1.java | 13 +-
.../db/pipe/resource/PipeResourceManager.java | 7 +
.../resource/log/PipeLogManager.java} | 26 +-
.../iotdb/db/pipe/resource/log/PipeLogStatus.java | 52 +++
.../db/pipe/resource/memory/PipeMemoryBlock.java | 5 +
.../db/pipe/resource/memory/PipeMemoryManager.java | 91 +++-
.../resource/memory/PipeTabletMemoryBlock.java | 64 +++
.../resource/tsfile/PipeTsFileResourceManager.java | 20 +-
.../pipe/resource/wal/PipeWALResourceManager.java | 23 +-
.../pipe/task/connection/PipeEventCollector.java | 87 ++++
.../db/pipe/task/subtask/PipeDataNodeSubtask.java | 4 +-
.../subtask/connector/PipeConnectorSubtask.java | 12 +-
.../subtask/processor/PipeProcessorSubtask.java | 16 +-
.../processor/PipeProcessorSubtaskWorker.java | 6 +-
.../iotdb/db/protocol/client/ConfigNodeClient.java | 6 +
.../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 151 ++++---
.../protocol/thrift/impl/ClientRPCServiceImpl.java | 10 +-
.../execution/aggregation/Accumulator.java | 5 +-
.../execution/aggregation/AccumulatorFactory.java | 85 ++--
.../execution/aggregation/Aggregator.java | 4 +-
.../execution/aggregation/AvgAccumulator.java | 30 +-
.../execution/aggregation/CountAccumulator.java | 14 +-
.../execution/aggregation/CountIfAccumulator.java | 9 +-
.../aggregation/CountTimeAccumulator.java | 8 +-
.../execution/aggregation/ExtremeAccumulator.java | 30 +-
.../aggregation/FirstValueAccumulator.java | 44 +-
.../aggregation/FirstValueDescAccumulator.java | 30 +-
.../aggregation/LastValueAccumulator.java | 44 +-
.../aggregation/LastValueDescAccumulator.java | 30 +-
.../execution/aggregation/MaxByAccumulator.java | 400 +----------------
...cumulator.java => MaxMinByBaseAccumulator.java} | 93 ++--
.../execution/aggregation/MaxTimeAccumulator.java | 9 +-
.../aggregation/MaxTimeDescAccumulator.java | 9 +-
.../execution/aggregation/MaxValueAccumulator.java | 30 +-
...eDescAccumulator.java => MinByAccumulator.java} | 35 +-
.../execution/aggregation/MinTimeAccumulator.java | 9 +-
.../aggregation/MinTimeDescAccumulator.java | 9 +-
.../execution/aggregation/MinValueAccumulator.java | 30 +-
.../execution/aggregation/SumAccumulator.java | 30 +-
.../aggregation/TimeDurationAccumulator.java | 11 +-
.../execution/aggregation/UDAFAccumulator.java | 212 +++++++++
.../execution/aggregation/VarianceAccumulator.java | 30 +-
.../SlidingWindowAggregatorFactory.java | 44 +-
.../execution/operator/AggregationUtil.java | 8 +-
.../process/RawDataAggregationOperator.java | 4 +-
.../execution/operator/source/SeriesScanUtil.java | 38 +-
.../db/queryengine/plan/analyze/Analysis.java | 11 +
.../plan/analyze/ExpressionAnalyzer.java | 6 +-
.../plan/analyze/ExpressionTypeAnalyzer.java | 23 +-
.../cache/schema/DataNodeDevicePathCache.java | 1 +
.../config/executor/ClusterConfigTaskExecutor.java | 32 +-
.../config/metadata/ShowClusterIdTask.java | 5 +-
.../config/metadata/ShowFunctionsTask.java | 29 +-
.../db/queryengine/plan/expression/Expression.java | 8 +
.../plan/expression/multi/FunctionExpression.java | 23 +-
.../plan/expression/multi/FunctionType.java | 5 +-
.../CollectAggregationExpressionsVisitor.java | 2 +-
.../visitor/ColumnTransformerVisitor.java | 4 +-
.../visitor/IntermediateLayerVisitor.java | 4 +-
.../visitor/ReplaceLogicalViewVisitor.java | 2 +-
.../cartesian/BindSchemaForExpressionVisitor.java | 4 +-
.../cartesian/BindSchemaForPredicateVisitor.java | 4 +-
...catDeviceAndBindSchemaForExpressionVisitor.java | 4 +-
...ncatDeviceAndBindSchemaForPredicateVisitor.java | 2 +-
.../db/queryengine/plan/parser/ASTVisitor.java | 107 +++--
.../plan/planner/LogicalPlanBuilder.java | 51 ++-
.../plan/planner/LogicalPlanVisitor.java | 5 +
.../plan/planner/OperatorTreeGenerator.java | 25 +-
.../planner/distribution/DistributionPlanner.java | 2 +-
.../planner/distribution/ExchangeNodeAdder.java | 62 +--
.../planner/distribution/NodeDistribution.java | 24 +-
.../plan/planner/distribution/SourceRewriter.java | 328 +++++++++-----
...anNodeRewriter.java => BaseSourceRewriter.java} | 2 +-
.../plan/planner/plan/node/PlanGraphPrinter.java | 9 +
.../plan/planner/plan/node/PlanNode.java | 2 +-
.../plan/planner/plan/node/PlanNodeType.java | 7 +-
.../plan/planner/plan/node/PlanVisitor.java | 5 +
.../node/process/AggregationMergeSortNode.java | 143 ++++++
.../plan/parameter/AggregationDescriptor.java | 18 +-
.../relational/metadata/QualifiedObjectName.java | 4 -
.../plan/statement/crud/QueryStatement.java | 6 +-
.../dag/udf/UDAFInformationInferrer.java | 83 ++++
.../mtree/impl/pbtree/CachedMTreeStore.java | 141 +++---
.../impl/pbtree/flush/PBTreeFlushExecutor.java | 9 +
.../mtree/impl/pbtree/memory/MemoryManager.java | 57 ++-
.../mnode/container/CachedMNodeContainer.java | 147 +++---
.../mnode/container/ICachedMNodeContainer.java | 18 +-
.../pbtree/mnode/container/IMNodeChildBuffer.java | 45 ++
.../pbtree/mnode/container/MNodeChildBuffer.java | 298 +++++++++++++
.../mnode/container/MNodeNewChildBuffer.java | 75 ++++
.../mnode/container/MNodeUpdateChildBuffer.java | 83 ++++
.../impl/pbtree/schemafile/MockSchemaFile.java | 6 +-
.../pbtree/schemafile/pagemgr/PageManager.java | 16 +-
.../schemafile/pagemgr/SchemaPageContext.java | 37 +-
.../java/org/apache/iotdb/db/service/DataNode.java | 3 +
.../db/storageengine/dataregion/DataRegion.java | 13 +-
.../dataregion/wal/utils/WALEntryHandler.java | 5 +-
.../org/apache/iotdb/db/utils/DateTimeUtils.java | 17 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 81 +++-
.../apache/iotdb/db/utils/TypeInferenceUtils.java | 17 +-
.../iotdb/db/utils/constant/SqlConstant.java | 1 +
.../iotdb/db/utils/constant/TestConstant.java | 4 +
.../org/apache/iotdb/db/auth/entity/RoleTest.java | 31 +-
.../metadata/container/MNodeChildBufferTest.java | 125 ++++++
.../mtree/schemafile/SchemaFileLogTest.java | 4 +
.../metadata/mtree/schemafile/SchemaFileTest.java | 129 +++---
.../execution/aggregation/AccumulatorTest.java | 105 +++--
.../operator/AggregationOperatorTest.java | 29 +-
.../AlignedSeriesAggregationScanOperatorTest.java | 40 +-
.../operator/HorizontallyConcatOperatorTest.java | 2 +-
.../execution/operator/OperatorMemoryTest.java | 8 +-
.../operator/RawDataAggregationOperatorTest.java | 15 +-
.../SeriesAggregationScanOperatorTest.java | 43 +-
.../SlidingWindowAggregationOperatorTest.java | 9 +-
.../distribution/AggregationAlignByDeviceTest.java | 451 +++++++++++++++++++
.../distribution/AggregationDistributionTest.java | 18 +-
.../plan/relational/analyzer/AnalyzerTest.java | 70 ++-
.../AlignedSeriesScanPredicatePushDownTest.java | 7 +-
.../series/SeriesScanLimitOffsetPushDownTest.java | 5 +
.../series/SeriesScanPredicatePushDownTest.java | 23 +-
.../iotdb/db/tools/PBTreeFileSketchTest.java | 5 +
.../apache/iotdb/db/utils/DateTimeUtilsTest.java | 44 ++
.../apache/iotdb/db/utils/EnvironmentUtils.java | 21 +-
.../resources/conf/iotdb-common.properties | 9 +-
.../commons/auth/authorizer/BasicAuthorizer.java | 10 +
.../org/apache/iotdb/commons/auth/entity/Role.java | 14 +-
.../commons/auth/role/LocalFileRoleAccessor.java | 11 +
.../iotdb/commons/auth/user/BasicUserManager.java | 15 +-
.../commons/auth/user/LocalFileUserAccessor.java | 11 +
.../apache/iotdb/commons/conf/CommonConfig.java | 109 ++++-
.../iotdb/commons/conf/CommonDescriptor.java | 37 ++
.../apache/iotdb/commons/conf/IoTDBConstant.java | 3 +-
.../commons/pipe/agent/task/PipeTaskAgent.java | 39 +-
.../iotdb/commons/pipe/config/PipeConfig.java | 40 ++
.../commons/pipe/task/meta/PipeMetaKeeper.java | 4 +
.../commons/pipe/task/subtask/PipeSubtask.java | 4 -
.../iotdb/commons/schema/MergeSortIterator.java | 122 +++++
.../udf/builtin/BuiltinAggregationFunction.java | 5 +-
.../commons/udf/service/UDFManagementService.java | 49 +-
.../org/apache/iotdb/commons/utils/FileUtils.java | 76 ++++
.../org/apache/iotdb/commons/utils/TestOnly.java | 8 +-
.../db/relational/grammar/sql/RelationalSql.g4 | 2 +-
.../sql/parser/CaseInsensitiveStream.java | 85 ++++
.../iotdb/db/relational/sql/parser/SqlParser.java | 3 +-
.../tsfile/read/common/block/TsBlockUtil.java | 55 +++
.../tsfile/read/reader/page/AlignedPageReader.java | 54 +--
.../thrift-commons/src/main/thrift/common.thrift | 2 +
.../src/main/thrift/confignode.thrift | 4 +
pom.xml | 4 +-
269 files changed, 10712 insertions(+), 2878 deletions(-)
create mode 100644 example/udf/src/main/java/org/apache/iotdb/udf/UDAFExample.java
create mode 100644 integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/UDAFAvg.java
create mode 100644 integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/UDAFCount.java
create mode 100644 integration-test/src/main/java/org/apache/iotdb/db/query/udf/example/UDAFSum.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/confignode/it/procedure/IoTDBProcedureIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBInsertWithTimeAtAnyIndexIT.java
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeDistribution.java => integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/minby/IoTDBMinBy2IT.java (57%)
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeDistribution.java => integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/minby/IoTDBMinBy3IT.java (50%)
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/minby/IoTDBMinByAlignedSeriesIT.java
copy integration-test/src/test/java/org/apache/iotdb/db/it/aggregation/{maxby/IoTDBMaxByIT.java => minby/IoTDBMinByIT.java} (78%)
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupByConditionIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupByCountIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupByLevelIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupBySessionIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupByTimeIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFGroupByVariationIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFHavingIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFManagementIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFMiscIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFNormalQueryIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/udaf/IoTDBUDAFOrderByIT.java
rename {iotdb-core/tsfile => iotdb-api/common-api}/src/main/java/org/apache/iotdb/tsfile/utils/BitMap.java (100%)
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/NodeDistribution.java => iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/State.java (59%)
create mode 100644 iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/UDAF.java
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/expression/multi/FunctionType.java => iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/customizer/config/UDAFConfigurations.java (71%)
create mode 100644 iotdb-api/udf-api/src/main/java/org/apache/iotdb/udf/api/utils/ResultValue.java
create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/CreateManyDatabasesProcedure.java
delete mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ProcedureStore.java
rename iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/{TestSTMProcedure.java => STMProcedureTest.java} (97%)
delete mode 100644 iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/store/TestProcedureStore.java
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/{queryengine/plan/planner/distribution/NodeDistribution.java => pipe/resource/log/PipeLogManager.java} (56%)
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/log/PipeLogStatus.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeTabletMemoryBlock.java
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/{MaxByAccumulator.java => MaxMinByBaseAccumulator.java} (81%)
copy iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/{MinTimeDescAccumulator.java => MinByAccumulator.java} (54%)
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/UDAFAccumulator.java
rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/{SimplePlanNodeRewriter.java => BaseSourceRewriter.java} (95%)
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/process/AggregationMergeSortNode.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/transformation/dag/udf/UDAFInformationInferrer.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/IMNodeChildBuffer.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/MNodeChildBuffer.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/MNodeNewChildBuffer.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/schemaregion/mtree/impl/pbtree/mnode/container/MNodeUpdateChildBuffer.java
create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/metadata/container/MNodeChildBufferTest.java
create mode 100644 iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/planner/distribution/AggregationAlignByDeviceTest.java
create mode 100644 iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/MergeSortIterator.java
create mode 100644 iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/CaseInsensitiveStream.java
(iotdb) 01/02: Merge remote-tracking branch 'origin/master' into ty/TableModelGrammar
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/TableModelGrammar
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit cd254c2fdd3920b05b06bc6d3b143a6f361cefc4
Merge: 4676d100dbf c3c48a2e321
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Thu Feb 29 10:26:01 2024 +0800
Merge remote-tracking branch 'origin/master' into ty/TableModelGrammar
.github/workflows/client-cpp.yml | 10 +-
.github/workflows/client-go.yml | 6 +-
.github/workflows/client-python.yml | 4 +-
.github/workflows/cluster-it-1c1d.yml | 8 +-
.github/workflows/cluster-it-1c3d.yml | 22 +-
.github/workflows/grafana-plugin.yml | 10 +-
.github/workflows/pipe-it-2cluster.yml | 6 +-
.github/workflows/sonar-codecov.yml | 12 +-
.github/workflows/unit-test.yml | 6 +-
.../java/org/apache/iotdb/udf/UDAFExample.java | 198 +++++++++
integration-test/pom.xml | 14 +-
.../apache/iotdb/db/query/udf/example/UDAFAvg.java | 190 ++++++++
.../iotdb/db/query/udf/example/UDAFCount.java | 112 +++++
.../apache/iotdb/db/query/udf/example/UDAFSum.java | 189 ++++++++
.../it/env/cluster/config/MppCommonConfig.java | 6 +
.../env/cluster/config/MppSharedCommonConfig.java | 7 +
.../iotdb/it/env/cluster/env/AbstractEnv.java | 188 +++++---
.../it/env/remote/config/RemoteCommonConfig.java | 5 +
.../iotdb/it/env/remote/env/RemoteServerEnv.java | 20 +
.../constant/BuiltinAggregationFunctionEnum.java | 3 +-
.../apache/iotdb/itbase/constant/TestConstant.java | 12 +
.../java/org/apache/iotdb/itbase/env/BaseEnv.java | 24 +-
.../org/apache/iotdb/itbase/env/CommonConfig.java | 2 +
.../it/cluster/IoTDBClusterRestartIT.java | 42 +-
.../confignode/it/cluster/IoTDBClusterStartIT.java | 28 +-
.../confignode/it/procedure/IoTDBProcedureIT.java | 137 ++++++
.../db/it/IOTDBInsertWithTimeAtAnyIndexIT.java | 99 +++++
.../iotdb/db/it/IoTDBInsertWithoutTimeIT.java | 8 +-
.../org/apache/iotdb/db/it/IoTDBRecoverIT.java | 307 +++++--------
.../apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java | 166 +++----
.../org/apache/iotdb/db/it/IoTDBSimpleQueryIT.java | 20 -
.../it/IoTDBSyntaxConventionStringLiteralIT.java | 8 +-
.../db/it/aggregation/IoTDBAggregationIT.java | 52 +++
.../aggregation/IoTDBCountTimeAlignedDeviceIT.java | 2 +-
.../db/it/aggregation/maxby/IoTDBMaxByIT.java | 3 +-
.../db/it/aggregation/minby/IoTDBMinBy2IT.java | 25 +-
.../db/it/aggregation/minby/IoTDBMinBy3IT.java | 32 +-
.../minby/IoTDBMinByAlignedSeriesIT.java | 71 +++
.../IoTDBMaxByIT.java => minby/IoTDBMinByIT.java} | 131 +++---
.../db/it/aligned/IoTDBAlignedSeriesQueryIT.java | 48 ++
.../org/apache/iotdb/db/it/auth/IoTDBAuthIT.java | 2 +
.../org/apache/iotdb/db/it/cq/IoTDBCQExecIT.java | 10 +-
.../apache/iotdb/db/it/cq/IoTDBCQExecInNsIT.java | 10 +-
.../apache/iotdb/db/it/cq/IoTDBCQExecInUsIT.java | 10 +-
.../db/it/udaf/IoTDBUDAFGroupByConditionIT.java | 325 ++++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByCountIT.java | 292 ++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByLevelIT.java | 495 +++++++++++++++++++++
.../db/it/udaf/IoTDBUDAFGroupBySessionIT.java | 302 +++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFGroupByTimeIT.java | 340 ++++++++++++++
.../db/it/udaf/IoTDBUDAFGroupByVariationIT.java | 494 ++++++++++++++++++++
.../apache/iotdb/db/it/udaf/IoTDBUDAFHavingIT.java | 287 ++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFManagementIT.java | 336 ++++++++++++++
.../apache/iotdb/db/it/udaf/IoTDBUDAFMiscIT.java | 126 ++++++
.../iotdb/db/it/udaf/IoTDBUDAFNormalQueryIT.java | 440 ++++++++++++++++++
.../iotdb/db/it/udaf/IoTDBUDAFOrderByIT.java | 468 +++++++++++++++++++
.../org/apache/iotdb/db/it/utils/TestUtils.java | 21 +-
.../apache/iotdb/pipe/it/IoTDBPipeClusterIT.java | 38 +-
.../apache/iotdb/pipe/it/IoTDBPipeLifeCycleIT.java | 25 +-
.../test/java/org/apache/iotdb/spark/it/Utils.java | 1 -
.../java/org/apache/iotdb/tsfile/utils/BitMap.java | 0
.../main/java/org/apache/iotdb/udf/api/State.java | 28 +-
.../main/java/org/apache/iotdb/udf/api/UDAF.java | 71 +++
.../api/customizer/config/UDAFConfigurations.java | 17 +-
.../apache/iotdb/udf/api/utils/ResultValue.java | 76 ++++
.../cli/src/assembly/resources/sbin/start-cli.bat | 2 +
.../src/assembly/resources/tools/collect-info.bat | 2 +
.../src/assembly/resources/tools/export-csv.bat | 3 +
.../src/assembly/resources/tools/export-tsfile.bat | 3 +
.../src/assembly/resources/tools/import-csv.bat | 3 +
.../src/assembly/resources/tools/load-tsfile.bat | 2 +
.../java/org/apache/iotdb/tool/ExportTsFile.java | 3 +-
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 4 +-
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 2 +-
.../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 4 +-
.../sql/factory/IoTDBDynamicTableFactory.java | 1 +
iotdb-connector/grafana-plugin/yarn.lock | 6 +-
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 18 +-
.../assembly/resources/sbin/start-confignode.bat | 4 +
.../iotdb/confignode/manager/ClusterManager.java | 23 +
.../iotdb/confignode/manager/ConfigManager.java | 7 +
.../apache/iotdb/confignode/manager/IManager.java | 9 +
.../iotdb/confignode/manager/ProcedureManager.java | 13 +-
.../manager/load/balancer/PartitionBalancer.java | 31 +-
.../iotdb/confignode/manager/node/NodeManager.java | 37 +-
.../confignode/persistence/ProcedureInfo.java | 7 +-
.../confignode/persistence/pipe/PipeTaskInfo.java | 4 +-
.../iotdb/confignode/procedure/Procedure.java | 15 +
.../confignode/procedure/ProcedureExecutor.java | 2 +
.../impl/CreateManyDatabasesProcedure.java | 116 +++++
.../procedure/store/ConfigProcedureStore.java | 9 +
.../procedure/store/ProcedureFactory.java | 9 +-
.../confignode/procedure/store/ProcedureStore.java | 192 --------
.../confignode/procedure/store/ProcedureType.java | 5 +-
.../thrift/ConfigNodeRPCServiceProcessor.java | 5 +
...TestSTMProcedure.java => STMProcedureTest.java} | 2 +-
.../procedure/store/TestProcedureStore.java | 113 -----
.../resources/conf/iotdb-datanode.properties | 6 +-
.../src/assembly/resources/sbin/start-datanode.bat | 5 +
.../src/main/codegen/templates/ModeAccumulator.ftl | 5 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 34 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 30 +-
.../db/pipe/agent/runtime/PipeRuntimeAgent.java | 21 -
.../db/pipe/agent/task/PipeTaskDataNodeAgent.java | 30 +-
.../protocol/airgap/IoTDBAirGapConnector.java | 34 +-
.../async/IoTDBThriftAsyncClientManager.java | 6 +-
.../thrift/async/IoTDBThriftAsyncConnector.java | 46 +-
.../PipeTransferTabletBatchEventHandler.java | 9 +-
.../PipeTransferTabletInsertionEventHandler.java | 4 +-
.../thrift/sync/IoTDBThriftSyncClientManager.java | 7 +-
.../thrift/sync/IoTDBThriftSyncConnector.java | 34 --
.../protocol/writeback/WriteBackConnector.java | 20 -
.../apache/iotdb/db/pipe/event/EnrichedEvent.java | 42 +-
.../tablet/PipeInsertNodeTabletInsertionEvent.java | 18 +-
.../common/tablet/PipeRawTabletInsertionEvent.java | 25 +-
.../common/tsfile/PipeTsFileInsertionEvent.java | 31 +-
.../tsfile/TsFileInsertionDataContainer.java | 16 +
.../PipeRealtimeDataRegionHybridExtractor.java | 22 +-
.../PipeRealtimeDataRegionLogExtractor.java | 12 +-
.../pipe/extractor/realtime/epoch/TsFileEpoch.java | 14 +
.../realtime/epoch/TsFileEpochManager.java | 5 +-
.../receiver/thrift/IoTDBThriftReceiverV1.java | 13 +-
.../db/pipe/resource/PipeResourceManager.java | 7 +
.../resource/log/PipeLogManager.java} | 26 +-
.../iotdb/db/pipe/resource/log/PipeLogStatus.java | 52 +++
.../db/pipe/resource/memory/PipeMemoryBlock.java | 5 +
.../db/pipe/resource/memory/PipeMemoryManager.java | 91 +++-
.../resource/memory/PipeTabletMemoryBlock.java | 64 +++
.../resource/tsfile/PipeTsFileResourceManager.java | 20 +-
.../pipe/resource/wal/PipeWALResourceManager.java | 23 +-
.../pipe/task/connection/PipeEventCollector.java | 87 ++++
.../db/pipe/task/subtask/PipeDataNodeSubtask.java | 4 +-
.../subtask/connector/PipeConnectorSubtask.java | 12 +-
.../subtask/processor/PipeProcessorSubtask.java | 16 +-
.../processor/PipeProcessorSubtaskWorker.java | 6 +-
.../iotdb/db/protocol/client/ConfigNodeClient.java | 6 +
.../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 151 ++++---
.../protocol/thrift/impl/ClientRPCServiceImpl.java | 10 +-
.../execution/aggregation/Accumulator.java | 5 +-
.../execution/aggregation/AccumulatorFactory.java | 85 ++--
.../execution/aggregation/Aggregator.java | 4 +-
.../execution/aggregation/AvgAccumulator.java | 30 +-
.../execution/aggregation/CountAccumulator.java | 14 +-
.../execution/aggregation/CountIfAccumulator.java | 9 +-
.../aggregation/CountTimeAccumulator.java | 8 +-
.../execution/aggregation/ExtremeAccumulator.java | 30 +-
.../aggregation/FirstValueAccumulator.java | 44 +-
.../aggregation/FirstValueDescAccumulator.java | 30 +-
.../aggregation/LastValueAccumulator.java | 44 +-
.../aggregation/LastValueDescAccumulator.java | 30 +-
.../execution/aggregation/MaxByAccumulator.java | 400 +----------------
...cumulator.java => MaxMinByBaseAccumulator.java} | 93 ++--
.../execution/aggregation/MaxTimeAccumulator.java | 9 +-
.../aggregation/MaxTimeDescAccumulator.java | 9 +-
.../execution/aggregation/MaxValueAccumulator.java | 30 +-
...eDescAccumulator.java => MinByAccumulator.java} | 35 +-
.../execution/aggregation/MinTimeAccumulator.java | 9 +-
.../aggregation/MinTimeDescAccumulator.java | 9 +-
.../execution/aggregation/MinValueAccumulator.java | 30 +-
.../execution/aggregation/SumAccumulator.java | 30 +-
.../aggregation/TimeDurationAccumulator.java | 11 +-
.../execution/aggregation/UDAFAccumulator.java | 212 +++++++++
.../execution/aggregation/VarianceAccumulator.java | 30 +-
.../SlidingWindowAggregatorFactory.java | 44 +-
.../execution/operator/AggregationUtil.java | 8 +-
.../process/RawDataAggregationOperator.java | 4 +-
.../execution/operator/source/SeriesScanUtil.java | 38 +-
.../db/queryengine/plan/analyze/Analysis.java | 11 +
.../plan/analyze/ExpressionAnalyzer.java | 6 +-
.../plan/analyze/ExpressionTypeAnalyzer.java | 23 +-
.../cache/schema/DataNodeDevicePathCache.java | 1 +
.../config/executor/ClusterConfigTaskExecutor.java | 32 +-
.../config/metadata/ShowClusterIdTask.java | 5 +-
.../config/metadata/ShowFunctionsTask.java | 29 +-
.../db/queryengine/plan/expression/Expression.java | 8 +
.../plan/expression/multi/FunctionExpression.java | 23 +-
.../plan/expression/multi/FunctionType.java | 5 +-
.../CollectAggregationExpressionsVisitor.java | 2 +-
.../visitor/ColumnTransformerVisitor.java | 4 +-
.../visitor/IntermediateLayerVisitor.java | 4 +-
.../visitor/ReplaceLogicalViewVisitor.java | 2 +-
.../cartesian/BindSchemaForExpressionVisitor.java | 4 +-
.../cartesian/BindSchemaForPredicateVisitor.java | 4 +-
...catDeviceAndBindSchemaForExpressionVisitor.java | 4 +-
...ncatDeviceAndBindSchemaForPredicateVisitor.java | 2 +-
.../db/queryengine/plan/parser/ASTVisitor.java | 107 +++--
.../plan/planner/LogicalPlanBuilder.java | 51 ++-
.../plan/planner/LogicalPlanVisitor.java | 5 +
.../plan/planner/OperatorTreeGenerator.java | 25 +-
.../planner/distribution/DistributionPlanner.java | 2 +-
.../planner/distribution/ExchangeNodeAdder.java | 62 +--
.../planner/distribution/NodeDistribution.java | 24 +-
.../plan/planner/distribution/SourceRewriter.java | 328 +++++++++-----
...anNodeRewriter.java => BaseSourceRewriter.java} | 2 +-
.../plan/planner/plan/node/PlanGraphPrinter.java | 9 +
.../plan/planner/plan/node/PlanNode.java | 2 +-
.../plan/planner/plan/node/PlanNodeType.java | 7 +-
.../plan/planner/plan/node/PlanVisitor.java | 5 +
.../node/process/AggregationMergeSortNode.java | 143 ++++++
.../plan/parameter/AggregationDescriptor.java | 18 +-
.../plan/statement/crud/QueryStatement.java | 6 +-
.../dag/udf/UDAFInformationInferrer.java | 83 ++++
.../mtree/impl/pbtree/CachedMTreeStore.java | 141 +++---
.../impl/pbtree/flush/PBTreeFlushExecutor.java | 9 +
.../mtree/impl/pbtree/memory/MemoryManager.java | 57 ++-
.../mnode/container/CachedMNodeContainer.java | 147 +++---
.../mnode/container/ICachedMNodeContainer.java | 18 +-
.../pbtree/mnode/container/IMNodeChildBuffer.java | 45 ++
.../pbtree/mnode/container/MNodeChildBuffer.java | 298 +++++++++++++
.../mnode/container/MNodeNewChildBuffer.java | 75 ++++
.../mnode/container/MNodeUpdateChildBuffer.java | 83 ++++
.../impl/pbtree/schemafile/MockSchemaFile.java | 6 +-
.../pbtree/schemafile/pagemgr/PageManager.java | 16 +-
.../schemafile/pagemgr/SchemaPageContext.java | 37 +-
.../java/org/apache/iotdb/db/service/DataNode.java | 3 +
.../db/storageengine/dataregion/DataRegion.java | 13 +-
.../dataregion/wal/utils/WALEntryHandler.java | 5 +-
.../org/apache/iotdb/db/utils/DateTimeUtils.java | 17 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 81 +++-
.../apache/iotdb/db/utils/TypeInferenceUtils.java | 17 +-
.../iotdb/db/utils/constant/SqlConstant.java | 1 +
.../iotdb/db/utils/constant/TestConstant.java | 4 +
.../org/apache/iotdb/db/auth/entity/RoleTest.java | 31 +-
.../metadata/container/MNodeChildBufferTest.java | 125 ++++++
.../mtree/schemafile/SchemaFileLogTest.java | 4 +
.../metadata/mtree/schemafile/SchemaFileTest.java | 129 +++---
.../execution/aggregation/AccumulatorTest.java | 105 +++--
.../operator/AggregationOperatorTest.java | 29 +-
.../AlignedSeriesAggregationScanOperatorTest.java | 40 +-
.../operator/HorizontallyConcatOperatorTest.java | 2 +-
.../execution/operator/OperatorMemoryTest.java | 8 +-
.../operator/RawDataAggregationOperatorTest.java | 15 +-
.../SeriesAggregationScanOperatorTest.java | 43 +-
.../SlidingWindowAggregationOperatorTest.java | 9 +-
.../distribution/AggregationAlignByDeviceTest.java | 451 +++++++++++++++++++
.../distribution/AggregationDistributionTest.java | 18 +-
.../AlignedSeriesScanPredicatePushDownTest.java | 7 +-
.../series/SeriesScanLimitOffsetPushDownTest.java | 5 +
.../series/SeriesScanPredicatePushDownTest.java | 23 +-
.../iotdb/db/tools/PBTreeFileSketchTest.java | 5 +
.../apache/iotdb/db/utils/DateTimeUtilsTest.java | 44 ++
.../apache/iotdb/db/utils/EnvironmentUtils.java | 21 +-
.../resources/conf/iotdb-common.properties | 9 +-
.../commons/auth/authorizer/BasicAuthorizer.java | 10 +
.../org/apache/iotdb/commons/auth/entity/Role.java | 14 +-
.../commons/auth/role/LocalFileRoleAccessor.java | 11 +
.../iotdb/commons/auth/user/BasicUserManager.java | 15 +-
.../commons/auth/user/LocalFileUserAccessor.java | 11 +
.../apache/iotdb/commons/conf/CommonConfig.java | 109 ++++-
.../iotdb/commons/conf/CommonDescriptor.java | 37 ++
.../apache/iotdb/commons/conf/IoTDBConstant.java | 3 +-
.../commons/pipe/agent/task/PipeTaskAgent.java | 39 +-
.../iotdb/commons/pipe/config/PipeConfig.java | 40 ++
.../commons/pipe/task/meta/PipeMetaKeeper.java | 4 +
.../commons/pipe/task/subtask/PipeSubtask.java | 4 -
.../iotdb/commons/schema/MergeSortIterator.java | 122 +++++
.../udf/builtin/BuiltinAggregationFunction.java | 5 +-
.../commons/udf/service/UDFManagementService.java | 49 +-
.../org/apache/iotdb/commons/utils/FileUtils.java | 76 ++++
.../org/apache/iotdb/commons/utils/TestOnly.java | 8 +-
.../tsfile/read/common/block/TsBlockUtil.java | 55 +++
.../tsfile/read/reader/page/AlignedPageReader.java | 54 +--
.../thrift-commons/src/main/thrift/common.thrift | 2 +
.../src/main/thrift/confignode.thrift | 4 +
pom.xml | 4 +-
264 files changed, 10556 insertions(+), 2870 deletions(-)
(iotdb) 02/02: first UT
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch ty/TableModelGrammar
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5bbcd7b1ee4b58b1b7880abb0553c6fb32844e19
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Thu Feb 29 15:28:26 2024 +0800
first UT
---
.../relational/metadata/QualifiedObjectName.java | 4 -
.../plan/relational/analyzer/AnalyzerTest.java | 70 +++++++++++++++++-
.../db/relational/grammar/sql/RelationalSql.g4 | 2 +-
.../sql/parser/CaseInsensitiveStream.java | 85 ++++++++++++++++++++++
.../iotdb/db/relational/sql/parser/SqlParser.java | 3 +-
5 files changed, 156 insertions(+), 8 deletions(-)
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/QualifiedObjectName.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/QualifiedObjectName.java
index a6dd9b55fb4..834170b27d6 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/QualifiedObjectName.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/QualifiedObjectName.java
@@ -19,8 +19,6 @@
package org.apache.iotdb.db.queryengine.plan.relational.metadata;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonValue;
import com.google.errorprone.annotations.Immutable;
import java.util.Objects;
@@ -38,7 +36,6 @@ public class QualifiedObjectName {
private static final Pattern PATTERN =
Pattern.compile("(?<database>" + COMPONENT + ")\\.(?<table>" + COMPONENT + ")");
- @JsonCreator
public static QualifiedObjectName valueOf(String name) {
requireNonNull(name, "name is null");
Matcher matcher = PATTERN.matcher(name);
@@ -85,7 +82,6 @@ public class QualifiedObjectName {
return Objects.hash(dbName, objectName);
}
- @JsonValue
@Override
public String toString() {
return quoteIfNeeded(dbName) + '.' + quoteIfNeeded(objectName);
diff --git a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
index 3feb40ada8d..d12e478efa9 100644
--- a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
+++ b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/AnalyzerTest.java
@@ -20,7 +20,18 @@
package org.apache.iotdb.db.queryengine.plan.relational.analyzer;
import org.apache.iotdb.db.queryengine.common.SessionInfo;
+import org.apache.iotdb.db.queryengine.plan.relational.function.BoundSignature;
+import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionId;
+import org.apache.iotdb.db.queryengine.plan.relational.function.FunctionKind;
+import org.apache.iotdb.db.queryengine.plan.relational.function.OperatorType;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnHandle;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.ColumnSchema;
import org.apache.iotdb.db.queryengine.plan.relational.metadata.Metadata;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.OperatorNotFoundException;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.QualifiedObjectName;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.ResolvedFunction;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableHandle;
+import org.apache.iotdb.db.queryengine.plan.relational.metadata.TableSchema;
import org.apache.iotdb.db.queryengine.plan.relational.security.AccessControl;
import org.apache.iotdb.db.relational.sql.parser.SqlParser;
import org.apache.iotdb.db.relational.sql.tree.Statement;
@@ -29,11 +40,20 @@ import org.junit.Test;
import org.mockito.Mockito;
import java.time.ZoneId;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import static org.apache.iotdb.db.queryengine.execution.warnings.WarningCollector.NOOP;
+import static org.apache.iotdb.tsfile.read.common.type.BooleanType.BOOLEAN;
+import static org.apache.iotdb.tsfile.read.common.type.IntType.INT32;
+import static org.apache.iotdb.tsfile.read.common.type.LongType.INT64;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.eq;
public class AnalyzerTest {
@@ -42,11 +62,57 @@ public class AnalyzerTest {
private final NopAccessControl nopAccessControl = new NopAccessControl();
@Test
- public void testRawDataQuery() {
- String sql = "select s1, status, s1 + 1 as t from table1 where time > 100 and s2 > 10;";
+ public void testRawDataQuery() throws OperatorNotFoundException {
+ String sql = "SELECT s1, (s1 + 1) as t from table1 where time > 100 and s2 > 10";
Metadata metadata = Mockito.mock(Metadata.class);
Mockito.when(metadata.tableExists(Mockito.any())).thenReturn(true);
+ TableHandle tableHandle = Mockito.mock(TableHandle.class);
+ Mockito.when(
+ metadata.getTableHandle(Mockito.any(), eq(new QualifiedObjectName("testdb", "table1"))))
+ .thenReturn(Optional.of(tableHandle));
+
+ Map<String, ColumnHandle> map = new HashMap<>();
+ TableSchema tableSchema = Mockito.mock(TableSchema.class);
+ Mockito.when(tableSchema.getTableName()).thenReturn("table1");
+ ColumnSchema column1 =
+ ColumnSchema.builder().setName("time").setType(INT64).setHidden(false).build();
+ ColumnHandle column1Handle = Mockito.mock(ColumnHandle.class);
+ map.put("time", column1Handle);
+ ColumnSchema column2 =
+ ColumnSchema.builder().setName("s1").setType(INT32).setHidden(false).build();
+ ColumnHandle column2Handle = Mockito.mock(ColumnHandle.class);
+ map.put("s1", column2Handle);
+ ColumnSchema column3 =
+ ColumnSchema.builder().setName("s2").setType(INT64).setHidden(false).build();
+ ColumnHandle column3Handle = Mockito.mock(ColumnHandle.class);
+ map.put("s2", column3Handle);
+ List<ColumnSchema> columnSchemaList = Arrays.asList(column1, column2, column3);
+ Mockito.when(tableSchema.getColumns()).thenReturn(columnSchemaList);
+
+ Mockito.when(metadata.getTableSchema(Mockito.any(), eq(tableHandle))).thenReturn(tableSchema);
+ Mockito.when(metadata.getColumnHandles(Mockito.any(), eq(tableHandle))).thenReturn(map);
+
+ ResolvedFunction lLessThanI =
+ new ResolvedFunction(
+ new BoundSignature("l<i", BOOLEAN, Arrays.asList(INT64, INT32)),
+ new FunctionId("l<i"),
+ FunctionKind.SCALAR,
+ true);
+
+ ResolvedFunction iAddi =
+ new ResolvedFunction(
+ new BoundSignature("l+i", INT64, Arrays.asList(INT32, INT32)),
+ new FunctionId("l+i"),
+ FunctionKind.SCALAR,
+ true);
+
+ Mockito.when(
+ metadata.resolveOperator(eq(OperatorType.LESS_THAN), eq(Arrays.asList(INT64, INT32))))
+ .thenReturn(lLessThanI);
+ Mockito.when(metadata.resolveOperator(eq(OperatorType.ADD), eq(Arrays.asList(INT32, INT32))))
+ .thenReturn(iAddi);
+
Analysis actualAnalysis = analyzeSQL(sql, metadata);
assertNotNull(actualAnalysis);
System.out.println(actualAnalysis.getTypes());
diff --git a/iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/RelationalSql.g4 b/iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/RelationalSql.g4
index 880ab455df7..26cd32456e6 100644
--- a/iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/RelationalSql.g4
+++ b/iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/RelationalSql.g4
@@ -729,7 +729,7 @@ nonReserved
| RANGE | READ | READONLY | REFRESH | REGION | REGIONID | REGIONS | RENAME | REPAIR | REPEAT | REPEATABLE | REPLACE | RESET | RESPECT | RESTRICT | RETURN | RETURNING | RETURNS | REVOKE | ROLE | ROLES | ROLLBACK | ROW | ROWS | RUNNING
| SERIESSLOTID | SCALAR | SCHEMA | SCHEMAS | SECOND | SECURITY | SEEK | SERIALIZABLE | SESSION | SET | SETS
| SHOW | SOME | START | STATS | SUBSET | SUBSTRING | SYSTEM
- | TABLES | TABLESAMPLE | TEXT | TEXT_STRING | TIES | TIMEPARTITION | TIMESERIES | TIMESLOTID | TIMESTAMP | TO | TRAILING | TRANSACTION | TRUNCATE | TRY_CAST | TYPE
+ | TABLES | TABLESAMPLE | TEXT | TEXT_STRING | TIES | TIME | TIMEPARTITION | TIMESERIES | TIMESLOTID | TIMESTAMP | TO | TRAILING | TRANSACTION | TRUNCATE | TRY_CAST | TYPE
| UNBOUNDED | UNCOMMITTED | UNCONDITIONAL | UNIQUE | UNKNOWN | UNMATCHED | UNTIL | UPDATE | URI | USE | USER | UTF16 | UTF32 | UTF8
| VALIDATE | VALUE | VARIABLES | VARIATION | VERBOSE | VERSION | VIEW
| WEEK | WHILE | WINDOW | WITHIN | WITHOUT | WORK | WRAPPER | WRITE
diff --git a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/CaseInsensitiveStream.java b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/CaseInsensitiveStream.java
new file mode 100644
index 00000000000..f6883a7308e
--- /dev/null
+++ b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/CaseInsensitiveStream.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.relational.sql.parser;
+
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.IntStream;
+import org.antlr.v4.runtime.misc.Interval;
+
+public class CaseInsensitiveStream implements CharStream {
+ private final CharStream stream;
+
+ public CaseInsensitiveStream(CharStream stream) {
+ this.stream = stream;
+ }
+
+ @Override
+ public String getText(Interval interval) {
+ return stream.getText(interval);
+ }
+
+ @Override
+ public void consume() {
+ stream.consume();
+ }
+
+ @Override
+ public int LA(int i) {
+ int result = stream.LA(i);
+
+ switch (result) {
+ case 0:
+ case IntStream.EOF:
+ return result;
+ default:
+ return Character.toUpperCase(result);
+ }
+ }
+
+ @Override
+ public int mark() {
+ return stream.mark();
+ }
+
+ @Override
+ public void release(int marker) {
+ stream.release(marker);
+ }
+
+ @Override
+ public int index() {
+ return stream.index();
+ }
+
+ @Override
+ public void seek(int index) {
+ stream.seek(index);
+ }
+
+ @Override
+ public int size() {
+ return stream.size();
+ }
+
+ @Override
+ public String getSourceName() {
+ return stream.getSourceName();
+ }
+}
diff --git a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/SqlParser.java b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/SqlParser.java
index 6a8e652fe63..2df8fecc3bb 100644
--- a/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/SqlParser.java
+++ b/iotdb-core/relational-parser/src/main/java/org/apache/iotdb/db/relational/sql/parser/SqlParser.java
@@ -123,7 +123,8 @@ public class SqlParser {
Optional<NodeLocation> location,
Function<RelationalSqlParser, ParserRuleContext> parseFunction) {
try {
- RelationalSqlLexer lexer = new RelationalSqlLexer(CharStreams.fromString(sql));
+ RelationalSqlLexer lexer =
+ new RelationalSqlLexer(new CaseInsensitiveStream(CharStreams.fromString(sql)));
CommonTokenStream tokenStream = new CommonTokenStream(lexer);
RelationalSqlParser parser = new RelationalSqlParser(tokenStream);
initializer.accept(lexer, parser);