hholzgra                Sun Aug 26 10:32:50 2001 EDT

  Modified files:              
    /phpdoc/en/functions        dbplus.xml 
  Log:
  catching up with implementation
  'unimplemented' section removed, functions are now all in alphabetical
    order
  plus possibly some whitspace ...
  
  
Index: phpdoc/en/functions/dbplus.xml
diff -u phpdoc/en/functions/dbplus.xml:1.9 phpdoc/en/functions/dbplus.xml:1.10
--- phpdoc/en/functions/dbplus.xml:1.9  Tue Aug 21 20:04:30 2001
+++ phpdoc/en/functions/dbplus.xml      Sun Aug 26 10:32:50 2001
@@ -1,12 +1,12 @@
 <?xml encoding="iso-8859-1"?>
-<!-- $Revision: 1.9 $ -->
+<!-- $Revision: 1.10 $ -->
  <reference id="ref.dbplus">
   <title>DB++ functions</title>
   <titleabbrev></titleabbrev>
-       
+  
   <partintro>
    &warn.experimental;
-        
+   
    <section id="dbplus.intro">
     <title>Experimental support for db++ database</title>
     <para>
@@ -16,14 +16,14 @@
      db++ and to read and process the output of a db++ query.
     </para>
    </section>
-        
+   
    <section id="dbplus.requirenments">
     <title>Requirenments</title>
     <para>
      ??? Download where
     </para>
    </section>
-        
+   
    <section id="dbplus.installation">
     <title>Installation</title>
     <para>
@@ -49,11 +49,11 @@
       <title>db++ error codes</title>
       <tgroup cols="3">
        <thead>
-       <row>
-        <entry>PHP Constant</entry>
-        <entry>db++ constant</entry>
-        <entry>meaning</entry>
-       </row>
+  <row>
+   <entry>PHP Constant</entry>
+   <entry>db++ constant</entry>
+   <entry>meaning</entry>
+  </row>
        </thead>
        <tbody>
         <row>
@@ -257,7 +257,7 @@
     </para>
    </section>
   </partintro>
-       
+  
   <refentry id="function.dbplus-add">
    <refnamediv>
     <refname>dbplus_add</refname>
@@ -290,7 +290,7 @@
     </para>
    </refsect1>
   </refentry>
-       
+  
   <refentry id="function.dbplus-aql">
    <refnamediv>
     <refname>dbplus_aql</refname>
@@ -414,11 +414,15 @@
     <funcsynopsis>
      <funcprototype>
       <funcdef>string <function>dbplus_errcode</function></funcdef>
-     <paramdef>int <parameter>err</parameter></paramdef>
+     <paramdef>int <parameter>errno</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_errcode</function> returns a cleartext error
+     string for the error code passed as <parameter>errno</parameter>
+     of for the result code of the last db++ operation if no parameter
+     is given.
     </para>
    </refsect1>
   </refentry>
@@ -436,7 +440,55 @@
      <void/>
      </funcprototype>
     </funcsynopsis>
+    &warn.experimental.func;
+    <para>
+     <function>dbplus_errno</function> will return the error code
+     returned by the last db++ operation.
+    </para>
+    <para>
+     See also <function>dbplus_errcode</function>.
+    </para> 
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.dbplus-find">
+   <refnamediv>
+    <refname>dbplus_find</refname>
+    <refpurpose>Set a constraint on a relation</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>dbplus_find</function></funcdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>array <parameter>constraints</parameter></paramdef>
+      <paramdef>mixed <parameter>tuple</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    &warn.experimental.func;
+    <para>
+     <function>dbplus_find</function> will place a constraint on the
+     given relation. Further calls to functions like
+     <function>dbplus_curr</function> or
+     <function>dbplus_next</function> will only return tuples matching
+     the given constraints.
+    </para>
+    <para>
+     Constraints are triplets of strings containing of a domain name,
+     a comparison operator and a comparison value. The
+     <parameter>constraints</parameter> parameter array may consist of
+     a collection of string arrays, each of which contains a domain, an
+     operator and a value, or of a single string array containing a
+     multiple of three elements.
+    </para>
+    <para>
+     The comparison operator may be one of the following strings:
+     '==', '&gt;', '&gt;=', '&lt;', '&lt;=', '!=', '~' for a regular
+     expression match and 'BAND' or 'BOR' for bitwise operations.
+    </para>
     <para>
+     See also <function>dbplus_unselect</function>.
     </para>
    </refsect1>
   </refentry>
@@ -469,7 +521,7 @@
      chapter for more information on db++ error codes.
     </para>
     <para>
-     See also <function>dbplus_current</function>,
+     See also <function>dbplus_curr</function>,
      <function>dbplus_prev</function>,
      <function>dbplus_next</function>, and
      <function>dbplus_last</function>.
@@ -519,16 +571,49 @@
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     <function>dbplus_freeaalllocks</function> will free all locks
+     <function>dbplus_freeaalllocks</function> will free all tuple locks
      held by this client.
     </para>
+    <para>
+     See also <function>dbplus_getlock</function>,
+     <function>dbplus_freelock</function>, and
+     <function>dbplus_freerlocks</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.dbplus-freelock">
+   <refnamediv>
+    <refname>dbplus_freelock</refname>
+    <refpurpose>Release write lock on tuple</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>dbplus_freelock</function></funcdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>string <parameter>tname</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    &warn.experimental.func;
+    <para>
+     <function>dbplus_freelock</function> will release a write lock on
+     the given <parameter>tuple</parameter> previously obtained by
+     <function>dbplus_getlock</function>.
+    </para>
+    <para>
+     See also <function>dbplus_getlock</function>,
+     <function>dbplus_freerlocks</function>, and
+     <function>dbplus_freealllocks</function>.
+    </para>
    </refsect1>
   </refentry>
 
   <refentry id="function.dbplus-freerlocks">
    <refnamediv>
     <refname>dbplus_freerlocks</refname>
-    <refpurpose>Free all locks on given relation</refpurpose>
+    <refpurpose>Free all tuple locks on given relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
@@ -540,9 +625,73 @@
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     <function>dbplus_freerlocks</function> will free all locks held
+     <function>dbplus_freerlocks</function> will free all tuple locks held
      on the given <parameter>relation</parameter>.
     </para>
+    <para>
+     See also <function>dbplus_getlock</function>,
+     <function>dbplus_freelock</function>, and
+     <function>dbplus_freealllocks</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.dbplus-getlock">
+   <refnamediv>
+    <refname>dbplus_getlock</refname>
+    <refpurpose>Get a write lock on a tuple</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>dbplus_getlock</function></funcdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>string <parameter>tname</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    &warn.experimental.func;
+    <para>
+     <function>dbplus_getlock</function> will request a write lock on
+     the speified <parameter>tuple</parameter>. It will return zero on
+     success or a non-zero error code, especially DBPLUS_ERR_WLOCKED,
+     on failure.
+    </para>
+    <para>
+     See also <function>dbplus_freelock</function>,
+     <function>dbplus_freerlocks</function>, and
+     <function>dbplus_freealllocks</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.dbplus-getunique">
+   <refnamediv>
+    <refname>dbplus_getunique</refname>
+    <refpurpose>Get a id number unique to a relation</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>int <function>dbplus_getunique</function></funcdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>int <parameter>uniqueid</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    &warn.experimental.func;
+    <para>
+     <function>dbplus_getunique</function> will obtain a number
+     guaranteed to be unique for the given
+     <parameter>relation</parameter> and will pass it back in the
+     variable given as <parameter>uniqueid</parameter>.
+    </para>
+    <para>
+     The function will return zero (aka. DBPLUS_ERR_NOERR) on success
+     or a db++ error code on failure. See
+     <function>dbplus_errcode</function> or the introduction to this
+     chapter for more information on db++ error codes.
+    </para>
    </refsect1>
   </refentry>
 
@@ -596,7 +745,7 @@
     </para>
     <para>
      See also <function>dbplus_first</function>,
-     <function>dbplus_current</function>,
+     <function>dbplus_curr</function>,
      <function>dbplus_prev</function>, and
      <function>dbplus_next</function>.
     </para>
@@ -606,7 +755,7 @@
   <refentry id="function.dbplus-lockrel">
    <refnamediv>
     <refname>dbplus_lockrel</refname>
