You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix Python UDAF list-of-timestamps return by enforcing list-valued scalars and caching PyArrow types (#1347)
* Implement UDAF improvements for list type handling
Store UDAF return type in Rust accumulator and wrap
pyarrow Array/ChunkedArray returns into list scalars
for list-like return types. Add a UDAF test to return
a list of timestamps via a pyarrow array, validating
the aggregate output for correctness.
* Document UDAF list-valued scalar returns
Add documented list-valued scalar returns for UDAF
accumulators, including an example with pa.scalar and a note
about unsupported pyarrow.Array returns from evaluate().
Also, introduce a UDAF FAQ entry detailing list-returning
patterns and required return_type/state_type definitions.
* Fix pyarrow calls and improve type handling in RustAccumulator
* Refactor RustAccumulator to support pyarrow array types and improve type checking for list types
* Fixed PyO3 type mismatch by cloning Array/ChunkedArray types before unbinding and binding fresh copies when checking array-likeness, eliminating the Bound reference error
* Add timezone information to datetime objects in test_udaf_list_timestamp_return
* clippy fix
* Refactor RustAccumulator and utility functions for improved type handling and conversion from Python objects to Arrow types
* Enhance PyArrow integration by refining type handling and conversion in RustAccumulator and utility functions
* Fix array data binding in py_obj_to_scalar_value function
* Implement single point for scalar conversion from python objects
* Add unit tests and simplify python wrapper for literal
* Add nanoarrow and arro3-core to dev dependencies. Sort the dependencies alphabetically.
* Refactor common code into helper function so we do not duplicate it.
* Update import path to access Scalar type
* Add test for generic python objects that support the C interface
* Update unit test to pass back either pyarrow array or array wrapped as scalar
* Update tests to pass back raw python values or pyarrow scalar
* Expand on user documentation for how to return list arrays
* More user documentation
---------
Co-authored-by: Tim Saucer <timsaucer@gmail.com>
0 commit comments