Peter Eisentraut <[EMAIL PROTECTED]> writes:
> The spec doesn't allow casts between xml and text (varchar) at all.  The way 
> I appear to have derived the current behavior from the spec is that this is 
> interpreted as an implicit XMLSERIALIZE call in the context of a prepared 
> statement, which is defined to observe the XML option, as per clause 17.3 
> (part 14).  This was the clostest piece of spec that described conversion 
> from xml to character types.  Now with the xpath functionality, there is 
> certainly a strong use case for ignoring this altogether and just serializing
> with the XML option set to "content".

Given the actual behavior of xmltotext_with_xmloption, it certainly
seems like a pretty useless error check.  Also, xml_out doesn't behave
that way, so why should xmltotext?

The volatility markings of xml_in and texttoxml seem wrong too.
It looks to me like we need:

        xml_in          should be STABLE because it depends on xmloption
        xml_recv        ditto (OK already)
        xml_out         correctly(?) marked IMMUTABLE
        xml_send        is STABLE, OK because it depends on client_encoding
        texttoxml       should be STABLE because it depends on xmloption
        xmltotext       remove xmloption dependency, mark as IMMUTABLE

Should we force initdb to correct these pg_proc entries, or just quietly
change pg_proc.h?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to