@@ -56,13 +56,13 @@ cdef bint should_auto_flush(
5656
5757 return False
5858
59- cdef inline uint32_t bswap32(uint32_t value):
59+ cdef inline uint32_t bswap32(uint32_t value) noexcept :
6060 return (((value & 0xFF000000 u) >> 24 u) |
6161 ((value & 0x00FF0000 u) >> 8 u) |
6262 ((value & 0x0000FF00 u) << 8 u) |
6363 ((value & 0x000000FF u) << 24 u))
6464
65- cdef inline uint64_t bswap64(uint64_t value):
65+ cdef inline uint64_t bswap64(uint64_t value) noexcept :
6666 return (((value & 0xFF00000000000000 u) >> 56 u) |
6767 ((value & 0x00FF000000000000 u) >> 40 u) |
6868 ((value & 0x0000FF0000000000 u) >> 24 u) |
@@ -150,10 +150,10 @@ cdef enum col_source_t:
150150 col_source_dt64ns_tz_arrow = 502000
151151 col_source_arr_f64_numpyobj = 601100
152152 col_source_decimal_pyobj = 701100
153- col_source_decimal32_arrow = 702100
154- col_source_decimal64_arrow = 703100
155- col_source_decimal128_arrow = 704100
156- col_source_decimal256_arrow = 705100
153+ col_source_decimal32_arrow = 702000
154+ col_source_decimal64_arrow = 703000
155+ col_source_decimal128_arrow = 704000
156+ col_source_decimal256_arrow = 705000
157157
158158
159159cdef bint col_source_needs_gil(col_source_t source) noexcept nogil:
@@ -2222,16 +2222,11 @@ cdef void_int _dataframe_serialize_cell_column_decimal__decimal32_arrow(
22222222 cdef line_sender_error* err = NULL
22232223 cdef bint valid = _dataframe_arrow_is_valid(& col.cursor)
22242224 cdef uint32_t value
2225- if not valid:
2226- if not line_sender_buffer_column_dec(ls_buf, col.name, 0 , NULL , 0 , & err):
2227- _ensure_has_gil(gs)
2228- raise c_err_to_py(err)
2229- else :
2225+ if valid:
22302226 value = bswap32((< uint32_t* > col.cursor.chunk.buffers[1 ])[col.cursor.offset])
22312227 if not line_sender_buffer_column_dec(ls_buf, col.name, col.scale, < uint8_t * > & value, sizeof(value), & err):
22322228 _ensure_has_gil(gs)
22332229 raise c_err_to_py(err)
2234- return 0
22352230
22362231cdef void_int _dataframe_serialize_cell_column_decimal__decimal64_arrow(
22372232 line_sender_buffer* ls_buf,
@@ -2241,16 +2236,11 @@ cdef void_int _dataframe_serialize_cell_column_decimal__decimal64_arrow(
22412236 cdef line_sender_error* err = NULL
22422237 cdef bint valid = _dataframe_arrow_is_valid(& col.cursor)
22432238 cdef uint64_t value
2244- if not valid:
2245- if not line_sender_buffer_column_dec(ls_buf, col.name, 0 , NULL , 0 , & err):
2246- _ensure_has_gil(gs)
2247- raise c_err_to_py(err)
2248- else :
2239+ if valid:
22492240 value = bswap64((< uint64_t* > col.cursor.chunk.buffers[1 ])[col.cursor.offset])
22502241 if not line_sender_buffer_column_dec(ls_buf, col.name, col.scale, < uint8_t * > & value, sizeof(value), & err):
22512242 _ensure_has_gil(gs)
22522243 raise c_err_to_py(err)
2253- return 0
22542244
22552245cdef void_int _dataframe_serialize_cell_column_decimal__decimal128_arrow(
22562246 line_sender_buffer* ls_buf,
@@ -2261,18 +2251,13 @@ cdef void_int _dataframe_serialize_cell_column_decimal__decimal128_arrow(
22612251 cdef bint valid = _dataframe_arrow_is_valid(& col.cursor)
22622252 cdef uint64_t * cell
22632253 cdef uint64_t[2 ] value
2264- if not valid:
2265- if not line_sender_buffer_column_dec(ls_buf, col.name, 0 , NULL , 0 , & err):
2266- _ensure_has_gil(gs)
2267- raise c_err_to_py(err)
2268- else :
2254+ if valid:
22692255 cell = & (< uint64_t* > col.cursor.chunk.buffers[1 ])[col.cursor.offset << 1 ]
22702256 value[0 ] = bswap64(cell[1 ])
22712257 value[1 ] = bswap64(cell[0 ])
22722258 if not line_sender_buffer_column_dec(ls_buf, col.name, col.scale, < uint8_t * > value, 16 , & err):
22732259 _ensure_has_gil(gs)
22742260 raise c_err_to_py(err)
2275- return 0
22762261
22772262cdef void_int _dataframe_serialize_cell_column_decimal__decimal256_arrow(
22782263 line_sender_buffer* ls_buf,
@@ -2283,11 +2268,7 @@ cdef void_int _dataframe_serialize_cell_column_decimal__decimal256_arrow(
22832268 cdef bint valid = _dataframe_arrow_is_valid(& col.cursor)
22842269 cdef uint64_t * cell
22852270 cdef uint64_t[4 ] value
2286- if not valid:
2287- if not line_sender_buffer_column_dec(ls_buf, col.name, 0 , NULL , 0 , & err):
2288- _ensure_has_gil(gs)
2289- raise c_err_to_py(err)
2290- else :
2271+ if valid:
22912272 cell = & (< uint64_t* > col.cursor.chunk.buffers[1 ])[col.cursor.offset << 2 ]
22922273 value[0 ] = bswap64(cell[3 ])
22932274 value[1 ] = bswap64(cell[2 ])
@@ -2296,8 +2277,6 @@ cdef void_int _dataframe_serialize_cell_column_decimal__decimal256_arrow(
22962277 if not line_sender_buffer_column_dec(ls_buf, col.name, col.scale, < uint8_t * > value, 32 , & err):
22972278 _ensure_has_gil(gs)
22982279 raise c_err_to_py(err)
2299- return 0
2300-
23012280
23022281cdef void_int _dataframe_serialize_cell_column_ts__dt64ns_tz_arrow(
23032282 line_sender_buffer* ls_buf,
0 commit comments