...
Before plan:
distribute result [%0->$$27>$$13] -- |UNPARTITIONED|
project ([$$27$$13]) -- |UNPARTITIONED|
assign [$$27$$13] <- [function-call: asterix:open-record-constructor, Args:[AString: {subscription-idcust}, %0->$$35>$$0, AString: {execution-time}, function-call: asterix:current-datetime, Args:[], AString: {resultorders}, %0->$$6>$$12]] -- |UNPARTITIONED|
unnest $$6 <- function-call: asterix:scan-collection, Args:[%0->$$26] -- |UNPARTITIONED| subplan {
aggregate [$$26$$12] <- [function-call: asterix:listify, Args:[%0->$$22>$$1]] -- |UNPARTITIONED|
join (TRUE) -- |UNPARTITIONED|
select (%0->$$21) -- |UNPARTITIONED|
subplan {
aggregate [$$21] <- [function-call: asterix:non-empty-stream, algebricks:eq, Args:[]] %0->$$16, %0->$$14]) -- |UNPARTITIONED|
join select (function-call: algebricks:eq, Args:[%0->$$34, %0->$$7>$$18, AInt64: {5}]) -- |UNPARTITIONED|
nested tuple source -- |UNPARTITIONED|
assign [$$34$$16] <- [function-call: asterix:field-access-by-indexname, Args:[%0->$$10, AInt32: {1}]] -- |UNPARTITIONED|
data-scan []<-[$$32, $$10] <- emergencyTest:userLocations -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
} -- |UNPARTITIONED|
data-scan []<-[$$31, $$8] <- emergencyTest:CHPReports -- |UNPARTITIONED|
nested tuple source -- |UNPARTITIONED|
assign [$$22] <- [function-call: asterix:open-record-constructor, Args:[AString: {shelter locations}, %0->$$25]] -- |UNPARTITIONED|
aggregate [$$25] <- [function-call: asterix:listify, Args:[%0->$$24>$$19, AString: {o_custkey}]] -- |UNPARTITIONED|
assign [$$24$$19] <- [function-call: asterix:field-access-by-indexname, Args:[%0->$$11>$$1, AInt32AString: {1o_$o}]] -- |UNPARTITIONED|
data-scan []<-[$$33$$15, $$11$$1] <- emergencyTesttpch:tornadoShelters Orders -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
} -- |UNPARTITIONED|
assign [$$7$$18] <- [function-call: asterix:field-access-by-index, Args:[%0->$$5>$$0, AInt32: {1}]] -- |UNPARTITIONED| assign [$$35] <- [function-call: asterix:field-access-by-name, Args:[%0->$$5, AString: {subscription-id3}]] -- |UNPARTITIONED|
data-scan []<-[$$30$$14, $$5$$0] <- emergencyTesttpch:NearbySheltersDuringTornadoDangerChannelSubscriptions Customers -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
After
After plan
...
distribute result [%0->$$27>$$13] -- |UNPARTITIONED|
project ([$$27$$13]) -- |UNPARTITIONED|
assign [$$27$$13] <- [function-call: asterix:open-record-constructor, Args:[AString: {subscription-idcust}, %0->$$35>$$0, AString: {execution-time}, function-call: asterix:current-datetime, Args:[], AString: {result}, %0->$$6]] -- |UNPARTITIONED| unnest $$6 <- function-call: asterix:scan-collection, Args:[%0->$$26orders}, %0->$$12]] -- |UNPARTITIONED|
group by ([$$44 $$24 := %0->$$30>$$14]) decor ([%0->$$35>$$0; %0->$$5; %0->$$7>$$18]) {
aggregate [$$26$$12] <- [function-call: asterix:listify, Args:[%0->$$22>$$1]] -- |UNPARTITIONED|
select (function-call: algebricks:not, Args:[function-call: algebricks:is-null, Args:[%0->$$43>$$23]]) -- |UNPARTITIONED|
nested tuple source -- |UNPARTITIONED|
} -- |UNPARTITIONED|
left outer join (function-call: algebricks:eq, Args:[%0->$$30>$$14, %0->$$42>$$22]) -- |UNPARTITIONED|
assign [$$7$$18] <- [function-call: asterix:field-access-by-index, Args:[%0->$$5>$$0, AInt32: {13}]] -- |UNPARTITIONED|
assign [$$35] <- [function-call: asterix:field-access-by-name, Args:[%0->$$5, AString: {subscription-id}]] -- |UNPARTITIONED| data-scan []<-[$$30$$14, $$5$$0] <- emergencyTesttpch:NearbySheltersDuringTornadoDangerChannelSubscriptions Customers -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
assign [$$43$$23] <- [TRUE] -- |UNPARTITIONED|
join (TRUE) -- |UNPARTITIONED|
select (%0->$$21) -- |UNPARTITIONED|
group by ([$$37 := %0->$$31; $$42 := %0->$$41]) decor ([%0->$$40; %0->$$39; %0->$$38; %0->$$8]) {
aggregate [$$21] <- [function-call: asterix:non-empty-stream, Args:[]] -- |UNPARTITIONED|
select (function-call: algebricks:noteq, Args:[function-call: algebricks:is-null, Args:[%0->$$36]]%0->$$16, %0->$$22]) -- |UNPARTITIONED|
nested tuple source -- |UNPARTITIONED|
} -- |UNPARTITIONED|
left outer join select (function-call: algebricks:eq, Args:[%0->$$34, %0->$$38>$$20, AInt64: {5}]) -- |UNPARTITIONED|
data-scan []<-[$$31, $$8] <- emergencyTest:CHPReports -- |UNPARTITIONED| assign [$$38assign [$$20] <- [function-call: asterix:field-access-by-index, Args:[%0->$$39>$$21, AInt32: {1}]] -- |UNPARTITIONED| assign [$$40] <- [function-call: asterix:field-access-by-name, Args:[%0->$$39, AString: {subscription-id3}]] -- |UNPARTITIONED|
data-scan []<-[$$41$$22, $$39$$21] <- emergencyTesttpch:NearbySheltersDuringTornadoDangerChannelSubscriptions Customers -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
assign [$$36] <- [TRUE] -- |UNPARTITIONED| assign [$$34assign [$$16] <- [function-call: asterix:field-access-by-indexname, Args:[%0->$$10, AInt32: {1}]] -- |UNPARTITIONED|
data-scan []<-[$$32, $$10] <- emergencyTest:userLocations -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
assign [$$22] <- [function-call: asterix:open-record-constructor, Args:[AString: {shelter locations}, %0->$$25]] -- |UNPARTITIONED|
aggregate [$$25] <- [function-call: asterix:listify, Args:[%0->$$24>$$19, AString: {o_custkey}]] -- |UNPARTITIONED|
assign [$$24$$19] <- [function-call: asterix:field-access-by-indexname, Args:[%0->$$11>$$1, AInt32AString: {1o_$o}]] -- |UNPARTITIONED|
data-scan []<-[$$33$$15, $$11$$1] <- emergencyTesttpch:tornadoShelters Orders -- |UNPARTITIONED|
empty-tuple-source -- |UNPARTITIONED|
Special Cases
For special cases where:
...