You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/07/30 08:55:38 UTC
[incubator-iotdb] 01/01: set props in MeasurementSchema to null by
default
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch release_props_memory
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 64711664a86a4a88bbe409641e2ff75bbacd5c60
Author: qiaojialin <64...@qq.com>
AuthorDate: Thu Jul 30 16:55:13 2020 +0800
set props in MeasurementSchema to null by default
---
.../org/apache/iotdb/db/metadata/MManager.java | 3 ++-
.../org/apache/iotdb/db/metadata/mnode/MNode.java | 4 ++--
.../qp/logical/sys/CreateTimeSeriesOperator.java | 6 +++---
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 6 +++---
.../iotdb/db/qp/strategy/LogicalGenerator.java | 3 ++-
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 22 ++++++++++++++++++++++
.../org/apache/iotdb/session/IoTDBSessionIT.java | 8 +++++++-
.../tsfile/write/schema/MeasurementSchema.java | 10 +++++-----
8 files changed, 46 insertions(+), 16 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 3e0f029..def92ff 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -307,10 +307,11 @@ public class MManager {
String[] args = cmd.trim().split(",", -1);
switch (args[0]) {
case MetadataOperationType.CREATE_TIMESERIES:
- Map<String, String> props = new HashMap<>();
+ Map<String, String> props = null;
if (!args[5].isEmpty()) {
String[] keyValues = args[5].split("&");
String[] kv;
+ props = new HashMap<>();
for (String keyValue : keyValues) {
kv = keyValue.split("=");
props.put(kv[0], kv[1]);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
index 002540d..d614b7f 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
@@ -53,8 +53,8 @@ public class MNode implements Serializable {
*/
protected String fullPath;
- transient Map<String, MNode> children;
- transient Map<String, MNode> aliasChildren;
+ transient Map<String, MNode> children = null;
+ transient Map<String, MNode> aliasChildren = null;
protected transient ReadWriteLock lock = new ReentrantReadWriteLock();
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CreateTimeSeriesOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CreateTimeSeriesOperator.java
index ad78900..2e4f648 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CreateTimeSeriesOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/CreateTimeSeriesOperator.java
@@ -33,9 +33,9 @@ public class CreateTimeSeriesOperator extends RootOperator {
private TSDataType dataType;
private TSEncoding encoding;
private CompressionType compressor;
- private Map<String, String> props;
- private Map<String, String> attributes;
- private Map<String, String> tags;
+ private Map<String, String> props = null;
+ private Map<String, String> attributes = null;
+ private Map<String, String> tags = null;
public CreateTimeSeriesOperator(int tokenIntType) {
super(tokenIntType);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java
index 5d31b22..98b80dd 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/CreateTimeSeriesPlan.java
@@ -40,9 +40,9 @@ public class CreateTimeSeriesPlan extends PhysicalPlan {
private TSEncoding encoding;
private CompressionType compressor;
private String alias;
- private Map<String, String> props;
- private Map<String, String> tags;
- private Map<String, String> attributes;
+ private Map<String, String> props = null;
+ private Map<String, String> tags = null;
+ private Map<String, String> attributes = null;
public CreateTimeSeriesPlan() {
super(false, Operator.OperatorType.CREATE_TIMESERIES);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index b6db893..6ad6202 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -1131,13 +1131,14 @@ public class LogicalGenerator extends SqlBaseBaseListener {
createTimeSeriesOperator.setEncoding(TSEncoding.valueOf(encoding));
CompressionType compressor;
List<PropertyContext> properties = ctx.property();
- Map<String, String> props = new HashMap<>(properties.size());
if (ctx.compressor() != null) {
compressor = CompressionType.valueOf(ctx.compressor().getText().toUpperCase());
} else {
compressor = TSFileDescriptor.getInstance().getConfig().getCompressor();
}
+ Map<String, String> props = null;
if (ctx.property(0) != null) {
+ props = new HashMap<>(properties.size());
for (PropertyContext property : properties) {
props.put(property.ID().getText().toLowerCase(),
property.propertyValue().getText().toLowerCase());
diff --git a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSimpleQueryIT.java b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSimpleQueryIT.java
index 42f3f39..2117b59 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSimpleQueryIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBSimpleQueryIT.java
@@ -19,6 +19,10 @@
package org.apache.iotdb.db.integration;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.exception.metadata.MetadataException;
+import org.apache.iotdb.db.metadata.MManager;
+import org.apache.iotdb.db.metadata.mnode.MNode;
+import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.jdbc.Config;
import org.apache.iotdb.jdbc.IoTDBSQLException;
@@ -44,6 +48,24 @@ public class IoTDBSimpleQueryIT {
}
@Test
+ public void testCreatTimeseries() throws SQLException, ClassNotFoundException, MetadataException {
+ Class.forName(Config.JDBC_DRIVER_NAME);
+ try(Connection connection = DriverManager
+ .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/",
+ "root", "root");
+ Statement statement = connection.createStatement()){
+ statement.setFetchSize(5);
+ statement.execute("SET STORAGE GROUP TO root.sg1");
+ statement.execute("CREATE TIMESERIES root.sg1.d0.s1 WITH DATATYPE=INT32,ENCODING=PLAIN");
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+
+ MeasurementMNode mNode = (MeasurementMNode) MManager.getInstance().getNodeByPath("root.sg1.d0.s1");
+ assertNull(mNode.getSchema().getProps());
+ }
+
+ @Test
public void testEmptyDataSet() throws SQLException, ClassNotFoundException {
Class.forName(Config.JDBC_DRIVER_NAME);
try(Connection connection = DriverManager
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
index 7bc3a11..c735cc4 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.session;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
@@ -35,6 +36,9 @@ import java.util.List;
import java.util.Map;
import org.apache.iotdb.db.conf.IoTDBConstant;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.exception.metadata.MetadataException;
+import org.apache.iotdb.db.metadata.MManager;
+import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.jdbc.Config;
import org.apache.iotdb.rpc.BatchExecutionException;
@@ -296,7 +300,7 @@ public class IoTDBSessionIT {
@Test
public void testCreateMultiTimeseries()
- throws IoTDBConnectionException, BatchExecutionException, StatementExecutionException {
+ throws IoTDBConnectionException, BatchExecutionException, StatementExecutionException, MetadataException {
session = new Session("127.0.0.1", 6667, "root", "root");
session.open();
@@ -325,6 +329,8 @@ public class IoTDBSessionIT {
Assert.assertTrue(session.checkTimeseriesExists("root.sg1.d1.s1"));
Assert.assertTrue(session.checkTimeseriesExists("root.sg1.d1.s2"));
+ MeasurementMNode mNode = (MeasurementMNode) MManager.getInstance().getNodeByPath("root.sg1.d1.s1");
+ assertNull(mNode.getSchema().getProps());
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
index 0ef47ea..608d30a 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
@@ -49,7 +49,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
private TSEncoding encoding;
private TSEncodingBuilder encodingConverter;
private CompressionType compressor;
- private Map<String, String> props = new HashMap<>();
+ private Map<String, String> props = null;
public MeasurementSchema() {
}
@@ -58,7 +58,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
this(measurementId, tsDataType,
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getValueEncoder()),
TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
+ null);
}
/**
@@ -67,12 +67,12 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
public MeasurementSchema(String measurementId, TSDataType type, TSEncoding encoding) {
this(measurementId, type, encoding,
TSFileDescriptor.getInstance().getConfig().getCompressor(),
- Collections.emptyMap());
+ null);
}
public MeasurementSchema(String measurementId, TSDataType type, TSEncoding encoding,
CompressionType compressionType) {
- this(measurementId, type, encoding, compressionType, Collections.emptyMap());
+ this(measurementId, type, encoding, compressionType, null);
}
/**
@@ -86,7 +86,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
this.type = type;
this.measurementId = measurementId;
this.encoding = encoding;
- this.props = props == null ? Collections.emptyMap() : props;
+ this.props = props;
this.compressor = compressionType;
}