1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>PartVII.Internals</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css">
<link rev="made" href="pgsql-docs@postgresql.org">
<meta name="generator" content="DocBook XSL Stylesheets V1.70.0">
<link rel="start" href="index.html" title="PostgreSQL 8.1.4 Documentation">
<link rel="up" href="index.html" title="PostgreSQL 8.1.4 Documentation">
<link rel="prev" href="app-postmaster.html" title="postmaster">
<link rel="next" href="overview.html" title="Chapter41.Overview of PostgreSQL Internals">
<link rel="copyright" href="ln-legalnotice.html" title="Legal Notice">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="part" lang="en" id="internals">
<div class="titlepage"><div><div><h1 class="title">
<a name="internals"></a>PartVII.Internals</h1></div></div></div>
<div class="partintro" lang="en" id="id814740">
<div></div>
<p> This part contains assorted information that can be of use to
<span class="productname">PostgreSQL</span> developers.
</p>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="chapter"><a href="overview.html">41. Overview of PostgreSQL Internals</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="overview.html#query-path">41.1. The Path of a Query</a></span></dt>
<dt><span class="sect1"><a href="connect-estab.html">41.2. How Connections are Established</a></span></dt>
<dt><span class="sect1"><a href="parser-stage.html">41.3. The Parser Stage</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="parser-stage.html#id815181">41.3.1. Parser</a></span></dt>
<dt><span class="sect2"><a href="parser-stage.html#id815385">41.3.2. Transformation Process</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="rule-system.html">41.4. The <span class="productname">PostgreSQL</span> Rule System</a></span></dt>
<dt><span class="sect1"><a href="planner-optimizer.html">41.5. Planner/Optimizer</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="planner-optimizer.html#id815662">41.5.1. Generating Possible Plans</a></span></dt></dl></dd>
<dt><span class="sect1"><a href="executor.html">41.6. Executor</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="catalogs.html">42. System Catalogs</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="catalogs.html#catalogs-overview">42.1. Overview</a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-aggregate.html">42.2. <code class="structname">pg_aggregate</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-am.html">42.3. <code class="structname">pg_am</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-amop.html">42.4. <code class="structname">pg_amop</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-amproc.html">42.5. <code class="structname">pg_amproc</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-attrdef.html">42.6. <code class="structname">pg_attrdef</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-attribute.html">42.7. <code class="structname">pg_attribute</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-authid.html">42.8. <code class="structname">pg_authid</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-auth-members.html">42.9. <code class="structname">pg_auth_members</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-autovacuum.html">42.10. <code class="structname">pg_autovacuum</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-cast.html">42.11. <code class="structname">pg_cast</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-class.html">42.12. <code class="structname">pg_class</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-constraint.html">42.13. <code class="structname">pg_constraint</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-conversion.html">42.14. <code class="structname">pg_conversion</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-database.html">42.15. <code class="structname">pg_database</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-depend.html">42.16. <code class="structname">pg_depend</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-description.html">42.17. <code class="structname">pg_description</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-index.html">42.18. <code class="structname">pg_index</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-inherits.html">42.19. <code class="structname">pg_inherits</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-language.html">42.20. <code class="structname">pg_language</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-largeobject.html">42.21. <code class="structname">pg_largeobject</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-listener.html">42.22. <code class="structname">pg_listener</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-namespace.html">42.23. <code class="structname">pg_namespace</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-opclass.html">42.24. <code class="structname">pg_opclass</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-operator.html">42.25. <code class="structname">pg_operator</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-pltemplate.html">42.26. <code class="structname">pg_pltemplate</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-proc.html">42.27. <code class="structname">pg_proc</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-rewrite.html">42.28. <code class="structname">pg_rewrite</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-shdepend.html">42.29. <code class="structname">pg_shdepend</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-statistic.html">42.30. <code class="structname">pg_statistic</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-tablespace.html">42.31. <code class="structname">pg_tablespace</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-trigger.html">42.32. <code class="structname">pg_trigger</code></a></span></dt>
<dt><span class="sect1"><a href="catalog-pg-type.html">42.33. <code class="structname">pg_type</code></a></span></dt>
<dt><span class="sect1"><a href="views-overview.html">42.34. System Views</a></span></dt>
<dt><span class="sect1"><a href="view-pg-group.html">42.35. <code class="structname">pg_group</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-indexes.html">42.36. <code class="structname">pg_indexes</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-locks.html">42.37. <code class="structname">pg_locks</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-prepared-xacts.html">42.38. <code class="structname">pg_prepared_xacts</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-roles.html">42.39. <code class="structname">pg_roles</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-rules.html">42.40. <code class="structname">pg_rules</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-settings.html">42.41. <code class="structname">pg_settings</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-shadow.html">42.42. <code class="structname">pg_shadow</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-stats.html">42.43. <code class="structname">pg_stats</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-tables.html">42.44. <code class="structname">pg_tables</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-user.html">42.45. <code class="structname">pg_user</code></a></span></dt>
<dt><span class="sect1"><a href="view-pg-views.html">42.46. <code class="structname">pg_views</code></a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="protocol.html">43. Frontend/Backend Protocol</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="protocol.html#protocol-overview">43.1. Overview</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="protocol.html#protocol-message-concepts">43.1.1. Messaging Overview</a></span></dt>
<dt><span class="sect2"><a href="protocol.html#protocol-query-concepts">43.1.2. Extended Query Overview</a></span></dt>
<dt><span class="sect2"><a href="protocol.html#protocol-format-codes">43.1.3. Formats and Format Codes</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="protocol-flow.html">43.2. Message Flow</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="protocol-flow.html#id834234">43.2.1. Start-Up</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id834480">43.2.2. Simple Query</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id834738">43.2.3. Extended Query</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id835121">43.2.4. Function Call</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#protocol-copy">43.2.5. COPY Operations</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#protocol-async">43.2.6. Asynchronous Operations</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id835564">43.2.7. Cancelling Requests in Progress</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id835628">43.2.8. Termination</a></span></dt>
<dt><span class="sect2"><a href="protocol-flow.html#id835688">43.2.9. <acronym class="acronym">SSL</acronym> Session Encryption</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="protocol-message-types.html">43.3. Message Data Types</a></span></dt>
<dt><span class="sect1"><a href="protocol-message-formats.html">43.4. Message Formats</a></span></dt>
<dt><span class="sect1"><a href="protocol-error-fields.html">43.5. Error and Notice Message Fields</a></span></dt>
<dt><span class="sect1"><a href="protocol-changes.html">43.6. Summary of Changes since Protocol 2.0</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="source.html">44. PostgreSQL Coding Conventions</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="source.html#source-format">44.1. Formatting</a></span></dt>
<dt><span class="sect1"><a href="error-message-reporting.html">44.2. Reporting Errors Within the Server</a></span></dt>
<dt><span class="sect1"><a href="error-style-guide.html">44.3. Error Message Style Guide</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="nls.html">45. Native Language Support</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="nls.html#nls-translator">45.1. For the Translator</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="nls.html#id840226">45.1.1. Requirements</a></span></dt>
<dt><span class="sect2"><a href="nls.html#id840300">45.1.2. Concepts</a></span></dt>
<dt><span class="sect2"><a href="nls.html#id840436">45.1.3. Creating and maintaining message catalogs</a></span></dt>
<dt><span class="sect2"><a href="nls.html#id840632">45.1.4. Editing the PO files</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="nls-programmer.html">45.2. For the Programmer</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="nls-programmer.html#nls-mechanics">45.2.1. Mechanics</a></span></dt>
<dt><span class="sect2"><a href="nls-programmer.html#nls-guidelines">45.2.2. Message-writing guidelines</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="chapter"><a href="plhandler.html">46. Writing A Procedural Language Handler</a></span></dt>
<dt><span class="chapter"><a href="geqo.html">47. Genetic Query Optimizer</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="geqo.html#geqo-intro">47.1. Query Handling as a Complex Optimization Problem</a></span></dt>
<dt><span class="sect1"><a href="geqo-intro2.html">47.2. Genetic Algorithms</a></span></dt>
<dt><span class="sect1"><a href="geqo-pg-intro.html">47.3. Genetic Query Optimization (<acronym class="acronym">GEQO</acronym>) in PostgreSQL</a></span></dt>
<dd><dl><dt><span class="sect2"><a href="geqo-pg-intro.html#geqo-future">47.3.1. Future Implementation Tasks for
<span class="productname">PostgreSQL</span> <acronym class="acronym">GEQO</acronym></a></span></dt></dl></dd>
<dt><span class="sect1"><a href="geqo-biblio.html">47.4. Further Reading</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="indexam.html">48. Index Access Method Interface Definition</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="indexam.html#index-catalog">48.1. Catalog Entries for Indexes</a></span></dt>
<dt><span class="sect1"><a href="index-functions.html">48.2. Index Access Method Functions</a></span></dt>
<dt><span class="sect1"><a href="index-scanning.html">48.3. Index Scanning</a></span></dt>
<dt><span class="sect1"><a href="index-locking.html">48.4. Index Locking Considerations</a></span></dt>
<dt><span class="sect1"><a href="index-unique-checks.html">48.5. Index Uniqueness Checks</a></span></dt>
<dt><span class="sect1"><a href="index-cost-estimation.html">48.6. Index Cost Estimation Functions</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="gist.html">49. GiST Indexes</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="gist.html#gist-intro">49.1. Introduction</a></span></dt>
<dt><span class="sect1"><a href="gist-extensibility.html">49.2. Extensibility</a></span></dt>
<dt><span class="sect1"><a href="gist-implementation.html">49.3. Implementation</a></span></dt>
<dt><span class="sect1"><a href="gist-examples.html">49.4. Examples</a></span></dt>
<dt><span class="sect1"><a href="gist-recovery.html">49.5. Crash Recovery</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="storage.html">50. Database Physical Storage</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="storage.html#storage-file-layout">50.1. Database File Layout</a></span></dt>
<dt><span class="sect1"><a href="storage-toast.html">50.2. TOAST</a></span></dt>
<dt><span class="sect1"><a href="storage-page-layout.html">50.3. Database Page Layout</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="bki.html">51. <acronym class="acronym">BKI</acronym> Backend Interface</a></span></dt>
<dd><dl>
<dt><span class="sect1"><a href="bki.html#bki-format">51.1. <acronym class="acronym">BKI</acronym> File Format</a></span></dt>
<dt><span class="sect1"><a href="bki-commands.html">51.2. <acronym class="acronym">BKI</acronym> Commands</a></span></dt>
<dt><span class="sect1"><a href="bki-structure.html">51.3. Structure of the Bootstrap <acronym class="acronym">BKI</acronym> File</a></span></dt>
<dt><span class="sect1"><a href="bki-example.html">51.4. Example</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="planner-stats-details.html">52. How the Planner Uses Statistics</a></span></dt>
<dd><dl><dt><span class="sect1"><a href="planner-stats-details.html#row-estimation-examples">52.1. Row Estimation Examples</a></span></dt></dl></dd>
</dl>
</div>
</div>
</div></body>
</html>
|