Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
d950c197
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,发现更多精彩内容 >>
提交
d950c197
编写于
5月 29, 2000
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more cleanup
上级
ac4de0cc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
20 deletion
+20
-20
src/backend/commands/vacuum.c
src/backend/commands/vacuum.c
+18
-18
src/include/commands/vacuum.h
src/include/commands/vacuum.h
+2
-2
未找到文件。
src/backend/commands/vacuum.c
浏览文件 @
d950c197
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.15
4 2000/05/29 16:06:37
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.15
5 2000/05/29 16:21:04
momjian Exp $
*
*-------------------------------------------------------------------------
...
...
@@ -74,10 +74,10 @@ static TransactionId XmaxRecent;
/* non-export function prototypes */
static
void
vacuum_init
(
void
);
static
void
vacuum_shutdown
(
void
);
static
void
vac_vacuum
(
NameData
*
VacRelP
,
bool
analyze
,
List
*
va_cols
);
static
void
vac_vacuum
(
NameData
*
VacRelP
,
bool
analyze
,
List
*
anal_cols2
);
static
VRelList
getrels
(
NameData
*
VacRelP
);
static
void
vacuum_rel
(
Oid
relid
,
bool
analyze
,
List
*
va_cols
);
static
void
analyze_rel
(
Oid
relid
,
List
*
va_cols
);
static
void
vacuum_rel
(
Oid
relid
,
bool
analyze
);
static
void
analyze_rel
(
Oid
relid
,
List
*
anal_cols2
);
static
void
scan_heap
(
VRelStats
*
vacrelstats
,
Relation
onerel
,
VPageList
vacuum_pages
,
VPageList
fraged_pages
);
static
void
repair_frag
(
VRelStats
*
vacrelstats
,
Relation
onerel
,
VPageList
vacuum_pages
,
VPageList
fraged_pages
,
int
nindices
,
Relation
*
Irel
);
static
void
vacuum_heap
(
VRelStats
*
vacrelstats
,
Relation
onerel
,
VPageList
vpl
);
...
...
@@ -105,16 +105,16 @@ static char *show_rusage(struct rusage * ru0);
/* CommonSpecialPortal function at the bottom */
void
vacuum
(
char
*
vacrel
,
bool
verbose
,
bool
analyze
,
List
*
va_spec
)
vacuum
(
char
*
vacrel
,
bool
verbose
,
bool
analyze
,
List
*
anal_cols
)
{
NameData
VacRel
;
Name
VacRelName
;
PortalVariableMemory
pmem
;
MemoryContext
old
;
List
*
le
;
List
*
va_cols
=
NIL
;
List
*
anal_cols2
=
NIL
;
if
(
va_spec
!=
NIL
&&
!
analyze
)
if
(
anal_cols
!=
NIL
&&
!
analyze
)
elog
(
ERROR
,
"Can't vacuum columns, only tables. You can 'vacuum analyze' columns."
);
/*
...
...
@@ -149,11 +149,11 @@ vacuum(char *vacrel, bool verbose, bool analyze, List *va_spec)
/* must also copy the column list, if any, to safe storage */
pmem
=
CommonSpecialPortalGetMemory
();
old
=
MemoryContextSwitchTo
((
MemoryContext
)
pmem
);
foreach
(
le
,
va_spec
)
foreach
(
le
,
anal_cols
)
{
char
*
col
=
(
char
*
)
lfirst
(
le
);
va_cols
=
lappend
(
va_cols
,
pstrdup
(
col
));
anal_cols2
=
lappend
(
anal_cols2
,
pstrdup
(
col
));
}
MemoryContextSwitchTo
(
old
);
...
...
@@ -168,7 +168,7 @@ vacuum(char *vacrel, bool verbose, bool analyze, List *va_spec)
vacuum_init
();
/* vacuum the database */
vac_vacuum
(
VacRelName
,
analyze
,
va_cols
);
vac_vacuum
(
VacRelName
,
analyze
,
anal_cols2
);
/* clean up */
vacuum_shutdown
();
...
...
@@ -234,7 +234,7 @@ vacuum_shutdown()
* locks at one time.
*/
static
void
vac_vacuum
(
NameData
*
VacRelP
,
bool
analyze
,
List
*
va_cols
)
vac_vacuum
(
NameData
*
VacRelP
,
bool
analyze
,
List
*
anal_cols2
)
{
VRelList
vrl
,
cur
;
...
...
@@ -244,12 +244,12 @@ vac_vacuum(NameData *VacRelP, bool analyze, List *va_cols)
/* vacuum each heap relation */
for
(
cur
=
vrl
;
cur
!=
(
VRelList
)
NULL
;
cur
=
cur
->
vrl_next
)
vacuum_rel
(
cur
->
vrl_relid
,
analyze
,
va_cols
);
vacuum_rel
(
cur
->
vrl_relid
,
analyze
);
/* analyze separately so locking is minimized */
if
(
analyze
)
for
(
cur
=
vrl
;
cur
!=
(
VRelList
)
NULL
;
cur
=
cur
->
vrl_next
)
analyze_rel
(
cur
->
vrl_relid
,
va_cols
);
analyze_rel
(
cur
->
vrl_relid
,
anal_cols2
);
}
static
VRelList
...
...
@@ -359,7 +359,7 @@ getrels(NameData *VacRelP)
* us to lock the entire database during one pass of the vacuum cleaner.
*/
static
void
vacuum_rel
(
Oid
relid
,
bool
analyze
,
List
*
va_cols
)
vacuum_rel
(
Oid
relid
,
bool
analyze
)
{
HeapTuple
tuple
;
Relation
onerel
;
...
...
@@ -508,7 +508,7 @@ vacuum_rel(Oid relid, bool analyze, List *va_cols)
* analyze_rel() -- analyze relation
*/
static
void
analyze_rel
(
Oid
relid
,
List
*
va_cols
)
analyze_rel
(
Oid
relid
,
List
*
anal_cols2
)
{
HeapTuple
tuple
,
typetuple
;
...
...
@@ -569,16 +569,16 @@ analyze_rel(Oid relid, List *va_cols)
attr_cnt
=
onerel
->
rd_att
->
natts
;
attr
=
onerel
->
rd_att
->
attrs
;
if
(
va_cols
!=
NIL
)
if
(
anal_cols2
!=
NIL
)
{
int
tcnt
=
0
;
List
*
le
;
if
(
length
(
va_cols
)
>
attr_cnt
)
if
(
length
(
anal_cols2
)
>
attr_cnt
)
elog
(
ERROR
,
"vacuum: too many attributes specified for relation %s"
,
RelationGetRelationName
(
onerel
));
attnums
=
(
int
*
)
palloc
(
attr_cnt
*
sizeof
(
int
));
foreach
(
le
,
va_cols
)
foreach
(
le
,
anal_cols2
)
{
char
*
col
=
(
char
*
)
lfirst
(
le
);
...
...
src/include/commands/vacuum.h
浏览文件 @
d950c197
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
* $Id: vacuum.h,v 1.2
8 2000/05/29 15:44:5
5 momjian Exp $
* $Id: vacuum.h,v 1.2
9 2000/05/29 16:21:0
5 momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -132,7 +132,7 @@ typedef struct VRelStats
extern
bool
VacuumRunning
;
extern
void
vc_abort
(
void
);
extern
void
vacuum
(
char
*
vacrel
,
bool
verbose
,
bool
analyze
,
List
*
va_spec
);
extern
void
vacuum
(
char
*
vacrel
,
bool
verbose
,
bool
analyze
,
List
*
anal_cols
);
#define ATTNVALS_SCALE 1000000000
/* XXX so it can act as a float4 */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录