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
|
* 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
|
* NOTES
|
||||||
*
|
*
|
||||||
@ -1483,8 +1483,8 @@ DoBackend(Port *port)
|
|||||||
* Let's clean up ourselves as the postmaster child
|
* Let's clean up ourselves as the postmaster child
|
||||||
*/
|
*/
|
||||||
|
|
||||||
on_exit_reset(); /* we don't want the postmaster's
|
/* We don't want the postmaster's proc_exit() handlers */
|
||||||
* proc_exit() handlers */
|
on_exit_reset();
|
||||||
|
|
||||||
/* ----------------
|
/* ----------------
|
||||||
* register signal handlers.
|
* register signal handlers.
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* NOTES
|
||||||
* this is the "main" module of the postgres backend and
|
* 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.");
|
puts("\treset_client_encoding() done.");
|
||||||
#endif
|
#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);
|
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)
|
if (!IsUnderPostmaster)
|
||||||
{
|
{
|
||||||
puts("\nPOSTGRES backend interactive interface ");
|
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
|
* 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 "nodes/pg_list.h"
|
||||||
#include "utils/mcxt.h"
|
#include "utils/mcxt.h"
|
||||||
#include "utils/temprel.h"
|
#include "utils/temprel.h"
|
||||||
|
#include "access/xact.h"
|
||||||
#include "access/htup.h"
|
#include "access/htup.h"
|
||||||
#include "access/heapam.h"
|
#include "access/heapam.h"
|
||||||
#include "catalog/heap.h"
|
#include "catalog/heap.h"
|
||||||
@ -79,6 +80,8 @@ remove_all_temp_relations(void)
|
|||||||
List *l,
|
List *l,
|
||||||
*next;
|
*next;
|
||||||
|
|
||||||
|
StartTransactionCommand();
|
||||||
|
|
||||||
l = temp_rels;
|
l = temp_rels;
|
||||||
while (l != NIL)
|
while (l != NIL)
|
||||||
{
|
{
|
||||||
@ -102,6 +105,7 @@ remove_all_temp_relations(void)
|
|||||||
|
|
||||||
l = next;
|
l = next;
|
||||||
}
|
}
|
||||||
|
CommitTransactionCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we don't have the relname for indexes, so we just pass the oid */
|
/* we don't have the relname for indexes, so we just pass the oid */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user