]> begriffs open source - ai-pg/blob - full-docs/src/sgml/html/extend-how.html
PG 18 docs from https://ftp.postgresql.org/pub/source/v18.0/postgresql-18.0-docs...
[ai-pg] / full-docs / src / sgml / html / extend-how.html
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>36.1. How Extensibility Works</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="extend.html" title="Chapter 36. Extending SQL" /><link rel="next" href="extend-type-system.html" title="36.2. The PostgreSQL Type System" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">36.1. How Extensibility Works</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="extend.html" title="Chapter 36. Extending SQL">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="extend.html" title="Chapter 36. Extending SQL">Up</a></td><th width="60%" align="center">Chapter 36. Extending <acronym class="acronym">SQL</acronym></th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="extend-type-system.html" title="36.2. The PostgreSQL Type System">Next</a></td></tr></table><hr /></div><div class="sect1" id="EXTEND-HOW"><div class="titlepage"><div><div><h2 class="title" style="clear: both">36.1. How Extensibility Works <a href="#EXTEND-HOW" class="id_link">#</a></h2></div></div></div><p>
3     <span class="productname">PostgreSQL</span> is extensible because its operation  is
4     catalog-driven.   If  you  are familiar with standard
5     relational database systems, you know that  they  store  information
6     about  databases,  tables,  columns,  etc., in what are
7     commonly known as system catalogs.  (Some systems  call
8     this  the data dictionary.)  The catalogs appear to the
9     user as tables like any other, but  the  <acronym class="acronym">DBMS</acronym>  stores
10     its  internal  bookkeeping in them.  One key difference
11     between <span class="productname">PostgreSQL</span> and  standard  relational database systems  is
12     that <span class="productname">PostgreSQL</span> stores much more information in its
13     catalogs: not only information about tables and  columns,
14     but also information about data types, functions, access
15     methods, and so on.  These tables can be  modified  by
16     the  user, and since <span class="productname">PostgreSQL</span> bases its operation
17     on these tables, this means that <span class="productname">PostgreSQL</span> can  be
18     extended   by   users.    By  comparison,  conventional
19     database systems can only be extended by changing hardcoded
20     procedures in the source code or by loading modules
21     specially written by the <acronym class="acronym">DBMS</acronym> vendor.
22    </p><p>
23     The <span class="productname">PostgreSQL</span> server can moreover
24     incorporate user-written code into itself through dynamic loading.
25     That is, the user can specify an object code file (e.g., a shared
26     library) that implements a new type or function, and
27     <span class="productname">PostgreSQL</span> will load it as required.
28     Code written in <acronym class="acronym">SQL</acronym> is even more trivial to add
29     to the server.  This ability to modify its operation <span class="quote">“<span class="quote">on the
30     fly</span>”</span> makes <span class="productname">PostgreSQL</span> uniquely
31     suited for rapid prototyping of new applications and storage
32     structures.
33    </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="extend.html" title="Chapter 36. Extending SQL">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extend.html" title="Chapter 36. Extending SQL">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="extend-type-system.html" title="36.2. The PostgreSQL Type System">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 36. Extending <acronym class="acronym">SQL</acronym> </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 18.0 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 36.2. The <span class="productname">PostgreSQL</span> Type System</td></tr></table></div></body></html>