Re: XML/XPath issues: text/CDATA in XMLTABLE, XPath evaluated with wrong context
Chapman Flack <chap@anastigmatix.net>
Hi, thanks for checking the patches! On 02/28/19 19:36, Ramanarayana wrote: > The below statement needs to be executed before running the query to > replicate the issue > > update xmldata set data = regexp_replace(data::text, '791', > '<!--ah-->7<!--oh-->9<!--uh-->1')::xml; If you are applying that update (and there is a SIZE element originally 791), and then receiving a "more than one value returned by column XPath expression" error, I believe you are seeing documented, correct behavior. Your update changes the content of that SIZE element to have three comment nodes and three text nodes. The query then contains this column spec: size_text float PATH 'SIZE/text()' where the target SQL column type is 'float' and the path expression will return an XML result consisting of the three text nodes. As documented, "An XML result assigned to a column of any other type may not have more than one node, or an error is raised." So I think this behavior is correct. If you do any more testing (thank you for taking the interest, by the way!), could you please add your comments, not to this email thread, but to [1]? [1] https://www.postgresql.org/message-id/3e8eab9e-7289-6c23-5e2c-153cccea2257%40anastigmatix.net That's the one that is registered to the commitfest entry, so comments made on this thread might be overlooked. Thanks! -Chap
Commits
-
Remove EState.es_range_table_array.
- 3c926587b592 13.0 landed
-
Rationalize use of list_concat + list_copy combinations.
- 5ee190f8ec37 13.0 landed
-
Cosmetic improvements in setup of planner's per-RTE arrays.
- 1661a4050593 13.0 landed
-
Make better use of the new List implementation in a couple of places
- efdcca55a3df 13.0 landed
-
Fix sepgsql test results for commit d97b714a2.
- 82c8a3c52adf 13.0 landed
-
Avoid using lcons and list_delete_first where it's easy to do so.
- d97b714a2199 13.0 landed
-
Remove lappend_cell...() family of List functions.
- c245776906b0 13.0 landed
-
Clean up some ad-hoc code for sorting and de-duplicating Lists.
- 2f5b8eb5a28b 13.0 landed
-
Redesign the API for list sorting (list_qsort becomes list_sort).
- 569ed7f48312 13.0 landed
-
Remove dead code.
- 4c3d05d875dd 13.0 landed
-
Represent Lists as expansible arrays, not chains of cons-cells.
- 1cff1b95ab6d 13.0 landed
-
Standardize some more loops that chase down parallel lists.
- c94fb8e8acc0 12.0 landed
-
Reimplement the linked list data structure used throughout the backend.
- d0b4399d81f3 8.0.0 cited