Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
6378fdd9
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6378fdd9
编写于
4月 25, 2006
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add RESET CONNECTION, to reset all aspects of a session.
Hans-J?rgen Sch?nig
上级
11fbdf2f
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
128 addition
and
20 deletion
+128
-20
doc/src/sgml/ref/reset.sgml
doc/src/sgml/ref/reset.sgml
+21
-3
src/backend/catalog/namespace.c
src/backend/catalog/namespace.c
+2
-3
src/backend/commands/async.c
src/backend/commands/async.c
+2
-3
src/backend/commands/prepare.c
src/backend/commands/prepare.c
+25
-2
src/backend/parser/gram.y
src/backend/parser/gram.y
+7
-1
src/backend/utils/misc/guc.c
src/backend/utils/misc/guc.c
+31
-2
src/backend/utils/mmgr/portalmem.c
src/backend/utils/mmgr/portalmem.c
+28
-1
src/include/catalog/namespace.h
src/include/catalog/namespace.h
+3
-1
src/include/commands/async.h
src/include/commands/async.h
+2
-1
src/include/commands/prepare.h
src/include/commands/prepare.h
+2
-1
src/include/utils/portal.h
src/include/utils/portal.h
+2
-1
src/interfaces/ecpg/preproc/preproc.y
src/interfaces/ecpg/preproc/preproc.y
+3
-1
未找到文件。
doc/src/sgml/ref/reset.sgml
浏览文件 @
6378fdd9
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/reset.sgml,v 1.2
6 2003/12/14 00:15:03 neilc
Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/reset.sgml,v 1.2
7 2006/04/25 14:09:06 momjian
Exp $
PostgreSQL documentation
-->
...
...
@@ -11,7 +11,8 @@ PostgreSQL documentation
<refnamediv>
<refname>RESET</refname>
<refpurpose>restore the value of a run-time parameter to the default value</refpurpose>
<refpurpose>restore the value of a run-time parameter to the default value,
or reset all aspects of a session</refpurpose>
</refnamediv>
<indexterm zone="sql-reset">
...
...
@@ -22,6 +23,7 @@ PostgreSQL documentation
<synopsis>
RESET <replaceable class="PARAMETER">name</replaceable>
RESET ALL
RESET CONNECTION
</synopsis>
</refsynopsisdiv>
...
...
@@ -50,8 +52,11 @@ SET <replaceable class="parameter">parameter</replaceable> TO DEFAULT
<para>
See the <command>SET</> reference page for details on the
transaction behavior of <command>RESET</>.
transaction behavior of <command>RESET</>. <command>RESET
CONNECTION</command> can be used to reset all aspects of
a session, not just parameter values.
</para>
</refsect1>
<refsect1>
...
...
@@ -76,7 +81,20 @@ 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>
...
...
src/backend/catalog/namespace.c
浏览文件 @
6378fdd9
...
...
@@ -13,7 +13,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.8
2 2006/03/05 15:58:22
momjian Exp $
* $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.8
3 2006/04/25 14:09:08
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -134,7 +134,6 @@ 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
);
...
...
@@ -1729,7 +1728,7 @@ AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid,
* in order to clean out any relations that might have been created by
* a crashed backend.
*/
static
void
void
RemoveTempRelations
(
Oid
tempNamespaceId
)
{
ObjectAddress
object
;
...
...
src/backend/commands/async.c
浏览文件 @
6378fdd9
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.1
29 2006/03/05 15:58:23
momjian Exp $
* $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.1
30 2006/04/25 14:09:10
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -127,7 +127,6 @@ 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
);
...
...
@@ -335,7 +334,7 @@ Async_Unlisten(const char *relname)
*
*--------------------------------------------------------------
*/
static
void
void
Async_UnlistenAll
(
void
)
{
Relation
lRel
;
...
...
src/backend/commands/prepare.c
浏览文件 @
6378fdd9
...
...
@@ -10,7 +10,7 @@
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.5
0 2006/04/22 01:25:58 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/commands/prepare.c,v 1.5
1 2006/04/25 14:09:11 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -33,7 +33,6 @@
#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,6 +546,30 @@ DeallocateQuery(DeallocateStmt *stmt)
DropPreparedStatement
(
stmt
->
name
,
true
);
}
/*
* 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
*
...
...
src/backend/parser/gram.y
浏览文件 @
6378fdd9
...
...
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.54
0 2006/04/24 22:59:19
momjian Exp $
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.54
1 2006/04/25 14:09:12
momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
...
...
@@ -1244,6 +1244,12 @@ VariableResetStmt:
n->name = $2;
$$ = (Node *) n;
}
| RESET CONNECTION
{
VariableResetStmt *n = makeNode(VariableResetStmt);
n->name = "connection";
$$ = (Node *) n;
}
| RESET TIME ZONE
{
VariableResetStmt *n = makeNode(VariableResetStmt);
...
...
src/backend/utils/misc/guc.c
浏览文件 @
6378fdd9
...
...
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <peter_e@gmx.net>.
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.31
5 2006/04/10 21:53:38 tgl
Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.31
6 2006/04/25 14:09:15 momjian
Exp $
*
*--------------------------------------------------------------------
*/
...
...
@@ -32,6 +32,7 @@
#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"
...
...
@@ -53,6 +54,7 @@
#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"
...
...
@@ -61,11 +63,13 @@
#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
...
...
@@ -4649,8 +4653,33 @@ 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
,
...
...
src/backend/utils/mmgr/portalmem.c
浏览文件 @
6378fdd9
...
...
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.8
5 2006/03/05 15:58:49
momjian Exp $
* $PostgreSQL: pgsql/src/backend/utils/mmgr/portalmem.c,v 1.8
6 2006/04/25 14:09:16
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -402,6 +402,9 @@ 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
)
...
...
@@ -413,6 +416,30 @@ 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.
...
...
src/include/catalog/namespace.h
浏览文件 @
6378fdd9
...
...
@@ -7,7 +7,7 @@
* 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.
39 2006/03/05 15:58:54
momjian Exp $
* $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.
40 2006/04/25 14:09:16
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -74,6 +74,8 @@ 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
);
...
...
src/include/commands/async.h
浏览文件 @
6378fdd9
...
...
@@ -6,7 +6,7 @@
* 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.3
1 2006/03/05 15:58:55
momjian Exp $
* $PostgreSQL: pgsql/src/include/commands/async.h,v 1.3
2 2006/04/25 14:09:17
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -19,6 +19,7 @@ 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
);
...
...
src/include/commands/prepare.h
浏览文件 @
6378fdd9
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 2002-2006, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.1
8 2006/03/05 15:58:55
momjian Exp $
* $PostgreSQL: pgsql/src/include/commands/prepare.h,v 1.1
9 2006/04/25 14:09:18
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -62,6 +62,7 @@ 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
);
...
...
src/include/utils/portal.h
浏览文件 @
6378fdd9
...
...
@@ -39,7 +39,7 @@
* 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.
59 2006/03/05 15:59:07
momjian Exp $
* $PostgreSQL: pgsql/src/include/utils/portal.h,v 1.
60 2006/04/25 14:09:19
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -200,6 +200,7 @@ 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
);
...
...
src/interfaces/ecpg/preproc/preproc.y
浏览文件 @
6378fdd9
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.32
1 2006/03/07 01:00:19 tgl
Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.32
2 2006/04/25 14:09:21 momjian
Exp $ */
/* Copyright comment */
%{
...
...
@@ -1196,6 +1196,8 @@ 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"); }
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录