[
https://issues.apache.org/jira/browse/GROOVY-11915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18072466#comment-18072466
] ASF GitHub Bot commented on GROOVY-11915: ----------------------------------------- codecov-commenter commented on PR #2453: URL: https://github.com/apache/groovy/pull/2453#issuecomment-4219125097 ## [Codecov](https://app.codecov.io/gh/apache/groovy/pull/2453?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report :x: Patch coverage is `83.87097%` with `10 lines` in your changes missing coverage. Please review. :white_check_mark: Project coverage is 66.5014%. Comparing base ([`77e8752`](https://app.codecov.io/gh/apache/groovy/commit/77e87526de354fd45c7d5737c9b315bc27934641?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`2217eba`](https://app.codecov.io/gh/apache/groovy/commit/2217eba5aa8e8ac96e7c127b8f9efe97feba069a?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)). :warning: Report is 1 commits behind head on master. | [Files with missing lines](https://app.codecov.io/gh/apache/groovy/pull/2453?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines | |---|---|---| | [...ovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fdsl%2FGinqAstBuilder.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvZHNsL0dpbnFBc3RCdWlsZGVyLmphdmE=) | 70.5882% | [4 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | | [...q/provider/collection/runtime/GroupResultImpl.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FGroupResultImpl.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL0dyb3VwUmVzdWx0SW1wbC5qYXZh) | 66.6667% | [1 Missing and 2 partials :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | | [...he/groovy/ginq/dsl/expression/GroupExpression.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fdsl%2Fexpression%2FGroupExpression.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvZHNsL2V4cHJlc3Npb24vR3JvdXBFeHByZXNzaW9uLmphdmE=) | 75.0000% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | | [...ovider/collection/runtime/QueryableCollection.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FQueryableCollection.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL1F1ZXJ5YWJsZUNvbGxlY3Rpb24uamF2YQ==) | 88.8889% | [0 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | <details><summary>Additional details and impacted files</summary> [](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) ```diff @@ Coverage Diff @@ ## master #2453 +/- ## ================================================== + Coverage 66.4974% 66.5014% +0.0040% - Complexity 30217 30246 +29 ================================================== Files 1408 1410 +2 Lines 117746 117808 +62 Branches 20907 20918 +11 ================================================== + Hits 78298 78344 +46 - Misses 33022 33031 +9 - Partials 6426 6433 +7 ``` | [Files with missing lines](https://app.codecov.io/gh/apache/groovy/pull/2453?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | |---|---|---| | [...oovy/ginq/provider/collection/GinqAstWalker.groovy](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2FGinqAstWalker.groovy&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9HaW5xQXN0V2Fsa2VyLmdyb292eQ==) | `90.4161% <100.0000%> (+0.2607%)` | :arrow_up: | | [.../ginq/provider/collection/runtime/GroupResult.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FGroupResult.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL0dyb3VwUmVzdWx0LmphdmE=) | `100.0000% <100.0000%> (ø)` | | | [...vy/ginq/provider/collection/runtime/Queryable.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FQueryable.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL1F1ZXJ5YWJsZS5qYXZh) | `76.6667% <100.0000%> (+0.8046%)` | :arrow_up: | | [...he/groovy/ginq/dsl/expression/GroupExpression.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fdsl%2Fexpression%2FGroupExpression.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvZHNsL2V4cHJlc3Npb24vR3JvdXBFeHByZXNzaW9uLmphdmE=) | `73.3333% <75.0000%> (+0.6061%)` | :arrow_up: | | [...ovider/collection/runtime/QueryableCollection.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FQueryableCollection.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL1F1ZXJ5YWJsZUNvbGxlY3Rpb24uamF2YQ==) | `90.0568% <88.8889%> (-0.0306%)` | :arrow_down: | | [...q/provider/collection/runtime/GroupResultImpl.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fprovider%2Fcollection%2Fruntime%2FGroupResultImpl.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvcHJvdmlkZXIvY29sbGVjdGlvbi9ydW50aW1lL0dyb3VwUmVzdWx0SW1wbC5qYXZh) | `66.6667% <66.6667%> (ø)` | | | [...ovy/org/apache/groovy/ginq/dsl/GinqAstBuilder.java](https://app.codecov.io/gh/apache/groovy/pull/2453?src=pr&el=tree&filepath=subprojects%2Fgroovy-ginq%2Fsrc%2Fmain%2Fgroovy%2Forg%2Fapache%2Fgroovy%2Fginq%2Fdsl%2FGinqAstBuilder.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VicHJvamVjdHMvZ3Jvb3Z5LWdpbnEvc3JjL21haW4vZ3Jvb3Z5L29yZy9hcGFjaGUvZ3Jvb3Z5L2dpbnEvZHNsL0dpbnFBc3RCdWlsZGVyLmphdmE=) | `88.9344% <70.5882%> (-1.3739%)` | :arrow_down: | ... and [2 files with indirect coverage changes](https://app.codecov.io/gh/apache/groovy/pull/2453/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) </details> <details><summary> :rocket: New features to boost your workflow: </summary> - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems. - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges. </details> > GINQ: Add groupby...into with first-class GroupResult type > ---------------------------------------------------------- > > Key: GROOVY-11915 > URL: https://issues.apache.org/jira/browse/GROOVY-11915 > Project: Groovy > Issue Type: Improvement > Reporter: Paul King > Assignee: Paul King > Priority: Major > > For GINQ, introduce an optional "into <alias>" clause for groupby that binds > a GroupResult<K, T> variable (extending Queryable<T> with a key property). > When used, this would replace the current magic aggregate function rewriting > with real method calls on a first-class type, enabling composable group > queries (e.g. {{g.where(...).toList()}}), simplifying the correctVars logic > in GinqAstWalker, and making the backend Queryable API directly usable for > grouped queries. > The existing groupby syntax (without "into") would continue to work unchanged. > If we ever provided a GINQ SQL provider, GroupResult maps cleanly to SQL > GROUP BY + aggregate functions. -- This message was sent by Atlassian Jira (v8.20.10#820010)
