diff options
author | Bruce Momjian | 2006-04-25 14:11:59 +0000 |
---|---|---|
committer | Bruce Momjian | 2006-04-25 14:11:59 +0000 |
commit | 608104f52c66501f39dfc5734732b9321e712e23 (patch) | |
tree | 151591d4caaa064419b99f2532c8b1bd48477976 | |
parent | ea70913beee5ea9e7d06ccc2b90c96e93f0228a5 (diff) |
Back out RESET CONNECTION until there is more discussion.
-rw-r--r-- | doc/src/sgml/ref/reset.sgml | 17 | ||||
-rw-r--r-- | src/backend/catalog/namespace.c | 3 | ||||
-rw-r--r-- | src/backend/commands/async.c | 3 | ||||
-rw-r--r-- | src/backend/commands/prepare.c | 25 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 6 | ||||
-rw-r--r-- | src/backend/utils/misc/guc.c | 31 | ||||
-rw-r--r-- | src/backend/utils/mmgr/portalmem.c | 27 | ||||
-rw-r--r-- | src/include/catalog/namespace.h | 2 | ||||
-rw-r--r-- | src/include/commands/async.h | 1 | ||||
-rw-r--r-- | src/include/commands/prepare.h | 1 | ||||
-rw-r--r-- | src/include/utils/portal.h | 1 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/preproc.y | 2 |
12 files changed, 7 insertions, 112 deletions
diff --git a/doc/src/sgml/ref/reset.sgml b/doc/src/sgml/ref/reset.sgml index 63a54a8402..18d62687a2 100644 --- a/doc/src/sgml/ref/reset.sgml +++ b/doc/src/sgml/ref/reset.sgml @@ -11,8 +11,7 @@ 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"> @@ -23,7 +22,6 @@ PostgreSQL documentation <synopsis> RESET <replaceable class="PARAMETER">name</replaceable> RESET ALL -RESET CONNECTION </synopsis> </refsynopsisdiv> @@ -81,20 +79,7 @@ SET <replaceable class="parameter">parameter</replaceable> TO DEFAULT </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> diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index 88d99712b6..20bfd532bf 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -134,6 +134,7 @@ char *namespace_search_path = NULL; /* 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); @@ -1728,7 +1729,7 @@ AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid, * in order to clean out any relations that might have been created by * a crashed backend. */ -void +static void RemoveTempRelations(Oid tempNamespaceId) { ObjectAddress object; diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index c44e922e4d..69cfea6118 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -127,6 +127,7 @@ static bool unlistenExitRegistered = false; 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); @@ -334,7 +335,7 @@ Async_Unlisten(const char *relname) * *-------------------------------------------------------------- */ -void +static void Async_UnlistenAll(void) { Relation lRel; diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index 302b1b79e0..0fbf3ec5b5 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -33,6 +33,7 @@ #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. @@ -547,30 +548,6 @@ DeallocateQuery(DeallocateStmt *stmt) } /* - * 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. diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index bee4b744f7..c292907c21 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -1244,12 +1244,6 @@ VariableResetStmt: n->name = $2; $$ = (Node *) n; } - | RESET CONNECTION - { - VariableResetStmt *n = makeNode(VariableResetStmt); - n->name = "connection"; - $$ = (Node *) n; - } | RESET TIME ZONE { VariableResetStmt *n = makeNode(VariableResetStmt); diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index eb85c8a2f6..34a204b174 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -32,7 +32,6 @@ #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" @@ -54,7 +53,6 @@ #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" @@ -63,13 +61,11 @@ #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 @@ -4653,33 +4649,8 @@ GetPGVariableResultDesc(const char *name) 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, diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index b35a5162fc..493ae53a6d 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -402,9 +402,6 @@ DropDependentPortals(MemoryContext queryContext) HASH_SEQ_STATUS status; PortalHashEnt *hentry; - if (PortalHashTable == NULL) - return; - hash_seq_init(&status, PortalHashTable); while ((hentry = (PortalHashEnt *) hash_seq_search(&status)) != NULL) @@ -416,30 +413,6 @@ DropDependentPortals(MemoryContext queryContext) } } -/* - * 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. diff --git a/src/include/catalog/namespace.h b/src/include/catalog/namespace.h index a52479006e..ad31cb507d 100644 --- a/src/include/catalog/namespace.h +++ b/src/include/catalog/namespace.h @@ -74,8 +74,6 @@ extern void PopSpecialNamespace(Oid namespaceId); 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); diff --git a/src/include/commands/async.h b/src/include/commands/async.h index 8d472660a1..e9961ec4c1 100644 --- a/src/include/commands/async.h +++ b/src/include/commands/async.h @@ -19,7 +19,6 @@ extern bool Trace_notify; 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); diff --git a/src/include/commands/prepare.h b/src/include/commands/prepare.h index e5338a995c..d834f0c249 100644 --- a/src/include/commands/prepare.h +++ b/src/include/commands/prepare.h @@ -62,7 +62,6 @@ extern void StorePreparedStatement(const char *stmt_name, 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); diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h index 7644c4d778..1212cb7c8b 100644 --- a/src/include/utils/portal.h +++ b/src/include/utils/portal.h @@ -200,7 +200,6 @@ extern void AtSubAbort_Portals(SubTransactionId mySubid, 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); diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 576e0e0da8..e5ad459c9a 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1196,8 +1196,6 @@ VariableResetStmt: RESET var_name { $$ = 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"); } ; |