Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
b55a020a
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b55a020a
编写于
8月 15, 1998
作者:
T
Thomas G. Lockhart
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Converted to page.sgml. Not needed in a man page.
上级
223fa7ff
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
130 deletion
+0
-130
src/man/page.5
src/man/page.5
+0
-130
未找到文件。
src/man/page.5
已删除
100644 → 0
浏览文件 @
223fa7ff
.\" 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/<database-name>/<class-name>,
.\" 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.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录