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

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

commit 491eb4ec1f8a0aee8a01d6a13dbd94ec56476bf9
Merge: 7d3285c639d 52b72edb689
Author: Beyyes <[email protected]>
AuthorDate: Wed Oct 23 17:43:30 2024 +0800

    merge master

 .../db/it/schema/IoTDBDeleteTimeSeriesIT.java      |  13 ++
 .../relational/it/db/it/IoTDBInsertTableIT.java    |  34 +++++
 .../db/it/IoTDBMultiIDsWithAttributesTableIT.java  |  42 ++++++
 .../it/query/recent/IoTDBTableAggregationIT.java   |   1 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   2 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  16 +--
 .../connector/PipeConnectorSubtaskManager.java     |   6 -
 .../subtask/processor/PipeProcessorSubtask.java    |   6 +-
 .../db/pipe/event/common}/PipeInsertionEvent.java  |   3 +-
 .../event/common/heartbeat/PipeHeartbeatEvent.java |  15 +-
 .../db/pipe/event/common/row/PipeRowCollector.java |   2 +-
 .../tablet/PipeInsertNodeTabletInsertionEvent.java |  12 +-
 .../common/tablet/PipeRawTabletInsertionEvent.java |  11 +-
 .../common/tsfile/PipeTsFileInsertionEvent.java    |  12 +-
 .../tsfile/parser/TsFileInsertionEventParser.java  |   2 +-
 .../query/TsFileInsertionEventQueryParser.java     |   2 +-
 .../scan/TsFileInsertionEventScanParser.java       |   2 +-
 .../table/TsFileInsertionEventTableParser.java     |   2 +-
 .../db/pipe/event/realtime/PipeRealtimeEvent.java  |   2 +-
 .../dataregion/IoTDBDataRegionExtractor.java       |   2 -
 ...oricalDataRegionTsFileAndDeletionExtractor.java |  34 +++--
 .../matcher/CachedSchemaPatternMatcher.java        |   2 +-
 .../PipeDataNodeRemainingEventAndTimeMetrics.java  |  56 ++++----
 .../PipeDataNodeRemainingEventAndTimeOperator.java |  95 +++++--------
 .../PipeConvertedInsertTabletStatement.java        |   2 +-
 .../aggregation/grouped/GroupedAvgAccumulator.java |  20 +--
 .../grouped/GroupedFirstAccumulator.java           |  92 ++++++------
 .../grouped/GroupedFirstByAccumulator.java         | 115 ++++++++-------
 .../grouped/GroupedLastAccumulator.java            |  92 ++++++------
 .../grouped/GroupedLastByAccumulator.java          | 111 +++++++++------
 .../grouped/GroupedMaxByAccumulator.java           |   5 +
 .../grouped/GroupedMaxMinByBaseAccumulator.java    | 154 ++++++++++++++++-----
 .../grouped/GroupedMinByAccumulator.java           |   5 +
 .../grouped/HashAggregationOperator.java           |  18 ++-
 .../aggregation/grouped/hash/FlatGroupByHash.java  |   4 +-
 .../queryengine/plan/execution/QueryExecution.java |   7 +-
 .../plan/relational/metadata/Metadata.java         |   6 -
 .../metadata/TableBuiltinAggregationFunction.java  |  33 -----
 .../relational/metadata/TableMetadataImpl.java     |   5 -
 .../fetcher/cache/TableDeviceLastCache.java        |  44 ++++--
 .../fetcher/cache/TableDeviceSchemaCache.java      |   7 +-
 .../cache/TreeDeviceSchemaCacheManager.java        |   9 +-
 .../PushAggregationIntoTableScan.java              |  12 +-
 .../plan/relational/sql/ast/InsertTablet.java      |  11 +-
 .../plan/statement/crud/InsertTabletStatement.java |  44 +++---
 .../iotdb/db/storageengine/StorageEngine.java      |  49 ++++---
 .../execute/task/InnerSpaceCompactionTask.java     |   9 +-
 .../compaction/schedule/CompactionTaskQueue.java   |   3 +
 .../DefaultCompactionTaskComparatorImpl.java       |   8 +-
 .../dataregion/flush/MemTableFlushTask.java        |   2 +-
 .../memtable/AlignedWritableMemChunk.java          |   6 +-
 .../dataregion/memtable/IWritableMemChunk.java     |   5 +-
 .../dataregion/memtable/TsFileProcessor.java       | 125 ++++++++---------
 .../dataregion/memtable/WritableMemChunk.java      |   2 +-
 .../dataregion/read/control/FileReaderManager.java |   4 +-
 .../tsfile/generator/TsFileNameGenerator.java      |   4 +-
 .../storageengine/dataregion/wal/WALManager.java   |  21 ++-
 .../dataregion/wal/allocation/ElasticStrategy.java |  27 +++-
 .../SubscriptionConnectorSubtaskManager.java       |   3 -
 .../plan/relational/analyzer/AggregationTest.java  |  19 ---
 .../plan/relational/analyzer/TSBSMetadata.java     |   6 -
 .../plan/relational/analyzer/TestMatadata.java     |   6 -
 .../plan/relational/sql/ast/InsertTabletTest.java  | 130 +++++++++++++++++
 .../compaction/CompactionTaskComparatorTest.java   |  12 +-
 .../wal/allocation/ElasticStrategyTest.java        |  11 ++
 .../conf/iotdb-system.properties.template          |   4 +-
 .../iotdb/commons/utils/TimePartitionUtils.java    | 104 ++++++++++++--
 .../commons/utils/TimePartitionUtilsTest.java      |  16 +++
 pom.xml                                            |   2 +-
 69 files changed, 1138 insertions(+), 610 deletions(-)

