Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
4523e0b6
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,发现更多精彩内容 >>
提交
4523e0b6
编写于
6月 29, 2005
作者:
T
Teodor Sigaev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleanup, remove unneeded pallocs
上级
a29d815a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
13 deletion
+9
-13
src/backend/access/gist/gist.c
src/backend/access/gist/gist.c
+2
-1
src/backend/access/gist/gistvacuum.c
src/backend/access/gist/gistvacuum.c
+7
-12
未找到文件。
src/backend/access/gist/gist.c
浏览文件 @
4523e0b6
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.12
3 2005/06/28 15:51:00
teodor Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gist.c,v 1.12
4 2005/06/29 14:06:14
teodor Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -362,6 +362,7 @@ gistplacetopage(GISTInsertState *state, GISTSTATE *giststate) {
Page
page
=
(
Page
)
BufferGetPage
(
ptr
->
buffer
);
GistPageGetOpaque
(
page
)
->
rightlink
=
(
ptr
->
next
)
?
ptr
->
next
->
block
.
blkno
:
InvalidBlockNumber
;
GistPageGetOpaque
(
page
)
->
nsn
=
PageGetLSN
(
page
);
LockBuffer
(
ptr
->
buffer
,
GIST_UNLOCK
);
WriteBuffer
(
ptr
->
buffer
);
ptr
=
ptr
->
next
;
...
...
src/backend/access/gist/gistvacuum.c
浏览文件 @
4523e0b6
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.
4 2005/06/28 15:51:00
teodor Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.
5 2005/06/29 14:06:14
teodor Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -52,7 +52,7 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
int
lenaddon
=
4
,
curlenaddon
=
0
,
ntodelete
=
0
;
IndexTuple
idxtuple
,
*
addon
=
NULL
;
bool
needwrite
=
false
;
OffsetNumber
*
todelete
=
NULL
;
OffsetNumber
todelete
[
BLCKSZ
/
SizeOfIptrData
]
;
ItemPointerData
*
completed
=
NULL
;
int
ncompleted
=
0
,
lencompleted
=
16
;
...
...
@@ -67,7 +67,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
GistClearTuplesDeleted
(
page
);
}
}
else
{
todelete
=
(
OffsetNumber
*
)
palloc
(
MAXALIGN
(
sizeof
(
OffsetNumber
)
*
(
maxoff
+
1
))
);
completed
=
(
ItemPointerData
*
)
palloc
(
sizeof
(
ItemPointerData
)
*
lencompleted
);
addon
=
(
IndexTuple
*
)
palloc
(
sizeof
(
IndexTuple
)
*
lenaddon
);
...
...
@@ -143,16 +142,14 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
XLogRecPtr
recptr
;
XLogRecData
*
rdata
;
ItemPointerData
key
;
/* set key for incomplete insert */
char
*
xlinfo
;
ItemPointerSet
(
&
key
,
blkno
,
TUPLE_IS_VALID
);
oldCtx
=
MemoryContextSwitchTo
(
gv
->
opCtx
);
rdata
=
formSplitRdata
(
gv
->
index
->
rd_node
,
blkno
,
&
key
,
dist
);
xlinfo
=
rdata
->
data
;
MemoryContextSwitchTo
(
oldCtx
);
START_CRIT_SECTION
();
recptr
=
XLogInsert
(
RM_GIST_ID
,
XLOG_GIST_PAGE_SPLIT
,
rdata
);
...
...
@@ -164,6 +161,8 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
}
END_CRIT_SECTION
();
pfree
(
xlinfo
);
pfree
(
rdata
);
}
else
{
ptr
=
dist
;
while
(
ptr
)
{
...
...
@@ -267,7 +266,6 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
for
(
i
=
0
;
i
<
curlenaddon
;
i
++
)
pfree
(
addon
[
i
]
);
if
(
addon
)
pfree
(
addon
);
if
(
todelete
)
pfree
(
todelete
);
if
(
completed
)
pfree
(
completed
);
return
res
;
}
...
...
@@ -442,7 +440,7 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
page
=
(
Page
)
BufferGetPage
(
buffer
);
if
(
GistPageIsLeaf
(
page
)
)
{
OffsetNumber
*
todelete
=
NULL
;
OffsetNumber
todelete
[
BLCKSZ
/
SizeOfIptrData
]
;
int
ntodelete
=
0
;
LockBuffer
(
buffer
,
GIST_UNLOCK
);
...
...
@@ -462,7 +460,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
pushStackIfSplited
(
page
,
stack
);
maxoff
=
PageGetMaxOffsetNumber
(
page
);
todelete
=
(
OffsetNumber
*
)
palloc
(
MAXALIGN
(
sizeof
(
OffsetNumber
)
*
(
maxoff
+
1
))
);
for
(
i
=
FirstOffsetNumber
;
i
<=
maxoff
;
i
=
OffsetNumberNext
(
i
))
{
iid
=
PageGetItemId
(
page
,
i
);
...
...
@@ -502,8 +499,6 @@ gistbulkdelete(PG_FUNCTION_ARGS) {
PageSetLSN
(
page
,
XLogRecPtrForTemp
);
WriteNoReleaseBuffer
(
buffer
);
}
pfree
(
todelete
);
}
else
{
/* check for split proceeded after look at parent */
pushStackIfSplited
(
page
,
stack
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录