Re: massive quotes?
От | Andrew Dunstan |
---|---|
Тема | Re: massive quotes? |
Дата | |
Msg-id | 3F4F6F32.3000408@dunslane.net обсуждение исходный текст |
Ответ на | Re: massive quotes? (Jon Jensen <jon@endpoint.com>) |
Ответы |
Re: massive quotes?
|
Список | 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 по дате отправления: