@@ -59,6 +59,8 @@ TSDataType::TSDataType getTSDataTypeFromString(const string& str) {
5959 return TSDataType::BLOB ;
6060 } else if (str == " STRING" ) {
6161 return TSDataType::STRING ;
62+ } else if (str == " OBJECT" ) {
63+ return TSDataType::OBJECT ;
6264 }
6365 return TSDataType::UNKNOWN ;
6466}
@@ -88,6 +90,7 @@ void Tablet::createColumns() {
8890 break ;
8991 case TSDataType::STRING :
9092 case TSDataType::BLOB :
93+ case TSDataType::OBJECT :
9194 case TSDataType::TEXT :
9295 values[i] = new string[maxRowNumber];
9396 break ;
@@ -135,6 +138,7 @@ void Tablet::deleteColumns() {
135138 }
136139 case TSDataType::STRING :
137140 case TSDataType::BLOB :
141+ case TSDataType::OBJECT :
138142 case TSDataType::TEXT : {
139143 string* valueBuf = (string*)(values[i]);
140144 delete[] valueBuf;
@@ -182,6 +186,7 @@ void Tablet::deepCopyTabletColValue(void* const* srcPtr, void** destPtr, TSDataT
182186 }
183187 case TSDataType::STRING :
184188 case TSDataType::TEXT :
189+ case TSDataType::OBJECT :
185190 case TSDataType::BLOB : {
186191 *destPtr = new std::string[maxRowNumber];
187192 std::string* srcStr = static_cast <std::string*>(src);
@@ -232,6 +237,7 @@ size_t Tablet::getValueByteSize() {
232237 break ;
233238 case TSDataType::STRING :
234239 case TSDataType::BLOB :
240+ case TSDataType::OBJECT :
235241 case TSDataType::TEXT : {
236242 valueOccupation += rowSize * 4 ;
237243 string* valueBuf = (string*)(values[i]);
@@ -361,6 +367,7 @@ string SessionUtils::getValue(const Tablet& tablet) {
361367 }
362368 case TSDataType::STRING :
363369 case TSDataType::BLOB :
370+ case TSDataType::OBJECT :
364371 case TSDataType::TEXT : {
365372 string* valueBuf = (string*)(tablet.values [i]);
366373 for (size_t index = 0 ; index < tablet.rowSize ; index++) {
@@ -582,6 +589,7 @@ void Session::sortTablet(Tablet& tablet) {
582589 }
583590 case TSDataType::STRING :
584591 case TSDataType::BLOB :
592+ case TSDataType::OBJECT :
585593 case TSDataType::TEXT : {
586594 sortValuesList ((string*)(tablet.values [i]), index, tablet.rowSize );
587595 break ;
@@ -654,6 +662,7 @@ Session::putValuesIntoBuffer(const vector<TSDataType::TSDataType>& types, const
654662 break ;
655663 case TSDataType::STRING :
656664 case TSDataType::BLOB :
665+ case TSDataType::OBJECT :
657666 case TSDataType::TEXT : {
658667 int32_t len = (uint32_t )strlen (values[i]);
659668 appendValues (buf, (char *)(&len), sizeof (uint32_t ));
@@ -689,6 +698,8 @@ int8_t Session::getDataTypeNumber(TSDataType::TSDataType type) {
689698 return 10 ;
690699 case TSDataType::STRING :
691700 return 11 ;
701+ case TSDataType::OBJECT :
702+ return 12 ;
692703 default :
693704 return -1 ;
694705 }
@@ -1295,16 +1306,20 @@ void Session::buildInsertTabletReq(TSInsertTabletReq& request, Tablet& tablet, b
12951306 sortTablet (tablet);
12961307 }
12971308
1298- request.prefixPath = tablet.deviceId ;
1309+ request.__set_prefixPath ( tablet.deviceId ) ;
12991310
1300- request.measurements .reserve (tablet.schemas .size ());
1301- request.types .reserve (tablet.schemas .size ());
1311+ std::vector<std::string> reqMeasurements;
1312+ reqMeasurements.reserve (tablet.schemas .size ());
1313+ std::vector<int32_t > types;
1314+ types.reserve (tablet.schemas .size ());
13021315 for (pair<string, TSDataType::TSDataType> schema : tablet.schemas ) {
1303- request. measurements .push_back (schema.first );
1304- request. types .push_back (schema.second );
1316+ reqMeasurements .push_back (schema.first );
1317+ types.push_back (schema.second );
13051318 }
1306- request.values = move (SessionUtils::getValue (tablet));
1307- request.timestamps = move (SessionUtils::getTime (tablet));
1319+ request.__set_measurements (reqMeasurements);
1320+ request.__set_types (types);
1321+ request.__set_values (SessionUtils::getValue (tablet));
1322+ request.__set_timestamps (SessionUtils::getTime (tablet));
13081323 request.__set_size (tablet.rowSize );
13091324 request.__set_isAligned (tablet.isAligned );
13101325}
@@ -1389,6 +1404,7 @@ void Session::insertRelationalTablet(Tablet& tablet, bool sorted) {
13891404 }
13901405 case TSDataType::STRING :
13911406 case TSDataType::TEXT :
1407+ case TSDataType::OBJECT :
13921408 case TSDataType::BLOB : {
13931409 currentTablet.addValue (tablet.schemas [col].first , rowIndex,
13941410 *(string*)tablet.getValue (col, row, tablet.schemas [col].second ));
0 commit comments