{D} {A,C} {A,D} {B,C} {{A,B}, C}, {{B,C}, A}, {{A,C}, B} L3 L4 {{A,B}, D}, {{B,D}, A}, {{A,D}, B} {B,D} {C,D} RelOptInfo( {A,B,C} ) • {{A, B}, C}のpathを生成 {{A,C}, D}, {{C,D}, A}, {{A,D}, を作成 C} o RelOptInfo {A,B,C} o Nested Loop, Merge, {{B,C}, D}, {{B,D}, C}, {{C,D}, B} Hashなどadd_path • {{B,C}, A}, {{A,C}, B}のpathもRelOptInfo {A,B,C}に追加 {{A,B,C}, D}, {{A,B,D}, C}, {{A,C,D}, B}, {{B,C,D}, A} • 他の組み合わせも同様 {{A,B}, {C,D}}, {{A,C}, {B,D}}, {{A,D}, {B,C}} • set_cheapest()