You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2021/05/25 16:09:03 UTC
[iotdb] 01/06: Merge master and fix conflicts
This is an automated email from the ASF dual-hosted git repository.
xiangweiwei pushed a commit to branch RequeryV2
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2fe872483c75291474e6ba18f4c4ad84ee824201
Merge: 0ba9a37 222396c
Author: Alima777 <wx...@gmail.com>
AuthorDate: Tue May 18 22:01:49 2021 +0800
Merge master and fix conflicts
.github/workflows/client.yml | 7 +-
.github/workflows/main-unix.yml | 2 +-
.github/workflows/main-win.yml | 2 +-
.../ContributeGuide.md => CONTRIBUTING.md | 63 +++---
Jenkinsfile | 2 +-
LICENSE-binary | 2 +-
README.md | 22 +-
README_ZH.md | 16 +-
.../antlr4/org/apache/iotdb/db/qp/sql/SqlBase.g4 | 19 +-
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 3 +
client-cpp/src/main/CMakeLists.txt | 2 +-
client-cpp/src/test/CMakeLists.txt | 2 +-
client-py/README.md | 5 +-
cluster/pom.xml | 2 +-
.../resources/conf/iotdb-cluster.properties | 3 +
.../java/org/apache/iotdb/cluster/ClusterMain.java | 13 ++
.../cluster/client/async/AsyncDataClient.java | 4 +-
.../client/async/AsyncDataHeartbeatClient.java | 4 +-
.../cluster/client/async/AsyncMetaClient.java | 4 +-
.../client/async/AsyncMetaHeartbeatClient.java | 4 +-
.../iotdb/cluster/client/sync/SyncDataClient.java | 2 +
.../client/sync/SyncDataHeartbeatClient.java | 2 +
.../iotdb/cluster/client/sync/SyncMetaClient.java | 2 +
.../client/sync/SyncMetaHeartbeatClient.java | 2 +
.../apache/iotdb/cluster/config/ClusterConfig.java | 9 +
.../iotdb/cluster/config/ClusterDescriptor.java | 9 +-
.../iotdb/cluster/log/applier/BaseApplier.java | 37 +++-
.../apache/iotdb/cluster/metadata/CMManager.java | 12 +-
.../cluster/query/ClusterDataQueryExecutor.java | 5 +-
.../cluster/query/reader/ClusterReaderFactory.java | 12 +-
.../query/reader/mult/RemoteMultSeriesReader.java | 7 +-
.../iotdb/cluster/server/MetaClusterServer.java | 27 ++-
.../server/clusterinfo/ClusterInfoServer.java | 94 ++++++++
.../server/clusterinfo/ClusterInfoServerMBean.java | 23 +-
.../server/clusterinfo/ClusterInfoServiceImpl.java | 71 ++++++
.../ClusterInfoServiceThriftHandler.java | 55 +++++
.../cluster/utils/nodetool/ClusterMonitor.java | 2 +
.../utils/nodetool/ClusterMonitorMBean.java | 2 +-
.../cluster/client/sync/SyncDataClientTest.java | 6 +-
.../cluster/client/sync/SyncMetaClientTest.java | 6 +-
.../cluster/common/TestAsyncClientFactory.java | 4 +-
.../cluster/common/TestSyncClientFactory.java | 13 ++
.../cluster/log/applier/DataLogApplierTest.java | 35 +++
.../cluster/log/snapshot/DataSnapshotTest.java | 14 ++
.../cluster/log/snapshot/PullSnapshotTaskTest.java | 14 ++
.../query/groupby/MergeGroupByExecutorTest.java | 23 +-
.../query/groupby/RemoteGroupByExecutorTest.java | 23 +-
.../server/clusterinfo/ClusterInfoServerTest.java | 96 ++++++++
.../clusterinfo/ClusterInfoServiceImplTest.java | 98 +++++++++
.../cluster/server/member/DataGroupMemberTest.java | 28 ++-
.../cluster/server/member/MetaGroupMemberTest.java | 20 +-
.../resources/node1conf/iotdb-cluster.properties | 1 +
.../resources/node2conf/iotdb-cluster.properties | 1 +
.../resources/node3conf/iotdb-cluster.properties | 1 +
compile-tools/thrift/pom.xml | 2 +-
docs/Development/ContributeGuide.md | 62 +++---
docs/UserGuide/API/Programming-Java-Native-API.md | 98 +++++++++
.../Administration-Management/Administration.md | 7 +-
docs/UserGuide/Cluster/Cluster-Setup.md | 9 +
.../Data-Concept/Data-Model-and-Terminology.md | 4 +-
.../Ecosystem Integration/Zeppelin-IoTDB.md | 2 +-
.../DDL-Data-Definition-Language.md | 2 +-
.../DML-Data-Manipulation-Language.md | 14 ++
docs/zh/Development/ContributeGuide.md | 26 +--
.../UserGuide/API/Programming-Java-Native-API.md | 95 ++++++++
.../Administration-Management/Administration.md | 5 +-
docs/zh/UserGuide/Cluster/Cluster-Setup.md | 9 +
.../Data-Concept/Data-Model-and-Terminology.md | 4 +-
.../Ecosystem Integration/Zeppelin-IoTDB.md | 2 +-
.../DDL-Data-Definition-Language.md | 2 +-
.../DML-Data-Manipulation-Language.md | 14 ++
example/pom.xml | 6 +
{thrift-sync => example/rabbitmq}/pom.xml | 42 +---
example/rabbitmq/readme.md | 63 ++++++
.../java/org/apache/iotdb/rabbitmq/Constant.java | 68 ++++++
.../iotdb/rabbitmq/RabbitMQChannelUtils.java | 49 +++++
.../apache/iotdb/rabbitmq/RabbitMQConsumer.java | 132 +++++++++++
.../apache/iotdb/rabbitmq/RabbitMQProducer.java | 49 +++++
example/trigger/pom.xml | 66 +++---
.../apache/iotdb/tsfile/TsFileSequenceRead.java | 5 +
example/udf/pom.xml | 66 +++---
jdbc/src/main/feature/feature.xml | 2 +-
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 9 +-
.../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java | 9 +-
.../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 24 +-
pom.xml | 25 ++-
server/pom.xml | 12 +-
.../resources/conf/iotdb-engine.properties | 13 +-
.../apache/iotdb/db/auth/entity/PrivilegeType.java | 1 +
.../org/apache/iotdb/db/concurrent/ThreadName.java | 3 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 34 ++-
.../org/apache/iotdb/db/conf/IoTDBConfigCheck.java | 28 ++-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 19 ++
.../db/engine/cache/TimeSeriesMetadataCache.java | 121 +++++++++++
.../db/engine/compaction/TsFileManagement.java | 21 +-
.../level/LevelCompactionTsFileManagement.java | 51 +++--
.../engine/compaction/utils/CompactionUtils.java | 81 +++++--
.../engine/storagegroup/StorageGroupProcessor.java | 42 +++-
.../db/engine/storagegroup/TsFileResource.java | 15 +-
.../org/apache/iotdb/db/metadata/MManager.java | 64 ++++--
.../org/apache/iotdb/db/metadata/PartialPath.java | 15 ++
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 9 +-
.../iotdb/db/qp/logical/crud/QueryOperator.java | 22 ++
.../org/apache/iotdb/db/qp/physical/BatchPlan.java | 54 +++--
.../db/qp/physical/crud/InsertMultiTabletPlan.java | 39 +++-
.../physical/crud/InsertRowsOfOneDevicePlan.java | 33 ++-
.../iotdb/db/qp/physical/crud/InsertRowsPlan.java | 39 +++-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 22 ++
.../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 39 +++-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 1 -
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 147 ++++++-------
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 5 +-
.../apache/iotdb/db/qp/utils/DatetimeUtils.java | 33 ++-
.../dataset/RawQueryDataSetWithoutValueFilter.java | 79 +++++--
.../apache/iotdb/db/query/dataset/ShowDataSet.java | 12 +-
.../db/query/executor/fill/LastPointReader.java | 51 ++---
.../chunk/metadata/DiskChunkMetadataLoader.java | 2 +-
.../query/reader/series/SeriesAggregateReader.java | 2 +-
.../reader/series/SeriesRawDataBatchReader.java | 4 +-
.../iotdb/db/query/reader/series/SeriesReader.java | 13 +-
.../reader/series/SeriesReaderByTimestamp.java | 2 +-
.../query/reader/series/SeriesReaderFactory.java | 94 --------
.../db/query/reader/series/VectorSeriesReader.java | 144 ------------
.../org/apache/iotdb/db/service/ServiceType.java | 5 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 3 +-
.../apache/iotdb/db/sync/conf/SyncConstant.java | 5 +-
.../iotdb/db/sync/sender/transfer/SyncClient.java | 27 ++-
.../java/org/apache/iotdb/db/utils/AuthUtils.java | 2 -
.../org/apache/iotdb/db/utils/FileLoaderUtils.java | 94 +++++++-
.../apache/iotdb/db/utils/QueryDataSetUtils.java | 18 +-
.../iotdb/db/utils/datastructure/VectorTVList.java | 6 +-
.../apache/iotdb/db/auth/AuthorityCheckerTest.java | 2 -
.../auth/authorizer/LocalFileAuthorizerTest.java | 6 +-
.../db/engine/compaction/CompactionChunkTest.java | 4 +-
.../compaction/LevelCompactionCacheTest.java | 3 +-
.../engine/compaction/LevelCompactionLogTest.java | 3 +-
.../compaction/LevelCompactionMergeTest.java | 83 ++++++-
.../compaction/LevelCompactionMoreDataTest.java | 3 +-
.../NoCompactionTsFileManagementTest.java | 4 +-
.../iotdb/db/integration/IoTDBGroupByMonthIT.java | 29 +++
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 36 +++
.../db/integration/IoTDBWithoutAllNullIT.java | 192 ++++++++++++++++
.../db/integration/IoTDBWithoutAnyNullIT.java | 221 +++++++++++++++++++
.../iotdb/db/metadata/MManagerBasicTest.java | 242 +++++++++++++++++++++
.../db/qp/utils/DatetimeQueryDataSetUtilsTest.java | 28 +++
.../org/apache/iotdb/db/script/EnvScriptIT.java | 6 +-
.../apache/iotdb/db/sink/LocalIoTDBSinkTest.java | 3 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 12 +-
.../iotdb/rpc/AutoScalingBufferReadTransport.java | 13 ++
.../iotdb/rpc/AutoScalingBufferWriteTransport.java | 15 ++
.../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 20 +-
.../org/apache/iotdb/rpc/RpcTransportFactory.java | 3 +-
.../rpc/TCompressedElasticFramedTransport.java | 2 +-
.../org/apache/iotdb/rpc/TConfigurationConst.java | 28 +--
.../apache/iotdb/rpc/TElasticFramedTransport.java | 20 +-
.../iotdb/rpc/TNonblockingSocketWrapper.java | 60 +++++
.../java/org/apache/iotdb/rpc/TSocketWrapper.java | 68 ++++++
.../apache/iotdb/session/SessionConnection.java | 13 +-
.../apache/iotdb/session/pool/SessionPoolTest.java | 117 +++++++---
session/src/test/resources/logback.xml | 40 ++++
.../test/java/org/apache/iotdb/db/sql/Cases.java | 149 +++++++++++++
.../java/org/apache/iotdb/db/sql/ClusterIT.java | 150 +++++--------
.../java/org/apache/iotdb/db/sql/SingleNodeIT.java | 92 ++------
.../iotdb/db/sql/node1/OneNodeClusterIT.java | 54 +++++
.../db/sql/nodes3/AbstractThreeNodeClusterIT.java | 61 ++++++
.../iotdb/db/sql/nodes3/ThreeNodeCluster1IT.java | 24 +-
.../iotdb/db/sql/nodes3/ThreeNodeCluster2IT.java | 27 +--
.../db/sql/nodes5/AbstractFiveNodeClusterIT.java | 85 ++++++++
.../iotdb/db/sql/nodes5/FiveNodeCluster1IT.java | 24 +-
.../iotdb/db/sql/nodes5/FiveNodeCluster2IT.java | 27 +--
.../iotdb/db/sql/nodes5/FiveNodeCluster4IT.java | 27 +--
.../test/resources/1node/iotdb-cluster.properties | 2 +-
thrift-cluster/src/main/thrift/cluster.thrift | 52 ++++-
thrift-sync/pom.xml | 5 -
.../tsfile/common/constant/TsFileConstant.java | 3 +
.../iotdb/tsfile/file/metadata/ChunkMetadata.java | 16 ++
.../iotdb/tsfile/file/metadata/IChunkMetadata.java | 6 +
.../tsfile/file/metadata/ITimeSeriesMetadata.java | 3 +
.../file/metadata/MetadataIndexConstructor.java | 54 ++++-
.../tsfile/file/metadata/MetadataIndexNode.java | 2 +-
.../tsfile/file/metadata/TimeseriesMetadata.java | 20 +-
.../tsfile/file/metadata/VectorChunkMetadata.java | 24 ++
.../file/metadata/VectorTimeSeriesMetadata.java | 16 ++
.../iotdb/tsfile/read/TsFileSequenceReader.java | 80 +++++--
.../apache/iotdb/tsfile/read/common/RowRecord.java | 38 +++-
.../tsfile/read/query/dataset/QueryDataSet.java | 29 ++-
.../tsfile/v2/file/metadata/TsFileMetadataV2.java | 9 +-
.../tsfile/v2/read/TsFileSequenceReaderForV2.java | 16 +-
.../iotdb/tsfile/write/chunk/TimeChunkWriter.java | 3 +-
.../iotdb/tsfile/write/chunk/ValueChunkWriter.java | 3 +-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 121 ++++++++---
191 files changed, 4597 insertions(+), 1336 deletions(-)
diff --cc server/pom.xml
index 4d0f08d,08944e2..07219f6
--- a/server/pom.xml
+++ b/server/pom.xml
@@@ -213,12 -213,6 +213,12 @@@
<version>4.3.5</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>org.apache.calcite</groupId>
- <artifactId>calcite-linq4j</artifactId>
- <version>1.10.0</version>
- <scope>compile</scope>
- </dependency>
++ <dependency>
++ <groupId>org.apache.calcite</groupId>
++ <artifactId>calcite-linq4j</artifactId>
++ <version>1.10.0</version>
++ <scope>compile</scope>
++ </dependency>
</dependencies>
<build>
<plugins>
diff --cc server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
index e52dd92,c640470..7e3055b
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/QueryOperator.java
@@@ -279,15 -257,19 +285,31 @@@ public class QueryOperator extends Root
this.ascending = ascending;
}
+ public boolean isLastQuery() {
+ return selectOperator.isLastQuery();
+ }
+
+ public boolean hasAggregationFunction() {
+ return selectOperator.hasAggregationFunction();
+ }
+
+ public boolean hasTimeSeriesGeneratingFunction() {
+ return selectOperator.hasTimeSeriesGeneratingFunction();
+ }
++
+ public boolean isWithoutAnyNull() {
+ return withoutAnyNull;
+ }
+
+ public void setWithoutAnyNull(boolean withoutAnyNull) {
+ this.withoutAnyNull = withoutAnyNull;
+ }
+
+ public boolean isWithoutAllNull() {
+ return withoutAllNull;
+ }
+
+ public void setWithoutAllNull(boolean withoutAllNull) {
+ this.withoutAllNull = withoutAllNull;
+ }
}
diff --cc server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
index 6bd6ce4,a13de6f..d43413f
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/QueryPlan.java
@@@ -157,11 -157,19 +163,27 @@@ public abstract class QueryPlan extend
this.vectorPathToIndex = vectorPathToIndex;
}
+ public List<ResultColumn> getResultColumns() {
+ return resultColumns;
+ }
+
+ public void setResultColumns(List<ResultColumn> resultColumns) {
+ this.resultColumns = resultColumns;
+ }
++
+ public boolean isWithoutAnyNull() {
+ return withoutAnyNull;
+ }
+
+ public void setWithoutAnyNull(boolean withoutAnyNull) {
+ this.withoutAnyNull = withoutAnyNull;
+ }
+
+ public boolean isWithoutAllNull() {
+ return withoutAllNull;
+ }
+
+ public void setWithoutAllNull(boolean withoutAllNull) {
+ this.withoutAllNull = withoutAllNull;
+ }
}
diff --cc server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 82ef1e0,faa4499..44d9131
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@@ -78,9 -78,11 +78,9 @@@ import org.apache.iotdb.db.qp.logical.s
import org.apache.iotdb.db.qp.logical.sys.StopTriggerOperator;
import org.apache.iotdb.db.qp.logical.sys.TracingOperator;
import org.apache.iotdb.db.qp.physical.crud.GroupByTimePlan;
-import org.apache.iotdb.db.qp.sql.SqlBaseParser.AggregationCallContext;
-import org.apache.iotdb.db.qp.sql.SqlBaseParser.AggregationElementContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.AliasClauseContext;
- import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlignByDeviceClauseOrDisableAlignInSpecialLimitContext;
- import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlignByDeviceStatementOrDisableAlignInSpecialClauseContext;
+ import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlignByDeviceClauseOrDisableAlignContext;
+ import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlignByDeviceClauseOrDisableAlignStatementContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlterClauseContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlterTimeseriesContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.AlterUserContext;
@@@ -206,8 -212,11 +206,9 @@@ import org.apache.iotdb.db.qp.sql.SqlBa
import org.apache.iotdb.db.qp.sql.SqlBaseParser.TracingOnContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.TriggerAttributeContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.TypeClauseContext;
-import org.apache.iotdb.db.qp.sql.SqlBaseParser.UdfAttributeContext;
-import org.apache.iotdb.db.qp.sql.SqlBaseParser.UdfCallContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.UnsetTTLStatementContext;
import org.apache.iotdb.db.qp.sql.SqlBaseParser.WhereClauseContext;
+ import org.apache.iotdb.db.qp.sql.SqlBaseParser.WithoutNullStatementContext;
import org.apache.iotdb.db.qp.utils.DatetimeUtils;
import org.apache.iotdb.db.query.executor.fill.IFill;
import org.apache.iotdb.db.query.executor.fill.LinearFill;
diff --cc server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
index 9bfc7e1,217a3bb..5c81c6e
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/PhysicalGenerator.java
@@@ -540,9 -540,9 +540,9 @@@ public class PhysicalGenerator
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private PhysicalPlan transformQuery(QueryOperator queryOperator) throws QueryProcessException {
- QueryPlan queryPlan = null;
+ QueryPlan queryPlan;
- if (queryOperator.hasAggregation()) {
+ if (queryOperator.hasAggregationFunction()) {
queryPlan = new AggPhysicalPlanRule().transform(queryOperator);
} else if (queryOperator.isFill()) {
queryPlan = new FillPhysicalPlanRule().transform(queryOperator);