Re: Using XMLNAMESPACES with XMLEMENT - Mailing list pgsql-general

From Pavel Stehule
Subject Re: Using XMLNAMESPACES with XMLEMENT
Date
Msg-id CAFj8pRCpee-UzFQ-YEZDo0mG4tXEjJxfW4_Ci2kQ0aFWBOb_6g@mail.gmail.com
Whole thread Raw
In response to Using XMLNAMESPACES with XMLEMENT  (Garfield Lewis <garfield.lewis@lzlabs.com>)
Responses Re: Using XMLNAMESPACES with XMLEMENT  (Garfield Lewis <garfield.lewis@lzlabs.com>)
List pgsql-general
Hi

pá 24. 9. 2021 v 23:44 odesílatel Garfield Lewis <garfield.lewis@lzlabs.com> napsal:

Hi All,

 

I am attempting to port the following statement from DB2z to Postgres:

 

SELECT e.empno, e.firstnme, e.lastname,

          XMLELEMENT ( NAME "foo:Emp",

            XMLNAMESPACES('http://www.foo.com' AS "foo"),

            XMLATTRIBUTES(e.empno as "serial"),

                          e.firstnme,

                          e.lastname ) AS "Result"

       FROM EMP e

       WHERE e.edlevel = 12;

 

The NAMESPACES function is not supported by Postgres in the XMLELEMENT function. Is there any way to get this to work? I’ve looked at the WITH syntax but it doesn’t look like that will be helpful here.


I am afraid this is not supported in Postgres. The XMLNAMESPACE clause can be used only in XMLTABLE function. You need to make XML and in the next step you need to modify it as string with string operation.

It can be an interesting feature, and if it is supported by libxml2, then it can be easily implemented. But at this moment it is unsupported, and you have to use string operations - it should not be hard to use regexp.

Regards

Pavel



 

Regards,

Garfield

pgsql-general by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Frequetly updated partial index leads to bloat on index for Postresql 11
Next
From: Garfield Lewis
Date:
Subject: Re: Using XMLNAMESPACES with XMLEMENT