From b55a020acaef9d29a7681bfdf2321ecde15e7e52 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Sat, 15 Aug 1998 13:01:26 +0000 Subject: [PATCH] Converted to page.sgml. Not needed in a man page. --- src/man/page.5 | 130 ------------------------------------------------- 1 file changed, 130 deletions(-) delete mode 100644 src/man/page.5 diff --git a/src/man/page.5 b/src/man/page.5 deleted file mode 100644 index a664987236..0000000000 --- a/src/man/page.5 +++ /dev/null @@ -1,130 +0,0 @@ -.\" This is -*-nroff-*- -.\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/page.5,v 1.3 1998/01/11 22:17:46 momjian Exp $ -.TH PAGE FILES 01/23/93 PostgreSQL PostgreSQL -.SH NAME -page structure - Postgres database file default page format -.SH DESCRIPTION -This section provides an overview of the page format used by Postgres -classes. User-defined access methods need not use this page format. -.PP -In the following explanation, a -.BR byte -is assumed to contain 8 bits. In addition, the term -.BR item -refers to data which is stored in Postgres classes. -.if t \{ -Diagram 1 shows how pages in both normal Postgres classes and Postgres index -classes (e.g., a B-tree index) are structured. -.\" This is -*-nroff-*- -.\" XXX standard disclaimer belongs here.... -.\" $Header: /cvsroot/pgsql/src/man/Attic/page.5,v 1.3 1998/01/11 22:17:46 momjian Exp $ -.in +0.5i -.(b M -.PS -.ps 11 -box with .sw at (0.99,6.01) width 5.50 height 3.50 -line from 0.988,9.012 to 6.487,9.012 -line from 3.737,9.512 to 3.737,9.012 -line from 5.112,9.512 to 5.112,9.012 -dashwid = 0.050i -line dashed from 2.362,9.512 to 2.362,9.012 -line dashed from 3.050,9.512 to 3.050,9.012 -line dashed from 1.675,9.512 to 1.675,9.012 -line from 3.737,6.013 to 3.737,6.513 to 6.487,6.513 -line from 0.988,7.763 to 2.362,7.763 to 2.362,8.262 to 6.487,8.262 -line from 0.988,7.263 to 5.112,7.263 to 5.112,7.763 to 6.487,7.763 -line dashed from 2.362,7.763 to 5.112,7.763 -line dashed from 5.112,8.262 to 5.112,7.763 -line dashed from 4.300,8.262 to 4.300,7.763 -dashwid = 0.037i -line dotted <-> from 2.425,8.325 to 6.425,8.325 -line dotted <-> from 1.050,9.575 to 3.675,9.575 -line dotted <-> from 3.800,9.575 to 5.050,9.575 -line dotted <-> from 5.175,9.575 to 6.425,9.575 -"\s10\fRitemPointerData\fP" at 2.925,7.978 ljust -"\s10\fRfiller\fP" at 4.562,7.978 ljust -"\s10\fRitemData...\fP" at 5.513,7.978 ljust -"\s10\fIUnallocated Space\fP" at 3.237,8.753 ljust -"\s10\fBItemContinuationData\fP" at 3.663,8.415 ljust -"\s10\fISpecial Space\fP" at 4.688,6.240 ljust -"\s10\fI``ItemData 2''\fP" at 2.587,7.478 ljust -"\s10\fI``ItemData 1''\fP" at 3.413,6.865 ljust -"\s10\fBItemIdData\fP" at 4.775,9.715 ljust -"\s10\fBPageHeaderData\fP" at 1.875,9.715 ljust -.PE -.ce -.BR "Diagram 1: Sample Page Layout" -.)b -.in -0.5i -\} -.\" Running -.\" .q .../bin/dumpbpages -.\" or -.\" .q .../src/support/dumpbpages -.\" as the postgres superuser -.\" with the file paths associated with -.\" (heap or B-tree index) classes, -.\" .q .../data/base//, -.\" will display the page structure used by the classes. -.\" Specifying the -.\" .q -r -.\" flag will cause the classes to be -.\" treated as heap classes and for more information to be displayed. -.PP -The first 8 bytes of each page consists of a page header -.RB ( PageHeaderData ). -Within the header, the first three 2-byte integer fields, -.IR lower , -.IR upper , -and -.IR special , -represent byte offsets to the start of unallocated space, to the end -of unallocated space, and to the start of \*(lqspecial space.\*(rq -Special space is a region at the end of the page which is allocated at -page initialization time and which contains information specific to an -access method. The last 2 bytes of the page header, -.IR opaque , -encode the page size and information on the internal fragmentation of -the page. Page size is stored in each page because frames in the -buffer pool may be subdivided into equal sized pages on a frame by -frame basis within a class. The internal fragmentation information is -used to aid in determining when page reorganization should occur. -.PP -Following the page header are item identifiers -.RB ( ItemIdData ). -New item identifiers are allocated from the first four bytes of -unallocated space. Because an item identifier is never moved until it -is freed, its index may be used to indicate the location of an item on -a page. In fact, every pointer to an item -.RB ( ItemPointer ) -created by Postgres consists of a frame number and an index of an item -identifier. An item identifier contains a byte-offset to the start of -an item, its length in bytes, and a set of attribute bits which affect -its interpretation. -.PP -The items, themselves, are stored in space allocated backwards from -the end of unallocated space. Usually, the items are not interpreted. -However when the item is too long to be placed on a single page or -when fragmentation of the item is desired, the item is divided and -each piece is handled as distinct items in the following manner. The -first through the next to last piece are placed in an item -continuation structure -.BR ( ItemContinuationData ). -This structure contains -.IR itemPointerData -which points to the next piece and the piece itself. The last piece -is handled normally. -.SH FILES -.TP 5n -\&.../data/... -Location of shared (global) database files. -.TP 5n -\&.../data/base/... -Location of local database files. -.SH BUGS -The page format may change in the future to provide more efficient -access to large objects. -.PP -This section contains insufficient detail to be of any assistance in -writing a new access method. -- GitLab