ycycse commented on code in PR #11231:
URL: https://github.com/apache/iotdb/pull/11231#discussion_r1339764013
##########
iotdb-client/client-py/iotdb/utils/IoTDBRpcDataSet.py:
##########
@@ -171,51 +178,45 @@ def resultset_to_pandas(self):
)
if time_array.dtype.byteorder == ">":
time_array = time_array.byteswap().newbyteorder("<")
- if (
- self.get_ignore_timestamp() is None
- or self.get_ignore_timestamp() is False
- ):
+ if self.ignore_timestamp is None or self.ignore_timestamp is False:
result[IoTDBRpcDataSet.TIMESTAMP_STR].append(time_array)
self.__query_data_set.time = []
total_length = len(time_array)
for i in range(len(self.__query_data_set.bitmapList)):
- if self.get_ignore_timestamp() is True:
+ if self.ignore_timestamp is True:
column_name = self.get_column_names()[i]
else:
column_name = self.get_column_names()[i + 1]
location = (
- self.__column_ordinal_dict[column_name]
- - IoTDBRpcDataSet.START_INDEX
+ self.column_ordinal_dict[column_name] -
IoTDBRpcDataSet.START_INDEX
)
if location < 0:
continue
- data_type = self.__column_type_deduplicated_list[location]
+ data_type = self.column_type_deduplicated_list[location]
value_buffer = self.__query_data_set.valueList[location]
value_buffer_len = len(value_buffer)
-
- data_array = None
- if data_type == TSDataType.DOUBLE:
+ if data_type == 4:
data_array = np.frombuffer(
value_buffer, np.dtype(np.double).newbyteorder(">")
)
- elif data_type == TSDataType.FLOAT:
+ elif data_type == 3:
Review Comment:
Maybe TSDataType.Float is more clear? Why do we need to replace it.
##########
iotdb-client/client-py/iotdb/utils/IoTDBRpcDataSet.py:
##########
@@ -51,62 +55,70 @@ def __init__(
):
self.__statement_id = statement_id
self.__session_id = session_id
- self.__ignore_timestamp = ignore_timestamp
+ self.ignore_timestamp = ignore_timestamp
self.__sql = sql
self.__query_id = query_id
self.__client = client
self.__fetch_size = fetch_size
- self.__column_size = len(column_name_list)
+ self.column_size = len(column_name_list)
self.__default_time_out = 1000
self.__column_name_list = []
self.__column_type_list = []
- self.__column_ordinal_dict = {}
+ self.column_ordinal_dict = {}
if not ignore_timestamp:
self.__column_name_list.append(IoTDBRpcDataSet.TIMESTAMP_STR)
self.__column_type_list.append(TSDataType.INT64)
- self.__column_ordinal_dict[IoTDBRpcDataSet.TIMESTAMP_STR] = 1
+ self.column_ordinal_dict[IoTDBRpcDataSet.TIMESTAMP_STR] = 1
if column_name_index is not None:
- self.__column_type_deduplicated_list = [
+ self.column_type_deduplicated_list = [
None for _ in range(len(column_name_index))
]
for i in range(len(column_name_list)):
name = column_name_list[i]
self.__column_name_list.append(name)
self.__column_type_list.append(TSDataType[column_type_list[i]])
- if name not in self.__column_ordinal_dict:
+ if name not in self.column_ordinal_dict:
index = column_name_index[name]
- self.__column_ordinal_dict[name] = (
- index + IoTDBRpcDataSet.START_INDEX
- )
- self.__column_type_deduplicated_list[index] = TSDataType[
+ self.column_ordinal_dict[name] = index +
IoTDBRpcDataSet.START_INDEX
+ self.column_type_deduplicated_list[index] = TSDataType[
column_type_list[i]
]
else:
index = IoTDBRpcDataSet.START_INDEX
- self.__column_type_deduplicated_list = []
+ self.column_type_deduplicated_list = []
for i in range(len(column_name_list)):
name = column_name_list[i]
self.__column_name_list.append(name)
self.__column_type_list.append(TSDataType[column_type_list[i]])
- if name not in self.__column_ordinal_dict:
- self.__column_ordinal_dict[name] = index
+ if name not in self.column_ordinal_dict:
+ self.column_ordinal_dict[name] = index
index += 1
- self.__column_type_deduplicated_list.append(
+ self.column_type_deduplicated_list.append(
TSDataType[column_type_list[i]]
)
- self.__time_bytes = bytes(0)
+ self.time_bytes = memoryview(b"\x00")
self.__current_bitmap = [
- bytes(0) for _ in range(len(self.__column_type_deduplicated_list))
+ bytes(0) for _ in range(len(self.column_type_deduplicated_list))
]
- self.__value = [None for _ in
range(len(self.__column_type_deduplicated_list))]
+ self.value = [None for _ in
range(len(self.column_type_deduplicated_list))]
self.__query_data_set = query_data_set
+ self.__query_data_set.time = memoryview(self.__query_data_set.time)
+ self.__query_data_set.valueList = [
+ memoryview(value) for value in self.__query_data_set.valueList
+ ]
+ self.__query_data_set.bitmapList = [
+ memoryview(bitmap) for bitmap in self.__query_data_set.bitmapList
+ ]
self.__is_closed = False
self.__empty_resultSet = False
- self.__has_cached_record = False
+ self.has_cached_record = False
self.__rows_index = 0
+ self.is_null_info = [
+ False for _ in range(len(self.column_type_deduplicated_list))
+ ]
def close(self):
Review Comment:
Should we release the reference to memoryview so that the garbage
collection in python can collect it?
##########
iotdb-client/client-py/iotdb/utils/Field.py:
##########
@@ -62,70 +57,72 @@ def is_null(self):
return self.__data_type is None
def set_bool_value(self, value):
Review Comment:
```suggestion
def set_bool_value(self, value:bool):
```
Maybe we can make the type more clear.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]