-    <refpurpose>Request read-lock on relation</refpurpose>
+    <refpurpose>Request write lock on relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
@@ -618,6 +767,11 @@
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_lockrel</function> will request a write lock
+     on the given relation. Other clients may still query the
+     relation, but can't alter it while it is locked.
+    </para>
+    <para>
     </para>
    </refsect1>
   </refentry>
@@ -651,7 +805,7 @@
     </para>
     <para>
      See also <function>dbplus_first</function>,
-     <function>dbplus_current</function>,
+     <function>dbplus_curr</function>,
      <function>dbplus_prev</function>, and
      <function>dbplus_last</function>.
     </para>
@@ -682,6 +836,8 @@
     <para>
      On success a relation file handle (cursor) is returned which must
      be used in any subsequent commanads referencing the relation.
+     Failure leads to a zero return value, the actual error code may
+     be asked for by calling <function>dbplus_errno</function>.
     </para>
    </refsect1>
   </refentry>
@@ -715,141 +871,171 @@
     </para>
     <para>
      See also <function>dbplus_first</function>,
-     <function>dbplus_current</function>,
+     <function>dbplus_curr</function>,
      <function>dbplus_next</function>, and
      <function>dbplus_last</function>.
     </para>
    </refsect1>
   </refentry>
   
-  <refentry id="function.dbplus-restorepos">
+  <refentry id="function.dbplus-rchperm">
    <refnamediv>
-    <refname>dbplus_restorepos</refname> <refpurpose>???</refpurpose>
+    <refname>dbplus_rchperm</refname>
+    <refpurpose>Change relation permissions</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_restorepos</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
-     <paramdef>array <parameter>tuple</parameter></paramdef>
+      <funcdef>int <function>dbplus_rchperm</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
+      <paramdef>int <parameter>mask</parameter></paramdef>
+      <paramdef>string <parameter>user</parameter></paramdef>
+      <paramdef>string <parameter>group</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_rchperm</function> will change access
+     permissions as specified by <parameter>mask</parameter>,
+     <parameter>user</parameter> and <parameter>group</parameter>. The
+     values for these are operating system specific.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-ropen">
+  <refentry id="function.dbplus-rcreate">
    <refnamediv>
-    <refname>dbplus_ropen</refname>
-    <refpurpose>Open relation file ... ???</refpurpose>
+    <refname>dbplus_rcreate</refname>
+    <refpurpose></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_ropen</function></funcdef>
+      <funcdef>int <function>dbplus_rcreate</function></funcdef>
      <paramdef>string <parameter>name</parameter></paramdef>
+     <paramdef>string <parameter>domlist</parameter></paramdef>
+     <paramdef>int <parameter>flag</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-runlink">
+  <refentry id="function.dbplus-rcrtexact">
    <refnamediv>
-    <refname>dbplus_runlink</refname>
-    <refpurpose>Remove relation from filesystem</refpurpose>
+    <refname>dbplus_rcrtexact</refname>
+    <refpurpose></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_runlink</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
+      <funcdef>int <function>dbplus_rcrtexact</function></funcdef>
+      <paramdef>string <parameter>name</parameter></paramdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>int <parameter>flag</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rzap">
+  <refentry id="function.dbplus-rcrtlike">
    <refnamediv>
-    <refname>dbplus_rzap</refname>
-    <refpurpose>Remove all tuples from relation</refpurpose>
+    <refname>dbplus_rcrtlike</refname>
+    <refpurpose></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rzap</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
-     <paramdef>int <parameter>truncate</parameter></paramdef>
+      <funcdef>int <function>dbplus_rcrtlike</function></funcdef>
+      <paramdef>string <parameter>name</parameter></paramdef>
+      <paramdef>int <parameter>handle</parameter></paramdef>
+      <paramdef>int <parameter>flag</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-savepos">
+  <refentry id="function.dbplus-resolve">
    <refnamediv>
-    <refname>dbplus_savepos</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_resolve</refname>
+    <refpurpose>Resolve host information for relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_savepos</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
+      <funcdef>int <function>dbplus_resolve</function></funcdef>
+      <paramdef>string <parameter>relation_name</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_resolve</function> will try to resolve the given
+     <parameter>relation_name</parameter> and find out internal server
+     id, real hostname and the database path on this host. The
+     function will return an array containing these values under the
+     keys 'sid', 'host' and 'host_path' or &false; on error.
+    </para>
+    <para>
+    See also <function>dbplus_tcl</function>. 
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-setindex">
+  <refentry id="function.dbplus-rkeys">
    <refnamediv>
