"EXPLAIN (format XML) <query>" command in PostgreSQL9.3.4 gives the plan chosen by the optimizer in XML format. In my program, I have to extract certain data about optimizer plan from this XML output.
I am using LibXML2 library for parsing the XML. I had successfully extracted information about which relations are involved and what joins are used by parsing the XML.
But I am unable to extract the order of joining the relations from the XML output. I conceptually understood that the level order traversal of binary tree representation of the XML plan will give correct ordering of joins applied.
But I could not figure out how do I get that from the XML? Does libXML2 support anything of this sort? If not how should I proceed to tackle this?