Re: Speeding up loops in pl/pgsql function

From: Steve Crawford <scrawford(at)pinpointresearch(dot)com>
To: "Reuven M(dot) Lerner" <reuven(at)lerner(dot)co(dot)il>
Cc: Alex Hunsaker <badalex(at)gmail(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Speeding up loops in pl/pgsql function
Date: 2011-05-26 00:03:02
Message-ID: 4DDD98B6.6080208@pinpointresearch.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 05/25/2011 11:45 AM, Reuven M. Lerner wrote:
> Hi, Alex. You wrote:
>> Have you tried something like:
>> SELECT encode(regexp_replace('141142143', '(\d{3})', '\\\1',
>> 'g')::bytea, 'escape');
> Hmm, forgot about regexp_replace. It might do the trick, but without
> a full-blown eval that I can run on the replacement side, it'll be a
> bit more challenging. But that's a good direction to consider, for sure.

The function given didn't work exactly as written for me but it is on
the right track. See if this works for you (input validation is left as
an exercise for the reader...:)):

create or replace function octal_string_to_text(someoctal text) returns
text as $$
declare
binstring text;
begin
execute 'select E''' || regexp_replace($1, E'(\\d{3})', E'\\\\\\1',
'g') || '''' into binstring;
return binstring;
end
$$ language plpgsql;

Cheers,
Steve

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Merlin Moncure 2011-05-26 01:20:23 Re: Speeding up loops in pl/pgsql function
Previous Message Stefan Keller 2011-05-25 22:58:39 Re: FW: KVP table vs. hstore - hstore performance (Was: Postgres NoSQL emulation)