From 458120dd40db6b4df55a4e96b650e16798ef06a0 Mon Sep 17 00:00:00 2001
From: cinap_lenrek <cinap_lenrek@localhost>
Date: Tue, 3 May 2011 11:25:13 +0000
Subject: add hg and python

---
 sys/src/cmd/python/Doc/lib/libbsddb.tex | 208 ++++++++++++++++++++++++++++++++
 1 file changed, 208 insertions(+)
 create mode 100644 sys/src/cmd/python/Doc/lib/libbsddb.tex

(limited to 'sys/src/cmd/python/Doc/lib/libbsddb.tex')

diff --git a/sys/src/cmd/python/Doc/lib/libbsddb.tex b/sys/src/cmd/python/Doc/lib/libbsddb.tex
new file mode 100644
index 000000000..ae4292318
--- /dev/null
+++ b/sys/src/cmd/python/Doc/lib/libbsddb.tex
@@ -0,0 +1,208 @@
+\section{\module{bsddb} ---
+         Interface to Berkeley DB library}
+
+\declaremodule{extension}{bsddb}
+\modulesynopsis{Interface to Berkeley DB database library}
+\sectionauthor{Skip Montanaro}{skip@mojam.com}
+
+
+The \module{bsddb} module provides an interface to the Berkeley DB
+library.  Users can create hash, btree or record based library files
+using the appropriate open call. Bsddb objects behave generally like
+dictionaries.  Keys and values must be strings, however, so to use
+other objects as keys or to store other kinds of objects the user must
+serialize them somehow, typically using \function{marshal.dumps()} or 
+\function{pickle.dumps()}.
+
+The \module{bsddb} module requires a Berkeley DB library version from
+3.3 thru 4.5.
+
+\begin{seealso}
+  \seeurl{http://pybsddb.sourceforge.net/}
+         {The website with documentation for the \module{bsddb.db}
+          Python Berkeley DB interface that closely mirrors the object
+          oriented interface provided in Berkeley DB 3 and 4.}
+
+  \seeurl{http://www.oracle.com/database/berkeley-db/}
+         {The Berkeley DB library.}
+\end{seealso}
+
+A more modern DB, DBEnv and DBSequence object interface is available in the
+\module{bsddb.db} module which closely matches the Berkeley DB C API
+documented at the above URLs.  Additional features provided by the
+\module{bsddb.db} API include fine tuning, transactions, logging, and
+multiprocess concurrent database access.
+
+The following is a description of the legacy \module{bsddb} interface
+compatible with the old Python bsddb module.  Starting in Python 2.5 this
+interface should be safe for multithreaded access.  The \module{bsddb.db}
+API is recommended for threading users as it provides better control.
+
+The \module{bsddb} module defines the following functions that create
+objects that access the appropriate type of Berkeley DB file.  The
+first two arguments of each function are the same.  For ease of
+portability, only the first two arguments should be used in most
+instances.
+
+\begin{funcdesc}{hashopen}{filename\optional{, flag\optional{,
+                           mode\optional{, pgsize\optional{,
+                           ffactor\optional{, nelem\optional{,
+                           cachesize\optional{, lorder\optional{,
+                           hflags}}}}}}}}}
+Open the hash format file named \var{filename}.  Files never intended
+to be preserved on disk may be created by passing \code{None} as the 
+\var{filename}.  The optional
+\var{flag} identifies the mode used to open the file.  It may be
+\character{r} (read only), \character{w} (read-write) ,
+\character{c} (read-write - create if necessary; the default) or
+\character{n} (read-write - truncate to zero length).  The other
+arguments are rarely used and are just passed to the low-level
+\cfunction{dbopen()} function.  Consult the Berkeley DB documentation
+for their use and interpretation.
+\end{funcdesc}
+
+\begin{funcdesc}{btopen}{filename\optional{, flag\optional{,
+mode\optional{, btflags\optional{, cachesize\optional{, maxkeypage\optional{,
+minkeypage\optional{, pgsize\optional{, lorder}}}}}}}}}
+
+Open the btree format file named \var{filename}.  Files never intended 
+to be preserved on disk may be created by passing \code{None} as the 
+\var{filename}.  The optional
+\var{flag} identifies the mode used to open the file.  It may be
+\character{r} (read only), \character{w} (read-write),
+\character{c} (read-write - create if necessary; the default) or
+\character{n} (read-write - truncate to zero length).  The other
+arguments are rarely used and are just passed to the low-level dbopen
+function.  Consult the Berkeley DB documentation for their use and
+interpretation.
+\end{funcdesc}
+
+\begin{funcdesc}{rnopen}{filename\optional{, flag\optional{, mode\optional{,
+rnflags\optional{, cachesize\optional{, pgsize\optional{, lorder\optional{,
+rlen\optional{, delim\optional{, source\optional{, pad}}}}}}}}}}}
+
+Open a DB record format file named \var{filename}.  Files never intended 
+to be preserved on disk may be created by passing \code{None} as the 
+\var{filename}.  The optional
+\var{flag} identifies the mode used to open the file.  It may be
+\character{r} (read only), \character{w} (read-write),
+\character{c} (read-write - create if necessary; the default) or
+\character{n} (read-write - truncate to zero length).  The other
+arguments are rarely used and are just passed to the low-level dbopen
+function.  Consult the Berkeley DB documentation for their use and
+interpretation.
+\end{funcdesc}
+
+
+\begin{notice}
+Beginning in 2.3 some \UNIX{} versions of Python may have a \module{bsddb185}
+module.  This is present \emph{only} to allow backwards compatibility with
+systems which ship with the old Berkeley DB 1.85 database library.  The
+\module{bsddb185} module should never be used directly in new code.
+\end{notice}
+
+
+\begin{seealso}
+  \seemodule{dbhash}{DBM-style interface to the \module{bsddb}}
+\end{seealso}
+
+\subsection{Hash, BTree and Record Objects \label{bsddb-objects}}
+
+Once instantiated, hash, btree and record objects support
+the same methods as dictionaries.  In addition, they support
+the methods listed below.
+\versionchanged[Added dictionary methods]{2.3.1}
+
+\begin{methoddesc}{close}{}
+Close the underlying file.  The object can no longer be accessed.  Since
+there is no open \method{open} method for these objects, to open the file
+again a new \module{bsddb} module open function must be called.
+\end{methoddesc}
+
+\begin{methoddesc}{keys}{}
+Return the list of keys contained in the DB file.  The order of the list is
+unspecified and should not be relied on.  In particular, the order of the
+list returned is different for different file formats.
+\end{methoddesc}
+
+\begin{methoddesc}{has_key}{key}
+Return \code{1} if the DB file contains the argument as a key.
+\end{methoddesc}
+
+\begin{methoddesc}{set_location}{key}
+Set the cursor to the item indicated by \var{key} and return a tuple
+containing the key and its value.  For binary tree databases (opened
+using \function{btopen()}), if \var{key} does not actually exist in
+the database, the cursor will point to the next item in sorted order
+and return that key and value.  For other databases,
+\exception{KeyError} will be raised if \var{key} is not found in the
+database.
+\end{methoddesc}
+
+\begin{methoddesc}{first}{}
+Set the cursor to the first item in the DB file and return it.  The order of 
+keys in the file is unspecified, except in the case of B-Tree databases.
+This method raises \exception{bsddb.error} if the database is empty.
+\end{methoddesc}
+
+\begin{methoddesc}{next}{}
+Set the cursor to the next item in the DB file and return it.  The order of 
+keys in the file is unspecified, except in the case of B-Tree databases.
+\end{methoddesc}
+
+\begin{methoddesc}{previous}{}
+Set the cursor to the previous item in the DB file and return it.  The
+order of keys in the file is unspecified, except in the case of B-Tree
+databases.  This is not supported on hashtable databases (those opened
+with \function{hashopen()}).
+\end{methoddesc}
+
+\begin{methoddesc}{last}{}
+Set the cursor to the last item in the DB file and return it.  The
+order of keys in the file is unspecified.  This is not supported on
+hashtable databases (those opened with \function{hashopen()}).
+This method raises \exception{bsddb.error} if the database is empty.
+\end{methoddesc}
+
+\begin{methoddesc}{sync}{}
+Synchronize the database on disk.
+\end{methoddesc}
+
+Example:
+
+\begin{verbatim}
+>>> import bsddb
+>>> db = bsddb.btopen('/tmp/spam.db', 'c')
+>>> for i in range(10): db['%d'%i] = '%d'% (i*i)
+... 
+>>> db['3']
+'9'
+>>> db.keys()
+['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
+>>> db.first()
+('0', '0')
+>>> db.next()
+('1', '1')
+>>> db.last()
+('9', '81')
+>>> db.set_location('2')
+('2', '4')
+>>> db.previous() 
+('1', '1')
+>>> for k, v in db.iteritems():
+...     print k, v
+0 0
+1 1
+2 4
+3 9
+4 16
+5 25
+6 36
+7 49
+8 64
+9 81
+>>> '8' in db
+True
+>>> db.sync()
+0
+\end{verbatim}
-- 
cgit v1.2.3

