提交 c9d040ca 编写于 作者: Q qiaojialin

remove IoTDBDataType in rpc, use int32 instead

上级 895c9ba0
...@@ -156,7 +156,7 @@ public class Client { ...@@ -156,7 +156,7 @@ public class Client {
request.deviceId = rowBatch.deviceId; request.deviceId = rowBatch.deviceId;
for (MeasurementSchema measurementSchema: rowBatch.measurements) { for (MeasurementSchema measurementSchema: rowBatch.measurements) {
request.addToMeasurements(measurementSchema.getMeasurementId()); request.addToMeasurements(measurementSchema.getMeasurementId());
request.addToTypes(Utils.getIoTDBDataTypeByTSDataType(measurementSchema.getType())); request.addToTypes(measurementSchema.getType().ordinal());
} }
request.setTimestamps(Utils.getTimeBuffer(rowBatch)); request.setTimestamps(Utils.getTimeBuffer(rowBatch));
request.setValues(Utils.getValueBuffer(rowBatch)); request.setValues(Utils.getValueBuffer(rowBatch));
......
...@@ -24,7 +24,6 @@ import java.util.List; ...@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Properties; import java.util.Properties;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.iotdb.service.rpc.thrift.IoTDBDataType;
import org.apache.iotdb.service.rpc.thrift.TSDataValue; import org.apache.iotdb.service.rpc.thrift.TSDataValue;
import org.apache.iotdb.service.rpc.thrift.TSQueryDataSet; import org.apache.iotdb.service.rpc.thrift.TSQueryDataSet;
import org.apache.iotdb.service.rpc.thrift.TSRowRecord; import org.apache.iotdb.service.rpc.thrift.TSRowRecord;
...@@ -105,7 +104,7 @@ public class Utils { ...@@ -105,7 +104,7 @@ public class Utils {
field.setNull(); field.setNull();
r.getFields().add(field); r.getFields().add(field);
} else { } else {
TSDataType dataType = getTSDataTypeByRPCType(value.getType()); TSDataType dataType = TSDataType.valueOf(value.getType());
Field field = new Field(dataType); Field field = new Field(dataType);
addFieldAccordingToDataType(field, dataType, value); addFieldAccordingToDataType(field, dataType, value);
r.getFields().add(field); r.getFields().add(field);
...@@ -116,30 +115,6 @@ public class Utils { ...@@ -116,30 +115,6 @@ public class Utils {
return records; return records;
} }
private static TSDataType getTSDataTypeByRPCType(IoTDBDataType type) {
switch (type) {
case BOOLEAN: return TSDataType.BOOLEAN;
case FLOAT: return TSDataType.FLOAT;
case DOUBLE: return TSDataType.DOUBLE;
case INT32: return TSDataType.INT32;
case INT64: return TSDataType.INT64;
case TEXT: return TSDataType.TEXT;
default: throw new RuntimeException("data type not supported: " + type);
}
}
public static IoTDBDataType getIoTDBDataTypeByTSDataType(TSDataType type) {
switch (type) {
case BOOLEAN: return IoTDBDataType.BOOLEAN;
case FLOAT: return IoTDBDataType.FLOAT;
case DOUBLE: return IoTDBDataType.DOUBLE;
case INT32: return IoTDBDataType.INT32;
case INT64: return IoTDBDataType.INT64;
case TEXT: return IoTDBDataType.TEXT;
default: throw new RuntimeException("data type not supported: " + type);
}
}
/** /**
* *
* @param field -the field need to add new data * @param field -the field need to add new data
......
...@@ -281,7 +281,7 @@ public class IoTDBQueryResultSetTest { ...@@ -281,7 +281,7 @@ public class IoTDBQueryResultSetTest {
} else { } else {
value.setInt_val((int) item[3 * i + 3]); value.setInt_val((int) item[3 * i + 3]);
} }
value.setType(Utils.getIoTDBDataTypeByTSDataType((TSDataType) item[3 * i + 2])); value.setType(item[3 * i + 2].toString());
} }
values.add(value); values.add(value);
} }
......
...@@ -125,7 +125,7 @@ public class UtilsTest { ...@@ -125,7 +125,7 @@ public class UtilsTest {
} else { } else {
value.setBinary_val(ByteBuffer.wrap(((String) item[3 * i + 3]).getBytes())); value.setBinary_val(ByteBuffer.wrap(((String) item[3 * i + 3]).getBytes()));
} }
value.setType(Utils.getIoTDBDataTypeByTSDataType((TSDataType) item[3 * i + 2])); value.setType(item[3 * i + 2].toString());
} }
values.add(value); values.add(value);
} }
......
...@@ -24,7 +24,6 @@ import java.util.List; ...@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.iotdb.db.qp.logical.Operator.OperatorType; import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
import org.apache.iotdb.db.qp.physical.PhysicalPlan; import org.apache.iotdb.db.qp.physical.PhysicalPlan;
import org.apache.iotdb.db.utils.QueryDataSetUtils; import org.apache.iotdb.db.utils.QueryDataSetUtils;
import org.apache.iotdb.service.rpc.thrift.IoTDBDataType;
import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException; import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.Path; import org.apache.iotdb.tsfile.read.common.Path;
...@@ -36,7 +35,6 @@ public class BatchInsertPlan extends PhysicalPlan { ...@@ -36,7 +35,6 @@ public class BatchInsertPlan extends PhysicalPlan {
private String deviceId; private String deviceId;
private String[] measurements; private String[] measurements;
private TSDataType[] dataTypes; private TSDataType[] dataTypes;
private List<IoTDBDataType> dataTypeList;
private long[] times; private long[] times;
private ByteBuffer timeBuffer; private ByteBuffer timeBuffer;
...@@ -61,14 +59,7 @@ public class BatchInsertPlan extends PhysicalPlan { ...@@ -61,14 +59,7 @@ public class BatchInsertPlan extends PhysicalPlan {
setMeasurements(measurements); setMeasurements(measurements);
} }
public BatchInsertPlan(String deviceId, String[] measurements, List<IoTDBDataType> dataTypes) { public BatchInsertPlan(String deviceId, String[] measurements, List<Integer> dataTypes) {
super(false, OperatorType.BATCHINSERT);
this.deviceId = deviceId;
this.measurements = measurements;
setDataTypes(dataTypes);
}
public BatchInsertPlan(String deviceId, String[] measurements, IoTDBDataType[] dataTypes) {
super(false, OperatorType.BATCHINSERT); super(false, OperatorType.BATCHINSERT);
this.deviceId = deviceId; this.deviceId = deviceId;
this.measurements = measurements; this.measurements = measurements;
...@@ -197,13 +188,9 @@ public class BatchInsertPlan extends PhysicalPlan { ...@@ -197,13 +188,9 @@ public class BatchInsertPlan extends PhysicalPlan {
this.times = new long[rows]; this.times = new long[rows];
QueryDataSetUtils.readTimesFromBuffer(buffer, rows); QueryDataSetUtils.readTimesFromBuffer(buffer, rows);
QueryDataSetUtils.readValuesFromBuffer(buffer, dataTypeList, measurementSize, rows); QueryDataSetUtils.readValuesFromBuffer(buffer, dataTypes, measurementSize, rows);
} }
public void setDataTypeList(List<IoTDBDataType> dataTypeList) {
this.dataTypeList = dataTypeList;
setDataTypes(dataTypeList);
}
public String getDeviceId() { public String getDeviceId() {
return deviceId; return deviceId;
...@@ -230,17 +217,10 @@ public class BatchInsertPlan extends PhysicalPlan { ...@@ -230,17 +217,10 @@ public class BatchInsertPlan extends PhysicalPlan {
return dataTypes; return dataTypes;
} }
public void setDataTypes(List<IoTDBDataType> dataTypes) { public void setDataTypes(List<Integer> dataTypes) {
this.dataTypes = new TSDataType[dataTypes.size()]; this.dataTypes = new TSDataType[dataTypes.size()];
for (int i = 0; i < dataTypes.size(); i++) { for (int i = 0; i < dataTypes.size(); i++) {
this.dataTypes[i] = QueryDataSetUtils.getTSDataTypeByIoTDBDataType(dataTypes.get(i)); this.dataTypes[i] = TSDataType.values()[dataTypes.get(i)];
}
}
public void setDataTypes(IoTDBDataType[] dataTypes) {
this.dataTypes = new TSDataType[dataTypes.length];
for (int i = 0; i < dataTypes.length; i++) {
this.dataTypes[i] = QueryDataSetUtils.getTSDataTypeByIoTDBDataType(dataTypes[i]);
} }
} }
......
...@@ -1023,7 +1023,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { ...@@ -1023,7 +1023,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
batchInsertPlan.setRowCount(req.size); batchInsertPlan.setRowCount(req.size);
batchInsertPlan.setTimeBuffer(req.timestamps); batchInsertPlan.setTimeBuffer(req.timestamps);
batchInsertPlan.setValueBuffer(req.values); batchInsertPlan.setValueBuffer(req.values);
batchInsertPlan.setDataTypeList(req.types); batchInsertPlan.setDataTypes(req.types);
boolean isAllSuccessful = true; boolean isAllSuccessful = true;
......
...@@ -18,7 +18,6 @@ import java.io.IOException; ...@@ -18,7 +18,6 @@ import java.io.IOException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.apache.iotdb.service.rpc.thrift.IoTDBDataType;
import org.apache.iotdb.service.rpc.thrift.TSDataValue; import org.apache.iotdb.service.rpc.thrift.TSDataValue;
import org.apache.iotdb.service.rpc.thrift.TSQueryDataSet; import org.apache.iotdb.service.rpc.thrift.TSQueryDataSet;
import org.apache.iotdb.service.rpc.thrift.TSRowRecord; import org.apache.iotdb.service.rpc.thrift.TSRowRecord;
...@@ -99,36 +98,13 @@ public class QueryDataSetUtils { ...@@ -99,36 +98,13 @@ public class QueryDataSetUtils {
"data type %s is not supported when convert data at server", "data type %s is not supported when convert data at server",
f.getDataType().toString())); f.getDataType().toString()));
} }
value.setType(getIoTDBDataTypeByTSDataType(f.getDataType())); value.setType(f.getDataType().toString());
} }
tsRowRecord.getValues().add(value); tsRowRecord.getValues().add(value);
} }
return tsRowRecord; return tsRowRecord;
} }
public static IoTDBDataType getIoTDBDataTypeByTSDataType(TSDataType type) {
switch (type) {
case BOOLEAN: return IoTDBDataType.BOOLEAN;
case FLOAT: return IoTDBDataType.FLOAT;
case DOUBLE: return IoTDBDataType.DOUBLE;
case INT32: return IoTDBDataType.INT32;
case INT64: return IoTDBDataType.INT64;
case TEXT: return IoTDBDataType.TEXT;
default: throw new RuntimeException("data type not supported: " + type);
}
}
public static TSDataType getTSDataTypeByIoTDBDataType(IoTDBDataType type) {
switch (type) {
case BOOLEAN: return TSDataType.BOOLEAN;
case FLOAT: return TSDataType.FLOAT;
case DOUBLE: return TSDataType.DOUBLE;
case INT32: return TSDataType.INT32;
case INT64: return TSDataType.INT64;
case TEXT: return TSDataType.TEXT;
default: throw new RuntimeException("data type not supported: " + type);
}
}
public static long[] readTimesFromBuffer(ByteBuffer buffer, int size) { public static long[] readTimesFromBuffer(ByteBuffer buffer, int size) {
long[] times = new long[size]; long[] times = new long[size];
...@@ -138,16 +114,26 @@ public class QueryDataSetUtils { ...@@ -138,16 +114,26 @@ public class QueryDataSetUtils {
return times; return times;
} }
public static Object[] readValuesFromBuffer(ByteBuffer buffer, List<Integer> types,
int columns, int size) {
TSDataType[] dataTypes = new TSDataType[types.size()];
for (int i = 0; i < dataTypes.length; i++) {
dataTypes[i] = TSDataType.values()[types.get(i)];
}
return readValuesFromBuffer(buffer, dataTypes, columns, size);
}
/** /**
* @param buffer data values * @param buffer data values
* @param columns column number * @param columns column number
* @param size value count in each column * @param size value count in each column
*/ */
public static Object[] readValuesFromBuffer(ByteBuffer buffer, List<IoTDBDataType> types, public static Object[] readValuesFromBuffer(ByteBuffer buffer, TSDataType[] types,
int columns, int size) { int columns, int size) {
Object[] values = new Object[columns]; Object[] values = new Object[columns];
for (int i = 0; i < columns; i++) { for (int i = 0; i < columns; i++) {
switch (types.get(i)) { switch (types[i]) {
case BOOLEAN: case BOOLEAN:
boolean[] boolValues = new boolean[size]; boolean[] boolValues = new boolean[size];
for (int index = 0; index < size; index++) { for (int index = 0; index < size; index++) {
...@@ -196,7 +182,7 @@ public class QueryDataSetUtils { ...@@ -196,7 +182,7 @@ public class QueryDataSetUtils {
default: default:
throw new UnSupportedDataTypeException( throw new UnSupportedDataTypeException(
String.format("data type %s is not supported when convert data at client", String.format("data type %s is not supported when convert data at client",
types.get(i))); types[i]));
} }
} }
return values; return values;
......
...@@ -18,14 +18,14 @@ ...@@ -18,14 +18,14 @@
*/ */
package org.apache.iotdb.db.engine.storagegroup; package org.apache.iotdb.db.engine.storagegroup;
import java.util.ArrayList;
import java.util.List;
import org.apache.iotdb.db.engine.MetadataManagerHelper; import org.apache.iotdb.db.engine.MetadataManagerHelper;
import org.apache.iotdb.db.engine.querycontext.QueryDataSource; import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
import org.apache.iotdb.db.exception.StorageGroupProcessorException;
import org.apache.iotdb.db.qp.physical.crud.BatchInsertPlan; import org.apache.iotdb.db.qp.physical.crud.BatchInsertPlan;
import org.apache.iotdb.db.qp.physical.crud.InsertPlan; import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
import org.apache.iotdb.db.query.context.QueryContext; import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.utils.EnvironmentUtils; import org.apache.iotdb.db.utils.EnvironmentUtils;
import org.apache.iotdb.service.rpc.thrift.IoTDBDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.write.record.TSRecord; import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint; import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
...@@ -82,9 +82,9 @@ public class StorageGroupProcessorTest { ...@@ -82,9 +82,9 @@ public class StorageGroupProcessorTest {
String[] measurements = new String[2]; String[] measurements = new String[2];
measurements[0] = "s0"; measurements[0] = "s0";
measurements[1] = "s1"; measurements[1] = "s1";
IoTDBDataType[] dataTypes = new IoTDBDataType[2]; List<Integer> dataTypes = new ArrayList<>();
dataTypes[0] = IoTDBDataType.INT32; dataTypes.add(TSDataType.INT32.ordinal());
dataTypes[1] = IoTDBDataType.INT64; dataTypes.add(TSDataType.INT64.ordinal());
BatchInsertPlan batchInsertPlan1 = new BatchInsertPlan("root.vehicle.d0", measurements, dataTypes); BatchInsertPlan batchInsertPlan1 = new BatchInsertPlan("root.vehicle.d0", measurements, dataTypes);
...@@ -131,7 +131,7 @@ public class StorageGroupProcessorTest { ...@@ -131,7 +131,7 @@ public class StorageGroupProcessorTest {
@Test @Test
public void testSeqAndUnSeqSyncClose() throws StorageGroupProcessorException { public void testSeqAndUnSeqSyncClose() {
for (int j = 21; j <= 30; j++) { for (int j = 21; j <= 30; j++) {
TSRecord record = new TSRecord(j, deviceId); TSRecord record = new TSRecord(j, deviceId);
......
...@@ -28,10 +28,6 @@ enum TS_StatusCode { ...@@ -28,10 +28,6 @@ enum TS_StatusCode {
INVALID_HANDLE_STATUS INVALID_HANDLE_STATUS
} }
enum IoTDBDataType {
BOOLEAN, INT32, INT64, FLOAT, DOUBLE, TEXT
}
// The return status of a remote request // The return status of a remote request
struct TS_Status { struct TS_Status {
1: required TS_StatusCode statusCode 1: required TS_StatusCode statusCode
...@@ -197,7 +193,7 @@ struct TSDataValue{ ...@@ -197,7 +193,7 @@ struct TSDataValue{
5: optional double float_val 5: optional double float_val
6: optional double double_val 6: optional double double_val
7: optional binary binary_val 7: optional binary binary_val
8: optional IoTDBDataType type 8: optional string type
} }
struct TSRowRecord{ struct TSRowRecord{
...@@ -269,7 +265,7 @@ struct TSBatchInsertionReq { ...@@ -269,7 +265,7 @@ struct TSBatchInsertionReq {
2: required list<string> measurements 2: required list<string> measurements
3: required binary values 3: required binary values
4: required binary timestamps 4: required binary timestamps
5: required list<IoTDBDataType> types 5: required list<i32> types
6: required i32 size 6: required i32 size
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册