-    <refname>dbplus_setindex</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_rkeys</refname>
+    <refpurpose>Specify new primary key for a relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_setindex</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
-     <paramdef>string <parameter>idx_name</parameter></paramdef>
+      <funcdef>int <function>dbplus_rkeys</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
+      <paramdef>mixed <parameter>domlist</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_rkeys</function> will replace the current
+     primary key for <parameter>relation</parameter> with the
+     combination of domains specified by <parameter>domlist</parameter>.
+    </para>
+    <para>
+     <parameter>domlist</parameter> may be passed as an array of
+     domain name strings or as a space separated list of names in a
+     single string.
     </para>
    </refsect1>
   </refentry>
-
-  <refentry id="function.dbplus-setindexbynumber">
+  
+  <refentry id="function.dbplus-restorepos">
    <refnamediv>
-    <refname>dbplus_setindexbynumber</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_restorepos</refname> <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_setindexbynumber</function></funcdef>
-      <paramdef>int <parameter>relation</parameter></paramdef>
-     <paramdef>int <parameter>idx_number</parameter></paramdef>
+      <funcdef>int <function>dbplus_restorepos</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
+     <paramdef>array <parameter>tuple</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -858,19 +1044,17 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-sql">
+  <refentry id="function.dbplus-ropen">
    <refnamediv>
-    <refname>dbplus_sql</refname>
-    <refpurpose>Perform SQL query</refpurpose>
+    <refname>dbplus_ropen</refname>
+    <refpurpose>Open relation file ... ???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_sql</function></funcdef>
-      <paramdef>string <parameter>query</parameter></paramdef>
-      <paramdef>string <parameter>server</parameter></paramdef>
-      <paramdef>string <parameter>dbpath</parameter></paramdef>
+      <funcdef>int <function>dbplus_ropen</function></funcdef>
+     <paramdef>string <parameter>name</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -878,22 +1062,18 @@
     </para>
    </refsect1>
   </refentry>
-  
-  <refentry id="function.dbplus-tremove">
+
+  <refentry id="function.dbplus-rquery">
    <refnamediv>
-    <refname>dbplus_tremove</refname>
-    <refpurpose>Remove tuple and return new current tuple</refpurpose>
+    <refname>dbplus_rquery</refname>
+    <refpurpose></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_tremove</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
-     <paramdef>array <parameter>old</parameter></paramdef>
-      <paramdef>array
-      <parameter><optional>current</optional></parameter>
-     </paramdef>
+      <funcdef>int <function>dbplus_rquery</function></funcdef>
+      <void/>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -902,95 +1082,110 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-undo">
+  <refentry id="function.dbplus-rrename">
    <refnamediv>
-    <refname>dbplus_undo</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_rrename</refname>
+    <refpurpose>Rename a relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_undo</function></funcdef>
-     <paramdef>int <parameter>relation</parameter></paramdef>
+      <funcdef>int <function>dbplus_rrename</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
+      <paramdef>string <parameter>name</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_rrename</function> will change the name of
+     <parameter>relation</parameter> to <parameter>name</parameter>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-undoprepare">
+  <refentry id="function.dbplus-rsecindex">
    <refnamediv>
-    <refname>dbplus_undoprepare</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_rsecindex</refname>
+    <refpurpose>Create a new secondary index for a relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_undoprepare</function></funcdef>
+      <funcdef>int <function>dbplus_rsecindex</function></funcdef>
       <paramdef>int <parameter>relation</parameter></paramdef>
+      <paramdef>mixed <parameter>domlist</parameter></paramdef>
+      <paramdef>int <parameter>type</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_rsecindex</function> will create a new secondary
+     index for <parameter>relation</parameter> with consists of the
+     domains specified by <parameter>domlist</parameter> and is of type
+     <parameter>type</parameter> 
+    </para>
+    <para>
+     <parameter>domlist</parameter> may be passed as an array of
+     domain name strings or as a space separated list of names in a
+     single string.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-unlockrel">
+  <refentry id="function.dbplus-runlink">
    <refnamediv>
