Re: what does t(x) in select x from generate_series(1, 10) as t(x) stand for?

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: john snow <ofbizfanster(at)gmail(dot)com>
Cc: "pgsql-novice(at)postgresql(dot)org" <pgsql-novice(at)postgresql(dot)org>
Subject: Re: what does t(x) in select x from generate_series(1, 10) as t(x) stand for?
Date: 2017-11-09 02:55:16
Message-ID: CAKFQuwb2sYzkP8YDuw=7QyQYm5165XtPAR8Wpm_mDKJpmcH14g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Wednesday, November 8, 2017, john snow <ofbizfanster(at)gmail(dot)com> wrote:

> is
> select x from generate_series(1, 10) as t(x);
> different from
> select x from generate_series(1, 10) as x;
>
> both statements seem to produce the same result in pgAdmin4 (i'm using
> postresql version 10)
>
>
Not sure about the pgAdmin part but t(x) means that you are aliasing the
table result of the generate_series call to the name "t" and that
tables' first (and in this case only) column is aliased to the name "x".
The x in the select is then that first column. In the "as x" variant all
you've done is alias the table to the name "x" and the "x" in the select
refers to the table. Not able to confirm right now but the first result
should yield a column of type bigint while the second should a composite
whose only column is a bigint and whose name is "generate_series". There
may be something special for "SETOF type" results but if your function is
"returns table(...)" the distinction definitely matters.

David J.

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Tom Lane 2017-11-09 03:56:19 Re: what does t(x) in select x from generate_series(1, 10) as t(x) stand for?
Previous Message john snow 2017-11-09 02:20:21 what does t(x) in select x from generate_series(1, 10) as t(x) stand for?