On Mon, Sep 15, 2014 at 10:39:22AM -0400, Wietse Venema wrote:

> If someone specifies multiple maps, each map is given the same
> query.  When only some of the maps produce a result, what should
> the final result be:
> 
> - The result is "not found". This is may be desirable in some cases.
>   Right now, the virtual(8) daemon queries three parallel tables
>   for mailbox file name, uid and gid; it can't deliver mail unless
>   all three are available. Maybe this will allow us to avoid
>   introducing more parallel lookups in the future.

That would be more like a traditional join, but we don't have a
way to disambiguate the various result columns.  I think that users
who really want this should use SQL!  So my "vote" is "no" on this
one.

> - The result contains empty fields for unavailable results. I have
>   difficulty imagining where this would be desirable. Postfix
>   currently has no concept of "tuples of results", and therefore
>   has no concept that different tuple members might have different
>   meanings. Again, the nearest thing is the virtual(8) daemon.

Not a fan of this either.

> - The result is a concatenation of the available results, without
>   indication of what maps produce "not found". I think this is what
>   the current patch does, and this is OK for current Postfix.

This is why I think "union" is the right name, in an SQL union
there is no distinction in the result set between rows arising from
different underlying subtables.

-- 
        Viktor.

Reply via email to