Thread: How to do an update with XML column ?

How to do an update with XML column ?

From
celati Laurent
Date:
Dear all,
I'm taking the liberty to ask an question. Do you know if there are some ways in order to update and/or do group by with an XML column ? 
For instance, 

select id, unnest(xpath(        '//cit:CI_Organisation/cit:name/gco:CharacterString/text()',       CAST(data AS XML),        ARRAY[            ARRAY['cit', 'http://standards.iso.org/iso/19115/-3/cit/2.0'],            ARRAY['gco', 'http://standards.iso.org/iso/19115/-3/gco/1.0'],            ARRAY['mdb','http://standards.iso.org/iso/19115/-3/mdb/2.0'],            ARRAY['cat','http://standards.iso.org/iso/19115/-3/cat/1.0'],        ])) as orga_name, changedate, createdate, displayorder, doctype, extra, popularity, rating, root, schemaid, title, istemplate, isharvested, harvesturi,       harvestuuid, groupowner, metadata.owner, metadata.source, uuid
from public.metadata
group by orga_name

I obtained : 
ERROR:  could not identify an equality operator for type xml
LINE 39: group by orga_name                  ^ 

SQL state: 42883
Character: 2556


Thanks so much

Re: How to do an update with XML column ?

From
Francisco Olarte
Date:
Hi:

On Wed, 18 Dec 2024 at 11:00, celati Laurent <laurent.celati@gmail.com> wrote:

> ERROR:  could not identify an equality operator for type xml
> LINE 39: group by orga_name
>                   ^

Have you tried the obvious group by cast(orga_name as text) ? Never
used XML but most types in postgres convert to text injectively ( but
not bijectively ) ( I mean, same values, same text, but you can have
different text same values ( like the obvious text->float conversion
))


Francisco Olarte.