LATERAL synopsis

Lists: pgsql-docs
From: "Erik Rijkers" <er(at)xs4all(dot)nl>
To: pgsql-docs(at)postgresql(dot)org
Subject: LATERAL synopsis
Date: 2012-10-27 15:54:25
Message-ID: eeb2ce6a1a2476265b08eabbaad7e218.squirrel@webmail.xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On the SELECT manual-page synopsis,

http://www.postgresql.org/docs/devel/static/sql-select.html

the LATERAL feature is documented in three sparate lines (the are separate, right?). Because of
their length I was going to reformat them to let them fit in the .PDF page format, but looking a
bit closer at that synopsis I have to admit I don't really understand it. Could someone please
explain?

[ LATERAL ] ( select ) [ AS ] alias [ ( column_alias [, ...] ) ]

and:

[ LATERAL ] function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...] |
column_definition [, ...] ) ]

and:

[ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )

All three are listed as possible 'from_item's.

But what does 'column_definition' stand for? (These are the only occurrences of
'column_definition' in the manual.)

Are not the first two of the above LATERAL-lines sufficient? Or perhaps it would be even better
to reduce it to only the first of those three lines (i.e. get rid of the 'function_name' lines)?

Thanks,

Erik Rijkers


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Erik Rijkers" <er(at)xs4all(dot)nl>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: LATERAL synopsis
Date: 2012-10-27 16:44:43
Message-ID: 21287.1351356283@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

"Erik Rijkers" <er(at)xs4all(dot)nl> writes:
> [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )

> But what does 'column_definition' stand for? (These are the only occurrences of
> 'column_definition' in the manual.)

This is the syntax for specifying what columns a
function-returning-RECORD is actually going to return. I'm too lazy to
chase down the reference and see whether it's really inconsistent or
not --- but that line was like that before I added [ LATERAL ] to it ...

regards, tom lane


From: "Erik Rijkers" <er(at)xs4all(dot)nl>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: LATERAL synopsis (patch to wrap long line)
Date: 2012-10-27 17:55:23
Message-ID: 80168799c2325740e298fca917a9b9e7.squirrel@webmail.xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-docs

On Sat, October 27, 2012 18:44, Tom Lane wrote:
> "Erik Rijkers" <er(at)xs4all(dot)nl> writes:
>> [ LATERAL ] function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
>
>> But what does 'column_definition' stand for? (These are the only occurrences of
>> 'column_definition' in the manual.)
>
> This is the syntax for specifying what columns a
> function-returning-RECORD is actually going to return. I'm too lazy to
> chase down the reference and see whether it's really inconsistent or
> not --- but that line was like that before I added [ LATERAL ] to it ...
>

OK. I see it goes back to 7.3. It's probably not a problem.

I returned to the initial reason that I looked at the select.sgml, namely the truncation of some
of the synopsis-lines in the .pdf page for select.sgml.

Attached patch wraps the worst-longest line so that if becomes visible in pdf. It makes the .html
version slightly less pretty, but I hope the .pdf readability (integrity, even) counts for
something too.

(the remaining long lines in select.sgml page are cut off (for pdf) in the middle of some last
element and as such are still readable / clear enough.)

If changes like these (where the .html suffers slightly for .pdf integrity) are acceptable, I
would like to make some more doc-patches where the .pdf is rendered readable (almost always the
synopsis, but maybe there are still some code examples).

Thanks,

Erik Rijkers

Attachment Content-Type Size
select.sgml.diff application/octet-stream 2.0 KB