ok
Direktori : /opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/ |
Current File : //opt/alt/postgresql11/usr/share/doc/alt-postgresql11-9.2.24/html/server-programming.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Server Programming</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="PREVIOUS" TITLE="views" HREF="infoschema-views.html"><LINK REL="NEXT" TITLE="Extending SQL" HREF="extend.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="PART" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="views" HREF="infoschema-views.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Extending SQL" HREF="extend.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="PART" ><A NAME="SERVER-PROGRAMMING" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="TITLE" >V. Server Programming</H1 ><DIV CLASS="PARTINTRO" ><A NAME="AEN52128" ></A ><P > This part is about extending the server functionality with user-defined functions, data types, triggers, etc. These are advanced topics which should probably be approached only after all the other user documentation about <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > has been understood. Later chapters in this part describe the server-side programming languages available in the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > distribution as well as general issues concerning server-side programming languages. It is essential to read at least the earlier sections of <A HREF="extend.html" >Chapter 35</A > (covering functions) before diving into the material about server-side programming languages. </P ></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >35. <A HREF="extend.html" >Extending <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM ></A ></DT ><DD ><DL ><DT >35.1. <A HREF="extend-how.html" >How Extensibility Works</A ></DT ><DT >35.2. <A HREF="extend-type-system.html" >The <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > Type System</A ></DT ><DT >35.3. <A HREF="xfunc.html" >User-defined Functions</A ></DT ><DT >35.4. <A HREF="xfunc-sql.html" >Query Language (<ACRONYM CLASS="ACRONYM" >SQL</ACRONYM >) Functions</A ></DT ><DT >35.5. <A HREF="xfunc-overload.html" >Function Overloading</A ></DT ><DT >35.6. <A HREF="xfunc-volatility.html" >Function Volatility Categories</A ></DT ><DT >35.7. <A HREF="xfunc-pl.html" >Procedural Language Functions</A ></DT ><DT >35.8. <A HREF="xfunc-internal.html" >Internal Functions</A ></DT ><DT >35.9. <A HREF="xfunc-c.html" >C-Language Functions</A ></DT ><DT >35.10. <A HREF="xaggr.html" >User-defined Aggregates</A ></DT ><DT >35.11. <A HREF="xtypes.html" >User-defined Types</A ></DT ><DT >35.12. <A HREF="xoper.html" >User-defined Operators</A ></DT ><DT >35.13. <A HREF="xoper-optimization.html" >Operator Optimization Information</A ></DT ><DT >35.14. <A HREF="xindex.html" >Interfacing Extensions To Indexes</A ></DT ><DT >35.15. <A HREF="extend-extensions.html" >Packaging Related Objects into an Extension</A ></DT ><DT >35.16. <A HREF="extend-pgxs.html" >Extension Building Infrastructure</A ></DT ></DL ></DD ><DT >36. <A HREF="triggers.html" >Triggers</A ></DT ><DD ><DL ><DT >36.1. <A HREF="trigger-definition.html" >Overview of Trigger Behavior</A ></DT ><DT >36.2. <A HREF="trigger-datachanges.html" >Visibility of Data Changes</A ></DT ><DT >36.3. <A HREF="trigger-interface.html" >Writing Trigger Functions in C</A ></DT ><DT >36.4. <A HREF="trigger-example.html" >A Complete Trigger Example</A ></DT ></DL ></DD ><DT >37. <A HREF="rules.html" >The Rule System</A ></DT ><DD ><DL ><DT >37.1. <A HREF="querytree.html" >The Query Tree</A ></DT ><DT >37.2. <A HREF="rules-views.html" >Views and the Rule System</A ></DT ><DT >37.3. <A HREF="rules-update.html" >Rules on <TT CLASS="COMMAND" >INSERT</TT >, <TT CLASS="COMMAND" >UPDATE</TT >, and <TT CLASS="COMMAND" >DELETE</TT ></A ></DT ><DT >37.4. <A HREF="rules-privileges.html" >Rules and Privileges</A ></DT ><DT >37.5. <A HREF="rules-status.html" >Rules and Command Status</A ></DT ><DT >37.6. <A HREF="rules-triggers.html" >Rules Versus Triggers</A ></DT ></DL ></DD ><DT >38. <A HREF="xplang.html" >Procedural Languages</A ></DT ><DD ><DL ><DT >38.1. <A HREF="xplang-install.html" >Installing Procedural Languages</A ></DT ></DL ></DD ><DT >39. <A HREF="plpgsql.html" ><SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN > - <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > Procedural Language</A ></DT ><DD ><DL ><DT >39.1. <A HREF="plpgsql-overview.html" >Overview</A ></DT ><DT >39.2. <A HREF="plpgsql-structure.html" >Structure of <SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN ></A ></DT ><DT >39.3. <A HREF="plpgsql-declarations.html" >Declarations</A ></DT ><DT >39.4. <A HREF="plpgsql-expressions.html" >Expressions</A ></DT ><DT >39.5. <A HREF="plpgsql-statements.html" >Basic Statements</A ></DT ><DT >39.6. <A HREF="plpgsql-control-structures.html" >Control Structures</A ></DT ><DT >39.7. <A HREF="plpgsql-cursors.html" >Cursors</A ></DT ><DT >39.8. <A HREF="plpgsql-errors-and-messages.html" >Errors and Messages</A ></DT ><DT >39.9. <A HREF="plpgsql-trigger.html" >Trigger Procedures</A ></DT ><DT >39.10. <A HREF="plpgsql-implementation.html" ><SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN > Under the Hood</A ></DT ><DT >39.11. <A HREF="plpgsql-development-tips.html" >Tips for Developing in <SPAN CLASS="APPLICATION" >PL/pgSQL</SPAN ></A ></DT ><DT >39.12. <A HREF="plpgsql-porting.html" >Porting from <SPAN CLASS="PRODUCTNAME" >Oracle</SPAN > PL/SQL</A ></DT ></DL ></DD ><DT >40. <A HREF="pltcl.html" >PL/Tcl - Tcl Procedural Language</A ></DT ><DD ><DL ><DT >40.1. <A HREF="pltcl-overview.html" >Overview</A ></DT ><DT >40.2. <A HREF="pltcl-functions.html" >PL/Tcl Functions and Arguments</A ></DT ><DT >40.3. <A HREF="pltcl-data.html" >Data Values in PL/Tcl</A ></DT ><DT >40.4. <A HREF="pltcl-global.html" >Global Data in PL/Tcl</A ></DT ><DT >40.5. <A HREF="pltcl-dbaccess.html" >Database Access from PL/Tcl</A ></DT ><DT >40.6. <A HREF="pltcl-trigger.html" >Trigger Procedures in PL/Tcl</A ></DT ><DT >40.7. <A HREF="pltcl-unknown.html" >Modules and the <CODE CLASS="FUNCTION" >unknown</CODE > Command</A ></DT ><DT >40.8. <A HREF="pltcl-procnames.html" >Tcl Procedure Names</A ></DT ></DL ></DD ><DT >41. <A HREF="plperl.html" >PL/Perl - Perl Procedural Language</A ></DT ><DD ><DL ><DT >41.1. <A HREF="plperl-funcs.html" >PL/Perl Functions and Arguments</A ></DT ><DT >41.2. <A HREF="plperl-data.html" >Data Values in PL/Perl</A ></DT ><DT >41.3. <A HREF="plperl-builtins.html" >Built-in Functions</A ></DT ><DT >41.4. <A HREF="plperl-global.html" >Global Values in PL/Perl</A ></DT ><DT >41.5. <A HREF="plperl-trusted.html" >Trusted and Untrusted PL/Perl</A ></DT ><DT >41.6. <A HREF="plperl-triggers.html" >PL/Perl Triggers</A ></DT ><DT >41.7. <A HREF="plperl-under-the-hood.html" >PL/Perl Under the Hood</A ></DT ></DL ></DD ><DT >42. <A HREF="plpython.html" >PL/Python - Python Procedural Language</A ></DT ><DD ><DL ><DT >42.1. <A HREF="plpython-python23.html" >Python 2 vs. Python 3</A ></DT ><DT >42.2. <A HREF="plpython-funcs.html" >PL/Python Functions</A ></DT ><DT >42.3. <A HREF="plpython-data.html" >Data Values</A ></DT ><DT >42.4. <A HREF="plpython-sharing.html" >Sharing Data</A ></DT ><DT >42.5. <A HREF="plpython-do.html" >Anonymous Code Blocks</A ></DT ><DT >42.6. <A HREF="plpython-trigger.html" >Trigger Functions</A ></DT ><DT >42.7. <A HREF="plpython-database.html" >Database Access</A ></DT ><DT >42.8. <A HREF="plpython-subtransaction.html" >Explicit Subtransactions</A ></DT ><DT >42.9. <A HREF="plpython-util.html" >Utility Functions</A ></DT ><DT >42.10. <A HREF="plpython-envar.html" >Environment Variables</A ></DT ></DL ></DD ><DT >43. <A HREF="spi.html" >Server Programming Interface</A ></DT ><DD ><DL ><DT >43.1. <A HREF="spi-interface.html" >Interface Functions</A ></DT ><DT >43.2. <A HREF="spi-interface-support.html" >Interface Support Functions</A ></DT ><DT >43.3. <A HREF="spi-memory.html" >Memory Management</A ></DT ><DT >43.4. <A HREF="spi-visibility.html" >Visibility of Data Changes</A ></DT ><DT >43.5. <A HREF="spi-examples.html" >Examples</A ></DT ></DL ></DD ></DL ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="infoschema-views.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="extend.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><TT CLASS="LITERAL" >views</TT ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Extending <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >