vbarua commented on code in PR #16857: URL: https://github.com/apache/datafusion/pull/16857#discussion_r2228878495
########## datafusion/substrait/src/logical_plan/consumer/rel/read_rel.rs: ########## @@ -114,14 +114,37 @@ pub async fn from_read_rel( .await } Some(ReadType::VirtualTable(vt)) => { - if vt.values.is_empty() { + if vt.values.is_empty() && vt.expressions.is_empty() { return Ok(LogicalPlan::EmptyRelation(EmptyRelation { produce_one_row: false, schema: DFSchemaRef::new(substrait_schema), })); } - let values = vt + let values = if !vt.expressions.is_empty() { + let mut exprs = vec![]; + for row in &vt.expressions { + let mut name_idx = 0; + let mut row_exprs = vec![]; + for expression in &row.fields { + name_idx += 1; + let expr = consumer + .consume_expression(expression, &substrait_schema) Review Comment: Actually, we should be using an empty schema here. The `substrait_schema` we have access to here is the schema of the ReadRel. The expressions in the VirtualTable cannot reference that schema, or any schema at all. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org