<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/reset.sgml,v 1.27 2006/04/25 14:09:06 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/reset.sgml,v 1.28 2006/04/25 14:11:51 momjian Exp $
PostgreSQL documentation
-->
<refnamediv>
<refname>RESET</refname>
- <refpurpose>restore the value of a run-time parameter to the default value,
- or reset all aspects of a session</refpurpose>
+ <refpurpose>restore the value of a run-time parameter to the default value</refpurpose>
</refnamediv>
<indexterm zone="sql-reset">
<synopsis>
RESET <replaceable class="PARAMETER">name</replaceable>
RESET ALL
-RESET CONNECTION
</synopsis>
</refsynopsisdiv>
</para>
</listitem>
</varlistentry>
-
- <varlistentry>
- <term><literal>CONNECTION</literal></term>
- <listitem>
- <para>
- Reset the all aspects of a session, including runtime parameters,
- transaction status, temporary tables, <literal>WITH HOLD</literal>
- cursors, prepared statements, and <command>LISTEN</command>
- registrations.
- </para>
- </listitem>
- </varlistentry>
</variablelist>
-
</refsect1>
<refsect1>
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.83 2006/04/25 14:09:08 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.84 2006/04/25 14:11:53 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/* Local functions */
static void recomputeNamespacePath(void);
static void InitTempTableNamespace(void);
+static void RemoveTempRelations(Oid tempNamespaceId);
static void RemoveTempRelationsCallback(int code, Datum arg);
static void NamespaceCallback(Datum arg, Oid relid);
* in order to clean out any relations that might have been created by
* a crashed backend.
*/
-void
+static void
RemoveTempRelations(Oid tempNamespaceId)
{
ObjectAddress object;
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.130 2006/04/25 14:09:10 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.131 2006/04/25 14:11:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
bool Trace_notify = false;
+static void Async_UnlistenAll(void);
static void Async_UnlistenOnExit(int code, Datum arg);
static void ProcessIncomingNotify(void);
static void NotifyMyFrontEnd(char *relname, int32 listenerPID);
*
*--------------------------------------------------------------
*/
-void
+static void
Async_UnlistenAll(void)
{
Relation lRel;
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.51 2006/04/25 14:09:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.52 2006/04/25 14:11:54 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include "utils/hsearch.h"
#include "utils/memutils.h"
+
/*
* The hash table in which prepared queries are stored. This is
* per-backend: query plans are not shared between backends.
}
/*
- * Remove all prepared plans from the backend.
- */
-void
-DropAllPreparedStatements(void)
-{
- PreparedStatement *prep_statement;
- HASH_SEQ_STATUS status;
-
- if (!prepared_queries)
- return;
-
- hash_seq_init(&status, prepared_queries);
-
- while ((prep_statement = (PreparedStatement *) hash_seq_search(&status)))
- {
- DropDependentPortals(prep_statement->context);
-
- /* Flush the context holding the subsidiary data */
- MemoryContextDelete(prep_statement->context);
- hash_search(prepared_queries, prep_statement->stmt_name, HASH_REMOVE, NULL);
- }
-}
-
-/*
* Internal version of DEALLOCATE
*
* If showError is false, dropping a nonexistent statement is a no-op.
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.541 2006/04/25 14:09:12 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.542 2006/04/25 14:11:55 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
n->name = $2;
$$ = (Node *) n;
}
- | RESET CONNECTION
- {
- VariableResetStmt *n = makeNode(VariableResetStmt);
- n->name = "connection";
- $$ = (Node *) n;
- }
| RESET TIME ZONE
{
VariableResetStmt *n = makeNode(VariableResetStmt);
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.316 2006/04/25 14:09:15 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.317 2006/04/25 14:11:56 momjian Exp $
*
*--------------------------------------------------------------------
*/
#include "catalog/namespace.h"
#include "catalog/pg_type.h"
#include "commands/async.h"
-#include "commands/prepare.h"
#include "commands/variable.h"
#include "commands/vacuum.h"
#include "executor/executor.h"
#include "postmaster/bgwriter.h"
#include "postmaster/syslogger.h"
#include "postmaster/postmaster.h"
-#include "storage/backendid.h"
#include "storage/bufmgr.h"
#include "storage/fd.h"
#include "storage/freespace.h"
#include "tcop/tcopprot.h"
#include "utils/array.h"
#include "utils/builtins.h"
-#include "utils/hsearch.h"
#include "utils/memutils.h"
#include "utils/pg_locale.h"
-#include "utils/portal.h"
-#include "utils/syscache.h"
#include "pgstat.h"
+
#ifndef PG_KRB_SRVTAB
#define PG_KRB_SRVTAB ""
#endif
void
ResetPGVariable(const char *name)
{
- char namespaceName[NAMEDATALEN];
- Oid namespaceId;
-
if (pg_strcasecmp(name, "all") == 0)
- /* resetting all GUC variables */
ResetAllOptions();
- else if (pg_strcasecmp(name, "connection") == 0)
- {
- ResetAllOptions();
-
- /* Clean temp-tables */
- snprintf(namespaceName, sizeof(namespaceName), "pg_temp_%d",
- MyBackendId);
- namespaceId = GetSysCacheOid(NAMESPACENAME,
- CStringGetDatum(namespaceName), 0, 0, 0);
- RemoveTempRelations(namespaceId);
-
- DropAllPreparedStatements();
-
- Async_UnlistenAll();
-
- /* Delete cursors, including WITH HOLD */
- PortalHashTableDeleteAll();
-
- if (IsTransactionBlock())
- UserAbortTransactionBlock();
- }
else
set_config_option(name,
NULL,
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.86 2006/04/25 14:09:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.87 2006/04/25 14:11:58 momjian Exp $
*
*-------------------------------------------------------------------------
*/
HASH_SEQ_STATUS status;
PortalHashEnt *hentry;
- if (PortalHashTable == NULL)
- return;
-
hash_seq_init(&status, PortalHashTable);
while ((hentry = (PortalHashEnt *) hash_seq_search(&status)) != NULL)
}
}
-/*
- * Delete all WITH HOLD cursors, used by RESET CONNECTION
- */
-void
-PortalHashTableDeleteAll(void)
-{
- HASH_SEQ_STATUS status;
- PortalHashEnt *hentry;
-
- if (PortalHashTable == NULL)
- return;
-
- hash_seq_init(&status, PortalHashTable);
-
- while ((hentry = (PortalHashEnt *) hash_seq_search(&status)) != NULL)
- {
- Portal portal = hentry->portal;
-
- if ((portal->cursorOptions & CURSOR_OPT_HOLD) &&
- portal->status != PORTAL_ACTIVE)
- PortalDrop(portal, false);
- }
-}
-
/*
* Pre-commit processing for portals.
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.40 2006/04/25 14:09:16 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.41 2006/04/25 14:11:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern Oid FindConversionByName(List *conname);
extern Oid FindDefaultConversionProc(int4 for_encoding, int4 to_encoding);
-extern void RemoveTempRelations(Oid tempNamespaceId);
-
/* initialization & transaction cleanup code */
extern void InitializeSearchPath(void);
extern void AtEOXact_Namespace(bool isCommit);
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/async.h,v 1.32 2006/04/25 14:09:17 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/async.h,v 1.33 2006/04/25 14:11:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern void Async_Notify(const char *relname);
extern void Async_Listen(const char *relname);
extern void Async_Unlisten(const char *relname);
-extern void Async_UnlistenAll(void);
/* perform (or cancel) outbound notify processing at transaction commit */
extern void AtCommit_Notify(void);
*
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.19 2006/04/25 14:09:18 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.20 2006/04/25 14:11:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern PreparedStatement *FetchPreparedStatement(const char *stmt_name,
bool throwError);
extern void DropPreparedStatement(const char *stmt_name, bool showError);
-extern void DropAllPreparedStatements(void);
extern List *FetchPreparedStatementParams(const char *stmt_name);
extern TupleDesc FetchPreparedStatementResultDesc(PreparedStatement *stmt);
extern bool PreparedStatementReturnsTuples(PreparedStatement *stmt);
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.60 2006/04/25 14:09:19 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.61 2006/04/25 14:11:59 momjian Exp $
*
*-------------------------------------------------------------------------
*/
extern void AtSubCleanup_Portals(SubTransactionId mySubid);
extern Portal CreatePortal(const char *name, bool allowDup, bool dupSilent);
extern Portal CreateNewPortal(void);
-extern void PortalHashTableDeleteAll(void);
extern void PortalDrop(Portal portal, bool isTopCommit);
extern void DropDependentPortals(MemoryContext queryContext);
extern Portal GetPortalByName(const char *name);
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.322 2006/04/25 14:09:21 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.323 2006/04/25 14:11:59 momjian Exp $ */
/* Copyright comment */
%{
{ $$ = make_str("reset transaction isolation level"); }
| RESET SESSION AUTHORIZATION
{ $$ = make_str("reset session authorization"); }
- | RESET CONNECTION
- { $$ = make_str("reset connection"); }
| RESET ALL
{ $$ = make_str("reset all"); }
;