Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: ERROR: relation with OID XXXX does not exist



Thanks, Tom.  I'll look forward to 8.3.

If I understand correctly, TRUNCATE is equivalent to DELETE FROM.  My problem was that I also needed to reset the serial attribute.  My solution was the following

  -- clear and reset counter
  delete from dom1_classid_sorted_temp;
  perform setval('dom1_classid_sorted_temp_class_rank_dom_seq'::regclass,1,false);


Thanks again.

Best,
david

On 8/17/07, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
"David Monarchi" <david(dot)e(dot)monarchi(at)gmail(dot)com> writes:
> I am executing a function which includes the code fragment shown below.  It
> goes through the loop and then fails with the error message
>      ERROR: relation with OID 591161 does not exist

I think the problem is here:

>   -- drop & recreate table for sorting
>   drop table if exists dom1_classid_sorted_temp;
>   create table dom1_classid_sorted_temp (id_dom integer, class_rank_dom
> serial) without oids;

plpgsql tries to cache plans for its queries, and dropping a table
invalidates any already-made plans for that table.  Can you TRUNCATE
the table instead?

PG 8.3 will be smarter about this sort of thing.

                        regards, tom lane



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group