Re: Concatenate - Mailing list pgsql-general

From Merlin Moncure
Subject Re: Concatenate
Date
Msg-id b42b73151003240641p3733dcd9o817d5b2e0bf07a14@mail.gmail.com
Whole thread Raw
In response to Concatenate  (Frank jansen <jansen@fumarium.de>)
Responses Re: Concatenate [solved]  (Frank jansen <jansen@fumarium.de>)
List pgsql-general
On Wed, Mar 24, 2010 at 6:22 AM, Frank jansen <jansen@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

pgsql-general by date:

Previous
From: "Albe Laurenz"
Date:
Subject: Re: Concatenate
Next
From: Frank jansen
Date:
Subject: Re: Concatenate [solved]