| 166 | |
| 167 | impl PhysicalExprAdapter for TestPhysicalExprAdapter { |
| 168 | fn rewrite(&self, expr: Arc<dyn PhysicalExpr>) -> Result<Arc<dyn PhysicalExpr>> { |
| 169 | expr.transform(|e| { |
| 170 | if let Some(column) = e.downcast_ref::<Column>() { |
| 171 | // If column is "extra_column" and missing from physical schema, inject "foo" |
| 172 | if column.name() == "extra_column" |
| 173 | && self.physical_file_schema.index_of("extra_column").is_err() |
| 174 | { |
| 175 | return Ok(Transformed::yes(Arc::new(Literal::new( |
| 176 | ScalarValue::Utf8(Some("foo".to_string())), |
| 177 | )) |
| 178 | as Arc<dyn PhysicalExpr>)); |
| 179 | } |
| 180 | } |
| 181 | Ok(Transformed::no(e)) |
| 182 | }) |
| 183 | .data() |
| 184 | } |
| 185 | } |
| 186 | } |