-    <refname>dbplus_unlockrel</refname>
-    <refpurpose>Give up read-lock on relation</refpurpose>
+    <refname>dbplus_runlink</refname>
+    <refpurpose>Remove relation from filesystem</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_unlockrel</function></funcdef>
+      <funcdef>int <function>dbplus_runlink</function></funcdef>
      <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_unlink</function> will close and remove the 
+<parameter>relation</parameter>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-unselect">
+  <refentry id="function.dbplus-rzap">
    <refnamediv>
-    <refname>dbplus_unselect</refname>
-    <refpurpose>???</refpurpose>
+    <refname>dbplus_rzap</refname>
+    <refpurpose>Remove all tuples from relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_unselect</function></funcdef>
-      <paramdef>int <parameter>relation</parameter></paramdef>
+      <funcdef>int <function>dbplus_rzap</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_rzap</function> will remove all tuples from
+     <parameter>relation</parameter>. 
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-update">
+  <refentry id="function.dbplus-savepos">
    <refnamediv>
-    <refname>dbplus_update</refname>
-    <refpurpose>Update specified tuple in relation</refpurpose>
+    <refname>dbplus_savepos</refname>
+    <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_update</function></funcdef>
-      <paramdef>int <parameter>relation</parameter></paramdef>
-      <paramdef>array <parameter>old</parameter></paramdef>
-      <paramdef>array <parameter>new</parameter></paramdef>
+      <funcdef>int <function>dbplus_savepos</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -999,17 +1194,18 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-xlockrel">
+  <refentry id="function.dbplus-setindex">
    <refnamediv>
-    <refname>dbplus_xlockrel</refname>
-    <refpurpose>Request exclusive write lock on relation</refpurpose>
+    <refname>dbplus_setindex</refname>
+    <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_xlockrel</function></funcdef>
-      <paramdef>int <parameter>relation</parameter></paramdef>
+      <funcdef>int <function>dbplus_setindex</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
+     <paramdef>string <parameter>idx_name</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -1018,17 +1214,18 @@
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-xunlockrel">
+  <refentry id="function.dbplus-setindexbynumber">
    <refnamediv>
-    <refname>dbplus_xunlockrel</refname>
-    <refpurpose>Free exclusive write lock on relation</refpurpose>
+    <refname>dbplus_setindexbynumber</refname>
+    <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_xunlockrel</function></funcdef>
+      <funcdef>int <function>dbplus_setindexbynumber</function></funcdef>
       <paramdef>int <parameter>relation</parameter></paramdef>
+     <paramdef>int <parameter>idx_number</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
@@ -1037,349 +1234,243 @@
    </refsect1>
   </refentry>
 
-
-<!-- unimplemented functions -->
-
-
-  <refentry id="function.dbplus-change">
-   <refnamediv>
-    <refname>dbplus_change</refname>
-    <refpurpose></refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>dbplus_change</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>domain</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    &warn.experimental.func;
-    <para>
-     Not implemented yet.
-    </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.dbplus-find">
+  <refentry id="function.dbplus-sql">
    <refnamediv>
-    <refname>dbplus_find</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_sql</refname>
+    <refpurpose>Perform SQL query</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_find</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>constr</parameter></paramdef>
-      <paramdef>string <parameter>tname</parameter></paramdef>
+      <funcdef>int <function>dbplus_sql</function></funcdef>
+      <paramdef>string <parameter>query</parameter></paramdef>
+      <paramdef>string <parameter>server</parameter></paramdef>
+      <paramdef>string <parameter>dbpath</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
-
-  <refentry id="function.dbplus-freelock">
+  
+  <refentry id="function.dbplus-tcl">
    <refnamediv>
-    <refname>dbplus_freelock</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_tcl</refname>
+    <refpurpose>Execute TCL code on server side</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_freelock</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>tname</parameter></paramdef>
+      <funcdef>int <function>dbplus_tcl</function></funcdef>
+      <paramdef>int <parameter>sid</parameter></paramdef>
+      <paramdef>string <parameter>script</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     <function>dbplus_freelock</function> will release a write lock on
-     the given <parameter>tuple</parameter> previously obtained by
-     <function>dbplus_getlock</function>.
+     A db++ server will prepare a TCL interpreter for each client
+     connection. This interpreter will enable the server to execute
+     TCL code provided by the client as a sort of stored procedures to
+     improve the performance of database operations by avoiding
+     client/server data transfers and context switches.
     </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.dbplus-getlock">
