On Wed, Mar 24, 2010 at 6:22 AM, Frank jansen <jan...@fumarium.de> wrote:
> Hi,
>
>
> can you help me with this tricky concat i have?
> I have a function with an execute statement, one line of it doing an md5
> hash of some concatenated xml paths with values. I cannot get this one work,
> postgres is always complaing about some things, like: "functions and
> operators can take at most one set argument"
>
> EXECUTE'
> ...
> md5_hash=md5(unnest(xpath(''/foo/bar'',xml_content::xml))::text) ||
> (unnest(xpath(''/foo/bar2'',xml_content::xml))::text)

your problem is coming from unnest.  it takes the xml array and
returns a set.  generally speaking, functions do not operate on a
complete set, only its rows.   do you want a single digest for the
entire xpath result on each side or one for each row?

if you want a digest for the entire result, the unnest() call is not
needed. just cast the returned array to text and digest that.  if you
want to digest each row of the unnest, you need to use table
expressions and join them together.

merlin

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to