diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-11-03 20:47:49 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-11-03 20:47:49 +0000 |
commit | b4eae023bb2b5e9bce96cd367d70c180eefe6bf9 (patch) | |
tree | 5fc3b8619b94897cf1b6ac884423226254c98578 /src/backend/access/gin | |
parent | f0dae70431ec0af676d7e6f26454145903045aba (diff) | |
download | postgresql-b4eae023bb2b5e9bce96cd367d70c180eefe6bf9.tar.gz postgresql-b4eae023bb2b5e9bce96cd367d70c180eefe6bf9.zip |
Clean up the messy semantics (not to mention inefficiency) of PageGetTempPage
by splitting it into three functions with better-defined behaviors.
Zdenek Kotala
Diffstat (limited to 'src/backend/access/gin')
-rw-r--r-- | src/backend/access/gin/gindatapage.c | 4 | ||||
-rw-r--r-- | src/backend/access/gin/ginentrypage.c | 4 | ||||
-rw-r--r-- | src/backend/access/gin/ginutil.c | 17 | ||||
-rw-r--r-- | src/backend/access/gin/ginvacuum.c | 4 |
4 files changed, 7 insertions, 22 deletions
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c index 33ed8928ff5..7afe36eff5b 100644 --- a/src/backend/access/gin/gindatapage.c +++ b/src/backend/access/gin/gindatapage.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.11 2008/06/19 00:46:03 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/gindatapage.c,v 1.12 2008/11/03 20:47:48 tgl Exp $ *------------------------------------------------------------------------- */ @@ -445,7 +445,7 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe char *ptr; OffsetNumber separator; ItemPointer bound; - Page lpage = GinPageGetCopyPage(BufferGetPage(lbuf)); + Page lpage = PageGetTempPageCopy(BufferGetPage(lbuf)); ItemPointerData oldbound = *GinDataPageGetRightBound(lpage); int sizeofitem = GinSizeOfItem(lpage); OffsetNumber maxoff = GinPageGetOpaque(lpage)->maxoff; diff --git a/src/backend/access/gin/ginentrypage.c b/src/backend/access/gin/ginentrypage.c index ef9c9ba2a40..ec899885ab2 100644 --- a/src/backend/access/gin/ginentrypage.c +++ b/src/backend/access/gin/ginentrypage.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.17 2008/07/11 21:06:29 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginentrypage.c,v 1.18 2008/11/03 20:47:48 tgl Exp $ *------------------------------------------------------------------------- */ @@ -458,7 +458,7 @@ entrySplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogR leftrightmost = NULL; static ginxlogSplit data; Page page; - Page lpage = GinPageGetCopyPage(BufferGetPage(lbuf)); + Page lpage = PageGetTempPageCopy(BufferGetPage(lbuf)); Page rpage = BufferGetPage(rbuf); Size pageSize = PageGetPageSize(lpage); diff --git a/src/backend/access/gin/ginutil.c b/src/backend/access/gin/ginutil.c index 587add92e97..c111c060392 100644 --- a/src/backend/access/gin/ginutil.c +++ b/src/backend/access/gin/ginutil.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.17 2008/09/30 10:52:10 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginutil.c,v 1.18 2008/11/03 20:47:48 tgl Exp $ *------------------------------------------------------------------------- */ @@ -310,21 +310,6 @@ extractEntriesSU(GinState *ginstate, OffsetNumber attnum, Datum value, int32 *ne return entries; } -/* - * It's analog of PageGetTempPage(), but copies whole page - */ -Page -GinPageGetCopyPage(Page page) -{ - Size pageSize = PageGetPageSize(page); - Page tmppage; - - tmppage = (Page) palloc(pageSize); - memcpy(tmppage, page, pageSize); - - return tmppage; -} - Datum ginoptions(PG_FUNCTION_ARGS) { diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c index ae6459c9fac..c49926c3fd2 100644 --- a/src/backend/access/gin/ginvacuum.c +++ b/src/backend/access/gin/ginvacuum.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.24 2008/10/31 15:04:59 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/access/gin/ginvacuum.c,v 1.25 2008/11/03 20:47:48 tgl Exp $ *------------------------------------------------------------------------- */ @@ -546,7 +546,7 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3 * On first difference we create temporary page in memory * and copies content in to it. */ - tmppage = GinPageGetCopyPage(origpage); + tmppage = PageGetTempPageCopy(origpage); if (newN > 0) { |