Re: Speeding up loops in pl/pgsql function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


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


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux