提交 0e2d8387 编写于 作者: M mychaow 提交者: Jialin Qiao

remove redundant type change

上级 2cbee31e
......@@ -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
*/
......@@ -2011,15 +1968,6 @@ public class MManager {
return dataType;
}
/**
* 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
......@@ -2027,7 +1975,7 @@ public class MManager {
*/
public void unlockInsert(String deviceId) {
try {
MNode mNode =getDeviceNode(deviceId);
MNode mNode = getDeviceNode(deviceId);
mNode.readUnlock();
} catch (MetadataException e) {
// ignore the exception
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册