fn merge_batch()

in src/udaf.rs [89:110]


    fn merge_batch(&mut self, states: &[ArrayRef]) -> Result<()> {
        Python::with_gil(|py| {
            // // 1. cast states to Pyarrow arrays
            let py_states: Result<Vec<PyObject>> = states
                .iter()
                .map(|state| {
                    state
                        .into_data()
                        .to_pyarrow(py)
                        .map_err(|e| DataFusionError::Execution(format!("{e}")))
                })
                .collect();

            // 2. call merge
            self.accum
                .bind(py)
                .call_method1("merge", (py_states?,))
                .map_err(|e| DataFusionError::Execution(format!("{e}")))?;

            Ok(())
        })
    }