MCPcopy Create free account
hub / github.com/apache/iotdb-client-go / InsertAlignedRecordsOfOneDevice

Method InsertAlignedRecordsOfOneDevice

client/session.go:819–864  ·  view source on GitHub ↗
(deviceId string, timestamps []int64, measurementsSlice [][]string, dataTypesSlice [][]TSDataType, valuesSlice [][]interface{}, sorted bool)

Source from the content-addressed store, hash-verified

817}
818
819func (s *Session) InsertAlignedRecordsOfOneDevice(deviceId string, timestamps []int64, measurementsSlice [][]string, dataTypesSlice [][]TSDataType, valuesSlice [][]interface{}, sorted bool) error {
820 length := len(timestamps)
821 if len(measurementsSlice) != length || len(dataTypesSlice) != length || len(valuesSlice) != length {
822 return errors.New("timestamps, measurementsSlice and valuesSlice's size should be equal")
823 }
824
825 if !sorted {
826 sort.Sort(&deviceData{
827 timestamps: timestamps,
828 measurementsSlice: measurementsSlice,
829 dataTypesSlice: dataTypesSlice,
830 valuesSlice: valuesSlice,
831 })
832 }
833
834 var err error
835 valuesList := make([][]byte, length)
836 for i := 0; i < length; i++ {
837 if valuesList[i], err = valuesToBytes(dataTypesSlice[i], valuesSlice[i], measurementsSlice[i]); err != nil {
838 return err
839 }
840 }
841 isAligned := true
842 request := &rpc.TSInsertRecordsOfOneDeviceReq{
843 SessionId: s.sessionId,
844 PrefixPath: deviceId,
845 Timestamps: timestamps,
846 MeasurementsList: measurementsSlice,
847 ValuesList: valuesList,
848 IsAligned: &isAligned,
849 }
850
851 r, err := s.client.InsertRecordsOfOneDevice(context.Background(), request)
852
853 if err != nil && r == nil {
854 if s.reconnect() {
855 request.SessionId = s.sessionId
856 r, err = s.client.InsertRecordsOfOneDevice(context.Background(), request)
857 }
858 }
859
860 if err != nil {
861 return err
862 }
863 return VerifySuccess(r)
864}
865
866/*
867 *insert multiple rows of data, records are independent to each other, in other words, there's no relationship

Calls 5

reconnectMethod · 0.95
valuesToBytesFunction · 0.85
VerifySuccessFunction · 0.85
SortMethod · 0.80

Tested by 1