Fix for removal of temp tables if last transaction was aborted.
This commit is contained in:
parent
d20abcd8c5
commit
954e466c27
@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.106 1999/06/04 21:14:46 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.107 1999/07/02 18:09:27 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
*
|
||||
@ -1483,8 +1483,8 @@ DoBackend(Port *port)
|
||||
* Let's clean up ourselves as the postmaster child
|
||||
*/
|
||||
|
||||
on_exit_reset(); /* we don't want the postmaster's
|
||||
* proc_exit() handlers */
|
||||
/* We don't want the postmaster's proc_exit() handlers */
|
||||
on_exit_reset();
|
||||
|
||||
/* ----------------
|
||||
* register signal handlers.
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.118 1999/05/29 10:25:30 vadim Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.119 1999/07/02 18:09:27 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* this is the "main" module of the postgres backend and
|
||||
@ -1483,17 +1483,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
|
||||
puts("\treset_client_encoding() done.");
|
||||
#endif
|
||||
|
||||
/* ----------------
|
||||
* if stable main memory is assumed (-S(old) flag is set), it is necessary
|
||||
* to flush all dirty shared buffers before exit
|
||||
* plai 8/7/90
|
||||
* this used to be done further down, causing an additional entry in
|
||||
* the shmem exit list for every error :-( ... tgl 10/1/98
|
||||
* ----------------
|
||||
*/
|
||||
if (!TransactionFlushEnabled())
|
||||
on_shmem_exit(FlushBufferPool, NULL);
|
||||
|
||||
on_shmem_exit(remove_all_temp_relations, NULL);
|
||||
|
||||
/* ----------------
|
||||
@ -1536,7 +1525,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[])
|
||||
if (!IsUnderPostmaster)
|
||||
{
|
||||
puts("\nPOSTGRES backend interactive interface ");
|
||||
puts("$Revision: 1.118 $ $Date: 1999/05/29 10:25:30 $\n");
|
||||
puts("$Revision: 1.119 $ $Date: 1999/07/02 18:09:27 $\n");
|
||||
}
|
||||
|
||||
/* ----------------
|
||||
|
6
src/backend/utils/cache/temprel.c
vendored
6
src/backend/utils/cache/temprel.c
vendored
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.4 1999/05/25 22:42:16 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/temprel.c,v 1.5 1999/07/02 18:09:28 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -30,6 +30,7 @@
|
||||
#include "nodes/pg_list.h"
|
||||
#include "utils/mcxt.h"
|
||||
#include "utils/temprel.h"
|
||||
#include "access/xact.h"
|
||||
#include "access/htup.h"
|
||||
#include "access/heapam.h"
|
||||
#include "catalog/heap.h"
|
||||
@ -79,6 +80,8 @@ remove_all_temp_relations(void)
|
||||
List *l,
|
||||
*next;
|
||||
|
||||
StartTransactionCommand();
|
||||
|
||||
l = temp_rels;
|
||||
while (l != NIL)
|
||||
{
|
||||
@ -102,6 +105,7 @@ remove_all_temp_relations(void)
|
||||
|
||||
l = next;
|
||||
}
|
||||
CommitTransactionCommand();
|
||||
}
|
||||
|
||||
/* we don't have the relname for indexes, so we just pass the oid */
|
||||
|
Loading…
x
Reference in New Issue
Block a user