* Determine whether the buffer referenced has to be backed up. * * Since we don't yet have the insert lock, fullPageWrites and forcePageWrites * could change later, so the result should be used for optimization purposes * only. */
| 920 | * only. |
| 921 | */ |
| 922 | bool |
| 923 | XLogCheckBufferNeedsBackup(Buffer buffer) |
| 924 | { |
| 925 | XLogRecPtr RedoRecPtr; |
| 926 | bool doPageWrites; |
| 927 | Page page; |
| 928 | |
| 929 | GetFullPageWriteInfo(&RedoRecPtr, &doPageWrites); |
| 930 | |
| 931 | page = BufferGetPage(buffer); |
| 932 | |
| 933 | if (doPageWrites && PageGetLSN(page) <= RedoRecPtr) |
| 934 | return true; /* buffer requires backup */ |
| 935 | |
| 936 | return false; /* buffer does not need to be backed up */ |
| 937 | } |
| 938 | |
| 939 | /* |
| 940 | * Write a backup block if needed when we are setting a hint. Note that |
no test coverage detected