Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit05b3b86

Browse files
committed
Fix memory overhelding while forming index' result:
memory allocation for ItemPointerData of heap' tuple is uselessbecause of FormRetrieveIndexResult makes neccessary palloc.
1 parent58802bf commit05b3b86

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

‎src/backend/access/gist/gistget.c

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
*
88
* IDENTIFICATION
9-
* /usr/local/devel/pglite/cvs/src/backend/access/gisr/gistget.c,v 1.9 1995/08/01 20:16:02 jolly Exp
9+
* /usr/local/devel/pglite/cvs/src/backend/access/gisr/gistget.c,v 1.9.1 1996/11/21 01:00:00 vadim Exp
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -67,7 +67,6 @@ gistfirst(IndexScanDesc s, ScanDirection dir)
6767
GISTSTACK*stk;
6868
BlockNumberblk;
6969
IndexTupleit;
70-
ItemPointerip;
7170

7271
b=ReadBuffer(s->relation,GISTP_ROOT);
7372
p=BufferGetPage(b);
@@ -107,13 +106,10 @@ gistfirst(IndexScanDesc s, ScanDirection dir)
107106
ItemPointerSet(&(s->currentItemData),BufferGetBlockNumber(b),n);
108107

109108
it= (IndexTuple)PageGetItem(p,PageGetItemId(p,n));
110-
ip= (ItemPointer)palloc(sizeof(ItemPointerData));
111-
memmove((char*)ip, (char*)&(it->t_tid),
112-
sizeof(ItemPointerData));
113-
ReleaseBuffer(b);
114-
115-
res=FormRetrieveIndexResult(&(s->currentItemData),ip);
109+
110+
res=FormRetrieveIndexResult(&(s->currentItemData),&(it->t_tid));
116111

112+
ReleaseBuffer(b);
117113
return (res);
118114
}else {
119115
stk= (GISTSTACK*)palloc(sizeof(GISTSTACK));
@@ -146,7 +142,6 @@ gistnext(IndexScanDesc s, ScanDirection dir)
146142
GISTSTACK*stk;
147143
BlockNumberblk;
148144
IndexTupleit;
149-
ItemPointerip;
150145

151146
blk=ItemPointerGetBlockNumber(&(s->currentItemData));
152147
n=ItemPointerGetOffsetNumber(&(s->currentItemData));
@@ -192,13 +187,10 @@ gistnext(IndexScanDesc s, ScanDirection dir)
192187
ItemPointerSet(&(s->currentItemData),BufferGetBlockNumber(b),n);
193188

194189
it= (IndexTuple)PageGetItem(p,PageGetItemId(p,n));
195-
ip= (ItemPointer)palloc(sizeof(ItemPointerData));
196-
memmove((char*)ip, (char*)&(it->t_tid),
197-
sizeof(ItemPointerData));
198-
ReleaseBuffer(b);
199190

200-
res=FormRetrieveIndexResult(&(s->currentItemData),ip);
191+
res=FormRetrieveIndexResult(&(s->currentItemData),&(it->t_tid));
201192

193+
ReleaseBuffer(b);
202194
return (res);
203195
}else {
204196
stk= (GISTSTACK*)palloc(sizeof(GISTSTACK));
@@ -340,6 +332,8 @@ gistscancache(IndexScanDesc s, ScanDirection dir)
340332
res=FormRetrieveIndexResult(&(s->currentItemData),ip);
341333
else
342334
res= (RetrieveIndexResult)NULL;
335+
336+
pfree (ip);
343337

344338
return (res);
345339
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp