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 ---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings