Comments (5)
Within Trill, LeftOuterJoin is implemented as a helper method over three operations:
- EquiJoin
- LeftAntiSemiJoin (WhereNotExists)
- Union
It looks just like this:
`
public static IStreamable<TKey, TResult> LeftOuterJoin<TKey, TLeft, TRight, TJoinKey, TResult>(
this IStreamable<TKey, TLeft> left,
IStreamable<TKey, TRight> right,
Expression<Func<TLeft, TJoinKey>> leftKeySelector,
Expression<Func<TRight, TJoinKey>> rightKeySelector,
Expression<Func<TLeft, TResult>> outerResultSelector,
Expression<Func<TLeft, TRight, TResult>> innerResultSelector)
{
Invariant.IsNotNull(left, nameof(left));
Invariant.IsNotNull(right, nameof(right));
return left.Multicast(right, (l_mc, r_mc) =>
{
var lasj = l_mc.WhereNotExists(r_mc, leftKeySelector, rightKeySelector).Select(outerResultSelector);
var innerJoin = l_mc.Join(r_mc, leftKeySelector, rightKeySelector, innerResultSelector);
return lasj.Union(innerJoin);
});
}
`
So adding a FullOuterJoin method can be done from extending the code above with a second WhereNotExists and a second Union operation, plus another selector expression in the method signature.
Any interest in writing a PR to contribute this to the public API? :-) We'd help you through it if you are so inclined.
from trill.
from trill.
Eep, sorry, for some reason I didn't get your edited comment, only the original one.
I'm relatively new to GitHub myself, but I think the way to do it is to create your own branch (in this repo if you can) and create a pull request from the web interface. I've not created a PR from visual studio directly.
from trill.
@nsulikowski, @cybertyche for external contributors the pattern is usually to fork the repo then submit a pull request from the fork.
If you've made the change already to an (unforked) clone of the repo locally, you can fork the repo from GitHub then update your local clone's origin to point at your fork (same as shown here, though it's for Azure DevOps]. You should then be able to push your changes (to your fork) and open a pull request (from your fork to the original).
from trill.
Nicely done, @nsulikowski ! And thank you for the assist, @NickDarvey .
from trill.
Related Issues (20)
- Install trill on a Linux server?
- Output when SessionTimeoutWindow() ends HOT 11
- NullReferenceException in Columnar Mode HOT 4
- [QUESTION] Output count = 0 when the last event leaves snapshot window HOT 2
- Controlled flush on partitioned streams HOT 1
- Output on aggregations and partition reset
- ReflectionSchemaBuilder ignores knownTypes of the nested type
- Parsing query language to derive Trill operation HOT 1
- NullReferenceException when using checkpointing HOT 2
- Random splitter in a multicore setting
- Trill with Azure Storage Blob and Table HOT 1
- Ingress from Azure Event Hubs - how?
- NullReferenceException when running under net6.0 HOT 1
- Is Trill alive? HOT 10
- Enable .NET 7.0 support HOT 6
- Trillsx HOT 1
- Calling Connect() on a ConnectableStreamable without subscribers throw System.NullReferenceException
- This repo is missing important files HOT 1
- .NET 8 support
- NullReferenceException in .NET 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from trill.