This is an automated email from the ASF dual-hosted git repository.

colinlee pushed a commit to branch fix_release
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit 561a11240b6bc074b2f6e7b07d83026ae4e6fa75
Author: ColinLee <[email protected]>
AuthorDate: Wed Dec 10 09:36:48 2025 +0800

    tmp code.
---
 python/tests/test_write_and_read.py | 8 ++++++--
 python/tsfile/tsfile_cpp.pxd        | 1 +
 python/tsfile/tsfile_py_cpp.pyx     | 3 ++-
 python/tsfile/tsfile_reader.pyx     | 7 +++----
 python/tsfile/utils.py              | 4 ++--
 5 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/python/tests/test_write_and_read.py 
b/python/tests/test_write_and_read.py
index 819a50a4..1bdeea7b 100644
--- a/python/tests/test_write_and_read.py
+++ b/python/tests/test_write_and_read.py
@@ -44,6 +44,7 @@ def test_row_record_write_and_read():
         writer.register_timeseries("root.device1", TimeseriesSchema("level5", 
TSDataType.TEXT))
         writer.register_timeseries("root.device1", TimeseriesSchema("level6", 
TSDataType.BLOB))
         writer.register_timeseries("root.device1", TimeseriesSchema("level7", 
TSDataType.DATE))
+        writer.register_timeseries("root.device1", TimeseriesSchema("level8", 
TSDataType.TIMESTAMP))
 
         max_row_num = 10
 
@@ -55,7 +56,8 @@ def test_row_record_write_and_read():
                              Field("level4", f"string_value_{i}", 
TSDataType.STRING),
                              Field("level5", f"text_value_{i}", 
TSDataType.TEXT),
                              Field("level6", f"blob_data_{i}".encode('utf-8'), 
TSDataType.BLOB),
-                             Field("level7", i, TSDataType.DATE)])
+                             Field("level7", i, TSDataType.DATE),
+                             Field("level8", i, TSDataType.TIMESTAMP)])
             writer.write_row_record(row)
 
         writer.close()
@@ -63,10 +65,11 @@ def test_row_record_write_and_read():
         reader = TsFileReader("record_write_and_read.tsfile")
         result = reader.query_timeseries(
             "root.device1",
-            ["level1", "level2", "level3", "level4", "level5", "level6", 
"level7"],
+            ["level1", "level2", "level3", "level4", "level5", "level6", 
"level7", "level8"],
             0,
             100,
         )
+
         assert len(reader.get_active_query_result()) == 1
 
         for row_num in range(max_row_num):
@@ -79,6 +82,7 @@ def test_row_record_write_and_read():
             assert result.get_value_by_index(6) == f"text_value_{row_num}"
             assert result.get_value_by_index(7) == f"blob_data_{row_num}"
             assert result.get_value_by_index(8) == row_num
+            assert result.get_value_by_index(9) == row_num
 
         assert not result.next()
         assert len(reader.get_active_query_result()) == 1
diff --git a/python/tsfile/tsfile_cpp.pxd b/python/tsfile/tsfile_cpp.pxd
index a2f621d4..52dd5225 100644
--- a/python/tsfile/tsfile_cpp.pxd
+++ b/python/tsfile/tsfile_cpp.pxd
@@ -42,6 +42,7 @@ cdef extern from "./tsfile_cwrapper.h":
         TS_DATATYPE_DOUBLE = 4
         TS_DATATYPE_TEXT = 5
         TS_DATATYPE_VECTOR = 6
+        TS_DATATYPE_TIMESTAMP = 8
         TS_DATATYPE_DATE = 9
         TS_DATATYPE_BLOB = 10
         TS_DATATYPE_STRING = 11
diff --git a/python/tsfile/tsfile_py_cpp.pyx b/python/tsfile/tsfile_py_cpp.pyx
index 10441041..b88b469c 100644
--- a/python/tsfile/tsfile_py_cpp.pyx
+++ b/python/tsfile/tsfile_py_cpp.pyx
@@ -100,7 +100,8 @@ cdef dict TS_DATA_TYPE_MAP = {
     TSDataTypePy.DATE: TSDataType.TS_DATATYPE_DATE,
     TSDataTypePy.TEXT: TSDataType.TS_DATATYPE_TEXT,
     TSDataTypePy.STRING: TSDataType.TS_DATATYPE_STRING,
-    TSDataTypePy.BLOB: TSDataType.TS_DATATYPE_BLOB
+    TSDataTypePy.BLOB: TSDataType.TS_DATATYPE_BLOB,
+    TSDataTypePy.TIMESTAMP: TSDataType.TS_DATATYPE_TIMESTAMP
 }
 
 cdef dict TS_ENCODING_MAP = {
diff --git a/python/tsfile/tsfile_reader.pyx b/python/tsfile/tsfile_reader.pyx
index 3b961639..977f80d1 100644
--- a/python/tsfile/tsfile_reader.pyx
+++ b/python/tsfile/tsfile_reader.pyx
@@ -292,7 +292,7 @@ cdef class TsFileReaderPy:
         pyresult.init_c(result, table_name)
         self.activate_result_set_list.add(pyresult)
         return pyresult
-    
+
     def query_table_on_tree(self, column_names : List[str],
                     start_time : int = INT64_MIN, end_time : int = INT64_MAX) 
-> ResultSetPy:
         """
@@ -300,9 +300,8 @@ cdef class TsFileReaderPy:
         :return: query result handler.
         """
         cdef ResultSet result;
-        result = tsfile_reader_query_table_on_tree_c(self.reader,
-                                             [column_name.lower() for 
column_name in column_names], start_time,
-                                             end_time)
+        ## No need to convert column names to lowercase, as measurement names 
in the tree model are case-sensitive.
+        result = tsfile_reader_query_table_on_tree_c(self.reader, 
column_names, start_time, end_time)
         pyresult = ResultSetPy(self, True)
         pyresult.init_c(result, "root")
         self.activate_result_set_list.add(pyresult)
diff --git a/python/tsfile/utils.py b/python/tsfile/utils.py
index 1d6f1afc..68548cbe 100644
--- a/python/tsfile/utils.py
+++ b/python/tsfile/utils.py
@@ -51,7 +51,7 @@ def to_dataframe(file_path: str,
                 if _table_name is None:
                     _table_name, columns = next(iter(table_schema.items()))
                 else:
-                    if _table_name not in table_schema:
+                    if _table_name.lower() not in table_schema:
                         raise TableNotExistError(_table_name)
                     columns = table_schema[_table_name]
 
@@ -59,7 +59,7 @@ def to_dataframe(file_path: str,
 
                 if _column_names is not None:
                     for column in _column_names:
-                        if column not in column_names_in_file:
+                        if column.lower() not in column_names_in_file:
                             raise ColumnNotExistError(column)
                 else:
                     _column_names = column_names_in_file

Reply via email to