Run pgindent on generic_xlog.c.

This code desperately needs some micro-optimization, and I'd like it
to be formatted a bit more nicely while I work on it.
This commit is contained in:
Tom Lane 2016-04-09 13:33:33 -04:00
parent 381200be4b
commit 2dd318d277

View File

@ -46,11 +46,11 @@
/* Struct of generic xlog data for single page */ /* Struct of generic xlog data for single page */
typedef struct typedef struct
{ {
Buffer buffer; /* registered buffer */ Buffer buffer; /* registered buffer */
char image[BLCKSZ]; /* copy of page image for modification */ char image[BLCKSZ]; /* copy of page image for modification */
char data[MAX_DELTA_SIZE]; /* delta between page images */ char data[MAX_DELTA_SIZE]; /* delta between page images */
int dataLen; /* space consumed in data field */ int dataLen; /* space consumed in data field */
bool fullImage; /* are we taking a full image of this page? */ bool fullImage; /* are we taking a full image of this page? */
} PageData; } PageData;
/* State of generic xlog record construction */ /* State of generic xlog record construction */
@ -61,7 +61,7 @@ struct GenericXLogState
}; };
static void writeFragment(PageData *pageData, OffsetNumber offset, static void writeFragment(PageData *pageData, OffsetNumber offset,
OffsetNumber len, Pointer data); OffsetNumber len, Pointer data);
static void writeDelta(PageData *pageData); static void writeDelta(PageData *pageData);
static void applyPageRedo(Page page, Pointer data, Size dataSize); static void applyPageRedo(Page page, Pointer data, Size dataSize);
@ -72,7 +72,7 @@ static void
writeFragment(PageData *pageData, OffsetNumber offset, OffsetNumber length, writeFragment(PageData *pageData, OffsetNumber offset, OffsetNumber length,
Pointer data) Pointer data)
{ {
Pointer ptr = pageData->data + pageData->dataLen; Pointer ptr = pageData->data + pageData->dataLen;
/* Check if we have enough space */ /* Check if we have enough space */
Assert(pageData->dataLen + sizeof(offset) + Assert(pageData->dataLen + sizeof(offset) +
@ -95,20 +95,20 @@ writeFragment(PageData *pageData, OffsetNumber offset, OffsetNumber length,
static void static void
writeDelta(PageData *pageData) writeDelta(PageData *pageData)
{ {
Page page = BufferGetPage(pageData->buffer, NULL, NULL, Page page = BufferGetPage(pageData->buffer, NULL, NULL,
BGP_NO_SNAPSHOT_TEST), BGP_NO_SNAPSHOT_TEST),
image = (Page) pageData->image; image = (Page) pageData->image;
int i, int i,
fragmentBegin = -1, fragmentBegin = -1,
fragmentEnd = -1; fragmentEnd = -1;
uint16 pageLower = ((PageHeader) page)->pd_lower, uint16 pageLower = ((PageHeader) page)->pd_lower,
pageUpper = ((PageHeader) page)->pd_upper, pageUpper = ((PageHeader) page)->pd_upper,
imageLower = ((PageHeader) image)->pd_lower, imageLower = ((PageHeader) image)->pd_lower,
imageUpper = ((PageHeader) image)->pd_upper; imageUpper = ((PageHeader) image)->pd_upper;
for (i = 0; i < BLCKSZ; i++) for (i = 0; i < BLCKSZ; i++)
{ {
bool match; bool match;
/* /*
* Check if bytes in old and new page images match. We do not care * Check if bytes in old and new page images match. We do not care
@ -171,14 +171,15 @@ writeDelta(PageData *pageData)
BLCKSZ - fragmentBegin, BLCKSZ - fragmentBegin,
page + fragmentBegin); page + fragmentBegin);
#ifdef WAL_DEBUG
/* /*
* If xlog debug is enabled, then check produced delta. Result of delta * If xlog debug is enabled, then check produced delta. Result of delta
* application to saved image should be the same as current page state. * application to saved image should be the same as current page state.
*/ */
#ifdef WAL_DEBUG
if (XLOG_DEBUG) if (XLOG_DEBUG)
{ {
char tmp[BLCKSZ]; char tmp[BLCKSZ];
memcpy(tmp, image, BLCKSZ); memcpy(tmp, image, BLCKSZ);
applyPageRedo(tmp, pageData->data, pageData->dataLen); applyPageRedo(tmp, pageData->data, pageData->dataLen);
if (memcmp(tmp, page, pageLower) if (memcmp(tmp, page, pageLower)
@ -194,8 +195,8 @@ writeDelta(PageData *pageData)
GenericXLogState * GenericXLogState *
GenericXLogStart(Relation relation) GenericXLogStart(Relation relation)
{ {
int i; int i;
GenericXLogState *state; GenericXLogState *state;
state = (GenericXLogState *) palloc(sizeof(GenericXLogState)); state = (GenericXLogState *) palloc(sizeof(GenericXLogState));
@ -212,12 +213,13 @@ GenericXLogStart(Relation relation)
Page Page
GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew) GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew)
{ {
int block_id; int block_id;
/* Place new buffer to unused slot in array */ /* Place new buffer to unused slot in array */
for (block_id = 0; block_id < MAX_GENERIC_XLOG_PAGES; block_id++) for (block_id = 0; block_id < MAX_GENERIC_XLOG_PAGES; block_id++)
{ {
PageData *page = &state->pages[block_id]; PageData *page = &state->pages[block_id];
if (BufferIsInvalid(page->buffer)) if (BufferIsInvalid(page->buffer))
{ {
page->buffer = buffer; page->buffer = buffer;
@ -225,7 +227,7 @@ GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew)
BGP_NO_SNAPSHOT_TEST), BLCKSZ); BGP_NO_SNAPSHOT_TEST), BLCKSZ);
page->dataLen = 0; page->dataLen = 0;
page->fullImage = isNew; page->fullImage = isNew;
return (Page)page->image; return (Page) page->image;
} }
else if (page->buffer == buffer) else if (page->buffer == buffer)
{ {
@ -233,7 +235,7 @@ GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew)
* Buffer is already registered. Just return the image, which is * Buffer is already registered. Just return the image, which is
* already prepared. * already prepared.
*/ */
return (Page)page->image; return (Page) page->image;
} }
} }
@ -250,7 +252,7 @@ GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew)
void void
GenericXLogUnregister(GenericXLogState *state, Buffer buffer) GenericXLogUnregister(GenericXLogState *state, Buffer buffer)
{ {
int block_id; int block_id;
/* Find block in array to unregister */ /* Find block in array to unregister */
for (block_id = 0; block_id < MAX_GENERIC_XLOG_PAGES; block_id++) for (block_id = 0; block_id < MAX_GENERIC_XLOG_PAGES; block_id++)
@ -262,7 +264,7 @@ GenericXLogUnregister(GenericXLogState *state, Buffer buffer)
* concurrency. * concurrency.
*/ */
memmove(&state->pages[block_id], &state->pages[block_id + 1], memmove(&state->pages[block_id], &state->pages[block_id + 1],
(MAX_GENERIC_XLOG_PAGES - block_id - 1) * sizeof(PageData)); (MAX_GENERIC_XLOG_PAGES - block_id - 1) * sizeof(PageData));
state->pages[MAX_GENERIC_XLOG_PAGES - 1].buffer = InvalidBuffer; state->pages[MAX_GENERIC_XLOG_PAGES - 1].buffer = InvalidBuffer;
return; return;
} }
@ -277,8 +279,8 @@ GenericXLogUnregister(GenericXLogState *state, Buffer buffer)
XLogRecPtr XLogRecPtr
GenericXLogFinish(GenericXLogState *state) GenericXLogFinish(GenericXLogState *state)
{ {
XLogRecPtr lsn = InvalidXLogRecPtr; XLogRecPtr lsn = InvalidXLogRecPtr;
int i; int i;
if (state->isLogged) if (state->isLogged)
{ {
@ -372,12 +374,13 @@ GenericXLogAbort(GenericXLogState *state)
static void static void
applyPageRedo(Page page, Pointer data, Size dataSize) applyPageRedo(Page page, Pointer data, Size dataSize)
{ {
Pointer ptr = data, end = data + dataSize; Pointer ptr = data,
end = data + dataSize;
while (ptr < end) while (ptr < end)
{ {
OffsetNumber offset, OffsetNumber offset,
length; length;
memcpy(&offset, ptr, sizeof(offset)); memcpy(&offset, ptr, sizeof(offset));
ptr += sizeof(offset); ptr += sizeof(offset);
@ -415,9 +418,9 @@ generic_redo(XLogReaderState *record)
/* Apply redo to given block if needed */ /* Apply redo to given block if needed */
if (action == BLK_NEEDS_REDO) if (action == BLK_NEEDS_REDO)
{ {
Pointer blockData; Pointer blockData;
Size blockDataSize; Size blockDataSize;
Page page; Page page;
page = BufferGetPage(buffers[block_id], NULL, NULL, BGP_NO_SNAPSHOT_TEST); page = BufferGetPage(buffers[block_id], NULL, NULL, BGP_NO_SNAPSHOT_TEST);
blockData = XLogRecGetBlockData(record, block_id, &blockDataSize); blockData = XLogRecGetBlockData(record, block_id, &blockDataSize);