def METHOD_NAME(self):
    out_fields = []
    for i in range(self.iotdb_rpc_data_set.get_column_size()):
        index = i + 1
        data_set_column_index = i + IoTDBRpcDataSet.START_INDEX
        if self.iotdb_rpc_data_set.get_ignore_timestamp():
            index -= 1
            data_set_column_index -= 1
        column_name = self.iotdb_rpc_data_set.get_column_names()[index]
        location = (
            self.iotdb_rpc_data_set.get_column_ordinal_dict()[column_name]
            - IoTDBRpcDataSet.START_INDEX
        )
        if not self.iotdb_rpc_data_set.is_null_by_index(data_set_column_index):
            value_bytes = self.iotdb_rpc_data_set.get_values()[location]
            data_type = self.iotdb_rpc_data_set.get_column_type_deduplicated_list()[
                location
            ]
            field = Field(data_type)
            if data_type == TSDataType.BOOLEAN:
                value = struct.unpack(">?", value_bytes)[0]
                field.set_bool_value(value)
            elif data_type == TSDataType.INT32:
                value = struct.unpack(">i", value_bytes)[0]
                field.set_int_value(value)
            elif data_type == TSDataType.INT64:
                value = struct.unpack(">q", value_bytes)[0]
                field.set_long_value(value)
            elif data_type == TSDataType.FLOAT:
                value = struct.unpack(">f", value_bytes)[0]
                field.set_float_value(value)
            elif data_type == TSDataType.DOUBLE:
                value = struct.unpack(">d", value_bytes)[0]
                field.set_double_value(value)
            elif data_type == TSDataType.TEXT:
                field.set_binary_value(value_bytes)
            else:
                raise RuntimeError("unsupported data type {}.".format(data_type))
        else:
            field = Field(None)
        out_fields.append(field)
    return RowRecord(
        struct.unpack(">q", self.iotdb_rpc_data_set.get_time_bytes())[0], out_fields
    )