4646/* Struct of generic xlog data for single page */
4747typedef struct
4848{
49- Buffer buffer ;/* registered buffer */
50- char image [BLCKSZ ];/* copy of page image for modification */
51- char data [MAX_DELTA_SIZE ];/* delta between page images */
52- int dataLen ;/* space consumed in data field */
53- bool fullImage ;/* are we taking a full image of this page? */
49+ Buffer buffer ;/* registered buffer */
50+ char image [BLCKSZ ];/* copy of page image for modification */
51+ char data [MAX_DELTA_SIZE ];/* delta between page images */
52+ int dataLen ;/* space consumed in data field */
53+ bool fullImage ;/* are we taking a full image of this page? */
5454}PageData ;
5555
5656/* State of generic xlog record construction */
@@ -61,7 +61,7 @@ struct GenericXLogState
6161};
6262
6363static void writeFragment (PageData * pageData ,OffsetNumber offset ,
64- OffsetNumber len ,Pointer data );
64+ OffsetNumber len ,Pointer data );
6565static void writeDelta (PageData * pageData );
6666static void applyPageRedo (Page page ,Pointer data ,Size dataSize );
6767
@@ -72,7 +72,7 @@ static void
7272writeFragment (PageData * pageData ,OffsetNumber offset ,OffsetNumber length ,
7373Pointer data )
7474{
75- Pointer ptr = pageData -> data + pageData -> dataLen ;
75+ Pointer ptr = pageData -> data + pageData -> dataLen ;
7676
7777/* Check if we have enough space */
7878Assert (pageData -> dataLen + sizeof (offset )+
@@ -95,20 +95,20 @@ writeFragment(PageData *pageData, OffsetNumber offset, OffsetNumber length,
9595static void
9696writeDelta (PageData * pageData )
9797{
98- Page page = BufferGetPage (pageData -> buffer ,NULL ,NULL ,
99- BGP_NO_SNAPSHOT_TEST ),
100- image = (Page )pageData -> image ;
101- int i ,
102- fragmentBegin = -1 ,
103- fragmentEnd = -1 ;
104- uint16 pageLower = ((PageHeader )page )-> pd_lower ,
105- pageUpper = ((PageHeader )page )-> pd_upper ,
106- imageLower = ((PageHeader )image )-> pd_lower ,
107- imageUpper = ((PageHeader )image )-> pd_upper ;
98+ Page page = BufferGetPage (pageData -> buffer ,NULL ,NULL ,
99+ BGP_NO_SNAPSHOT_TEST ),
100+ image = (Page )pageData -> image ;
101+ int i ,
102+ fragmentBegin = -1 ,
103+ fragmentEnd = -1 ;
104+ uint16 pageLower = ((PageHeader )page )-> pd_lower ,
105+ pageUpper = ((PageHeader )page )-> pd_upper ,
106+ imageLower = ((PageHeader )image )-> pd_lower ,
107+ imageUpper = ((PageHeader )image )-> pd_upper ;
108108
109109for (i = 0 ;i < BLCKSZ ;i ++ )
110110{
111- bool match ;
111+ bool match ;
112112
113113/*
114114 * Check if bytes in old and new page images match. We do not care
@@ -171,14 +171,15 @@ writeDelta(PageData *pageData)
171171BLCKSZ - fragmentBegin ,
172172page + fragmentBegin );
173173
174- #ifdef WAL_DEBUG
175174/*
176175 * If xlog debug is enabled, then check produced delta. Result of delta
177176 * application to saved image should be the same as current page state.
178177 */
178+ #ifdef WAL_DEBUG
179179if (XLOG_DEBUG )
180180{
181- char tmp [BLCKSZ ];
181+ char tmp [BLCKSZ ];
182+
182183memcpy (tmp ,image ,BLCKSZ );
183184applyPageRedo (tmp ,pageData -> data ,pageData -> dataLen );
184185if (memcmp (tmp ,page ,pageLower )
@@ -194,8 +195,8 @@ writeDelta(PageData *pageData)
194195GenericXLogState *
195196GenericXLogStart (Relation relation )
196197{
197- int i ;
198- GenericXLogState * state ;
198+ int i ;
199+ GenericXLogState * state ;
199200
200201state = (GenericXLogState * )palloc (sizeof (GenericXLogState ));
201202
@@ -212,28 +213,29 @@ GenericXLogStart(Relation relation)
212213Page
213214GenericXLogRegister (GenericXLogState * state ,Buffer buffer ,bool isNew )
214215{
215- int block_id ;
216+ int block_id ;
216217
217218/* Place new buffer to unused slot in array */
218219for (block_id = 0 ;block_id < MAX_GENERIC_XLOG_PAGES ;block_id ++ )
219220{
220- PageData * page = & state -> pages [block_id ];
221+ PageData * page = & state -> pages [block_id ];
222+
221223if (BufferIsInvalid (page -> buffer ))
222224{
223225page -> buffer = buffer ;
224226memcpy (page -> image ,BufferGetPage (buffer ,NULL ,NULL ,
225227BGP_NO_SNAPSHOT_TEST ),BLCKSZ );
226228page -> dataLen = 0 ;
227229page -> fullImage = isNew ;
228- return (Page )page -> image ;
230+ return (Page )page -> image ;
229231}
230232else if (page -> buffer == buffer )
231233{
232234/*
233235 * Buffer is already registered. Just return the image, which is
234236 * already prepared.
235237 */
236- return (Page )page -> image ;
238+ return (Page )page -> image ;
237239}
238240}
239241
@@ -250,7 +252,7 @@ GenericXLogRegister(GenericXLogState *state, Buffer buffer, bool isNew)
250252void
251253GenericXLogUnregister (GenericXLogState * state ,Buffer buffer )
252254{
253- int block_id ;
255+ int block_id ;
254256
255257/* Find block in array to unregister */
256258for (block_id = 0 ;block_id < MAX_GENERIC_XLOG_PAGES ;block_id ++ )
@@ -262,7 +264,7 @@ GenericXLogUnregister(GenericXLogState *state, Buffer buffer)
262264 * concurrency.
263265 */
264266memmove (& state -> pages [block_id ],& state -> pages [block_id + 1 ],
265- (MAX_GENERIC_XLOG_PAGES - block_id - 1 )* sizeof (PageData ));
267+ (MAX_GENERIC_XLOG_PAGES - block_id - 1 )* sizeof (PageData ));
266268state -> pages [MAX_GENERIC_XLOG_PAGES - 1 ].buffer = InvalidBuffer ;
267269return ;
268270}
@@ -277,8 +279,8 @@ GenericXLogUnregister(GenericXLogState *state, Buffer buffer)
277279XLogRecPtr
278280GenericXLogFinish (GenericXLogState * state )
279281{
280- XLogRecPtr lsn = InvalidXLogRecPtr ;
281- int i ;
282+ XLogRecPtr lsn = InvalidXLogRecPtr ;
283+ int i ;
282284
283285if (state -> isLogged )
284286{
@@ -372,12 +374,13 @@ GenericXLogAbort(GenericXLogState *state)
372374static void
373375applyPageRedo (Page page ,Pointer data ,Size dataSize )
374376{
375- Pointer ptr = data ,end = data + dataSize ;
377+ Pointer ptr = data ,
378+ end = data + dataSize ;
376379
377380while (ptr < end )
378381{
379- OffsetNumber offset ,
380- length ;
382+ OffsetNumber offset ,
383+ length ;
381384
382385memcpy (& offset ,ptr ,sizeof (offset ));
383386ptr += sizeof (offset );
@@ -415,9 +418,9 @@ generic_redo(XLogReaderState *record)
415418/* Apply redo to given block if needed */
416419if (action == BLK_NEEDS_REDO )
417420{
418- Pointer blockData ;
419- Size blockDataSize ;
420- Page page ;
421+ Pointer blockData ;
422+ Size blockDataSize ;
423+ Page page ;
421424
422425page = BufferGetPage (buffers [block_id ],NULL ,NULL ,BGP_NO_SNAPSHOT_TEST );
423426blockData = XLogRecGetBlockData (record ,block_id ,& blockDataSize );