7
7
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
8
8
* Portions Copyright (c) 1994, Regents of the University of California
9
9
*
10
- * $Id: bufpage.h,v 1.53 2002/09/04 20:31:45 momjian Exp $
10
+ * $Id: bufpage.h,v 1.54 2003/03/28 20:17:13 tgl Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
19
19
#include "storage/item.h"
20
20
#include "storage/itemid.h"
21
21
#include "storage/off.h"
22
- #include "storage/page.h"
23
22
#include "access/xlog.h"
24
23
25
24
/*
74
73
* fields.
75
74
*/
76
75
77
- /*
78
- * PageIsValid
79
- * True iff page is valid.
80
- */
81
- #define PageIsValid (page ) PointerIsValid(page)
76
+ typedef Pointer Page ;
82
77
83
78
84
79
/*
@@ -141,22 +136,12 @@ typedef PageHeaderData *PageHeader;
141
136
* page support macros
142
137
* ----------------------------------------------------------------
143
138
*/
144
- /*
145
- * PageIsValid -- This is defined in page.h.
146
- */
147
139
148
140
/*
149
- * PageIsUsed
150
- * True iff the page size is used.
151
- *
152
- * Note:
153
- * Assumes page is valid.
141
+ * PageIsValid
142
+ * True iff page is valid.
154
143
*/
155
- #define PageIsUsed (page ) \
156
- ( \
157
- AssertMacro(PageIsValid(page)), \
158
- ((bool) (((PageHeader) (page))->pd_lower != 0)) \
159
- )
144
+ #define PageIsValid (page ) PointerIsValid(page)
160
145
161
146
/*
162
147
* line pointer does not count as part of header
@@ -172,9 +157,8 @@ typedef PageHeaderData *PageHeader;
172
157
173
158
/*
174
159
* PageIsNew
175
- * returns true iff page is not initialized (by PageInit)
160
+ * returns true iff page has not been initialized (by PageInit)
176
161
*/
177
-
178
162
#define PageIsNew (page ) (((PageHeader) (page))->pd_upper == 0)
179
163
180
164
/*
@@ -199,12 +183,6 @@ typedef PageHeaderData *PageHeader;
199
183
/*
200
184
* PageSizeIsValid
201
185
* True iff the page size is valid.
202
- *
203
- * XXX currently all page sizes are "valid" but we only actually
204
- * use BLCKSZ.
205
- *
206
- * 01/06/98 Now does something useful. darrenk
207
- *
208
186
*/
209
187
#define PageSizeIsValid (pageSize ) ((pageSize) == BLCKSZ)
210
188
@@ -214,18 +192,14 @@ typedef PageHeaderData *PageHeader;
214
192
*
215
193
* this can only be called on a formatted page (unlike
216
194
* BufferGetPageSize, which can be called on an unformatted page).
217
- * however, it can be called on a page for which there is no buffer.
195
+ * however, it can be called on a page that is not stored in a buffer.
218
196
*/
219
197
#define PageGetPageSize (page ) \
220
198
((Size) (((PageHeader) (page))->pd_pagesize_version & (uint16) 0xFF00))
221
199
222
200
/*
223
201
* PageGetPageLayoutVersion
224
202
* Returns the page layout version of a page.
225
- *
226
- * this can only be called on a formatted page (unlike
227
- * BufferGetPageSize, which can be called on an unformatted page).
228
- * however, it can be called on a page for which there is no buffer.
229
203
*/
230
204
#define PageGetPageLayoutVersion (page ) \
231
205
(((PageHeader) (page))->pd_pagesize_version & 0x00FF)
@@ -251,19 +225,13 @@ typedef PageHeaderData *PageHeader;
251
225
/*
252
226
* PageGetSpecialSize
253
227
* Returns size of special space on a page.
254
- *
255
- * Note:
256
- * Assumes page is locked.
257
228
*/
258
229
#define PageGetSpecialSize (page ) \
259
230
((uint16) (PageGetPageSize(page) - ((PageHeader)(page))->pd_special))
260
231
261
232
/*
262
233
* PageGetSpecialPointer
263
234
* Returns pointer to special space on a page.
264
- *
265
- * Note:
266
- * Assumes page is locked.
267
235
*/
268
236
#define PageGetSpecialPointer (page ) \
269
237
( \
@@ -339,6 +307,7 @@ typedef PageHeaderData *PageHeader;
339
307
*/
340
308
341
309
extern void PageInit (Page page , Size pageSize , Size specialSize );
310
+ extern bool PageHeaderIsValid (PageHeader page );
342
311
extern OffsetNumber PageAddItem (Page page , Item item , Size size ,
343
312
OffsetNumber offsetNumber , ItemIdFlags flags );
344
313
extern Page PageGetTempPage (Page page , Size specialSize );
0 commit comments