Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
In `tests/sql.rs`, if we re-write the ```execute``` function to test the end schemas, as
```
/// Execute query and return result set as tab delimited string
fn execute(ctx: &mut ExecutionContext, sql: &str) -> Vec<String> {
let plan = ctx.create_logical_plan(&sql).unwrap();
let plan = ctx.optimize(&plan).unwrap();
let physical_plan = ctx.create_physical_plan(&plan).unwrap();
let results = ctx.collect(physical_plan.as_ref()).unwrap();
if results.len() > 0
result_str(&results)
}
```
we end up with 8 tests failing, which indicates that our physical and logical plans are not aligned. In all cases, the issue is nullability: our logical plan assumes nullability = true, while our physical plan may change the nullability field.
If we do not plan to track nullability on the logical level, we could consider replacing Schema by a type that does not track nullability.
Attachments
Issue Links
- links to