in client/rpcdataset.go [595:657]
func (s *IoTDBRpcDataSet) getStringByTsBlockColumnIndexAndDataType(index int32, tsDataType TSDataType) (string, error) {
switch tsDataType {
case BOOLEAN:
if v, err := s.curTsBlock.GetColumn(index).GetBoolean(s.tsBlockIndex); err != nil {
return "", nil
} else {
return strconv.FormatBool(v), nil
}
case INT32:
if v, err := s.curTsBlock.GetColumn(index).GetInt(s.tsBlockIndex); err != nil {
return "", err
} else {
return int32ToString(v), nil
}
case INT64:
if v, err := s.curTsBlock.GetColumn(index).GetLong(s.tsBlockIndex); err != nil {
return "", err
} else {
return int64ToString(v), nil
}
case TIMESTAMP:
if v, err := s.curTsBlock.GetColumn(index).GetLong(s.tsBlockIndex); err != nil {
return "", err
} else {
return formatDatetime(DEFAULT_TIME_FORMAT, s.timePrecision, v, s.zoneId), nil
}
case FLOAT:
if v, err := s.curTsBlock.GetColumn(index).GetFloat(s.tsBlockIndex); err != nil {
return "", err
} else {
return float32ToString(v), nil
}
case DOUBLE:
if v, err := s.curTsBlock.GetColumn(index).GetDouble(s.tsBlockIndex); err != nil {
return "", err
} else {
return float64ToString(v), nil
}
case TEXT, STRING:
if v, err := s.curTsBlock.GetColumn(index).GetBinary(s.tsBlockIndex); err != nil {
return "", err
} else {
return v.GetStringValue(), nil
}
case BLOB:
if v, err := s.curTsBlock.GetColumn(index).GetBinary(s.tsBlockIndex); err != nil {
return "", err
} else {
return bytesToHexString(v.values), nil
}
case DATE:
v, err := s.curTsBlock.GetColumn(index).GetInt(s.tsBlockIndex)
if err != nil {
return "", err
}
t, err := Int32ToDate(v)
if err != nil {
return "", err
}
return t.Format("2006-01-02"), nil
}
return "", nil
}