Re: Concatenate

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Frank jansen <jansen(at)fumarium(dot)de>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Concatenate
Date: 2010-03-24 13:41:03
Message-ID: b42b73151003240641p3733dcd9o817d5b2e0bf07a14@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, Mar 24, 2010 at 6:22 AM, Frank jansen <jansen(at)fumarium(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Frank jansen 2010-03-24 14:19:14 Re: Concatenate [solved]
Previous Message Albe Laurenz 2010-03-24 13:27:13 Re: Concatenate