]> begriffs open source - ai-pg/blob - full-docs/html/xplang.html
Include latest toc output
[ai-pg] / full-docs / html / xplang.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>Chapter 40. Procedural Languages</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="rules-triggers.html" title="39.7. Rules Versus Triggers" /><link rel="next" href="xplang-install.html" title="40.1. Installing Procedural Languages" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">Chapter 40. Procedural Languages</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="rules-triggers.html" title="39.7. Rules Versus Triggers">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="server-programming.html" title="Part V. Server Programming">Up</a></td><th width="60%" align="center">Part V. Server Programming</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="xplang-install.html" title="40.1. Installing Procedural Languages">Next</a></td></tr></table><hr /></div><div class="chapter" id="XPLANG"><div class="titlepage"><div><div><h2 class="title">Chapter 40. Procedural Languages</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="sect1"><a href="xplang-install.html">40.1. Installing Procedural Languages</a></span></dt></dl></div><a id="id-1.8.7.2" class="indexterm"></a><p>
3    <span class="productname">PostgreSQL</span> allows user-defined functions
4    to be written in other languages besides SQL and C.  These other
5    languages are generically called <em class="firstterm">procedural
6    languages</em> (<acronym class="acronym">PL</acronym>s).  For a function
7    written in a procedural language, the database server has
8    no built-in knowledge about how to interpret the function's source
9    text. Instead, the task is passed to a special handler that knows
10    the details of the language.  The handler could either do all the
11    work of parsing, syntax analysis, execution, etc. itself, or it
12    could serve as <span class="quote">“<span class="quote">glue</span>”</span> between
13    <span class="productname">PostgreSQL</span> and an existing implementation
14    of a programming language.  The handler itself is a
15    C language function compiled into a shared object and
16    loaded on demand, just like any other C function.
17   </p><p>
18    There are currently four procedural languages available in the
19    standard <span class="productname">PostgreSQL</span> distribution:
20    <span class="application">PL/pgSQL</span> (<a class="xref" href="plpgsql.html" title="Chapter 41. PL/pgSQL — SQL Procedural Language">Chapter 41</a>),
21    <span class="application">PL/Tcl</span> (<a class="xref" href="pltcl.html" title="Chapter 42. PL/Tcl — Tcl Procedural Language">Chapter 42</a>),
22    <span class="application">PL/Perl</span> (<a class="xref" href="plperl.html" title="Chapter 43. PL/Perl — Perl Procedural Language">Chapter 43</a>), and
23    <span class="application">PL/Python</span> (<a class="xref" href="plpython.html" title="Chapter 44. PL/Python — Python Procedural Language">PL/Python</a>).
24    There are additional procedural languages available that are not
25    included in the core distribution. <a class="xref" href="external-projects.html" title="Appendix H. External Projects">Appendix H</a>
26    has information about finding them. In addition other languages can
27    be defined by users; the basics of developing a new procedural
28    language are covered in <a class="xref" href="plhandler.html" title="Chapter 57. Writing a Procedural Language Handler">Chapter 57</a>.
29   </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rules-triggers.html" title="39.7. Rules Versus Triggers">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="server-programming.html" title="Part V. Server Programming">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="xplang-install.html" title="40.1. Installing Procedural Languages">Next</a></td></tr><tr><td width="40%" align="left" valign="top">39.7. Rules Versus Triggers </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"> 40.1. Installing Procedural Languages</td></tr></table></div></body></html>