-   <refnamediv>
-    <refname>dbplus_getlock</refname>
-    <refpurpose></refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>dbplus_getlock</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>tname</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    &warn.experimental.func;
     <para>
-     <function>dbplus_getlock</function> will request a write lock on
-     the speified <parameter>tuple</parameter>. It will return zero on
-     success or a non-zero error code, especially DBPLUS_ERR_WLOCKED,
-     on failure.
+     <function>dbplus_tcl</function> needs to pass the client connection
+     id the TCL <parameter>script</parameter> code should be executed
+     by. <function>dbplus_resolve</function> will provide this
+     connection id. The function will return whatever the TCL code
+     returns or a TCL error message if the TCL code fails.
     </para>
     <para>
-     See also <function>dbplus_freelock</function>,
-     <function>dbplus_freerlocks</function>, and
-     <function>dbplus_freealllocks</function>.
+     See also <function>dbplus_resolve</function>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-getunique">
+  <refentry id="function.dbplus-tremove">
    <refnamediv>
-    <refname>dbplus_getunique</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_tremove</refname>
+    <refpurpose>Remove tuple and return new current tuple</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_getunique</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>int <parameter>uniqueid</parameter></paramdef>
+      <funcdef>int <function>dbplus_tremove</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
+     <paramdef>array <parameter>tuple</parameter></paramdef>
+      <paramdef>array
+      <parameter><optional>current</optional></parameter>
+     </paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     <function>dbplus_getunique</function> will obtain a number
-     guaranteed to be unique for the given
-     <parameter>relation</parameter> and will pass it back in the
-     variable given as <parameter>uniqueid</parameter>.
-    </para>
-    <para>
-     The function will return zero (aka. DBPLUS_ERR_NOERR) on success
-     or a db++ error code on failure. See
-     <function>dbplus_errcode</function> or the introduction to this
-     chapter for more information on db++ error codes.
+     <function>dbplus_tremove</function> removes
+     <parameter>tuple</parameter> from <parameter>relation</parameter>
+     if it perfectly matches a tuple within the
+     relation. <parameter>current</parameter>, if given, will contain
+     the data of the new current tuple after calling 
+<function>dbplus_tremove</function>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rchperm">
+  <refentry id="function.dbplus-undo">
    <refnamediv>
-    <refname>dbplus_rchperm</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_undo</refname>
+    <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rchperm</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>int <parameter>mask</parameter></paramdef>
-      <paramdef>string <parameter>user</parameter></paramdef>
-      <paramdef>string <parameter>group</parameter></paramdef>
+      <funcdef>int <function>dbplus_undo</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rcreate">
+  <refentry id="function.dbplus-undoprepare">
    <refnamediv>
-    <refname>dbplus_rcreate</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_undoprepare</refname>
+    <refpurpose>???</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rcreate</function></funcdef>
-     <paramdef>string <parameter>name</parameter></paramdef>
-     <paramdef>string <parameter>domlist</parameter></paramdef>
-     <paramdef>int <parameter>flag</parameter></paramdef>
+      <funcdef>int <function>dbplus_undoprepare</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rcrtexact">
+  <refentry id="function.dbplus-unlockrel">
    <refnamediv>
-    <refname>dbplus_rcrtexact</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_unlockrel</refname>
+    <refpurpose>Give up write lock on relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rcrtexact</function></funcdef>
-      <paramdef>string <parameter>name</parameter></paramdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>int <parameter>flag</parameter></paramdef>
+      <funcdef>int <function>dbplus_unlockrel</function></funcdef>
+     <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
+     <function>dbplus_unlockrel</function> will release a write lock
+     previously obtained by <function>dbplus_lockrel</function>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rcrtlike">
+  <refentry id="function.dbplus-unselect">
    <refnamediv>
