Re: massive quotes?

From: Jon Jensen <jon(at)endpoint(dot)com>
To: Miko O'Sullivan <miko(at)idocs(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: massive quotes?
Date: 2003-09-15 11:59:14
Message-ID: Pine.LNX.4.58.0309151155230.1303@louche.swelter.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, 13 Sep 2003, Miko O'Sullivan wrote:

> jon(at)endpoint(dot)com (Jon Jensen) wrote in message news:<Pine(dot)LNX(dot)4(dot)58(dot)0309111950010(dot)7142(at)louche(dot)swelter(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Carlos Guzman Alvarez 2003-09-15 12:09:48 SSL/TLS connections on Cygwin
Previous Message Jon Jensen 2003-09-15 11:55:14 Re: massive quotes?