This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 0e2d838 remove redundant type change
0e2d838 is described below
commit 0e2d8387e7da6b27f86114f1acb0b5a8d8a21b1f
Author: mychaow <[email protected]>
AuthorDate: Wed Jul 1 15:46:20 2020 +0800
remove redundant type change
---
.../org/apache/iotdb/db/metadata/MManager.java | 58 ++--------------------
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 4 +-
2 files changed, 4 insertions(+), 58 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 b62773e..57eb238 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
@@ -1841,12 +1841,12 @@ public class MManager {
* @return
* @throws MetadataException
*/
- public MeasurementSchema[] getSeriesSchemas(String deviceId, String[]
measurementList, PhysicalPlan plan) throws MetadataException {
+ public MeasurementSchema[] getSeriesSchemasAndLock(String deviceId, String[]
measurementList, PhysicalPlan plan) throws MetadataException {
MeasurementSchema[] schemas = new
MeasurementSchema[measurementList.length];
MNode deviceNode;
// 1. get device node
- deviceNode = getDeviceNode(deviceId);
+ deviceNode = getDeviceNodeWithAutoCreateAndReadLock(deviceId);
// 2. get schema of each measurement
for (int i = 0; i < measurementList.length; i++) {
@@ -1902,11 +1902,6 @@ public class MManager {
}
}
- // maybe need to convert value type to the true type
- if ((plan instanceof InsertRowPlan) && ((InsertRowPlan)
plan).isNeedInferType()) {
- changeStringValueToRealType((InsertRowPlan) plan, i,
measurementNode.getSchema().getType());
- }
-
schemas[i] = measurementNode.getSchema();
if (schemas[i] != null) {
measurementList[i] = schemas[i].getMeasurementId();
@@ -1927,44 +1922,6 @@ public class MManager {
return schemas;
}
- private void changeStringValueToRealType(InsertRowPlan plan, int loc,
TSDataType type) throws MetadataException {
- plan.getDataTypes()[loc] = type;
- try {
- switch (type) {
- case INT32:
- plan.getValues()[loc] =
- Integer.parseInt(String.valueOf(plan.getValues()[loc]));
- break;
- case INT64:
- plan.getValues()[loc] =
- Long.parseLong(String.valueOf(plan.getValues()[loc]));
- break;
- case DOUBLE:
- plan.getValues()[loc] =
- Double.parseDouble(String.valueOf(plan.getValues()[loc]));
- break;
- case FLOAT:
- plan.getValues()[loc] =
- Float.parseFloat(String.valueOf(plan.getValues()[loc]));
- break;
- case BOOLEAN:
- plan.getValues()[loc] =
- Boolean.parseBoolean(String.valueOf(plan.getValues()[loc]));
- break;
- case TEXT:
- plan.getValues()[loc] =
- Binary.valueOf(String.valueOf(plan.getValues()[loc]));
- break;
- }
- } catch (ClassCastException e) {
- logger.error("inconsistent type between client and server for " +
e.getMessage() + " " + type);
- throw new MetadataException(e.getMessage());
- } catch (NumberFormatException e) {
- logger.error("inconsistent type between type {} and value {}", type,
plan.getValues()[loc]);
- throw new MetadataException(e.getMessage());
- }
- }
-
/**
* Get default encoding by dataType
*/
@@ -2013,21 +1970,12 @@ public class MManager {
/**
* when insert, we lock device node for not create deleted time series
- * before insert, we should call this function to lock the device node
- * @param deviceId
- */
- public void lockInsert(String deviceId) throws MetadataException {
- getDeviceNodeWithAutoCreateAndReadLock(deviceId);
- }
-
- /**
- * when insert, we lock device node for not create deleted time series
* after insert, we should call this function to unlock the device node
* @param deviceId
*/
public void unlockInsert(String deviceId) {
try {
- MNode mNode =getDeviceNode(deviceId);
+ MNode mNode = getDeviceNode(deviceId);
mNode.readUnlock();
} catch (MetadataException e) {
// ignore the exception
diff --git
a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index ce32a50..a283744 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -867,13 +867,12 @@ public class PlanExecutor implements IPlanExecutor {
protected MeasurementSchema[] getSeriesSchemas(InsertPlan insertPlan)
throws MetadataException {
- return mManager.getSeriesSchemas(insertPlan.getDeviceId(),
insertPlan.getMeasurements(), insertPlan);
+ return mManager.getSeriesSchemasAndLock(insertPlan.getDeviceId(),
insertPlan.getMeasurements(), insertPlan);
}
@Override
public void insert(InsertRowPlan insertRowPlan) throws QueryProcessException
{
try {
- mManager.lockInsert(insertRowPlan.getDeviceId());
MeasurementSchema[] schemas = getSeriesSchemas(insertRowPlan);
insertRowPlan.setSchemasAndTransferType(schemas);
StorageEngine.getInstance().insert(insertRowPlan);
@@ -891,7 +890,6 @@ public class PlanExecutor implements IPlanExecutor {
@Override
public void insertTablet(InsertTabletPlan insertTabletPlan) throws
QueryProcessException {
try {
- mManager.lockInsert(insertTabletPlan.getDeviceId());
MeasurementSchema[] schemas = getSeriesSchemas(insertTabletPlan);
insertTabletPlan.setSchemas(schemas);
StorageEngine.getInstance().insertTablet(insertTabletPlan);