Re: user defined XML aggregate not working as (i think) it should

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Rhys A(dot)D(dot) Stewart" <rhys(dot)stewart(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: user defined XML aggregate not working as (i think) it should
Date: 2012-10-04 01:58:17
Message-ID: 12551.1349315897@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Rhys A.D. Stewart" <rhys(dot)stewart(at)gmail(dot)com> writes:
> I have an xml aggregate function that always returns 'ERROR: invalid
> XML content'. However an identical function that uses text produces
> valid xml with the same inputs.

I believe the reason this doesn't work is that the aggregate's initial
value is faulty: it's supposed to be an XML value and it isn't.

regression=# select ''::xml;
ERROR: invalid XML content
LINE 1: select ''::xml;
^

It's unfortunate that the CREATE AGGREGATE command doesn't complain
about that --- maybe we could improve it.

As far as making a working aggregate goes, I'd try leaving off the
initcond clause (so that the initial value is NULL) and then marking
the transition function STRICT. (plays around with xmlconcat on
nulls ...) hm, maybe you'd not even need the STRICT marking, though
personally I'd suggest it.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Chris Travers 2012-10-04 02:08:01 Re: Fwd: pros and cons of two security models
Previous Message Stephen Frost 2012-10-04 01:25:55 Re: Fwd: pros and cons of two security models