-
Notifications
You must be signed in to change notification settings - Fork 63
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
Generates internal impl IR classes; updates partiql-plan #1109
Conversation
Conformance comparison report
Number passing in both: 5380 Number failing in both: 438 Number passing in Base (adb32f7) but now fail: 0 Number failing in Base (adb32f7) but now pass: 0 |
...sprout/src/main/kotlin/org/partiql/sprout/generator/target/kotlin/poems/KotlinBuilderPoem.kt
Outdated
Show resolved
Hide resolved
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #1109 +/- ##
=========================================
Coverage 73.67% 73.67%
- Complexity 2404 2407 +3
=========================================
Files 248 248
Lines 17729 17741 +12
Branches 3230 3235 +5
=========================================
+ Hits 13062 13071 +9
Misses 3676 3676
- Partials 991 994 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left small comments, but everything looks pretty good!
I did have one question about testing. Have you considered setting up a build task for generating a test IR? It could be useful to generate the test IR and then attempt to access some of the generated properties/methods as part of the unit tests -- just to show that it compiles and to make it easier for review.
Tasks
Relevant Issues / Description
Related to #1054 we are splitting out Plan and AST intermediate representations into their own packages. This changes the generator to produce internal implementations and public interfaces which adhere to Explicit API.
You cannot directly instantiate an IR node, but you get four ways to do so
The default implementation of a domain's abstract factory is a top-level object with the domain name (same as the PIG builder). In short,
Additionally, each IR node has an
_id: String
field. The_id
field is a simple unique identifier which can be used as a key, but nodes can be directly used in other data structures viahashCode
andequals
.Other Information
Updated Unreleased Section in CHANGELOG: [YES/NO]
YES
Any backward-incompatible changes? [YES/NO]
YES. This is a breaking change. Customers would need to replace the direct constructors with the default factory method. Nothing has changed beyond the "constructor" location.
Any new external dependencies? [YES/NO]
NO
License Information
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.