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

Function with_column_window_functions

datafusion/core/tests/dataframe/mod.rs:168–203  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

166
167#[tokio::test]
168async fn with_column_window_functions() -> DataFusionResult<()> {
169 let schema = Schema::new(vec![Field::new("a", DataType::Int32, true)]);
170
171 let batch = RecordBatch::try_new(
172 Arc::new(schema.clone()),
173 vec![Arc::new(Int32Array::from(vec![1, 2, 3, 4, 5]))],
174 )?;
175
176 let ctx = SessionContext::new();
177
178 let provider = MemTable::try_new(Arc::new(schema), vec![vec![batch]])?;
179 ctx.register_table("t", Arc::new(provider))?;
180
181 // Define test cases: (expr builder, alias name)
182 let test_cases: Vec<WindowFnCase> = vec![
183 (|| lag(col("a"), Some(1), None), "lag_val"),
184 (|| lead(col("a"), Some(1), None), "lead_val"),
185 (row_number, "row_num"),
186 ];
187
188 for (make_expr, alias) in test_cases {
189 let df = ctx.table("t").await?;
190 let expr = make_expr();
191 let df_with = df.with_column(alias, expr)?;
192 let df_schema = df_with.schema().clone();
193
194 assert!(
195 df_schema.has_column_with_unqualified_name(alias),
196 "Schema does not contain expected column {alias}",
197 );
198
199 assert_eq!(2, df_schema.columns().len());
200 }
201
202 Ok(())
203}
204
205#[tokio::test]
206async fn test_coalesce_schema() -> Result<()> {

Callers

nothing calls this directly

Calls 6

newFunction · 0.85
with_columnMethod · 0.80
cloneMethod · 0.45
register_tableMethod · 0.45
tableMethod · 0.45
schemaMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…