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
Query: Improve query test matrix #12046
Comments
LINQ featuresQuery 'root'
Where
OrderBy
Select
SelectMany
Join/GroupJoin
GroupBy
Result operators
Expressions
Other operations
‘let’ keyword
Navigation expressions
Include
Sync/AsyncAsTracking/AsNoTrackingScenariosCorrelated Collection
Complex binding
Null semantics
Streaming/bufferingSelectExpression
Client evalutionEF.PropertyMARSModel featuresEntity Types
Functions
Properties
Keys
Foreign keys
Mapping
Global filtersFor the entity class features see #12014 |
Just making sure these are covered explicitly:
Do we need to call out specific LINQ query operators in this list or should we assume that all query operators in Queryable and Enumerable are fair game? |
Also, I wonder if type mapping and value conversions is something we should add to the mix here (or in #12014) or keep as separate. I believe there are types that are particularly interesting, like binary. |
The Visual Basic Aggregate Clause can produce some interesting expressions that may be worth adding coverage for. |
As a user that sis bitten by 2.1.1 basically blowing every non trivial query we have in ef6 - can you please put a focus on a struture/frameowkr that allows end users to submit test cases? And then actually put a focus on fixing those, not just ignoring them for a grand larger plan? We moved from ef6 to 2.1.1 a month ago, and I am stuck with half my queries literally blowing in my face with all kinds of issues, from bad sql generated to parsing exceptions. I have test cases for most thigns that I could put up as repro, but that is way too much ramp up and no documentation how to do that easily. As long as you focus on some individual isolated expressions there is always the risk of overlooking complex interactions - and those are coming from users. I applause the attempt to get LINQ into a less error prone scenario, but this also must include an easy ramp for end user cases that then get fixed - and the fix published, preferably not in the "next marjor release which, btw., you can use possibly in 4 months because hey, we don't really want you to get your work into your production". If this sounds frustrated - it is. Stuck on 2.1.1 with basics not working and no release date. Heck, today i found one (#12951) but I lack the documentaiton and guideliens how to put up a test case for it. Stuff like that can make end users provide really complex text cases. Oh, yeah - you likely try aout a lot of permutations. My cases possibly involve 8-10 navigations and each of it hsa up to 2 global filters that possibly add another 4-5 table joins. This is where you sometimes find really interesting things. |
Moving to the 3.0 milestone for tracking; it's not really punted, just ongoing work. |
Initial work and infrastructure added in cb27031 Verification will be added in the future - mutators can be in 2 modes: generating query and generating baseline. When ran with the same seed the resulting query should be the same, unless the baseline query was different in the first place (need to compensate for Maybe but appart from that, most baselines are identical. We also need to create a better comparer for untyped results, The one we currently have simply calls to underlying Equals method which won't work for collections and other more complicated structures. |
Removing from milestone to discuss the relevance after we've disabled client eval. |
Historically we have a large number of regressions in our LINQ implementation on every release. A significant number of regressions are introduced when we improve the stack to recognize more expressions that they can be push down to the server, but some of them are not translated correctly.
There is an ongoing brainstorming on how to improve this, and the resulting plan will be part of the focus in 2.2.
The text was updated successfully, but these errors were encountered: