Join Wrapper

Question: Define a function 'jw' which is join wrapper function that can take in any join function (except wj), key column list, left-hand table, right-hand table, and performs the join between them.

More Information:

https://code.kx.com/q/basics/joins/

Example

                                
                                q)s:([]a:1 2;b:2 3;c:5 7)
q)t:([]a:1 2 3;b:2 3 7;c:10 20 30;d:"ABC")
q)jw[uj;`a`b;s;t]
a b| c  d
---| ----
1 2| 10 A
2 3| 20 B
3 7| 30 C
q)jw[uj;();s;t]
a b c  d
--------
1 2 5
2 3 7
1 2 10 A
2 3 20 B
3 7 30 C
q)jw[lj;`a`b;s;t]
a b c  d
--------
1 2 10 A
2 3 20 B
q)jw[ij;`a`b;s;t]
a b c  d
--------
1 2 10 A
2 3 20 B
q)jw[ej;`a`b;s;t]
a b c  d
--------
1 2 10 A
2 3 20 B
                                
                            

Solution

Tags:
functions tables
Searchable Tags
algorithms api architecture asynchronous c csv data structures dictionaries disk feedhandler finance functions ingestion ipc iterators machine learning math multithreading optimizations realtime shared library sql statistics streaming strings tables temporal utility websockets