[
https://issues.apache.org/jira/browse/DRILL-24?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13580263#comment-13580263
]
Jacques Nadeau commented on DRILL-24:
-------------------------------------
Couple thoughts here:
Can you leverage the existing record types? It seems like you could use the
existing merge functionality just like how it is used in the
o.a.d.exec.ref.rops.ProjectROP.next() to merge the left and right records.
(Otherwise, all the operations need to be implemented in the new proxy joined
record type... or am I missing something?)
As I think about it, it seems like overkill that we have left and right joins.
We should probably only have left join and then the parser is responsible for
swapping input ordering. Thoughts?
You should rebase on the latest master as well. A number of things there are
cleaned up that should make your life much easier.
> Implement Join Reference Operator
> ---------------------------------
>
> Key: DRILL-24
> URL: https://issues.apache.org/jira/browse/DRILL-24
> Project: Apache Drill
> Issue Type: New Feature
> Reporter: Timothy Chen
> Assignee: Timothy Chen
> Labels: logical
> Attachments: join.patch
>
>
> Join (M)
> Joins two inputs based on one or more join conditions. The output of this
> operator is the combination of the two inputs. This is done by providing a
> combination record of each set of input records that matches all provided
> join conditions. In the case that no conditions are provided, a cartesian
> join is generated. The combination record is a single record that contains a
> merged map of values from both provided input records. For example, if the
> left record is {donuts: [data]} and the right is {purchases: [data]}, the
> combination record would be {donuts: [data], purchases: [data]}. Join also
> requires a condition type variable which. This describes what happens when a
> record doesn’t match the join conditions. Inner means only records that
> match the join conditions should be included. Outer means if a record is
> Avaiable relationship types ‘Reltypes’ include: >, >=, <=, <, !=, ==
> { @id†: <opref>, op: “join”,
> left: <input>,
> right: <input>,
> type: <inner|outer|right|left>,
> conditions*: [
> {relationship: <reltype>, left: <expr>, right: <expr>}, ...
> ]
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira