From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | j6m(at)cvni(dot)net, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Bug #857: [7.3] Attribute oid not found in a temporary table |
Date: | 2002-12-26 03:58:41 |
Message-ID: | 200212260358.gBQ3wfK11406@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
This is a known problem with 7.3.X. It doesn't create an oid column as
part of SELECT INTO ....
We have a TODO item:
* Fix SELECT ... INTO and CREATE TABLE AS to have appopriate OID column
so this will be fixed, hopefully in 7.4. We couldn't fix it in 7.3.X
without causing more serious problems. If you specify the oid column as
part of the SELECT INTO, it will take the oid from the original table
and put it in your new table. Does that help you?
---------------------------------------------------------------------------
pgsql-bugs(at)postgresql(dot)org wrote:
> jmm (j6m(at)cvni(dot)net) reports a bug with a severity of 2
> The lower the number the more severe it is.
>
> Short Description
> [7.3] Attribute oid not found in a temporary table creted by a SELECT
>
> Long Description
> I ran on a problem today while running a SQL script that used
> to perfectly run from 7.0.2 to 7.2.3.
>
> (I dont know if it is exactly a bug or an intended design change as
> searchable online 7.3 docs are still not yet available. I browsed
> through the locally installed without success).
>
> In this SQL script, I create a temporary table with two columns from
> another table where I poured all data collected from various sources.
> My aim is to elmiminate doublons (id is a unique identifier in the
> finally resulting table). Therefore I take the max oid for each
> distinct id from the original table and do deletion for all rows
> with same id and oids lower than max oid. I do this on a temporary
> table processing it by chunks of 1000 ids for processing time reasons.
>
> It is quite simplistic way of doing it, but it used to work and does
> not any longer with 7.3. Temporary tables do have select table oids
> when explicitely created insted of using SELECT INTO.
>
> Sample Code
> toto=# create table toto (f1 integer, f2 integer) ;
> CREATE TABLE
> toto=# insert into toto values (1,2);
> INSERT 69204710 1
> toto=# insert into toto values (3,4);
> INSERT 69204711 1
> toto=# select * into temp table titi from toto ;
> SELECT
> toto=# select oid from titi ;
> ERROR: Attribute "oid" not found
>
> toto=# create temp table titi (f1 integer, f2 integer) ;
> ERROR: Relation 'titi' already exists
> toto=# create temp table tutu (f1 integer, f2 integer) ;
> CREATE TABLE
> toto=# insert into tutu select * from toto ;
> INSERT 0 2
> toto=# select oid from tutu ;
> oid
> ----------
> 69204716
> 69204717
> (2 rows)
>
>
> No file was uploaded with this report
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | JMM Moi-Meme Maitre du Monde | 2002-12-26 08:02:08 | Re: Bug #857: [7.3] Attribute oid not found in a temporary table |
Previous Message | pgsql-bugs | 2002-12-25 21:25:48 | Bug #857: [7.3] Attribute oid not found in a temporary table creted by a SELECT |