Re: plpgsql language not aware of standard_conforming_strings ? - Mailing list pgsql-sql

From Sabin Coanda
Subject Re: plpgsql language not aware of standard_conforming_strings ?
Date
Msg-id fh9cbj$2pd2$1@news.hub.org
Whole thread Raw
In response to plpgsql language not aware of standard_conforming_strings ?  ("Sabin Coanda" <sabin.coanda@deuromedia.ro>)
List pgsql-sql
"Sabin Coanda" <sabin.coanda@deuromedia.ro> wrote in message 
news:fh99cq$2cfn$1@news.hub.org...
...
>
> How can I get my desired function that means when I call test( 'a\b' ) it 
> will return 'a\\b' ?
>

The problem seems to be the constant evaluation in plpgsql functions which 
is not aware of  standard_conforming_strings.
An answer may be to build my own replace function, that doesn't use constant 
evaluation inside.
For instance:

CREATE OR REPLACE FUNCTION myreplace(sText varchar, sSrc varchar, sDst 
varchar)  RETURNS varchar AS $BODY$
BEGINRETURN replace( sText, sSrc, sDst );
END;
$BODY$ LANGUAGE 'plpgsql' VOLATILE;


Using this function will give the expected result, when 
standard_conforming_strings = 'on', so
SELECT myreplace( 'a\b', '\', '\\' ); will give the result 'a\\b' as 
expected.

In fact this is an workaround :((. It would be nice to make the language to 
works like that :).

Regards,
Sabin 




pgsql-sql by date:

Previous
From: "Sabin Coanda"
Date:
Subject: plpgsql language not aware of standard_conforming_strings ?
Next
From: Tom Lane
Date:
Subject: Re: show value of backslashes in string array argument