"Sabin Coanda" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
...
>
> 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$
BEGIN
 RETURN 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 



---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to