エクゼキュータはプランナ/オプティマイザから返 された 計画を受け取り頂点のノードの実行を始めます。ここでの例の場合 (例\ref{simple_select} で与えられる問い合わせ)、頂点のノードはMergeJoin ノードです。
マージが実行される前に二つのタプル(それぞれのサブプランから一つづつ)を 取って来なくては いけません。ですからエクゼキュータはサブプランを処理するために 自分自身を再帰的 に呼び出します。(lefttreeに付随するサブプランから始め ます。)新しい 頂点のノード(左のサブプランの頂点のノード)はSeqScan ノードで、ここでもノード自体が 実行されるまえにタプルを取らなくてはいけません。エクゼキュータは SeqScan ノードのlefttreeに付随するサブプランのために自分自身 をもう一度 再帰的に呼び出します。
ここで頂点のノードはSortノードになります。ソートは リレーション全体に かけられなければならないため、エクゼキュータはSort ノードのサブプラン からタプルをとりはじめ、Sortノードが始めて読みこま れたときは一時 リレーション(メモリもしくはファイル上)にそれらをソートします。 (Sort ノードのさらなる検査は、常にソートされた一時リレーションからタプルを 一つだけ返します。)
Sortの実行に新しいタプルが必要になると、サブプラン として付随された SeqScanノードのためにエクゼキュータが再帰的に呼び出 されます。そのリレーション (scanrelidフィールドで与えられた値に内部的に参照 される)は次のタプル のためにスキャンされます。もしそのタプルがqpqualに 付随するツリーで与えられる 制約を満たす場合、それは返されます。そうでない場合、制約が満たされるまで 次のタプルが とられます。もしリレーション上の最後のタプルがプロセスされた場合は、 NULL ポインタが返されます。
MergeJoinのlefttreeからタプルが 返されると、 righttreeが同じように処理されます。両方のタプル が存在する場合、 エクゼキュータはMergeJoinノードを処理します。 サブプランの一つからタプルが 必要とされる場合、それを得るためにエクゼキュータへの再帰呼び出しが行わ れます。結合 されたタプルが作られるとそれは返され、一つの計画ツリーの実行が完了 します。
ここで説明された処置は、MergeJoinノード実行の NULLポインタ が返され処理が終ったことを知らせるまで、タプルごとに一回ずつ実行されます。