2010YOUY01 commented on issue #26171: URL: https://github.com/apache/datafusion/issues/26171#issuecomment-6120466758
> 7\. I was also thinking since our SLT tests only run the default pipeline, the correctness promise is mostly untested. Could we add a check which would be an extra SLT mode with a changed pipeline. It could reverse the rule order, shuffle it with a fixed seed, or run every rule twice. In that mode we would only check that queries plan, pass the sanity checker and return the same results. That covers the “must stay valid” part without making us maintain plan snapshots for every pipeline. It might catch bugs like [#26106](https://github.com/apache/datafusion/issues/26106) early. One thing we can't explain very clearly now is that, there are still some hidden constraints required to make a optimizer pass working @zhuqi-lucas mentioned one in https://github.com/apache/datafusion/issues/26171#issuecomment-6116478332 (requiring `EnsureRequirements`), but there exist more subtle ones like rule A must run after rule B. I'm thinking about fuzzing for several fixed alternative pipeline first, like run the default order for multiple passes, or something else mapped closely to real extension requirements 🤔 And also figure out how to express those hard requirements to define a valid optimizer pipeline. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
