Re: [BUGS] General Bug Report: TEMP TABLES becomes permanent CATALOG TABLES

Lists: Postg토토SQL : Postg토토SQL 메일 링리스트 : 1999-07-03 이후 PGSQL-BUGS 15:43
From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
Cc: Ricardo Coelho <rcoelho(at)px(dot)com(dot)br>, pgsql-bugs(at)postgreSQL(dot)org
Subject: Re: [BUGS] General Bug Report: TEMP TABLES becomes permanent CATALOG TABLES
Date: 1999-07-03 15:28:52
Message-ID: 15927.931015732@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> I think I may know the cause. The at_exit removal of the temp tables is
> taking place in a failed transaction. Let me test that idea tomorrow.

Take a look at the code for cleaning up the listen/notify table
(Async_UnlistenOnExit() in backend/commands/async.c). It used to
have problems with cleaning up when the last transaction executed
by the backend had failed. I fixed that by aborting any old transaction
and starting/committing a new one. I believe that any at_exit,
on_shmem_exit, etc routine that tries to perform database changes will
need to be coded similarly.

regards, tom lane


From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Ricardo Coelho <rcoelho(at)px(dot)com(dot)br>, pgsql-bugs(at)postgreSQL(dot)org
Subject: Re: [BUGS] General Bug Report: TEMP TABLES becomes permanent CATALOG TABLES
Date: 1999-07-03 15:43:38
Message-ID: 199907031543.LAA10040@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg토토SQL : Postg토토SQL 메일 링리스트 : 1999-07-03 이후 PGSQL-BUGS 15:43

> Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> > I think I may know the cause. The at_exit removal of the temp tables is
> > taking place in a failed transaction. Let me test that idea tomorrow.
>
> Take a look at the code for cleaning up the listen/notify table
> (Async_UnlistenOnExit() in backend/commands/async.c). It used to
> have problems with cleaning up when the last transaction executed
> by the backend had failed. I fixed that by aborting any old transaction
> and starting/committing a new one. I believe that any at_exit,
> on_shmem_exit, etc routine that tries to perform database changes will
> need to be coded similarly.

Thanks. I have added AbortOutOfAnyTransaction() to the fix. I did not
have that function call.

--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026