asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Taewoo Kim <wangs...@gmail.com>
Subject Left-Outer-Unnest-Map operator VS Unnest-Map operator
Date Tue, 08 Mar 2016 06:42:37 GMT
Hello All,

I just want to share one information. We now have Left-Outer-Unnest-Map
(LOUM) operator. The difference between LOUM and Unnest-Map (UM) operator
is that LOUM is used to represent left-outer semantics of the
left-outer-join. That is, LOUM basically propagates all input variables
(from the outer branch). It also generates null values for non-match tuples
in the inner branch. Unlike this, UM does not propagate input variables by
default.

So, when a left-outer-join is transformed as an index-nested-loop-join,
LOUM operator will be placed in the inner branch by
IntroduceJoinAccessMethodRule and propagates all input variables from the
outer branch. For each tuples from the outer branch, it conducts
index-search and generates null values if there is no result from that
index-search.

So, during a logical plan optimization, if you see the LOUM operator, that
means that left outer join is transformed into an index-nested-loop join.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message