We don't really know if the generated plan is correct or not -- what we all know now is whether we can generate a plan. Therefore, it's important to also evaluate if the result is correct. In this patch, we add sqllogictest, the test infra to ensure the execution result is correct.
In sqllogictest.rs, you can replace the following statement to planning + execution solely with datafusion. This yields source-of-truth result.
DatafusionDBMS::new_no_optd().await?
Now we have TPC-H Q1-6. Note that Q2 doesn't work b/c there are too many NLJs and the datafusion built-in statistics would throw multiply overflow error.
We don't really know if the generated plan is correct or not -- what we all know now is whether we can generate a plan. Therefore, it's important to also evaluate if the result is correct. In this patch, we add sqllogictest, the test infra to ensure the execution result is correct.
In
sqllogictest.rs
, you can replace the following statement to planning + execution solely with datafusion. This yields source-of-truth result.Now we have TPC-H Q1-6. Note that Q2 doesn't work b/c there are too many NLJs and the datafusion built-in statistics would throw multiply overflow error.