aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2003-09-01 23:01:49 +0000
committerPeter Eisentraut <peter_e@gmx.net>2003-09-01 23:01:49 +0000
commitf10a9033bf308f9dde0aa77caad6503e233489d1 (patch)
tree48d66ac1e90894824e913377103dcfdc7516d52d
parent65c2d427fb7436c314259778cf56551412cde730 (diff)
downloadpostgresql-f10a9033bf308f9dde0aa77caad6503e233489d1.tar.gz
postgresql-f10a9033bf308f9dde0aa77caad6503e233489d1.zip
Clean up after pygresql removal: adjust/remove documentation and remove
unneeded configure work.
-rw-r--r--config/python.m420
-rwxr-xr-xconfigure12
-rw-r--r--configure.in7
-rw-r--r--doc/src/sgml/filelist.sgml3
-rw-r--r--doc/src/sgml/installation.sgml28
-rw-r--r--doc/src/sgml/postgres.sgml3
-rw-r--r--doc/src/sgml/pygresql.sgml4450
-rw-r--r--src/Makefile.global.in5
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 &copy; 1995,
- Pascal Andre. Further modifications Copyright &copy; 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>&gt;&gt;&gt;</prompt> <userinput>import _pg</userinput>
-<prompt>&gt;&gt;&gt;</prompt> <userinput>db = _pg.connect('thilo', 'localhost')</userinput>
-<prompt>&gt;&gt;&gt;</prompt> <userinput>db.query("INSERT INTO test VALUES ('ping', 'pong');")</userinput>
-18304
-<prompt>&gt;&gt;&gt;</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@