Thank you for your reply Tom. Then a) what are exactly stored in the pathlist of top level rel? Paths worth considering? b) I have been struggling to come up with a way to print the Path struct. If I can print a path the way like "A hash join (B nested loop join C)", that would be great. You mentioned people have printed "something" about each path, can you please give me a hint of what's that and how to achieve that?