Hi Taewoo,

I might be got confused by the comment. But still did not get why it
is commented?
Sub-plans are missing a few optimizations. For example after
uncommenting this code and fixing InlineSingleReferenceVariableRule
for sub-plans we get:

Before:

........
                    subplan {
                              aggregate [$$10] <- [listify($$9)]
                              -- AGGREGATE  |LOCAL|
                                assign [$$9] <- [eq($$22, "Tom")]
                                -- ASSIGN  |LOCAL|
                                  assign [$$22] <- [$$30.getField("firstName")]
                                  -- ASSIGN  |LOCAL|
                                    assign [$$30] <- [$$29.getField("name")]
                                    -- ASSIGN  |LOCAL|
                                      assign [$$29] <- [$$x.getField("names")]
                                      -- ASSIGN  |LOCAL|
                                        select (eq($$21, "1"))
                                        -- STREAM_SELECT  |LOCAL|
                                          nested tuple source
                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
                           }
                    -- SUBPLAN  |PARTITIONED|
                      project ([$$x, $$21, $$25])
                      -- STREAM_PROJECT  |PARTITIONED|
                        assign [$$21, $$25] <-
[$$28.getField("count"), $$28.getField("name")]
                        -- ASSIGN  |PARTITIONED|
                          assign [$$28] <- [$$x.getField("names")]
                          -- ASSIGN  |PARTITIONED|
........

After:

........
                    subplan {
                              aggregate [$$10] <- [listify($$9)]
                              -- AGGREGATE  |LOCAL|
                                assign [$$9] <-
[eq($$26.getField("firstName"), "Tom")]
                                -- ASSIGN  |LOCAL|
                                  select (eq($$22, "1"))
                                  -- STREAM_SELECT  |LOCAL|
                                    nested tuple source
                                    -- NESTED_TUPLE_SOURCE  |LOCAL|
                           }
                    -- SUBPLAN  |PARTITIONED|
                      project ([$$x, $$22, $$26])
                      -- STREAM_PROJECT  |PARTITIONED|
                        assign [$$26, $$22] <- [$$20.getField("name"),
$$20.getField("count")]
                        -- ASSIGN  |PARTITIONED|
                          assign [$$20] <- [$$x.getField("names")]
                          -- ASSIGN  |PARTITIONED|
........
<br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat,
Oct 19, 2019 at 11:15 AM Taewoo Kim &lt;[email protected]&gt;
wrote:<br></div><blockquote class="gmail_quote" style="margin: 0px 0px
0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left:
1ex;">Hi Wail,<br>
<br>
I think that's what the comment implies (I could not produce an expression<br>
where it used in a sub-plan and not visible to upper operators?). If you<br>
want to make it happen, a workaround might be introducing a project<br>
operator within the subplan of the subplan operator? Actually, if a<br>
variable is not used, isn't project operator supposed to remove them<br>
automatically by IntroduceProjectsRule?<br>
<br>
Best,<br>
Taewoo<br>
<br>
<br>
On Sat, Oct 19, 2019 at 10:05 AM Wail Alkowaileet &lt;<a
href="mailto:[email protected]";
target="_blank">[email protected]</a>&gt;<br>
wrote:<br>
<br>
&gt; Hi Dev,<br>
&gt;<br>
&gt; I'm not sure about the commented code in [1]. I could not produce an<br>
&gt; expression where it used in a sub-plan and not visible to upper
operators?<br>
&gt; Also, all SQL++ runtime integration tests seem to work just fine.<br>
&gt;<br>
&gt;<br>
&gt; [1] ExtractCommonExpressionsRule.j<wbr>ava#L192<br>
&gt; &lt;<br>
&gt; <a 
href="https://github.com/apache/asterixdb/blob/f2c18aa9646238ab2487ce3a964edfe3e61dd6e1/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java#L192";
rel="noreferrer"
target="_blank">https://github.com/apache/aste<wbr>rixdb/blob/f2c18aa9646238ab248<wbr>7ce3a964edfe3e61dd6e1/hyracks-<wbr>fullstack/algebricks/<wbr>algebricks-rewriter/src/main/<wbr>java/org/apache/hyracks/<wbr>algebricks/rewriter/rules/Extr<wbr>actCommonExpressionsRule.java#<wbr>L192</a><br>
&gt; &gt;<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; *Regards,*<br>
&gt; Wail Alkowaileet<br>
&gt;<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div
dir="ltr" class="gmail_signature"><br><b>Regards,</b><br>Wail
Alkowaileet<br></div>

Reply via email to