- backport of #29425 via #29438 and #29439
- add new schedule for a weekly run
- add top-level parameter enabling CodeQL3000 in manual builds
- mix CodeQL3000 tasks into regular build; avoid large duplications
- skip other jobs in CodeQL3000 runs
- set `$(UseSharedCompilation)` to `false` to ease analysis
- add tag indicating CodeQL3000 tasks did useful work
- ignore no-op task executions
- add a tsaoptions.json file
- cribbed values from our eng/sdl-tsa-vars.config file
nit: `s/master/main/`
* Move off expiring machine pools
* !temporary! Let's see what's going on
- capture a binary log on macOS
* !temporary! Fixup binary log capture
- give up on `KOREBUILD_ENABLE_BINARY_LOG`
* !up to you! Update KoreBuild to May build
* !realz! Don't reference _really_ old runtimes
- note this will not fix problems building on macOS 11
* Update korebuild-lock.txt
* [release/2.1] Stop building w/ VS2017 in CI (#27233)
* [release/2.1] Stop building w/ VS2017 in CI
- version of VisualStudio is out of support
* Update azure-pipelines.yml
Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>
Co-authored-by: William Godbe <wigodbe@microsoft.com>
* Move to latest KoreBuild / .NET SDK
* Align versions with aspnetcore updates
- most versions should be pinned
* Avoid a now-obsolete Xunit constructor
- dotnet/aspnetcore-internal#3540
- nit: Consistently use `in` / `notin` with `Build.Reason`
- YAML was inconsistent and this aligns w/ the Arcade code
Problem was that we were only preventing null expansion in predicate, leaving projection and orderings intact.
Fix is to go through entire SelectExpression and prevent null expansion on all encountered comparisons.
Because this changes the result it is switched off by default.
- aspnet/AspNetCore-Internal#2231
- use internal pools for all internal builds
- do not sign in builds for internal pull requests
nits:
- VSTS => Azure DevOps
- remove workaround for fixed issue
Changes:
* Update BuildTools and react to changes in code signing configuration and shim generation
* Update dependencies
* Add an Azure Pipelines build definition
* Update bootstrappers to support the --ci switch
Fixes#13262
Since two test suites both switch the quirk on and off, but the quirk is global, it results in a race condition where one test is expecting it to be off, but it then gets switched off while that test is running. Fix is to remove these tests since they have little value going forward.
Problem was that when we rewrite SelectMany, query sources get changed and need to be updated. We do that already for Include query annotations, but we were not doing it for query sources stored in CorrelatedSubqueryMetadata.
Fix is to update CorrelatedSubqueryMetadata query sources after we rewrite SelectMany, just like we do for Include annotations.
Issue:
We have certain optimizations running when comparing navigations with null or other navigations
- collection nav == collection nav converts to their parent equality
- collection nav == null converts to parent == null
- dependent to principal nav == null converts to parent.FK == null
For all above cases, we have to create parent expression. We used to create it through a method which assumed the navigation chain will always start from QSRE.
This all worked correctly upto 2.0 where we did not convert equalities after subquery.
In 2.1 we enabled equality rewrites involving subquery, which ultimately broke above assumption. The navigation chain can start from a subquery too.
Which means that for any of above optimization, we would through NRE (or equivalent).
Fix:
Instead of using function which would assume the root of chain is QSRE always, we moved to unwrapping last navigation, exactly same way we discover it in first place.
Resolves#12738
Issue: GroupJoin-DefaultIfEmpty aka left outer join introduced NullableExpression around the property which we fail to find hence we use wrong type mapping which expect int32 but we get back int16 from database
Resolves#13025
Resolves#12682
The issue was arising because we were mutating relinq object concurrently.
The fix makes sure that we are using lock when registering more methods to relinq object.