Re: massive quotes? - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: massive quotes?
Date
Msg-id 3F4F6F32.3000408@dunslane.net
Whole thread Raw
In response to Re: massive quotes?  (Jon Jensen <jon@endpoint.com>)
Responses Re: massive quotes?
List pgsql-hackers
Jon Jensen wrote:

>On Thu, 28 Aug 2003, Andrew Dunstan wrote:
>
>  
>
>>What is the state of things regarding having to use massive strings of 
>>quotes like this (taken from the 7.3 docs)?:
>>
>>a_output := a_output || '' if v_'' || 
>>     referrer_keys.kind || '' like '''''''''' 
>>     || referrer_keys.key_string || '''''''''' 
>>     then return ''''''  || referrer_keys.referrer_type 
>>     || ''''''; end if;''; 
>>
>>This is truly ugly, IMNSHO. Perl has its q() construct - any chance of
>>us doing something here?
>>
>>I'm prepared to put in effort to implement a solution if there is
>>agreement on what the solution should be. Maybe some sort of magical
>>operator/function?
>>    
>>
>
>I was thinking the most natural thing would be to use something similar to 
>COPY's stdin quoting:
>
>CREATE FUNCTION bob() RETURNS INTEGER AS stdin LANGUAGE 'plpgsql';
>BEGIN
>    ...
>END;
>\.
>
>Another possibility would be shell/Perl-style here documents, like this:
>
>CREATE FUNCTION bob() RETURNS INTEGER AS <<EOF
>BEGIN
>    ...
>END;
>EOF
>LANGUAGE 'plpgsql';
>
>The former seems preferable since it uses a syntax PostgreSQL already
>supports in another context.
>
>Jon
>  
>

Nice idea. I would probably never have thought of it :-) Makes function 
text almost first class, in the way that Oracle's is AFAICS,

I also prefer the first version, not least because it hoists the 
LANGUAGE clause to the top where it seems to me it belongs.

I have no idea how hard this would be.


cheers

andrew



pgsql-hackers by date:

Previous
From: Jon Jensen
Date:
Subject: Re: massive quotes?
Next
From: Tom Lane
Date:
Subject: Re: FE/BE Protocol - Specific version