Re: massive quotes?

Поиск
Список
Период
Сортировка
От Jon Jensen
Тема Re: massive quotes?
Дата
Msg-id Pine.LNX.4.58.0309151155230.1303@louche.swelter.net
обсуждение исходный текст
Ответ на Re: massive quotes?  (miko@idocs.com (Miko O'Sullivan))
Ответы Re: massive quotes?  (Andreas Pflug <pgadmin@pse-consulting.de>)
Re: massive quotes?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Sat, 13 Sep 2003, Miko O'Sullivan wrote:

> jon@endpoint.com (Jon Jensen) wrote in message news:<Pine.LNX.4.58.0309111950010.7142@louche.swelter.net>...
> > INSERT INTO sometable (5, <<\.
> > a
> > very long
> > string
> > \.
> > );
> 
> 
> I'm delighted to hear that here docs are being discussed for postgres.
>  In the world of Perl here docs make life SO MUCH easier by allowing
> for independent quoting scopes. Jon, I'm totally in agreement with you
> that here docs would be a valuable addition to postgres.  I'd like to
> propose a few modifications on the syntax you suggest above.
> 
> In Perl, the rule for here docs is NOT "it starts immediately after
> the definition of the terminator" (as in your example).  The rule is
> "it starts on the first line after the end of the command in which the
> terminator appears".  There's a very good reason for this distinction.
>  That reason is that it allows the command to be succinct, usually a
> single line, and the here doc stays completely separate. So, your
> example would like this instead:
> 
>  INSERT INTO sometable (5, <<'(END)');
>  a
>  very long
>  string
>  (END)
> 
> Notice that the entire INSERT command is on one line.  Very easy to
> read.

I'm aware of that distinction, and use it to advantage in Perl. It would 
make parsing harder, though.

> One other small tweak.  In Perl 5 the rule is that the terminator must
> be flush to the left of the line.  That means that here docs can mess
> up otherwise nicely indented code.  That issue is being fixed in Perl
> 6, where the terminator can be indented with the rest of the code. 

That also would make parsing harder, and Perl 6 is not yet real, so it'd 
be deviating from historical shell and Perl here document syntax.

In the end it looks like consensus has settled on a new syntax with some 
of the benefits of here documents without the requirement that the end 
token be on its own blank line (and thus necessitating end-of-line checks) 
and perhaps more importantly, not requiring that everything quoted in a 
here document always end with a newline.

Jon


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jon Jensen
Дата:
Сообщение: Re: massive quotes?
Следующее
От: Carlos Guzman Alvarez
Дата:
Сообщение: SSL/TLS connections on Cygwin