-    <refname>dbplus_rcrtlike</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_unselect</refname>
+    <refpurpose>Remove a constraint from relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rcrtlike</function></funcdef>
-      <paramdef>string <parameter>name</parameter></paramdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>int <parameter>flag</parameter></paramdef>
+      <funcdef>int <function>dbplus_unselect</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
+     Calling <function>dbplus_unselect</function> will remove a
+     constraint previously set by <function>dbplus_find</function> on
+     <parameter>relation</parameter>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-resolve">
+  <refentry id="function.dbplus-update">
    <refnamediv>
-    <refname>dbplus_resolve</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_update</refname>
+    <refpurpose>Update specified tuple in relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_resolve</function></funcdef>
-      <paramdef>string <parameter>name</parameter></paramdef>
-      <paramdef>string <parameter>vname</parameter></paramdef>
+      <funcdef>int <function>dbplus_update</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
+      <paramdef>array <parameter>old</parameter></paramdef>
+      <paramdef>array <parameter>new</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
+     <function>dbplus_update</function> replaces the tuple given by
+     <parameter>old</parameter> with the data from
+     <parameter>new</parameter> if and only if
+     <parameter>old</parameter> completely matches a tuple within
+     <parameter>relation</parameter>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rkeys">
-   <refnamediv>
-    <refname>dbplus_rkeys</refname>
-    <refpurpose></refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>dbplus_rkeys</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>domlist</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    &warn.experimental.func;
-    <para>
-     Not implemented yet.
-    </para>
-   </refsect1>
-  </refentry>
-  
-  <refentry id="function.dbplus-rquery">
+  <refentry id="function.dbplus-xlockrel">
    <refnamediv>
-    <refname>dbplus_rquery</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_xlockrel</refname>
+    <refpurpose>Request exclusive lock on relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rquery</function></funcdef>
-      <void/>
+      <funcdef>int <function>dbplus_xlockrel</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
+     <function>dbplus_xlockrel</function> will request an exclusive
+     lock on <parameter>relation</parameter> preventing even read
+     access from other clients.
     </para>
-   </refsect1>
-  </refentry>
-
-  <refentry id="function.dbplus-rrename">
-   <refnamediv>
-    <refname>dbplus_rrename</refname>
-    <refpurpose></refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>dbplus_rrename</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>name</parameter></paramdef>
-      <paramdef>int <parameter>flag</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    &warn.experimental.func;
     <para>
-     Not implemented yet.
+     See also <function>dbplus_xunlockrel</function>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-rsecindex">
+  <refentry id="function.dbplus-xunlockrel">
    <refnamediv>
-    <refname>dbplus_rsecindex</refname>
-    <refpurpose></refpurpose>
+    <refname>dbplus_xunlockrel</refname>
+    <refpurpose>Free exclusive lock on relation</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Description</title>
     <funcsynopsis>
      <funcprototype>
-      <funcdef>int <function>dbplus_rsecindex</function></funcdef>
-      <paramdef>int <parameter>handle</parameter></paramdef>
-      <paramdef>string <parameter>domlist</parameter></paramdef>
-      <paramdef>int <parameter>compact</parameter></paramdef>
+      <funcdef>int <function>dbplus_xunlockrel</function></funcdef>
+      <paramdef>int <parameter>relation</parameter></paramdef>
      </funcprototype>
     </funcsynopsis>
     &warn.experimental.func;
     <para>
-     Not implemented yet.
+     <function>dbplus_xunlockrel</function> will release an exclusive
+     lock on <parameter>relation</parameter> previously obtained by 
+<function>dbplus_xlockrel</function>.
     </para>
    </refsect1>
   </refentry>
 
-  <refentry id="function.dbplus-tcl">
-   <refnamediv>
-    <refname>dbplus_tcl</refname>
-    <refpurpose></refpurpose>
-   </refnamediv>
-   <refsect1>
-    <title>Description</title>
-    <funcsynopsis>
-     <funcprototype>
-      <funcdef>int <function>dbplus_tcl</function></funcdef>
-      <paramdef>int <parameter>sid</parameter></paramdef>
-      <paramdef>string <parameter>script</parameter></paramdef>
-     </funcprototype>
-    </funcsynopsis>
-    &warn.experimental.func;
-    <para>
-     Not implemented yet.
-    </para>
-   </refsect1>
-  </refentry>
 
  </reference>
  

Reply via email to