On 3/27/19 9:31 AM, Alvaro Herrera wrote: > Everyone calls it "libxml2" nowadays. Let's just use that and avoid any > possible confusion. If some libxml3 emerges one day, it's quite likely > we'll need to revise much more than our docs in order to use it.
That's persuasive to me. I'll change the references to say libxml2 and let a committer serve as tiebreaker. >> [1] http://xmlsoft.org/html/libxml-xpath.html#xmlNodeSet : "array of nodes >> in no particular order" > > What this means is "we don't guarantee any specific order". It's like a > query without ORDER BY: you may currently always get document order, but > if you upgrade the library one day, it's quite possible to get the nodes > in another order and you'll not get a refund. So you (the user) should > not rely on the order, or at least be mindful that it may change in the > future. Exactly. I called the behavior "counter-documented" to distinguish this from the usual "undocumented" case, where you notice that a library is behaving in a way you like, but its docs are utterly silent on the matter, so you know you're going out on a limb to count on what you've noticed. In this case, you can notice the handy behavior but the doc *comes right out and disclaims it* so if you count on it, you're going out on a limb that has no bark left and looks punky. And yet it seems worthwhile to mention how the library does in fact seem to behave, because you might well be in the situation of porting code over from SQL/XML:2006+ or XQuery or XPath 2+, or those are the languages you've learned, so you may have order assumptions you've made, and be surprised that XPath 1 doesn't let you make them, and at least we can say "in a pinch, if you don't mind standing on this punky limb here, you may be able to use the code you've got without having to refactor every XMLTABLE() or xpath() into something wrapped in an outer SQL query with ORDER BY. You just don't get your money back if a later library upgrade changes the order." The wiki page remembers[1] that I had tried some pretty gnarly XPath 1 queries to see if I could make libxml2 return things in a different order, but no, got document order every time. Regards, -Chap [1] https://www.postgresql.org/message-id/5C465A65.4030305%40anastigmatix.net