|
3 | 3 | * pg_buffercache_pages.c
|
4 | 4 | * display some contents of the buffer cache
|
5 | 5 | *
|
6 |
| - * $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.4 2005/05/31 00:07:47 tgl Exp $ |
| 6 | + * $PostgreSQL: pgsql/contrib/pg_buffercache/pg_buffercache_pages.c,v 1.5 2005/10/12 16:45:13 tgl Exp $ |
7 | 7 | *-------------------------------------------------------------------------
|
8 | 8 | */
|
9 | 9 | #include "postgres.h"
|
@@ -72,10 +72,8 @@ pg_buffercache_pages(PG_FUNCTION_ARGS)
|
72 | 72 |
|
73 | 73 | if (SRF_IS_FIRSTCALL())
|
74 | 74 | {
|
75 |
| - RelFileNode rnode; |
76 | 75 | uint32 i;
|
77 |
| - BufferDesc *bufHdr; |
78 |
| - |
| 76 | + volatile BufferDesc *bufHdr; |
79 | 77 |
|
80 | 78 | funcctx = SRF_FIRSTCALL_INIT();
|
81 | 79 |
|
@@ -136,35 +134,24 @@ pg_buffercache_pages(PG_FUNCTION_ARGS)
|
136 | 134 | /* Lock each buffer header before inspecting. */
|
137 | 135 | LockBufHdr(bufHdr);
|
138 | 136 |
|
139 |
| - rnode = bufHdr->tag.rnode; |
140 |
| - |
141 | 137 | fctx->record[i].bufferid = BufferDescriptorGetBuffer(bufHdr);
|
142 |
| - fctx->record[i].relfilenode = rnode.relNode; |
143 |
| - fctx->record[i].reltablespace = rnode.spcNode; |
144 |
| - fctx->record[i].reldatabase = rnode.dbNode; |
| 138 | + fctx->record[i].relfilenode = bufHdr->tag.rnode.relNode; |
| 139 | + fctx->record[i].reltablespace = bufHdr->tag.rnode.spcNode; |
| 140 | + fctx->record[i].reldatabase = bufHdr->tag.rnode.dbNode; |
145 | 141 | fctx->record[i].blocknum = bufHdr->tag.blockNum;
|
146 | 142 |
|
147 |
| - if ( bufHdr->flags & BM_DIRTY) |
148 |
| - { |
| 143 | + if (bufHdr->flags & BM_DIRTY) |
149 | 144 | fctx->record[i].isdirty = true;
|
150 |
| - } |
151 | 145 | else
|
152 |
| - { |
153 | 146 | fctx->record[i].isdirty = false;
|
154 |
| - } |
155 | 147 |
|
156 | 148 | /* Note if the buffer is valid, and has storage created */
|
157 |
| - if ( (bufHdr->flags & BM_VALID) && (bufHdr->flags & BM_TAG_VALID)) |
158 |
| - { |
| 149 | + if ((bufHdr->flags & BM_VALID) && (bufHdr->flags & BM_TAG_VALID)) |
159 | 150 | fctx->record[i].isvalid = true;
|
160 |
| - } |
161 | 151 | else
|
162 |
| - { |
163 | 152 | fctx->record[i].isvalid = false;
|
164 |
| - } |
165 | 153 |
|
166 | 154 | UnlockBufHdr(bufHdr);
|
167 |
| - |
168 | 155 | }
|
169 | 156 |
|
170 | 157 | /* Release Buffer map. */
|
|
0 commit comments