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.