diff --cc 
integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
index b0bb573c248,69f52276de6..dd2201577e1
--- 
a/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBMultiIDsWithAttributesTableIT.java
@@@ -1153,29 -1176,27 +1176,48 @@@ public class IoTDBMultiIDsWithAttribute
      sql = "select extreme(num),extreme(bignum),extreme(floatnum) from table0";
      retArray = new String[] {"15,3147483648,4654.231,"};
      tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
+ 
+     // no push-down, test GroupedAccumulator
+     expectedHeader = buildHeaders(5);
+     retArray =
+         new String[] {
+           
"1971-01-01T00:01:40.000Z,1971-01-01T00:00:00.000Z,1971-01-01T00:00:00.000Z,1971-01-01T00:01:40.000Z,3,",
+           
"1971-04-26T17:46:40.000Z,1970-01-01T00:00:00.020Z,1970-01-01T00:00:00.020Z,1971-04-26T17:46:40.000Z,3,",
+           
"1971-01-01T00:00:00.500Z,1970-01-01T00:00:00.040Z,1970-01-01T00:00:00.040Z,1971-04-26T17:46:40.020Z,3,",
+           
"1971-01-01T00:00:01.000Z,1970-01-01T00:00:00.080Z,1971-04-26T18:01:40.000Z,1971-01-01T00:00:01.000Z,3,",
+           
"1971-08-20T11:33:20.000Z,1971-01-01T00:00:10.000Z,1971-08-20T11:33:20.000Z,1970-01-01T00:00:00.100Z,3,",
+           
"1971-01-01T00:01:40.000Z,1971-01-01T00:00:00.000Z,1971-01-01T00:00:00.000Z,1971-01-01T00:01:40.000Z,3,",
+           
"1971-04-26T17:46:40.000Z,1970-01-01T00:00:00.020Z,1970-01-01T00:00:00.020Z,1971-04-26T17:46:40.000Z,3,",
+           
"1971-01-01T00:00:00.500Z,1970-01-01T00:00:00.040Z,1970-01-01T00:00:00.040Z,1971-04-26T17:46:40.020Z,3,",
+           
"1971-01-01T00:00:01.000Z,1970-01-01T00:00:00.080Z,1971-04-26T18:01:40.000Z,1971-01-01T00:00:01.000Z,3,",
+           
"1971-08-20T11:33:20.000Z,1971-01-01T00:00:10.000Z,1971-08-20T11:33:20.000Z,1970-01-01T00:00:00.100Z,3,",
+         };
+     sql =
+         "select 
max_by(time,str),min_by(time,str),max_by(time,bool),min_by(time,bool),count(num+1)
 from table0 group by device,level order by device,level";
+     tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
    }
  
 +  @Test
 +  public void modeTest() {
 +    expectedHeader = buildHeaders(15);
 +    sql =
 +        "select 
mode(time),mode(device),mode(level),mode(attr1),mode(attr2),mode(num),mode(bignum),mode(floatnum),mode(date),mode(str),mode(bool),mode(date),mode(ts),mode(stringv),mode(doublenum)
 from table0 where device='d2' and level='l4' and time=80";
 +    retArray =
 +        new String[] {
 +          
"1970-01-01T00:00:00.080Z,d2,l4,null,null,9,2147483646,43.12,null,apple,false,null,2024-09-20T06:15:35.000Z,test-string2,6666.7,",
 +        };
 +    tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
 +
 +    expectedHeader = buildHeaders(10);
 +    sql =
 +        "select 
mode(device),mode(level),mode(attr1),mode(attr2),mode(date),mode(bool),mode(date),mode(ts),mode(stringv),mode(doublenum)
 from table0 where device='d2' and level='l1'";
 +    retArray =
 +        new String[] {
 +          
"d2,l1,d,c,null,false,null,2024-08-01T06:15:35.000Z,test-string3,null,",
 +        };
 +    tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE_NAME);
 +  }
 +
    // ==================================================================
    // ============================ Join Test ===========================
    // ==================================================================

Reply via email to