Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
267ef0a6
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,发现更多精彩内容 >>
提交
267ef0a6
编写于
10月 03, 1996
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow vacuum to run for only one table. Fixes allocation bug.
上级
dbc268ca
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
25 addition
and
15 deletion
+25
-15
src/backend/commands/vacuum.c
src/backend/commands/vacuum.c
+25
-15
未找到文件。
src/backend/commands/vacuum.c
浏览文件 @
267ef0a6
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.
1.1.1 1996/07/09 06:21:22 scrappy
Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.
2 1996/10/03 04:19:29 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -44,10 +44,10 @@
bool
VacuumRunning
=
false
;
/* non-export function prototypes */
static
void
_vc_init
(
char
*
vacrel
);
static
void
_vc_shutdown
(
char
*
vacrel
);
static
void
_vc_vacuum
(
char
*
vacrel
);
static
VRelList
_vc_getrels
(
Portal
p
,
char
*
vacrel
);
static
void
_vc_init
(
void
);
static
void
_vc_shutdown
(
void
);
static
void
_vc_vacuum
(
NameData
*
VacRelP
);
static
VRelList
_vc_getrels
(
Portal
p
,
NameData
*
VacRelP
);
static
void
_vc_vacone
(
Portal
p
,
VRelList
curvrl
);
static
void
_vc_vacheap
(
Portal
p
,
VRelList
curvrl
,
Relation
onerel
);
static
void
_vc_vacindices
(
VRelList
curvrl
,
Relation
onerel
);
...
...
@@ -65,14 +65,24 @@ static bool _vc_isarchrel(char *rname);
void
vacuum
(
char
*
vacrel
)
{
NameData
VacRel
;
/* vacrel gets de-allocated on transaction commit */
/* initialize vacuum cleaner */
_vc_init
(
vacrel
);
_vc_init
();
/* vacuum the database */
_vc_vacuum
(
vacrel
);
if
(
vacrel
)
{
strcpy
(
VacRel
.
data
,
vacrel
);
_vc_vacuum
(
&
VacRel
);
}
else
_vc_vacuum
(
NULL
);
/* clean up */
_vc_shutdown
(
vacrel
);
_vc_shutdown
();
}
/*
...
...
@@ -93,7 +103,7 @@ vacuum(char *vacrel)
* PostgresMain().
*/
static
void
_vc_init
(
char
*
vacrel
)
_vc_init
()
{
int
fd
;
...
...
@@ -116,7 +126,7 @@ _vc_init(char *vacrel)
}
static
void
_vc_shutdown
(
char
*
vacrel
)
_vc_shutdown
()
{
/* on entry, not in a transaction */
if
(
unlink
(
"pg_vlock"
)
<
0
)
...
...
@@ -147,7 +157,7 @@ vc_abort()
* locks at one time.
*/
static
void
_vc_vacuum
(
char
*
vacrel
)
_vc_vacuum
(
NameData
*
VacRelP
)
{
VRelList
vrl
,
cur
;
char
*
pname
;
...
...
@@ -166,7 +176,7 @@ _vc_vacuum(char *vacrel)
pfree
(
pname
);
/* get list of relations */
vrl
=
_vc_getrels
(
p
,
vacrel
);
vrl
=
_vc_getrels
(
p
,
VacRelP
);
/* vacuum each heap relation */
for
(
cur
=
vrl
;
cur
!=
(
VRelList
)
NULL
;
cur
=
cur
->
vrl_next
)
...
...
@@ -178,7 +188,7 @@ _vc_vacuum(char *vacrel)
}
static
VRelList
_vc_getrels
(
Portal
p
,
char
*
vacrel
)
_vc_getrels
(
Portal
p
,
NameData
*
VacRelP
)
{
Relation
pgclass
;
TupleDesc
pgcdesc
;
...
...
@@ -196,10 +206,10 @@ _vc_getrels(Portal p, char *vacrel)
StartTransactionCommand
();
if
(
vacrel
)
{
if
(
VacRelP
->
data
)
{
ScanKeyEntryInitialize
(
&
pgckey
,
0x0
,
Anum_pg_class_relname
,
NameEqualRegProcedure
,
PointerGetDatum
(
vacrel
));
PointerGetDatum
(
VacRelP
->
data
));
}
else
{
ScanKeyEntryInitialize
(
&
pgckey
,
0x0
,
Anum_pg_class_relkind
,
CharacterEqualRegProcedure
,
CharGetDatum
(
'r'
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录