mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Clean up the use of some page-header-access macros: principally, use
SizeOfPageHeaderData instead of sizeof(PageHeaderData) in places where that makes the code clearer, and avoid casting between Page and PageHeader where possible. Zdenek Kotala, with some additional cleanup by Heikki Linnakangas. I did not apply the parts of the proposed patch that would have resulted in slightly changing the on-disk format of hash indexes; it seems to me that's not a win as long as there's any chance of having in-place upgrade for 8.4.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/access/heap/hio.c,v 1.71 2008/06/08 22:00:47 alvherre Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/heap/hio.c,v 1.72 2008/07/13 20:45:47 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -107,7 +107,7 @@ RelationGetBufferForTuple(Relation relation, Size len,
|
||||
Buffer otherBuffer, bool use_fsm)
|
||||
{
|
||||
Buffer buffer = InvalidBuffer;
|
||||
Page pageHeader;
|
||||
Page page;
|
||||
Size pageFreeSpace,
|
||||
saveFreeSpace;
|
||||
BlockNumber targetBlock,
|
||||
@ -218,8 +218,8 @@ RelationGetBufferForTuple(Relation relation, Size len,
|
||||
* Now we can check to see if there's enough free space here. If so,
|
||||
* we're done.
|
||||
*/
|
||||
pageHeader = (Page) BufferGetPage(buffer);
|
||||
pageFreeSpace = PageGetHeapFreeSpace(pageHeader);
|
||||
page = BufferGetPage(buffer);
|
||||
pageFreeSpace = PageGetHeapFreeSpace(page);
|
||||
if (len + saveFreeSpace <= pageFreeSpace)
|
||||
{
|
||||
/* use this page as future insert target, too */
|
||||
@ -303,16 +303,16 @@ RelationGetBufferForTuple(Relation relation, Size len,
|
||||
* is empty (this should never happen, but if it does we don't want to
|
||||
* risk wiping out valid data).
|
||||
*/
|
||||
pageHeader = (Page) BufferGetPage(buffer);
|
||||
page = BufferGetPage(buffer);
|
||||
|
||||
if (!PageIsNew((PageHeader) pageHeader))
|
||||
if (!PageIsNew(page))
|
||||
elog(ERROR, "page %u of relation \"%s\" should be empty but is not",
|
||||
BufferGetBlockNumber(buffer),
|
||||
RelationGetRelationName(relation));
|
||||
|
||||
PageInit(pageHeader, BufferGetPageSize(buffer), 0);
|
||||
PageInit(page, BufferGetPageSize(buffer), 0);
|
||||
|
||||
if (len > PageGetHeapFreeSpace(pageHeader))
|
||||
if (len > PageGetHeapFreeSpace(page))
|
||||
{
|
||||
/* We should not get here given the test at the top */
|
||||
elog(PANIC, "tuple is too big: size %lu", (unsigned long) len);
|
||||
|
Reference in New Issue
Block a user