diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2003-09-01 23:01:49 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2003-09-01 23:01:49 +0000 |
commit | f10a9033bf308f9dde0aa77caad6503e233489d1 (patch) | |
tree | 48d66ac1e90894824e913377103dcfdc7516d52d | |
parent | 65c2d427fb7436c314259778cf56551412cde730 (diff) | |
download | postgresql-f10a9033bf308f9dde0aa77caad6503e233489d1.tar.gz postgresql-f10a9033bf308f9dde0aa77caad6503e233489d1.zip |
Clean up after pygresql removal: adjust/remove documentation and remove
unneeded configure work.
-rw-r--r-- | config/python.m4 | 20 | ||||
-rwxr-xr-x | configure | 12 | ||||
-rw-r--r-- | configure.in | 7 | ||||
-rw-r--r-- | doc/src/sgml/filelist.sgml | 3 | ||||
-rw-r--r-- | doc/src/sgml/installation.sgml | 28 | ||||
-rw-r--r-- | doc/src/sgml/postgres.sgml | 3 | ||||
-rw-r--r-- | doc/src/sgml/pygresql.sgml | 4450 | ||||
-rw-r--r-- | src/Makefile.global.in | 5 |
8 files changed, 14 insertions, 4514 deletions
diff --git a/config/python.m4 b/config/python.m4 index ce126419b77..ad06b3c980c 100644 --- a/config/python.m4 +++ b/config/python.m4 @@ -1,7 +1,7 @@ # # Autoconf macros for configuring the build of Python extension modules # -# $Header: /cvsroot/pgsql/config/python.m4,v 1.5 2002/09/04 22:54:18 petere Exp $ +# $Header: /cvsroot/pgsql/config/python.m4,v 1.6 2003/09/01 23:01:48 petere Exp $ # # PGAC_PATH_PYTHON @@ -26,19 +26,14 @@ python_version=`${PYTHON} -c "import sys; print sys.version[[:3]]"` python_prefix=`${PYTHON} -c "import sys; print sys.prefix"` python_execprefix=`${PYTHON} -c "import sys; print sys.exec_prefix"` python_configdir="${python_execprefix}/lib/python${python_version}/config" -python_moduledir="${python_prefix}/lib/python${python_version}/site-packages" -python_moduleexecdir="${python_execprefix}/lib/python${python_version}/site-packages" python_includespec="-I${python_prefix}/include/python${python_version}" if test "$python_prefix" != "$python_execprefix"; then python_includespec="-I${python_execprefix}/include/python${python_version} $python_includespec" fi -AC_SUBST(python_version)[]dnl AC_SUBST(python_prefix)[]dnl AC_SUBST(python_execprefix)[]dnl AC_SUBST(python_configdir)[]dnl -AC_SUBST(python_moduledir)[]dnl -AC_SUBST(python_moduleexecdir)[]dnl AC_SUBST(python_includespec)[]dnl # This should be enough of a message. if test "$python_prefix" != "$python_execprefix"; then @@ -49,19 +44,6 @@ fi ])# _PGAC_CHECK_PYTHON_DIRS -# PGAC_CHECK_PYTHON_MODULE_SETUP -# ------------------------------ -# Finds things required to build a Python extension module. -# This used to do more, that's why it's separate. -# -# It would be nice if we could check whether the current setup allows -# the build of the shared module. Future project. -AC_DEFUN([PGAC_CHECK_PYTHON_MODULE_SETUP], -[ - AC_REQUIRE([_PGAC_CHECK_PYTHON_DIRS]) -])# PGAC_CHECK_PYTHON_MODULE_SETUP - - # PGAC_CHECK_PYTHON_EMBED_SETUP # ----------------------------- # Courtesy of the INN 2.3.1 package... diff --git a/configure b/configure index 7271fb9735f..e63842f197f 100755 --- a/configure +++ b/configure @@ -860,7 +860,7 @@ Optional Packages: --with-tclconfig=DIR tclConfig.sh and tkConfig.sh are in DIR --with-tkconfig=DIR tkConfig.sh is in DIR --with-perl build Perl modules (PL/Perl) - --with-python build Python interface module + --with-python build Python modules (PL/Python) --with-java build JDBC interface and Java tools --with-krb4[=DIR] build with Kerberos 4 support [/usr/athena] --with-krb5[=DIR] build with Kerberos 5 support [/usr/athena] @@ -2981,7 +2981,7 @@ echo "${ECHO_T}$with_perl" >&6 # -# Optionally build Python interface module +# Optionally build Python modules (PL/Python) # echo "$as_me:$LINENO: checking whether to build Python modules" >&5 echo $ECHO_N "checking whether to build Python modules... $ECHO_C" >&6 @@ -4294,8 +4294,6 @@ python_version=`${PYTHON} -c "import sys; print sys.version[:3]"` python_prefix=`${PYTHON} -c "import sys; print sys.prefix"` python_execprefix=`${PYTHON} -c "import sys; print sys.exec_prefix"` python_configdir="${python_execprefix}/lib/python${python_version}/config" -python_moduledir="${python_prefix}/lib/python${python_version}/site-packages" -python_moduleexecdir="${python_execprefix}/lib/python${python_version}/site-packages" python_includespec="-I${python_prefix}/include/python${python_version}" if test "$python_prefix" != "$python_execprefix"; then python_includespec="-I${python_execprefix}/include/python${python_version} $python_includespec" @@ -4311,9 +4309,6 @@ echo "${ECHO_T}$python_prefix/lib/python${python_version}" >&6 fi - - - echo "$as_me:$LINENO: checking how to link an embedded Python application" >&5 echo $ECHO_N "checking how to link an embedded Python application... $ECHO_C" >&6 @@ -18285,12 +18280,9 @@ s,@perl_privlibexp@,$perl_privlibexp,;t t s,@perl_useshrplib@,$perl_useshrplib,;t t s,@perl_embed_ldflags@,$perl_embed_ldflags,;t t s,@PYTHON@,$PYTHON,;t t -s,@python_version@,$python_version,;t t s,@python_prefix@,$python_prefix,;t t s,@python_execprefix@,$python_execprefix,;t t s,@python_configdir@,$python_configdir,;t t -s,@python_moduledir@,$python_moduledir,;t t -s,@python_moduleexecdir@,$python_moduleexecdir,;t t s,@python_includespec@,$python_includespec,;t t s,@python_libspec@,$python_libspec,;t t s,@LIBOBJS@,$LIBOBJS,;t t diff --git a/configure.in b/configure.in index 5f960c5a5e1..55999cf8d6c 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Header: /cvsroot/pgsql/configure.in,v 1.282 2003/08/27 02:35:38 pgsql Exp $ +dnl $Header: /cvsroot/pgsql/configure.in,v 1.283 2003/09/01 23:01:49 petere Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -362,10 +362,10 @@ AC_MSG_RESULT([$with_perl]) AC_SUBST(with_perl) # -# Optionally build Python interface module +# Optionally build Python modules (PL/Python) # AC_MSG_CHECKING([whether to build Python modules]) -PGAC_ARG_BOOL(with, python, no, [ --with-python build Python interface module]) +PGAC_ARG_BOOL(with, python, no, [ --with-python build Python modules (PL/Python)]) AC_MSG_RESULT([$with_python]) AC_SUBST(with_python) @@ -608,7 +608,6 @@ fi if test "$with_python" = yes; then PGAC_PATH_PYTHON - PGAC_CHECK_PYTHON_MODULE_SETUP PGAC_CHECK_PYTHON_EMBED_SETUP fi diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 4ba2bd9e51a..d11804a063f 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -1,4 +1,4 @@ -<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.29 2003/05/18 20:55:56 petere Exp $ --> +<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.30 2003/09/01 23:01:49 petere Exp $ --> <!entity history SYSTEM "history.sgml"> <!entity info SYSTEM "info.sgml"> @@ -68,7 +68,6 @@ <!entity libpgeasy SYSTEM "libpgeasy.sgml"> <!entity libpq SYSTEM "libpq.sgml"> <!entity libpgtcl SYSTEM "libpgtcl.sgml"> -<!entity pygresql SYSTEM "pygresql.sgml"> <!entity lobj SYSTEM "lobj.sgml"> <!entity odbc SYSTEM "odbc.sgml"> <!entity rules SYSTEM "rules.sgml"> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 0c1926f949a..576207610fc 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -1,4 +1,4 @@ -<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.139 2003/08/31 17:32:19 petere Exp $ --> +<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.140 2003/09/01 23:01:49 petere Exp $ --> <chapter id="installation"> <title><![%standalone-include[<productname>PostgreSQL</>]]> @@ -169,10 +169,9 @@ su - postgres <listitem> <para> - To build the Python interface module or the PL/Python server - programming language, you need a Python installation, including - the header files. - Since PL/Python will be a shared library, the + To build the PL/Python server programming language, you need a + Python installation, including the header files. Since + PL/Python will be a shared library, the <indexterm><primary>libpython</primary></indexterm> <filename>libpython</filename> library must be a shared library also on most platforms. This is not the case in a default @@ -751,10 +750,7 @@ JAVACMD=$JAVA_HOME/bin/java <term><option>--with-python</option></term> <listitem> <para> - Build the Python interface module and the PL/Python - server-side language. You need to have root access to be able - to install the Python module at its default place - (<filename>/usr/lib/python<replaceable>x</>.<replaceable>y</></>). + Build the PL/Python server-side language. </para> </listitem> </varlistentry> @@ -1080,20 +1076,6 @@ All of PostgreSQL is successfully made. Ready to install. </para> <para> - If you built the Python interfaces and you were not the - root user when you executed the above command then that part of - the installation probably failed. In that case you should become - the root user and then do -<screen> -<userinput>gmake -C src/interfaces/python install</userinput> -</screen> - If you do not have root access you are on your own: - you can still take the required files and place them in - other directories where Python can find them, but how to - do that is left as an exercise. - </para> - - <para> The standard installation provides only the header files needed for client application development. If you plan to do any server-side program development (such as custom functions or data types written in C), diff --git a/doc/src/sgml/postgres.sgml b/doc/src/sgml/postgres.sgml index cca78b63977..4c1188c5009 100644 --- a/doc/src/sgml/postgres.sgml +++ b/doc/src/sgml/postgres.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.53 2003/06/22 16:16:44 tgl Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.54 2003/09/01 23:01:49 petere Exp $ --> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ @@ -188,7 +188,6 @@ $Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.53 2003/06/22 16:16:44 tg &libpgtcl; &ecpg; &jdbc; - &pygresql; &infoschema; </part> diff --git a/doc/src/sgml/pygresql.sgml b/doc/src/sgml/pygresql.sgml deleted file mode 100644 index 391e8334eac..00000000000 --- a/doc/src/sgml/pygresql.sgml +++ /dev/null @@ -1,4450 +0,0 @@ -<!-- $Header: /cvsroot/pgsql/doc/src/sgml/Attic/pygresql.sgml,v 1.10 2003/04/07 01:29:25 petere Exp $ --> - -<chapter id="pygresql"> - <title><application>PyGreSQL</application> - <application>Python</application> Interface</title> - - <note> - <title>Author</title> - <para> - Written by D'Arcy J.M. Cain (<email>darcy@druid.net</email>). - Based heavily on code written by Pascal Andre - <email>andre@chimay.via.ecp.fr</email>. Copyright © 1995, - Pascal Andre. Further modifications Copyright © 1997-2000 by - D'Arcy J.M. Cain. - </para> - </note> - - -<![IGNORE[ - <sect1 id="pygresql-install"> - <title>Installation</title> - - <itemizedlist> - <listitem> - <para> - Note that if you are using the <acronym>DB-API</acronym> module - you must also install <literal>mxDateTime</literal> from <ulink - url="http://starship.python.net/~lemburg/mxDateTime.html" - >http://starship.python.net/~lemburg/mxDateTime.html</ulink>. - </para> - </listitem> - - <listitem> - <para> - Also, check out <filename>setup.py</filename> for an alternate - method of installing the package using <application>Python</application>'s Distutils. - </para> - </listitem> - </itemizedlist> - - <para> - You have two options. You can compile - <application>PyGreSQL</application> as a stand-alone module or you - can build it into the <application>Python</application> - interpreter. - </para> - - <sect2> - <title>General</title> - - <itemizedlist> - <listitem> - <para> - You must first have installed <application>Python</application> - and <productname>PostgreSQL</productname> on your system. The - header files and developer's libraries for both - <application>Python</application> and - <productname>PostgreSQL</productname> must be installed on your - system before you can build <application>PyGreSQL</application>. - If you built both <application>Python</application> and - <productname>PostgreSQL</productname> from source, you should be - fine. If your system uses some package mechanism (such as - <acronym>RPM</acronym> or <systemitem class="osname">NetBSD</systemitem> packages), - then you probably need to install packages such as - <application>Python-devel</application> in addition to the - <application>Python</application> package. - </para> - </listitem> - - <listitem> - <para> - <application>PyGreSQL</application> is implemented as three - parts, a C module labeled <literal>_pg</literal> and two - <application>Python</application> wrappers called - <filename>pg.py</filename> and <filename>pgdb.py</filename>. - This changed between 2.1 and 2.2 and again in 3.0. These - changes should not affect any existing programs but the - installation is slightly different. - </para> - </listitem> - - <listitem> - <para> - Download and unpack the <application>PyGreSQL</application> - tarball if you haven't already done so. - </para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Stand-alone</title> - - <itemizedlist> - <listitem> - <para> - In the directory containing <filename>pgmodule.c</filename>, run - the following command - -<programlisting> -cc -fpic -shared -o _pg.so -I[pyInc] -I[pgInc] -L[pgLib] -lpq pgmodule.c -</programlisting> - - where: - <itemizedlist> - <listitem> - <para> - [pyInc] = path of the <application>Python</application> - include (usually <filename>Python.h</filename>) - </para> - </listitem> - - <listitem> - <para> - [pgInc] = path of the <productname>PostgreSQL</productname> - include (usually <filename>postgres.h</filename>) - </para> - </listitem> - - <listitem> - <para> - [pgLib] = path of the <productname>PostgreSQL</productname> - libraries (usually <filename>libpq.so</filename> or - <filename>libpq.a</filename>) - </para> - </listitem> - </itemizedlist> - - Some options may be added to this line: - <itemizedlist> - <listitem> - <para> - <option>-DNO_DEF_VAR</option> - no default variables - support - </para> - </listitem> - - <listitem> - <para> - <option>-DNO_DIRECT</option> - no direct access methods - </para> - </listitem> - - <listitem> - <para> - <option>-DNO_LARGE</option> - no large object support - </para> - </listitem> - - <listitem> - <para> - <option>-DNO_SNPRINTF</option> - if running a system with - no snprintf call - </para> - </listitem> - - <listitem> - <para> - <option>-DNO_PQSOCKET</option> - if running an older - <productname>PostgreSQL</productname> - </para> - </listitem> - </itemizedlist> - - On some systems you may need to include - <option>-lcrypt</option> in the list of libraries to make it - compile. - - Define <option>DNO_PQSOCKET</option> if you are using a - version of <productname>PostgreSQL</productname> before 6.4 that - does not have the <function>PQsocket</function> function. The - other options will be described in the next sections. - </para> - </listitem> - <listitem> - - <para> - Test the new module. Something like the following should work. -<screen> -<prompt>$</prompt> <userinput>python</userinput> - -<prompt>>>></prompt> <userinput>import _pg</userinput> -<prompt>>>></prompt> <userinput>db = _pg.connect('thilo', 'localhost')</userinput> -<prompt>>>></prompt> <userinput>db.query("INSERT INTO test VALUES ('ping', 'pong');")</userinput> -18304 -<prompt>>>></prompt> <userinput>db.query("SELECT * FROM test;")</userinput> - eins | zwei -------+------ - ping | pong -(1 row) -</screen> - </para> - </listitem> - <listitem> - <para> - Finally, move the <filename>_pg.so</filename>, - <filename>pg.py</filename>, and <filename>pgdb.py</filename> - to a directory in your <envar>PYTHONPATH</envar>. - A good place would be - <filename>/usr/lib/python1.5/site-python</filename> - if your <application>Python</application> modules are in - <filename>/usr/lib/python1.5</filename>. - </para> - </listitem> - </itemizedlist> - </sect2> - - - <sect2> - <title>Built-in to python interpreter</title> - - <itemizedlist> - <listitem> - <para> - Find the directory where your <filename>Setup</filename> - file lives (usually <filename>??/Modules</filename>) in - the <application>Python</application> source hierarchy and - copy or symlink the <filename>pgmodule.c</filename> file there. - </para> - </listitem> - <listitem> - <para> - Add the following line to your <filename>Setup</> file -<programlisting> -_pg pgmodule.c -I[pgInc] -L[pgLib] -lpq # -lcrypt # needed on some systems -</programlisting> - where: - <itemizedlist> - <listitem> - <para> - [pgInc] = path of the <productname>PostgreSQL</productname> - include (usually <filename>postgres.h</filename>) - </para> - </listitem> - <listitem> - <para> - [pgLib] = path of the <productname>PostgreSQL</productname> - libraries (usually <filename>libpq.so</filename> - or <filename>libpq.a</filename>) - </para> - </listitem> - </itemizedlist> - Some options may be added to this line: - <itemizedlist> - <listitem> - <para> - <option>-DNO_DEF_VAR</option> - no default variables - support - </para> - </listitem> - <listitem> - <para> - <option>-DNO_DIRECT</option> - no direct access methods - </para> - </listitem> - <listitem> - <para> - <option>-DNO_LARGE</option> - no large object support - </para> - </listitem> - <listitem> - <para> - <option>-DNO_SNPRINTF</option> - if running a system with - no snprintf call - </para> - </listitem> - <listitem> - <para> - <option>-DNO_PQSOCKET</option> - if running an older - <productname>PostgreSQL</productname> - </para> - </listitem> - </itemizedlist> - - Define <option>-DNO_PQSOCKET</option> if you are using a version of - <productname>PostgreSQL</productname> before 6.4 - that does not have the <function>PQsocket</function> function. - The other options will be described in the next sections. - </para> - </listitem> - <listitem> - <para> - If you want a shared module, make sure that the - <literal>*shared*</literal> key word is uncommented and - add the above line below it. You used to need to install - your shared modules with <literal>make sharedinstall</> but this no - longer seems to be true. - </para> - </listitem> - <listitem> - <para> - Copy <filename>pg.py</filename> to the lib directory where - the rest of your modules are. For example, that's - <filename>/usr/local/lib/Python</filename> on my system. - </para> - </listitem> - <listitem> - <para> - Rebuild <application>Python</application> from the root - directory of the <application>Python</application> source - hierarchy by running -<programlisting> -make -f Makefile.pre.in boot -make && make install -</programlisting> - </para> - </listitem> - <listitem> - <para> - For more details read the documentation at the top of - <filename>Makefile.pre.in</filename> - </para> - </listitem> - </itemizedlist> - </sect2> - - </sect1> - -]]> - - <para> - You may either choose to use the old mature interface provided by - the <literal>pg</literal> module or otherwise the newer - <literal>pgdb</literal> interface compliant with the <ulink - url="http://www.python.org/topics/database/DatabaseAPI-2.0.html" - ><acronym>DB-API 2.0</acronym></ulink> specification developed by - the <application>Python</application> <acronym>DB-SIG</acronym>. - </para> - - <para> - Here we describe only the older <literal>pg</literal> - <acronym>API</acronym>. As long as - <application>PyGreSQL</application> does not contain a description - of the <acronym>DB-API</acronym> you should read about the - <acronym>API</acronym> at <ulink - url="http://www.python.org/topics/database/DatabaseAPI-2.0.html" - >http://www.python.org/topics/database/DatabaseAPI-2.0.html</ulink>. - A tutorial-like introduction to the <acronym>DB-API</acronym> can be - found at <ulink - url="http://www2.linuxjournal.com/lj-issues/issue49/2605.html" - >http://www2.linuxjournal.com/lj-issues/issue49/2605.html</ulink>. - </para> - - <sect1 id="pygresql-pg"> - <title>The <literal>pg</literal> Module</title> - - <para> - The <literal>pg</literal> module defines three objects: - <itemizedlist> - <listitem> - <para> - <classname>pgobject</classname>, which handles the connection and all the - requests to the database, - </para> - </listitem> - - <listitem> - <para> - <classname>pglargeobject</classname>, which handles all the accesses - to <productname>PostgreSQL</productname> large objects, and - </para> - </listitem> - - <listitem> - <para> - <classname>pgqueryobject</classname>, which handles query results. - </para> - </listitem> - </itemizedlist> - </para> - - <para> - If you want to see a simple example of the use this module, - see <ulink url="http://www.druid.net/rides"></ulink> where you can find a link at the - bottom to the actual <application>Python</application> code for the - page. - </para> - - <sect2> - <title>Constants</title> - - <para> - Some constants are defined in the <literal>pg</literal> module - dictionary. They are intended to be used as a parameters for - methods calls. You should refer to the <application>libpq</application> - description (<xref linkend="libpq">) for more information about - them. These constants are: - - <variablelist> - <varlistentry> - <term><varname>INV_READ</varname></term> - <term><varname>INV_WRITE</varname></term> - <listitem> - <para> - Large objects access modes, used by - <function>(pgobject.)locreate</function> and - <function>(pglarge.)open</function> - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><varname>SEEK_SET</varname></term> - <term><varname>SEEK_CUR</varname></term> - <term><varname>SEEK_END</varname></term> - <listitem> - <para> - Positional flags, used by <function>(pglarge.)seek</function> - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><varname>version</varname></term> - <term><varname>__version__</varname></term> - <listitem> - <para> - Constants that give the current version - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - </sect2> - </sect1> - - - <sect1 id="pygresql-pg-functions"> - <title><literal>pg</literal> Module Functions</title> - - <para> - <literal>pg</literal> module defines only a few methods that allow - to connect to a database and to define <quote>default - variables</quote> that override the environment variables used by - <productname>PostgreSQL</productname>. - </para> - - <para> - These <quote>default variables</quote> were designed to allow you - to handle general connection parameters without heavy code in your - programs. You can prompt the user for a value, put it in the - default variable, and forget it, without having to modify your - environment. The support for default variables can be disabled at build time by - setting the <option>-DNO_DEF_VAR</option> option in the Python - <filename>Setup</> file. Methods relative to this are specified by the tag [DV]. - </para> - - <para> - All default values are set to <symbol>None</symbol> at module - initialization, specifying that standard environment variables - should be used. - </para> - - <refentry id="pygresql-connect"> - <refmeta> - <refentrytitle>connect</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - - <refnamediv> - <refname>connect</refname> - <refpurpose>open a connection to the database server</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -connect(<optional><parameter>dbname</parameter></optional>, <optional><parameter>host</parameter></optional>, <optional><parameter>port</parameter></optional>, <optional><parameter>opt</parameter></optional>, <optional><parameter>tty</parameter></optional>, <optional><parameter>user</parameter></optional>, <optional><parameter>passwd</parameter></optional>) -</synopsis> - - <refsect2 id="pygresql-connect-parameters"> - <title>Parameters</title> - - <variablelist> - <varlistentry> - <term><parameter>dbname</parameter></term> - - <listitem> - <para>Name of connected database (string/<symbol>None</>)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>host</parameter></term> - - <listitem> - <para>Name of the server host (string/<symbol>None</>)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>port</parameter></term> - - <listitem> - <para>Port used by the database server (integer/-1)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>opt</parameter></term> - - <listitem> - <para> - Options for the server (string/<symbol>None</>) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>tty</parameter></term> - - <listitem> - <para> - File or TTY for optional debug output from server - (string/<symbol>None</>) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>user</parameter></term> - - <listitem> - <para> - <productname>PostgreSQL</productname> user (string/<symbol>None</>) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><parameter>passwd</parameter></term> - - <listitem> - <para>Password for user (string/<symbol>None</>)</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="pygresql-connect-return"> - <title>Return Type</title> - - <variablelist> - <varlistentry> - <term><parameter>pgobject</parameter></term> - - <listitem> - <para> - If successful, an object handling a database connection is returned. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="pygresql-connect-exceptions"> - <title>Exceptions</title> - - <variablelist> - <varlistentry> - <term><classname>TypeError</classname></term> - - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><classname>SyntaxError</classname></term> - - <listitem> - <para> - Duplicate argument definition. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><classname>pg.error</classname></term> - - <listitem> - <para> - Some error occurred during <literal>pg</> connection definition. - </para> - </listitem> - </varlistentry> - </variablelist> - - <para> - (plus all exceptions relative to object allocation) - </para> - </refsect2> - </refsynopsisdiv> - - <refsect1 id="pygresql-connect-description"> - <title>Description</title> - - <para> - This method opens a connection to a specified database on a given - <productname>PostgreSQL</productname> server. The arguments can be - given using key words here. The names of the - key words are the name of the parameters given in the syntax - line. For a precise description of the parameters, please refer - to <xref linkend="libpq">. - </para> - </refsect1> - - <refsect1 id="pygresql-connect-examples"> - <title>Examples</title> - - <para> -<programlisting> -import pg - -con1 = pg.connect('testdb', 'myhost', 5432, None, None, 'bob', None) -con2 = pg.connect(dbname='testdb', host='localhost', user='bob') -</programlisting> - </para> - </refsect1> - - </refentry> - - - <refentry id="pygresql-get-defhost"> - <refmeta> - <refentrytitle>get_defhost</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - - <refnamediv> - <refname>get_defhost</refname> - <refpurpose>get default host name [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_defhost() -</synopsis> - - <refsect2 id="pygresql-get-defhost-parameters"> - <title>Parameters</title> - - <para> - none - </para> - </refsect2> - - <refsect2 id="pygresql-get-defhost-return"> - <title>Return Type</title> - - <variablelist> - <varlistentry> - <term>string or <symbol>None</></term> - - <listitem> - <para> - Default host specification - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="pygresql-get-defhost-exceptions"> - <title>Exceptions</title> - - <variablelist> - <varlistentry> - <term><classname>SyntaxError</classname></term> - - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="pygresql-get-defhost-description"> - <title>Description</title> - - <para> - <function>get_defhost()</function> returns the current default - host specification, or <symbol>None</> if the environment variables should - be used. Environment variables will not be looked up. - </para> - </refsect1> - - </refentry> - - - <refentry id="pygresql-set-defhost"> - <refmeta> - <refentrytitle>set_defhost</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - - <refnamediv> - <refname>set_defhost</refname> - <refpurpose>set default host name [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -set_defhost(<parameter>host</parameter>) -</synopsis> - - <refsect2 id="pygresql-set-defhost-parameters"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>host</parameter> - </term> - <listitem> - <para>New default host (string/<symbol>None</>).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="pygresql-set-defhost-return"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</> - </term> - <listitem> - <para> - Previous default host specification. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="pygresql-set-defhost-exceptions"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="pygresql-set-defhost-description"> - <title>Description</title> - <para> - <function>set_defhost()</function> sets the default host value - for new connections. If <symbol>None</symbol> is supplied as parameter, environment - variables will be used in future connections. It returns the - previous setting for default host. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="pygresql-get-defport"> - <refmeta> - <refentrytitle>get_defport</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_defport</refname> - <refpurpose>get default port [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_defport() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GET-DEFPORT-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFPORT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer or <symbol>None</symbol> - </term> - <listitem> - <para> - Default port specification - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFPORT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GET-DEFPORT-1"> - <title>Description</title> - <para> - <function>get_defport()</function> returns the current default - port specification, or <symbol>None</symbol> if the environment variables should - be used. Environment variables will not be looked up. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-SET-DEFPORT"> - <refmeta> - <refentrytitle>set_defport</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>set_defport</refname> - <refpurpose>set default port [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -set_defport(<parameter>port</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-SET-DEFPORT-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>port</parameter> - </term> - <listitem> - <para>New default host (integer/-1).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFPORT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer or <symbol>None</symbol> - </term> - <listitem> - <para> - Previous default port specification. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFPORT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-SET-DEFPORT-1"> - <title>Description</title> - <para> - <function>set_defport()</function> sets the default port value - for new connections. If -1 is supplied as parameter, environment - variables will be used in future connections. It returns the - previous setting for default port. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GET-DEFOPT"> - <refmeta> - <refentrytitle>get_defopt</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_defopt</refname> - <refpurpose>get default options specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_defopt() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GET-DEFOPT-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFOPT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Default options specification - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFOPT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GET-DEFOPT-1"> - <title>Description</title> - <para> - <function>get_defopt()</function> returns the current default - connection options specification, or <symbol>None</symbol> if the environment variables should - be used. Environment variables will not be looked up. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-SET-DEFOPT"> - <refmeta> - <refentrytitle>set_defopt</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>set_defopt</refname> - <refpurpose>set default options specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -set_defopt(<parameter>options</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-SET-DEFOPT-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>options</parameter> - </term> - <listitem> - <para>New default connection options (string/<symbol>None</symbol>).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFOPT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Previous default opt specification. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFOPT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-SET-DEFOPT-1"> - <title>Description</title> - <para> - <function>set_defopt()</function> sets the default connection options value - for new connections. If <symbol>None</symbol> is supplied as parameter, environment - variables will be used in future connections. It returns the - previous setting for default options. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GET-DEFTTY"> - <refmeta> - <refentrytitle>get_deftty</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_deftty</refname> - <refpurpose>get default connection debug terminal specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_deftty() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GET-DEFTTY-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFTTY-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Default debug terminal specification - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFTTY-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GET-DEFTTY-1"> - <title>Description</title> - <para> - <function>get_deftty()</function> returns the current default - debug terminal specification, or <symbol>None</symbol> if the environment variables should - be used. Environment variables will not be looked up. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-SET-DEFTTY"> - <refmeta> - <refentrytitle>set_deftty</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>set_deftty</refname> - <refpurpose>set default connection debug terminal specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -set_deftty(<parameter>terminal</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-SET-DEFTTY-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>terminal</parameter> - </term> - <listitem> - <para>New default debug terminal (string/<symbol>None</symbol>).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFTTY-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Previous default debug terminal specification. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFTTY-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-SET-DEFTTY-1"> - <title>Description</title> - <para> - <function>set_deftty()</function> sets the default terminal value - for new connections. If <symbol>None</symbol> is supplied as parameter, environment - variables will be used in future connections. It returns the - previous setting for default terminal. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GET-DEFBASE"> - <refmeta> - <refentrytitle>get_defbase</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_defbase</refname> - <refpurpose>get default database name specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_defbase() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GET-DEFBASE-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFBASE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Default debug database name specification - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GET-DEFBASE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GET-DEFBASE-1"> - <title>Description</title> - <para> - <function>get_defbase()</function> returns the current default - database name specification, or <symbol>None</symbol> if the environment variables should - be used. Environment variables will not be looked up. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-SET-DEFBASE"> - <refmeta> - <refentrytitle>set_defbase</refentrytitle> - <refmiscinfo>PYGRESQL - Connection Management</refmiscinfo> - </refmeta> - <refnamediv> - <refname>set_defbase</refname> - <refpurpose>set default database name specification [DV]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -set_defbase(<parameter>database</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-SET-DEFBASE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>database</parameter> - </term> - <listitem> - <para>New default database name (string/<symbol>None</symbol>).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFBASE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string or <symbol>None</symbol> - </term> - <listitem> - <para> - Previous default database name specification. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-SET-DEFBASE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-SET-DEFBASE-1"> - <title>Description</title> - <para> - <function>set_defbase()</function> sets the default database name - for new connections. If <symbol>None</symbol> is supplied as parameter, environment - variables will be used in future connections. It returns the - previous setting for default database name. - </para> - </refsect1> - - </refentry> - - </sect1> - - - <sect1 id="pygresql-pg-pgobject"> - <title>Connection Object: <classname>pgobject</classname></title> - - <para> - This object handles a connection to the - <productname>PostgreSQL</productname> database. It embeds and - hides all the parameters that define this connection, leaving just - really significant parameters in function calls. - </para> - - <para> - Some methods give direct access to the connection socket. They are - specified by the tag [DA]. <emphasis>Do not use them unless you - really know what you are doing.</emphasis> If you prefer disabling - them, set the <option>-DNO_DIRECT</option> option in the - <application>Python</application> <filename>Setup</filename> file. - </para> - - <para> - Some other methods give access to large objects. if you want to - forbid access to these from the module, set the - <option>-DNO_LARGE</option> option in the - <application>Python</application> <filename>Setup</filename> file. - These methods are specified by the tag [LO]. - </para> - - <para> - Every <classname>pgobject</classname> defines a set of read-only - attributes that describe the connection and its status. These - attributes are: - - <variablelist> - <varlistentry> - <term>host</term> - <listitem> - <para> - the host name of the server (string) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>port</term> - <listitem> - <para> - the port of the server (integer) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>db</term> - <listitem> - <para> - the selected database (string) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>options</term> - <listitem> - <para> - the connection options (string) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tty</term> - <listitem> - <para> - the connection debug terminal (string) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>user</term> - <listitem> - <para> - user name on the database system (string) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>status</term> - <listitem> - <para> - the status of the connection (integer: 1 - OK, 0 - bad) - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term>error</term> - <listitem> - <para> - the last warning/error message from the server (string) - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - - - <refentry id="PYGRESQL-QUERY"> - <refmeta> - <refentrytitle>query</refentrytitle> - <refmiscinfo>PYGRESQL - Query</refmiscinfo> - </refmeta> - <refnamediv> - <refname>query</refname> - <refpurpose>execute a SQL command</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -query(<parameter>command</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-QUERY-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>command</parameter> - </term> - <listitem> - <para>SQL command (string).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-QUERY-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - <classname>pgqueryobject</> or <symbol>None</symbol> - </term> - <listitem> - <para> - Result values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-QUERY-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>ValueError</classname> - </term> - <listitem> - <para> - Empty SQL query. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Error during query processing, or invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-QUERY-1"> - <title>Description</title> - <para> - <function>query()</function> method sends a <acronym>SQL</acronym> - query to the database. If the query is an insert statement, the return - value is the <acronym>OID</acronym> of the newly inserted row. - If it is otherwise a query that does not return a result - (i.e., is not a some kind of <literal>SELECT</literal> statement), it returns <symbol>None</symbol>. - Otherwise, it returns a <classname>pgqueryobject</classname> that can be accessed via the - <function>getresult()</function> or <function>dictresult()</function> - methods or simply printed. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-RESET"> - <refmeta> - <refentrytitle>reset</refentrytitle> - <refmiscinfo>PYGRESQL - Reset</refmiscinfo> - </refmeta> - <refnamediv> - <refname>reset</refname> - <refpurpose>reset the connection</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -reset() -</synopsis> - - <refsect2 id="R2-PYGRESQL-RESET-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-RESET-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-RESET-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Too many (any) arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-RESET-1"> - <title>Description</title> - <para> - <function>reset()</function> method resets the current database. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-CLOSE"> - <refmeta> - <refentrytitle>close</refentrytitle> - <refmiscinfo>PYGRESQL - Close</refmiscinfo> - </refmeta> - <refnamediv> - <refname>close</refname> - <refpurpose>close the database connection</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -close() -</synopsis> - - <refsect2 id="R2-PYGRESQL-CLOSE-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-CLOSE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-CLOSE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Too many (any) arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-CLOSE-1"> - <title>Description</title> - <para> - <function>close()</function> method closes the database connection. - The connection will be closed in any case when the connection is deleted but this - allows you to explicitly close it. It is mainly here to allow - the DB-SIG API wrapper to implement a close function. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-FILENO"> - <refmeta> - <refentrytitle>fileno</refentrytitle> - <refmiscinfo>PYGRESQL - Fileno</refmiscinfo> - </refmeta> - <refnamediv> - <refname>fileno</refname> - <refpurpose>return the socket used to connect to the database</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -fileno() -</synopsis> - - <refsect2 id="R2-PYGRESQL-FILENO-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-FILENO-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - socket id - </term> - <listitem> - <para> - The underlying socket id used to connect to the database. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-FILENO-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Too many (any) arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-FILENO-1"> - <title>Description</title> - <para> - <function>fileno()</function> method returns the underlying socket id used to connect - to the database. This is useful for use in <function>select</function> calls, etc. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GETNOTIFY"> - <refmeta> - <refentrytitle>getnotify</refentrytitle> - <refmiscinfo>PYGRESQL - Getnotify</refmiscinfo> - </refmeta> - <refnamediv> - <refname>getnotify</refname> - <refpurpose>get the last notify from the server</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -getnotify() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GETNOTIFY-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETNOTIFY-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - tuple, <symbol>None</symbol> - </term> - <listitem> - <para> - Last notify from server - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETNOTIFY-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Too many (any) arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GETNOTIFY-1"> - <title>Description</title> - <para> - <function>getnotify()</function> method tries to get a notify from - the server (from the SQL statement <literal>NOTIFY</literal>). - If the server returns no notify, the methods returns <symbol>None</symbol>. - Otherwise, it returns a tuple (couple) <literal>(relname, pid)</literal>, - where <literal>relname</literal> is the name of the notify and <literal>pid</literal> - the process id of the connection that triggered the notify. - Remember to do a listen query first otherwise <function>getnotify</> will always return <symbol>None</symbol>. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-INSERTTABLE"> - <refmeta> - <refentrytitle>inserttable</refentrytitle> - <refmiscinfo>PYGRESQL - Inserttable</refmiscinfo> - </refmeta> - <refnamediv> - <refname>inserttable</refname> - <refpurpose>insert a list into a table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -inserttable(<parameter>table</parameter>, <parameter>values</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-INSERTTABLE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para>The table name (string).</para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>values</parameter> - </term> - <listitem> - <para>The list of rows values to insert (list).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-INSERTTABLE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-INSERTTABLE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many (any) arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-INSERTTABLE-1"> - <title>Description</title> - <para> - <function>inserttable()</function> method allows to quickly - insert large blocks of data in a table: it inserts the whole - values list into the given table. The list is a list of - tuples/lists that define the values for each inserted row. The - rows values may contain string, integer, long or double (real) - values. <emphasis>Be very careful:</emphasis> this method - does not type-check the fields according to the table - definition; it just look whether or not it knows how to handle - such types. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PUTLINE"> - <refmeta> - <refentrytitle>putline</refentrytitle> - <refmiscinfo>PYGRESQL - Putline</refmiscinfo> - </refmeta> - <refnamediv> - <refname>putline</refname> - <refpurpose>write a line to the server socket [DA]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -putline(<parameter>line</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PUTLINE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>line</parameter> - </term> - <listitem> - <para>Line to be written (string).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PUTLINE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PUTLINE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many (any) arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PUTLINE-1"> - <title>Description</title> - <para> - <function>putline()</function> method allows to directly write a string to the server socket. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GETLINE"> - <refmeta> - <refentrytitle>getline</refentrytitle> - <refmiscinfo>PYGRESQL - Getline</refmiscinfo> - </refmeta> - <refnamediv> - <refname>getline</refname> - <refpurpose>get a line from server socket [DA]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -getline() -</synopsis> - - <refsect2 id="R2-PYGRESQL-GETLINE-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETLINE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string - </term> - <listitem> - <para> - The line read. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETLINE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many (any) arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GETLINE-1"> - <title>Description</title> - <para> - <function>getline()</function> method allows to directly read a string from the server socket. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-ENDCOPY"> - <refmeta> - <refentrytitle>endcopy</refentrytitle> - <refmiscinfo>PYGRESQL - Endcopy</refmiscinfo> - </refmeta> - <refnamediv> - <refname>endcopy</refname> - <refpurpose>synchronize client and server [DA]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -endcopy() -</synopsis> - - <refsect2 id="R2-PYGRESQL-ENDCOPY-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-ENDCOPY-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-ENDCOPY-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many (any) arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-ENDCOPY-1"> - <title>Description</title> - <para> - The use of direct access methods may desynchronize client and server. This - method ensure that client and server will be synchronized. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-LOCREATE"> - <refmeta> - <refentrytitle>locreate</refentrytitle> - <refmiscinfo>PYGRESQL - Locreate</refmiscinfo> - </refmeta> - <refnamediv> - <refname>locreate</refname> - <refpurpose>create a large object in the database [LO]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -locreate(<parameter>mode</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-LOCREATE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>mode</parameter> - </term> - <listitem> - <para>Large object create mode.</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-LOCREATE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - <classname>pglarge</> - </term> - <listitem> - <para> - Object handling the <productname>PostgreSQL</productname> large object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-LOCREATE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection, or creation error. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-LOCREATE-1"> - <title>Description</title> - <para> - <function>locreate()</function> method creates a large object in the database. - The mode can be defined by OR-ing the constants defined in the pg module - (<literal>INV_READ</literal> and <literal>INV_WRITE</literal>). - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-GETLO"> - <refmeta> - <refentrytitle>getlo</refentrytitle> - <refmiscinfo>PYGRESQL - Getlo</refmiscinfo> - </refmeta> - <refnamediv> - <refname>getlo</refname> - <refpurpose>build a large object from given OID [LO]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -getlo(<parameter>oid</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-GETLO-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>oid</parameter> - </term> - <listitem> - <para>OID of the existing large object (integer).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETLO-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - <classname>pglarge</> - </term> - <listitem> - <para> - Object handling the <productname>PostgreSQL</productname> large object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-GETLO-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-GETLO-1"> - <title>Description</title> - <para> - <function>getlo()</function> method allows to reuse a formerly - created large object through the <classname>pglarge</classname> interface, providing - the user has its OID. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-LOIMPORT"> - <refmeta> - <refentrytitle>loimport</refentrytitle> - <refmiscinfo>PYGRESQL - Loimport</refmiscinfo> - </refmeta> - <refnamediv> - <refname>loimport</refname> - <refpurpose>import a file to a <productname>PostgreSQL</productname> large object [LO]</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -loimport(<parameter>filename</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-LOIMPORT-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>filename</parameter> - </term> - <listitem> - <para>The name of the file to be imported (string).</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-LOIMPORT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - <classname>pglarge</> - </term> - <listitem> - <para> - Object handling the <productname>PostgreSQL</productname> large object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-LOIMPORT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection, or error during file import. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-LOIMPORT-1"> - <title>Description</title> - <para> - <function>loimport()</function> method allows to create large objects - in a very simple way. You just give the name of a file containing the - data to be use. - </para> - </refsect1> - - </refentry> - - </sect1> - - - <sect1 id="pygresql-pg-DB"> - <title>Database Wrapper Class: <classname>DB</classname></title> - - <para> - The <literal>pg</literal> module contains a class called - <classname>DB</classname> wrapping a <classname>pgobject</classname>. - This <classname>pgobject</classname> can be addressed as a - <classname>DB</classname> class member named <varname>db</varname> - to get access to the read-only attributes of the corresponding connection - (e.g. <varname>db.error</varname>). All <classname>pgobject</classname> - methods (e.g. <function>query()</function>) are directly included as members - in the class <classname>DB</classname> also. A number of additional - higher level <classname>DB</classname> class methods are described below. - The preferred way to use this module is as follows (see description of the - initialization method below): - -<programlisting> -import pg - -db = pg.DB(...) - -for r in db.query( - "SELECT foo,bar - FROM foo_bar_table - WHERE foo !~ bar" - ).dictresult(): - - print '%(foo)s %(bar)s' % r -</programlisting> - - The following describes the methods and variables of this class. - </para> - - <para> - The <classname>DB</classname> class is initialized with the same - arguments as the <function>pg.connect</function> method. It also - initializes a few internal variables. The statement <literal>db = - DB()</literal> will open the local database with the name of the - user just like <function>pg.connect()</function> does. - </para> - - <refentry id="PYGRESQL-DB-PKEY"> - <refmeta> - <refentrytitle>pkey</refentrytitle> - <refmiscinfo>PYGRESQL - Pkey</refmiscinfo> - </refmeta> - <refnamediv> - <refname>pkey</refname> - <refpurpose>return the primary key of a table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -pkey(<parameter>table</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-PKEY-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - name of table. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-PKEY-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string - </term> - <listitem> - <para> - Name of field which is the primary key of the table. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-PKEY-1"> - <title>Description</title> - <para> - <function>pkey()</function> method returns the primary key - of a table. Note that this raises an exception if the table - does not have a primary key. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-GET-DATABASES"> - <refmeta> - <refentrytitle>get_databases</refentrytitle> - <refmiscinfo>PYGRESQL - Get_databases</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_databases</refname> - <refpurpose>get list of databases in the system</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_databases() -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-GET-DATABASES-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-GET-DATABASES-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - list - </term> - <listitem> - <para> - List of databases in the system. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-GET-DATABASES-1"> - <title>Description</title> - <para> - Although you can do this with a simple select, - it is added here for convenience - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-GET-TABLES"> - <refmeta> - <refentrytitle>get_tables</refentrytitle> - <refmiscinfo>PYGRESQL - get_tables</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_tables</refname> - <refpurpose>get list of tables in connected database</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_tables() -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-GET-TABLES-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-GET-TABLES-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - list - </term> - <listitem> - <para> - List of tables in connected database. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-GET-TABLES-1"> - <title>Description</title> - <para> - Although you can do this with a simple select, - it is added here for convenience - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-GET-ATTNAMES"> - <refmeta> - <refentrytitle>get_attnames</refentrytitle> - <refmiscinfo>PYGRESQL - Get_Attnames</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get_attnames</refname> - <refpurpose>return the attribute names of a table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get_attnames(<parameter>table</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-GET-ATTNAMES-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - name of table. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-GET-ATTNAMES-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - dictionary - </term> - <listitem> - <para> - The dictionary's keys are - the attribute names, the values are the type names of - the attributes. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-GET-ATTNAMES-1"> - <title>Description</title> - <para> - Given the name of a table, digs out the set of attribute names - and types. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-GET"> - <refmeta> - <refentrytitle>get</refentrytitle> - <refmiscinfo>PYGRESQL - Get</refmiscinfo> - </refmeta> - <refnamediv> - <refname>get</refname> - <refpurpose>get a tuple from a database table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -get(<parameter>table</parameter>, <parameter>arg</parameter>, <optional><parameter>keyname</parameter></optional>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-GET-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - Name of table. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>arg</parameter> - </term> - <listitem> - <para> - Either a dictionary or the value to be looked up. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <optional><parameter>keyname</parameter></optional> - </term> - <listitem> - <para> - Name of field to use as key (optional). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-GET-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - dictionary - </term> - <listitem> - <para> - A dictionary mapping attribute names to row values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-GET-1"> - <title>Description</title> - <para> - This method is the basic mechanism to get a single row. It assumes - that the key specifies a unique row. If <parameter>keyname</> is not specified - then the primary key for the table is used. If <parameter>arg</> is a dictionary - then the value for the key is taken from it and it is modified to - include the new values, replacing existing values where necessary. - The OID is also put into the dictionary but in order to allow the - caller to work with multiple tables, the attribute name is munged - to make it unique. It consists of the string <literal>oid_</literal> followed by - the name of the table. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-INSERT"> - <refmeta> - <refentrytitle>insert</refentrytitle> - <refmiscinfo>PYGRESQL - Insert</refmiscinfo> - </refmeta> - <refnamediv> - <refname>insert</refname> - <refpurpose>insert a tuple into a database table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -insert(<parameter>table</parameter>, <parameter>a</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-INSERT-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - Name of table. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>a</parameter> - </term> - <listitem> - <para> - A dictionary of values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-INSERT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - The OID of the newly inserted row. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-INSERT-1"> - <title>Description</title> - <para> - This method inserts values into the table specified filling in the - values from the dictionary. It then reloads the dictionary with the - values from the database. This causes the dictionary to be updated - with values that are modified by rules, triggers, etc. - </para> - - <para> - Due to the way that this function works you will find inserts - taking longer and longer as your table gets bigger. To - overcome this problem simply add an index onto the OID of any - table that you think may get large over time. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-UPDATE"> - <refmeta> - <refentrytitle>update</refentrytitle> - <refmiscinfo>PYGRESQL - Update</refmiscinfo> - </refmeta> - <refnamediv> - <refname>update</refname> - <refpurpose>update a database table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -update(<parameter>table</parameter>, <parameter>a</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-UPDATE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - Name of table. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>a</parameter> - </term> - <listitem> - <para> - A dictionary of values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-UPDATE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - The OID of the newly updated row. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-UPDATE-1"> - <title>Description</title> - <para> - Similar to insert but updates an existing row. The update is based - on the OID value as munged by get. The array returned is the - one sent modified to reflect any changes caused by the update due - to triggers, rules, defaults, etc. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-CLEAR"> - <refmeta> - <refentrytitle>clear</refentrytitle> - <refmiscinfo>PYGRESQL - Clear</refmiscinfo> - </refmeta> - <refnamediv> - <refname>clear</refname> - <refpurpose>clear a database table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -clear(<parameter>table</parameter>, <optional><parameter>a</parameter></optional>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-CLEAR-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - Name of table. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <optional><parameter>a</parameter></optional> - </term> - <listitem> - <para> - A dictionary of values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-CLEAR-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - dictionary - </term> - <listitem> - <para> - A dictionary with an empty row. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-CLEAR-1"> - <title>Description</title> - <para> - This method clears all the attributes to values determined by the types. - Numeric types are set to 0, dates are set to <literal>'today'</literal> and everything - else is set to the empty string. If the array argument is present, - it is used as the array and any entries matching attribute names - are cleared with everything else left unchanged. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-DB-DELETE"> - <refmeta> - <refentrytitle>delete</refentrytitle> - <refmiscinfo>PYGRESQL - Delete</refmiscinfo> - </refmeta> - <refnamediv> - <refname>delete</refname> - <refpurpose>delete a row from a table</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -delete(<parameter>table</parameter>, <optional><parameter>a</parameter></optional>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-DB-DELETE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>table</parameter> - </term> - <listitem> - <para> - Name of table. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <optional><parameter>a</parameter></optional> - </term> - <listitem> - <para> - A dictionary of values. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-DB-DELETE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-DB-DELETE-1"> - <title>Description</title> - <para> - This method deletes the row from a table. It deletes based on the OID - as munged as described above. - </para> - </refsect1> - - </refentry> - - <!-- ********************************************************** --> - - </sect1> - - <!-- ********************************************************** --> - <!-- ********************************************************** --> - - <sect1 id="pygresql-pg-pgqueryobject"> - <title>Query Result Object: <classname>pgqueryobject</classname></title> - - <!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-GETRESULT"> - <refmeta> - <refentrytitle>getresult</refentrytitle> - <refmiscinfo>PYGRESQL - Getresult</refmiscinfo> - </refmeta> - <refnamediv> - <refname>getresult</refname> - <refpurpose>get the values returned by the query</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -getresult() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-GETRESULT-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-GETRESULT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - list - </term> - <listitem> - <para> - List of tuples. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-GETRESULT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid previous result. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-GETRESULT-1"> - <title>Description</title> - <para> - <function>getresult()</function> method returns the list of the values returned by the query. - More information about this result may be accessed using <function>listfields</function>, - <function>fieldname</function> and <function>fieldnum</function> methods. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-DICTRESULT"> - <refmeta> - <refentrytitle>dictresult</refentrytitle> - <refmiscinfo>PYGRESQL - Dictresult</refmiscinfo> - </refmeta> - <refnamediv> - <refname>dictresult</refname> - <refpurpose>get the values returned by the query as a list of dictionaries</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -dictresult() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-DICTRESULT-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-DICTRESULT-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - list - </term> - <listitem> - <para> - List of dictionaries. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-DICTRESULT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid previous result. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-DICTRESULT-1"> - <title>Description</title> - <para> - <function>dictresult()</function> method returns the list of the values returned by the query - with each tuple returned as a dictionary with the field names - used as the dictionary index. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-LISTFIELDS"> - <refmeta> - <refentrytitle>listfields</refentrytitle> - <refmiscinfo>PYGRESQL - Listfields</refmiscinfo> - </refmeta> - <refnamediv> - <refname>listfields</refname> - <refpurpose>list the fields names of the query result</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -listfields() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-LISTFIELDS-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-LISTFIELDS-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - list - </term> - <listitem> - <para> - field names - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-LISTFIELDS-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid query result, or invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-LISTFIELDS-1"> - <title>Description</title> - <para> - <function>listfields()</function> method returns the list of field names defined for the - query result. The fields are in the same order as the result values. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-FIELDNAME"> - <refmeta> - <refentrytitle>fieldname</refentrytitle> - <refmiscinfo>PYGRESQL - Fieldname</refmiscinfo> - </refmeta> - <refnamediv> - <refname>fieldname</refname> - <refpurpose>get field name by number</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -fieldname(<parameter>i</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNAME-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>i</parameter> - </term> - <listitem> - <para> - field number (integer). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNAME-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string - </term> - <listitem> - <para> - field name. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNAME-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>ValueError</classname> - </term> - <listitem> - <para> - Invalid field number. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid query result, or invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-FIELDNAME-1"> - <title>Description</title> - <para> - <function>fieldname()</function> method allows to find a field name from its rank number. It can be - useful for displaying a result. The fields are in the same order than the - result values. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-FIELDNUM"> - <refmeta> - <refentrytitle>fieldnum</refentrytitle> - <refmiscinfo>PYGRESQL - Fieldnum</refmiscinfo> - </refmeta> - <refnamediv> - <refname>fieldnum</refname> - <refpurpose>get field number by name</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -fieldnum(<parameter>name</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNUM-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>name</parameter> - </term> - <listitem> - <para> - field name (string). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNUM-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - field number (integer). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-FIELDNUM-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>ValueError</classname> - </term> - <listitem> - <para> - Unknown field name. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid query result, or invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-FIELDNUM-1"> - <title>Description</title> - <para> - <function>fieldnum()</function> method returns a field number from its name. - It can be used to build a function that converts result list strings to their correct - type, using a hardcoded table definition. The number returned is the - field rank in the result values list. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGQUERYOBJECT-NTUPLES"> - <refmeta> - <refentrytitle>ntuples</refentrytitle> - <refmiscinfo>PYGRESQL - Ntuples</refmiscinfo> - </refmeta> - <refnamediv> - <refname>ntuples</refname> - <refpurpose>return the number of tuples in query object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -ntuples() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-NTUPLES-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-NTUPLES-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - The number of tuples in query object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGQUERYOBJECT-NTUPLES-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGQUERYOBJECT-NTUPLES-1"> - <title>Description</title> - <para> - <function>ntuples()</function> method returns the number of tuples found in a query. - </para> - </refsect1> - - </refentry> - - </sect1> - - - <sect1 id="pygresql-pg-pglarge"> - <title>Large Object: <classname>pglarge</classname></title> - - <para> - This object handles all the request concerning a - <productname>PostgreSQL</productname> large object. It embeds and - hides all the <quote>recurrent</quote> variables (object OID and - connection), exactly in the same way - <classname>pgobject</classname>s do, thus only keeping significant - parameters in function calls. It keeps a reference to the <classname>pgobject</classname> - used for its creation, sending requests though with its - parameters. Any modification but dereferencing the - <classname>pgobject</classname> will thus affect the - <classname>pglarge</classname> object. Dereferencing the initial - <classname>pgobject</classname> is not a problem since - <application>Python</application> will not deallocate it before the - large object dereference it. All functions return a generic error - message on call error, whatever the exact error was. The - <structfield>error</structfield> attribute of the object allows to - get the exact error message. - </para> - - <para> - <classname>pglarge</classname> objects define a read-only set of - attributes that allow to get some information about it. These - attributes are: - - <variablelist> - <varlistentry> - <term><structfield>oid</></term> - <listitem> - <para> - the OID associated with the object - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><structfield>pgcnx</></term> - <listitem> - <para> - the <classname>pgobject</classname> associated with the object - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><structfield>error</></term> - <listitem> - <para> - the last warning/error message of the connection - </para> - </listitem> - </varlistentry> - </variablelist> - - <important> - <para> - In multithreaded environments, <structfield>error</structfield> - may be modified by another thread using the same - <classname>pgobject</classname>. Remember that these object are - shared, not duplicated; you should provide some locking if you - want to check for the error message in this situation. The OID - attribute is very interesting because it allow you to reuse the - OID later, creating the <classname>pglarge</classname> object - with a <classname>pgobject</classname> - <function>getlo()</function> method call. - </para> - </important> - </para> - - <para> - See also <xref linkend="largeobjects"> for more information about the - <productname>PostgreSQL</productname> large object interface. - </para> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-OPEN"> - <refmeta> - <refentrytitle>open</refentrytitle> - <refmiscinfo>PYGRESQL - Open</refmiscinfo> - </refmeta> - <refnamediv> - <refname>open</refname> - <refpurpose>open a large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -open(<parameter>mode</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-OPEN-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>mode</parameter> - </term> - <listitem> - <para> - open mode definition (integer). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-OPEN-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-OPEN-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Already opened object, or open error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-OPEN-1"> - <title>Description</title> - <para> - <function>open()</function> method opens a large object for reading/writing, - in the same way than the Unix <function>open()</function> - function. The mode value can be obtained by OR-ing the constants defined in - the pg module (<literal>INV_READ</literal>, <literal>INV_WRITE</literal>). - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-CLOSE"> - <refmeta> - <refentrytitle>close</refentrytitle> - <refmiscinfo>PYGRESQL - Close</refmiscinfo> - </refmeta> - <refnamediv> - <refname>close</refname> - <refpurpose>close the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -close() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-CLOSE-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-CLOSE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-CLOSE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or close error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-CLOSE-1"> - <title>Description</title> - <para> - <function>close()</function> method closes previously opened large object, - in the same way than the Unix <function>close()</function> function. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-READ"> - <refmeta> - <refentrytitle>read</refentrytitle> - <refmiscinfo>PYGRESQL - Read</refmiscinfo> - </refmeta> - <refnamediv> - <refname>read</refname> - <refpurpose>read from the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -read(<parameter>size</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-READ-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>size</parameter> - </term> - <listitem> - <para> - Maximal size of the buffer to be read (integer). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-READ-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - string - </term> - <listitem> - <para> - The read buffer. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-READ-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or read error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-READ-1"> - <title>Description</title> - <para> - <function>read()</function> method allows to read data from the large object, - starting at current position. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-WRITE"> - <refmeta> - <refentrytitle>write</refentrytitle> - <refmiscinfo>PYGRESQL - Write</refmiscinfo> - </refmeta> - <refnamediv> - <refname>write</refname> - <refpurpose>write to the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -write(<parameter>string</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-WRITE-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>string</parameter> - </term> - <listitem> - <para> - Buffer to be written (string). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-WRITE-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-WRITE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or write error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-WRITE-1"> - <title>Description</title> - <para> - <function>write()</function> method allows to write data to the large object, - starting at current position. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-SEEK"> - <refmeta> - <refentrytitle>seek</refentrytitle> - <refmiscinfo>PYGRESQL - Seek</refmiscinfo> - </refmeta> - <refnamediv> - <refname>seek</refname> - <refpurpose>change current position in the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -seek(<parameter>offset</parameter>, <parameter>whence</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SEEK-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>offset</parameter> - </term> - <listitem> - <para> - Position offset (integer). - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>whence</parameter> - </term> - <listitem> - <para> - Positional parameter (integer). - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SEEK-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - New current position in the object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SEEK-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad parameter type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or seek error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-SEEK-1"> - <title>Description</title> - <para> - <function>seek()</function> method allows to move the cursor position - in the large object. The whence parameter can be obtained by OR-ing the constants defined in the - <literal>pg</literal> module (<literal>SEEK_SET</>, <literal>SEEK_CUR</>, <literal>SEEK_END</literal>). - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-TELL"> - <refmeta> - <refentrytitle>tell</refentrytitle> - <refmiscinfo>PYGRESQL - Tell</refmiscinfo> - </refmeta> - <refnamediv> - <refname>tell</refname> - <refpurpose>return current position in the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -tell() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-TELL-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-TELL-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - Current position in the object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-TELL-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or seek error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-TELL-1"> - <title>Description</title> - <para> - <function>tell()</function> method allows to get the current position in the large object. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-UNLINK"> - <refmeta> - <refentrytitle>unlink</refentrytitle> - <refmiscinfo>PYGRESQL - Unlink</refmiscinfo> - </refmeta> - <refnamediv> - <refname>unlink</refname> - <refpurpose>delete the large object</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -unlink() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-UNLINK-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-UNLINK-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-UNLINK-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not closed, or unlink error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-UNLINK-1"> - <title>Description</title> - <para> - <function>unlink()</function> method unlinks (deletes) the large object. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-SIZE"> - <refmeta> - <refentrytitle>size</refentrytitle> - <refmiscinfo>PYGRESQL - Size</refmiscinfo> - </refmeta> - <refnamediv> - <refname>size</refname> - <refpurpose>return the large object size</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -size() -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SIZE-1"> - <title>Parameters</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SIZE-2"> - <title>Return Type</title> - <variablelist> - <varlistentry> - <term> - integer - </term> - <listitem> - <para> - The large object size. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-SIZE-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>SyntaxError</classname> - </term> - <listitem> - <para> - Too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not opened, or seek/tell error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-SIZE-1"> - <title>Description</title> - <para> - <function>size()</function> method allows to get the size of - the large object. It was implemented because this function - is very useful for a WWW-interfaced database. - Currently, the large object needs to be opened first. - </para> - </refsect1> - - </refentry> - -<!-- ********************************************************** --> - - <refentry id="PYGRESQL-PGLARGEOBJECT-EXPORT"> - <refmeta> - <refentrytitle>export</refentrytitle> - <refmiscinfo>PYGRESQL - Export</refmiscinfo> - </refmeta> - <refnamediv> - <refname>export</refname> - <refpurpose>save the large object to file</refpurpose> - </refnamediv> - - <refsynopsisdiv> -<synopsis> -export(<parameter>filename</parameter>) -</synopsis> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-EXPORT-1"> - <title>Parameters</title> - <variablelist> - <varlistentry> - <term> - <parameter>filename</parameter> - </term> - <listitem> - <para> - The file to be created. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-EXPORT-2"> - <title>Return Type</title> - <para> - none - </para> - </refsect2> - - <refsect2 id="R2-PYGRESQL-PGLARGEOBJECT-EXPORT-3"> - <title>Exceptions</title> - <variablelist> - <varlistentry> - <term> - <classname>TypeError</classname> - </term> - <listitem> - <para> - Bad argument type, or too many arguments. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>IOError</classname> - </term> - <listitem> - <para> - Object is not closed, or export error. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <classname>pg.error</classname> - </term> - <listitem> - <para> - Invalid connection or invalid object. - </para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - </refsynopsisdiv> - - <refsect1 id="R1-PYGRESQL-PGLARGEOBJECT-EXPORT-1"> - <title>Description</title> - <para> - <function>export()</function> method allows to dump the - content of a large object in a very simple way. - The exported file is created on the host of the program, - not the server host. - </para> - </refsect1> - - </refentry> - - </sect1> - -</chapter> diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 083198089b0..fdbfc5b2b55 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.166 2003/08/08 04:52:20 momjian Exp $ +# $Header: /cvsroot/pgsql/src/Makefile.global.in,v 1.167 2003/09/01 23:01:49 petere Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -132,10 +132,7 @@ enable_rpath = @enable_rpath@ enable_nls = @enable_nls@ enable_debug = @enable_debug@ -python_version = @python_version@ python_includespec = @python_includespec@ -python_moduledir = @python_moduledir@ -python_moduleexecdir = @python_moduleexecdir@ python_libspec = @python_libspec@ python_configdir = @python_configdir@ |