Re: ERROR: column "gid" specified more than once

From: "ktm(at)rice(dot)edu" <ktm(at)rice(dot)edu>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Jason Aleski <jason(dot)aleski(at)gmail(dot)com>, "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: ERROR: column "gid" specified more than once
Date: 2015-05-12 17:02:01
Message-ID: 20150512170201.GI31129@aart.rice.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Tue, May 12, 2015 at 09:19:23AM -0700, David G. Johnston wrote:
> On Tue, May 12, 2015 at 9:09 AM, David G. Johnston <
> david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>
> > On Tue, May 12, 2015 at 8:53 AM, ktm(at)rice(dot)edu <ktm(at)rice(dot)edu> wrote:
> >
> >> On Tue, May 12, 2015 at 08:49:53AM -0700, David G. Johnston wrote:
> >> > On Tuesday, May 12, 2015, Jason Aleski <jason(dot)aleski(at)gmail(dot)com> wrote:
> >> >
> >> > > You probably need to specify your wildcard on both tables.
> >> > >
> >> > > CREATE TABLE "BorujerdDistCent" as
> >> > > SELECT
> >> > > "Borujerd".*, "Lorestan".*,
> >> > > t_distance(st_centroid("Lorestan".geometry),"Borujerd".geometry)/1000
> >> > > as DistFromCntroid
> >> > > FROM "Borujerd", "Lorestan"
> >> > >
> >> > >
> >> > My bad on the assumed -bugs list from before...
> >> >
> >> > Anyway, how is this suugestion different from simply saying "*" without
> >> a
> >> > relation specification - which the OP did and it didn't work.
> >> >
> >> > David J.
> >>
> >> Because the column names are differentiated by their prefixes then:
> >>
> >> Borujerd.gid, Lorestan.gid
> >>
> >> No conflict.
> >>
> >>
> > I suggest you test that theory out.
> >
> >
> ​The reason why this advice is wrong is because the error is coming from
> the CREATE TABLE AS portion and not the select query.
>
> ​Within the following:​
>
> ​CREATE TABLE testtable AS
> SELECT t1.*, t2.*
> FROM ( VALUES (1::int) ) t1 (s)
> CROSS JOIN ( VALUES (2::int) ) t2 (s)​
>
> executing just the SELECT portion will indeed output a two-column result
> with both columns named "s".
>
> However, it is not possible to create a table with two columns having the
> same name and so using the exact same query will fail with the duplicate
> name error.
>
> The only way to solve the problem is to alias the output columns or choose
> not to output one of the columns.
>
> SELECT t1.s AS s_t1, t2.s AS s_t2 FROM [...]
> or
> SELECT t1.* FROM [...]
>
> As shown above column names in the result do not carry over their source
> identifier - just the name itself.
>
> David J.

Yes. You are correct. Sorry for the noise.

Ken

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Tim Dudgeon 2015-05-19 09:48:40 Re: generating json without nulls
Previous Message David G. Johnston 2015-05-12 16:19:23 Re: ERROR: column "gid" specified more than once