>> Did some docs copy-editing and integrated some examples. Explained how >> nested elements work, that multiple top level elements is an error, >> etc. Explained the time-of-evaluation stuff. Pointed out that you can >> refer to prior output columns in PATH and DEFAULT, since that's weird >> and unusual compared to normal SQL. Documented handling of multiple >> node matches, including the surprising results of somepath/text() on >> <somepath>x<!--blah-->y</somepath>. Documented handling of nested >> elements. Documented that xmltable works only on XML documents, not >> fragments/forests. > > > I don't understand to this sentence: "It is possible for a PATH expression > to reference output columns that appear before it in the column-list, so > paths may be dynamically constructed based on other parts of the XML > document:"
This was based on a misunderstanding of something you said earlier. I thought the idea was to allow this to work:
SELECT * FROM xmltable('/x' PASSING '<x><elemName>a</elemName><a>value</a></x>' COLUMNS elemName text, extractedValue text PATH elemName);
... but it doesn't:
SELECT * FROM xmltable('/x' PASSING '<x><elemName>a</elemName><a>value</a></x>' COLUMNS elemName text, extractedValue text PATH elemName); ERROR: column "elemname" does not exist LINE 1: ...' COLUMNS elemName text, extractedValue text PATH elemName);
... so please delete that text. I thought I'd tested it but the state of my tests dir says I just got distracted by another task at the wrong time.