Tom Lane <t...@sss.pgh.pa.us> wrote: 
>> Can you show one case where having plgpsql parse the function body
>> based on the standard_conforming_strings GUC would break *anything*
>> that now works?
> 
> regression=# create function foo() returns int as $$
> regression$# begin
> regression$#   raise notice 'foo\'s bar';
> regression$#   return 1;
> regression$# end$$ language plpgsql;
> CREATE FUNCTION
> regression=# select foo();
> NOTICE:  foo's bar
>  foo 
> -----
>    1
> (1 row)
> 
> In this case the string literal isn't actually ever passed to the
> main SQL engine, so the SQL quoting rules aren't relevant.  (I don't
> remember offhand if anything besides RAISE works that way.)
> 
> It may be that this isn't a very important case, but to claim that
> it doesn't exist is simply wrong.
 
OK, I didn't try that.  Point taken.  It is a bigger mess than I
thought then.
 
The aspect of 8.3 behavior that concerns me most is that neither the
author of a function, nor anyone using it, can control or predict
which way a string literal with a backslash will be interpreted,
unless the author explicitly specifies the SET
standard_conforming_strings clause in the function declaration.  I'm
betting that most people writing and using plpgsql functions don't
know that.  Any thoughts about what can or should be done about that?
 
-Kevin

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

Reply via email to