Rhino.ETL DSL - patch

67 views
Skip to first unread message

miles

unread,
Mar 24, 2012, 3:27:26 PM3/24/12
to Rhino Tools Dev
Hi,

One of the things missing from the DSL is support for a JoinOperation
(it currently only supports the NestedLoop version of the join).

I have a patch to address this, is it possible to get it merged in if
I submit it?

Cheers,

Miles

Jason Meckley

unread,
Mar 24, 2012, 4:24:33 PM3/24/12
to rhino-t...@googlegroups.com
Patches are always welcome :) however, ETL already includes a join operation ( https://github.com/hibernating-rhinos/rhino-etl/blob/master/Rhino.Etl.Core/Operations/JoinOperation.cs ). you can perform Inner, Left Outer, Right Outer and Full joins.

Miles Waller

unread,
Mar 24, 2012, 4:36:55 PM3/24/12
to rhino-t...@googlegroups.com
Sure, but you can't use those operations from the DSL - that only
supports the NestedLoopJoinOperation.

(https://github.com/hibernating-rhinos/rhino-etl/blob/master/Rhino.Etl.Dsl/Macros/JoinMacro.cs)

> --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rhino-tools-dev/-/E7YC0PurRnIJ.
>
> To post to this group, send email to rhino-t...@googlegroups.com.
> To unsubscribe from this group, send email to
> rhino-tools-d...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rhino-tools-dev?hl=en.

Jason Meckley

unread,
Mar 25, 2012, 3:06:53 PM3/25/12
to rhino-t...@googlegroups.com
the join operation is an abstraction. you need to provide the implementation, then you can reference it, just like any other operation.


On Saturday, March 24, 2012 4:36:55 PM UTC-4, miles wrote:
Sure, but you can't use those operations from the DSL - that only
supports the NestedLoopJoinOperation.

(https://github.com/​hibernating-rhinos/rhino-etl/​blob/master/Rhino.Etl.Dsl/​Macros/JoinMacro.cs)

Miles Waller

unread,
Mar 25, 2012, 3:47:29 PM3/25/12
to rhino-t...@googlegroups.com
Can you point me to an example that does this via the DSL (and not
custom c#/vb code)? Something using the DSL like the example here -
http://hibernatingrhinos.com/open-source/rhino-etl/introduction

I can't see any macros in the source that reference the JoinOperation
class (https://github.com/hibernating-rhinos/rhino-etl/tree/master/Rhino.Etl.Dsl/Macros),
only the NestedLoop Join. But the DSL is not very documented so
perhaps I've missed a trick?

Thanks for your help,

> --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To view this discussion on the web visit

> https://groups.google.com/d/msg/rhino-tools-dev/-/lDsY59yM85sJ.

Jason Meckley

unread,
Mar 25, 2012, 10:31:09 PM3/25/12
to rhino-t...@googlegroups.com
I haven't used the DSL, only the library within a .net project.


On Saturday, March 24, 2012 3:27:26 PM UTC-4, miles wrote:

Miles Waller

unread,
Mar 28, 2012, 4:41:03 AM3/28/12
to rhino-t...@googlegroups.com
Hi,

I've made a pull request with the patch -
https://github.com/hibernating-rhinos/rhino-etl/pull/5.

A join can now be defined in DSL as:

leftjoin:
right key1, key2:
input "CONNECTION1", Command="SELECT..."
left keyA, keyB:
input "CONNECTION2", Command="SELECT..."
action:
row = left.Clone()
row.connection1data = right.col1

The DSL is way cool - much more readable for composing pipelines than
c# - plus also in VS 2010 you can step through it in the debugger, but
the learning curve is quite steep for extending it - if you thought
rhino.etl was underdocumented, then take a look at the boo
macro/compiler extensibility that the DSL is built on!

Miles

> --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To view this discussion on the web visit

> https://groups.google.com/d/msg/rhino-tools-dev/-/AmUjnob74NoJ.

Reply all
Reply to author
Forward
0 new messages