MCPcopy Create free account
hub / github.com/apache/datafusion / update_batch

Method update_batch

datafusion/functions-aggregate/src/correlation.rs:170–190  ·  view source on GitHub ↗
(&mut self, values: &[ArrayRef])

Source from the content-addressed store, hash-verified

168
169impl Accumulator for CorrelationAccumulator {
170 fn update_batch(&mut self, values: &[ArrayRef]) -> Result<()> {
171 // TODO: null input skipping logic duplicated across Correlation
172 // and its children accumulators.
173 // This could be simplified by splitting up input filtering and
174 // calculation logic in children accumulators, and calling only
175 // calculation part from Correlation
176 let values = if values[0].null_count() != 0 || values[1].null_count() != 0 {
177 let mask = and(&is_not_null(&values[0])?, &is_not_null(&values[1])?)?;
178 let values1 = filter(&values[0], &mask)?;
179 let values2 = filter(&values[1], &mask)?;
180
181 vec![values1, values2]
182 } else {
183 values.to_vec()
184 };
185
186 self.covar.update_batch(&values)?;
187 self.stddev1.update_batch(&values[0..1])?;
188 self.stddev2.update_batch(&values[1..2])?;
189 Ok(())
190 }
191
192 fn evaluate(&mut self) -> Result<ScalarValue> {
193 let covar = self.covar.evaluate()?;

Callers

nothing calls this directly

Calls 7

accumulate_multipleFunction · 0.85
null_countMethod · 0.80
to_vecMethod · 0.80
andFunction · 0.50
is_not_nullFunction · 0.50
resizeMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected