dashbitco/flow

Clarify :full_outer v :outer joins

asummers opened this issue · 1 comments

In investigating the Dialyzer errors (see also #80), I found that flow.ex operates on join of both :outer and :full_outer. The docs and the usage in Flow.Materialize and the tests suggest it should be :full_outer but the there are uses of :outer in the @join module attribute and the @type join, as well as several function calls. Which of these is actually intended?

Additionally, the typespec for @typep producers needs to be | {:join, join, t, t, fun(), fun(), fun()} with the join as the second argument. Whenever the :full_outer v :outer is resolved, and this is added, that section of the errors will disappear.

Good catch. The join one is full_outer. The other :outer is unrelated. Thanks for all fo the fixes!