explain analyze 中的loops 解释

请问一下,explain analyze 中的loops文档解释loops 是当前算子被父算子调用的次数。


1.我的这个执行计划中的loops 为什么是2呢?
2.StreamAgg_17 已经说根算子了,那么这个它的父算子是谁呢?这个loops 怎么计算出来的呢?

如图所示, indexReader 也是 loops 2,然后有下推计算
streamAgg 和 indexReader 耗费时间就完全一致了,基本上 indexReader执行完毕,这个计划也就认为执行完了。

想要了解更多细节,可以参考

如果

1、你红色部分的loop为何是2,我是这么理解(猜测)的。loop了多少次其实就是调用了多少次Next,不管这个Next成功获取数据还是失败,因为这个loop累加发生在Next函数的defer里面。当第一次调用Next的时候返回一行记录,但是这个时候并没有结束,下次调用Next的时候底层返回报错没有数据,然后close掉所有算子。
2、StreamAgg没有父算子,它的调用者就是连接不停的获取数据即不停的调用StreamAgg的Next返回chunk数据。