-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge evaluator work to partiql-eval branch #1362
Conversation
- Improve cast lookup logic and performance - Caches the PartiQL function signatures - Enables passing available function signatures in the session - Adds partiql-plugin
* Adds lt, lte, gt, gte * Adds eq and not
Adds unary, logical, binary arithmetic, and concat operators
* add conformance reporting
* Isolates local variable resolution logic (#1344) --------- Co-authored-by: R. C. Howell <[email protected]>
- partiql-cli - Removed ServiceLoaderUtil and debug to fix build - This can be ignored - partiql-eval - Added the "Symbols" utility which is responsible for linking catalog references to connectors - Update static and dynamic calls to load functions via connectors (symbols) - Update global expression to load globals via connectors (symbols) - Added ExprCast from Yingtao's work - partiql-parser - This change is in `main`. It adds qualified names to functions - This can be ignored - I should probably rebase partiql-plugin-impl on main ASAP - partiql-plan - Adds a catalog.item with value and fn variants for resolved catalog entities - Adds a CAST reference - Adds an explicit Rex.Op.Cast - partiql-planner - Delete all hand-written IRs as we can generate internal IRs now (hence the removals) - CastTable replaces TypeLattice and holds cast information - Cleanup of FnMatch and FnResolver - Updates to PlanTyper to use the improved Env - Improvements to Env which delegates path resolution to PathResolver - PathResolver implementations apply our name resolution rules and search catalogs via connector metadata - Env returns untyped expressions which PlanTyper is responsible for finishing. See comments in Env.kt - Note that PathResolverAgg is hardcoded because aggregations are hardcoded into the PartiQL grammar as of now. Our AST probably shouldn't have an aggregate expression as a table-value function is not a row-value expression - There are 11 PlanTyperTestsPorted failing because of assertions on error messages - partiql-spi - This includes extensions to the SPI for functions as well as the SqlConnector base - SqlConnector base provides the SQL-99 builtins - All builtins are located in org.partiql.spi.connector.sql.builtins - The Agg are public at-the-moment to allow the planner and eval to access them directly - plugins (partiql-local / partiql-memory) - Updated both to the interfaces - partiql-memory now uses an in-memory filesystem like tree for the catalog - Each MemoryCatalog entry holds a PartiQLValue and its StaticType - test/partiql-tests-runner - Minors updates to EvalExecutor due to partiql-memory changes. --------- Co-authored-by: John Ed Quinn <[email protected]> Co-authored-by: John Ed Quinn <[email protected]> Co-authored-by: yliuuuu <[email protected]>
Conformance comparison report-Cross Engine
Number failing in both: 435 Number passing in legacy engine but fail in eval engine: 3915 Number failing in legacy engine but pass in eval engine: 3 Click here to see
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## partiql-eval #1362 +/- ##
===============================================
Coverage ? 55.83%
Complexity ? 1014
===============================================
Files ? 136
Lines ? 11409
Branches ? 2263
===============================================
Hits ? 6370
Misses ? 4401
Partials ? 638
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Description
This merges the team's work from partiql-plugin-impl to partiql-eval.
and Code Style Guidelines? [YES/NO]
Yes
License Information
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.