From 932bef68d75eab46fdf611c7b6e0f5a53010c58f Mon Sep 17 00:00:00 2001
From: Wez Furlong <wez@php.net>
Date: Fri, 20 Jun 2003 17:31:55 +0000
Subject: [PATCH] First run at documentation for the SQLite extension. Many
 thanks to Johann :)

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@132642 c90b9560-bf6c-de11-be94-00142212c4b1
---
 reference/sqlite/constants.xml                |  66 +++++++++
 .../sqlite/functions/sqlite-array-query.xml   |  70 ++++++++++
 .../sqlite/functions/sqlite-busy-timeout.xml  |  51 +++++++
 reference/sqlite/functions/sqlite-changes.xml |  41 ++++++
 reference/sqlite/functions/sqlite-close.xml   |  45 ++++++
 reference/sqlite/functions/sqlite-column.xml  |  51 +++++++
 .../functions/sqlite-create-function.xml      | 126 +++++++++++++++++
 reference/sqlite/functions/sqlite-current.xml |  60 ++++++++
 .../sqlite/functions/sqlite-error-string.xml  |  46 +++++++
 .../sqlite/functions/sqlite-escape-string.xml |  64 +++++++++
 .../sqlite/functions/sqlite-fetch-array.xml   |  69 ++++++++++
 .../sqlite/functions/sqlite-fetch-string.xml  |  48 +++++++
 .../sqlite/functions/sqlite-field-name.xml    |  45 ++++++
 .../sqlite/functions/sqlite-has-more.xml      |  42 ++++++
 .../sqlite/functions/sqlite-last-error.xml    |  44 ++++++
 .../functions/sqlite-last-insert-rowid.xml    |  49 +++++++
 .../sqlite/functions/sqlite-libencoding.xml   |  67 +++++++++
 .../sqlite/functions/sqlite-libversion.xml    |  43 ++++++
 reference/sqlite/functions/sqlite-next.xml    |  53 +++++++
 .../sqlite/functions/sqlite-num-fields.xml    |  41 ++++++
 .../sqlite/functions/sqlite-num-rows.xml      |  46 +++++++
 reference/sqlite/functions/sqlite-open.xml    | 110 +++++++++++++++
 reference/sqlite/functions/sqlite-popen.xml   |  75 ++++++++++
 reference/sqlite/functions/sqlite-query.xml   |  94 +++++++++++++
 .../functions/sqlite-register-aggregate.xml   | 130 ++++++++++++++++++
 reference/sqlite/functions/sqlite-rewind.xml  |  51 +++++++
 reference/sqlite/functions/sqlite-seek.xml    |  53 +++++++
 .../functions/sqlite-unbuffered-query.xml     |  62 +++++++++
 reference/sqlite/ini.xml                      |  86 ++++++++++++
 reference/sqlite/reference.xml                |  97 +++++++++++++
 30 files changed, 1925 insertions(+)
 create mode 100644 reference/sqlite/constants.xml
 create mode 100644 reference/sqlite/functions/sqlite-array-query.xml
 create mode 100644 reference/sqlite/functions/sqlite-busy-timeout.xml
 create mode 100644 reference/sqlite/functions/sqlite-changes.xml
 create mode 100644 reference/sqlite/functions/sqlite-close.xml
 create mode 100644 reference/sqlite/functions/sqlite-column.xml
 create mode 100644 reference/sqlite/functions/sqlite-create-function.xml
 create mode 100644 reference/sqlite/functions/sqlite-current.xml
 create mode 100644 reference/sqlite/functions/sqlite-error-string.xml
 create mode 100644 reference/sqlite/functions/sqlite-escape-string.xml
 create mode 100644 reference/sqlite/functions/sqlite-fetch-array.xml
 create mode 100644 reference/sqlite/functions/sqlite-fetch-string.xml
 create mode 100644 reference/sqlite/functions/sqlite-field-name.xml
 create mode 100644 reference/sqlite/functions/sqlite-has-more.xml
 create mode 100644 reference/sqlite/functions/sqlite-last-error.xml
 create mode 100644 reference/sqlite/functions/sqlite-last-insert-rowid.xml
 create mode 100644 reference/sqlite/functions/sqlite-libencoding.xml
 create mode 100644 reference/sqlite/functions/sqlite-libversion.xml
 create mode 100644 reference/sqlite/functions/sqlite-next.xml
 create mode 100644 reference/sqlite/functions/sqlite-num-fields.xml
 create mode 100644 reference/sqlite/functions/sqlite-num-rows.xml
 create mode 100644 reference/sqlite/functions/sqlite-open.xml
 create mode 100644 reference/sqlite/functions/sqlite-popen.xml
 create mode 100644 reference/sqlite/functions/sqlite-query.xml
 create mode 100644 reference/sqlite/functions/sqlite-register-aggregate.xml
 create mode 100644 reference/sqlite/functions/sqlite-rewind.xml
 create mode 100644 reference/sqlite/functions/sqlite-seek.xml
 create mode 100644 reference/sqlite/functions/sqlite-unbuffered-query.xml
 create mode 100644 reference/sqlite/ini.xml
 create mode 100644 reference/sqlite/reference.xml

diff --git a/reference/sqlite/constants.xml b/reference/sqlite/constants.xml
new file mode 100644
index 0000000000..0146b59d57
--- /dev/null
+++ b/reference/sqlite/constants.xml
@@ -0,0 +1,66 @@
+<?xml version='1.0' encoding='iso-8859-1'?>
+<!-- $Revision: 1.1 $ -->
+<sect2 id="pecl.sqlite.constants">
+ <title>Predefined constants</title>
+ <para>
+  The functions <function>sqlite_fetch_array</function> and
+  <function>sqlite_current</function> use a constant for
+  the different types of result arrays. The following constants are
+  defined:
+  <table>
+   <title>SQLite fetch constants</title>
+   <tgroup cols="2">
+    <thead>
+     <row>
+      <entry>constant</entry>
+      <entry>meaning</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>SQLITE_ASSOC</entry>
+      <entry>
+      Columns are returned into the array having the fieldname as the array
+      index.
+      </entry>
+     </row>
+     <row>
+      <entry>SQLITE_BOTH</entry>
+      <entry>
+       Columns are returned into the array having both a numerical index
+       and the fieldname as the array index.
+      </entry>
+     </row>
+     <row>
+      <entry>SQLITE_NUM</entry>
+      <entry>
+    Columns are returned into the array having a numerical index to the
+    fields. This index starts with 0, the first field in the result.
+      </entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </table>
+ </para>
+</sect2>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
diff --git a/reference/sqlite/functions/sqlite-array-query.xml b/reference/sqlite/functions/sqlite-array-query.xml
new file mode 100644
index 0000000000..3e2ff2a8b8
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-array-query.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-array-query">
+   <refnamediv>
+    <refname>sqlite_array_query</refname>
+    <refpurpose>Execute a query against a given database and returns an array</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>array</type><methodname>sqlite_array_query</methodname>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+     <methodparam><type>string</type><parameter>query</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>result_type</parameter></methodparam>
+     <methodparam choice="opt"><type>bool</type><parameter>decode_binary</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_array_query</function> is similar to calling
+     <function>sqlite_query</function> and then
+     <function>sqlite_fetch_array</function> for each row of the result set
+     and storing it into an array, as shown in the example below.  Calling
+     <function>sqlite_array_query</function> is significantly faster than
+     using such a script.
+    </para>
+    <example>
+     <title><function>sqlite_array_query</function> implemented
+      yourself</title>
+     <programlisting role="php"><![CDATA[<?php
+$q = sqlite_query($database, "SELECT * from foo LIMIT 100");
+$rows = array();
+while ($r = sqlite_fetch_array($q)) {
+   $rows[] = $r;
+}
+?>]]>
+     </programlisting>
+    </example>
+    <note>
+     <para>
+      <function>sqlite_array_query</function> is best suited to queries
+      returning 45 rows or less.  If you have more data than that, it is
+      recommended that you write your scripts to use
+      <function>sqlite_unbuffered_query</function> instead for more optimal
+      performance.
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-busy-timeout.xml b/reference/sqlite/functions/sqlite-busy-timeout.xml
new file mode 100644
index 0000000000..db321b7a06
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-busy-timeout.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-busy-timeout">
+   <refnamediv><refname>sqlite_busy_timeout</refname>
+    <refpurpose>Set busy timeout duration, or disable busy handlers</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>void</type><function>sqlite_busy_timeout</function>
+     <methodparam><type>resource</type><parameter>database</parameter></methodparam>
+     <methodparam><type>int</type><parameter>milliseconds</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Set the maximum time that sqlite will wait for a
+     <parameter>database</parameter>
+     to become ready for use to <parameter>milliseconds</parameter>.
+     If <parameter>milliseconds</parameter> is <literal>0</literal>, busy
+     handlers will be disabled and sqlite will return immediately with a
+     <literal>SQLITE_BUSY</literal> status code if another process/thread has
+     the database locked for an update.
+    </para>
+    <para>
+     PHP sets the default busy timeout to be 60 seconds when the database is
+     opened.
+    </para>   
+   </refsect1>
+  </refentry>
+
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-changes.xml b/reference/sqlite/functions/sqlite-changes.xml
new file mode 100644
index 0000000000..e974e2f01c
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-changes.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-changes">
+   <refnamediv>
+    <refname>sqlite_changes</refname>
+    <refpurpose>Returns the number of rows that were changed by the most recent SQL statement</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>int</type><function>sqlite_changes</function>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns the numbers of rows that were changed by the most recent SQL
+     statement executed against the database <parameter>db</parameter>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-close.xml b/reference/sqlite/functions/sqlite-close.xml
new file mode 100644
index 0000000000..3c410f63fc
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-close.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+<refentry id="function.sqlite-close">
+ <refnamediv>
+  <refname>sqlite_close</refname>
+  <refpurpose>Closes an open SQLite database.</refpurpose>
+ </refnamediv>
+ <refsect1>
+  <title>Description</title>
+    <methodsynopsis>
+     <type>void</type><function>sqlite_close</function>
+     <methodparam><type>resource</type><parameter>database</parameter></methodparam>
+    </methodsynopsis>
+  <para>
+   Closes the given <parameter>database</parameter> handle.
+   If the database was persistent, it will be closed and removed from the
+   persistent list.
+  </para>   
+  <para>
+   See also <function>sqlite_open</function> and
+   <function>sqlite_popen</function>.
+  </para>
+ </refsect1>
+</refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-column.xml b/reference/sqlite/functions/sqlite-column.xml
new file mode 100644
index 0000000000..41d54c0be3
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-column.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+ <refentry id="function.sqlite-column">
+  <refnamediv>
+   <refname>sqlite_column</refname>
+   <refpurpose>Fetches a column from the current row of a result set</refpurpose>
+  </refnamediv>
+   <refsect1>
+    <title>Description</title> 
+    <methodsynopsis>
+     <type>mixed</type><function>sqlite_column</function>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam><type>mixed</type><parameter>index_or_name</parameter></methodparam>
+     <methodparam choice="opt"><type>bool</type><parameter>decode_binary</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Fetches the value of a column named <parameter>index_or_name</parameter>
+     (if it is a string), or of the ordinal column numbered
+     <parameter>index_or_name</parameter> (if it is an integer) from the
+     current row of the query result handle <parameter>result</parameter>.
+     The decode binary flag operates in the same way as described under
+     <function>sqlite_fetch_array</function>.
+    </para>
+    <para>
+     Use this function when you are iterating a large result set with many
+     columns, or with columns that contain large amounts of data.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-create-function.xml b/reference/sqlite/functions/sqlite-create-function.xml
new file mode 100644
index 0000000000..6d6d05b931
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-create-function.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+<refentry id="function.sqlite-create-function">
+ <refnamediv>
+  <refname>sqlite_create_function</refname>
+  <refpurpose>Registers a "regular" User Defined Function for use in SQL statements</refpurpose>
+ </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><function>sqlite_create_function</function>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+     <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
+     <methodparam><type>mixed</type><parameter>callback</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_create_function</function> allows you to register a PHP
+     function with SQLite as an <acronym>UDF</acronym> (User Defined
+     Function), so that it can be called from within your SQL
+     statements.
+    </para>
+    <para>
+     <parameter>db</parameter> specifies the database handle that you wish to
+     extend, <parameter>function_name</parameter> specifies the name of the
+     function that you will use in your SQL statements,
+     <parameter>callback</parameter> is any valid PHP callback to specify a
+     PHP function that should be called to handle the SQL function.
+     The optional parameter <parameter>num_args</parameter> is used as a hint
+     by the SQLite expression parser/evaluator.  It is recommended that you
+     specifiy a value if your function will only ever accept a fixed number of
+     parameters.
+    </para>
+    <para>
+     The UDF can be used in any SQL statement that can call functions, such as
+     SELECT and UPDATE statements and also in triggers.
+    </para>
+
+    <example>
+     <title><function>sqlite_create_function</function> example</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+   function md5_and_reverse($string)
+   {
+       return strrev(md5($string));
+   }
+   
+   sqlite_create_function($db, 'md5rev', 'md5_and_reverse', 1);
+
+   $rows = sqlite_array_query($db, 'SELECT md5rev(filename) from files');
+?>]]>
+     </programlisting>
+     <para>
+      In this example, we have a function that calculates the md5 sum of a
+      string, and then reverses it.  When the SQL statement executes, it
+      returns the value of the filename transformed by our function.  The data
+      returned in <parameter>$rows</parameter> contains the processed result.
+     </para>
+     <para>
+      The beauty of this technique is that you do not need to process the
+      result using a foreach() loop after you have queried for the data.
+     </para>
+    </example>
+    <note>
+     <para>
+      PHP registers a special function named <literal>php</literal> when the
+      database is first opened.  The php function can be used to call any PHP
+      function without having to register it first.
+     </para>
+    </note>
+    <example>
+     <title>Example of using the PHP function</title>
+     <programlisting role="php">
+      <![CDATA[
+<?php
+   $rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
+?>]]>
+     </programlisting>
+     <para>
+      This example will call the <function>md5</function> on each
+      <literal>filename</literal> column in the database and return the result
+      into <parameter>$rows</parameter>
+     </para>
+    </example>
+    <note>
+     <para>
+      For performance reasons, PHP will not automatically encode/decode binary
+      data passed to and from your UDF's.  You need to manually encode/decode
+      the parameters and return values if you need to process binary data in
+      this way.
+     </para>
+     <para>
+      <emphasis>It is not recommended to use UDF's to handle processesing of
+       binary data, unless high performance is not a key requirement of your
+       application.
+      </emphasis>
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_register_aggregate</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-current.xml b/reference/sqlite/functions/sqlite-current.xml
new file mode 100644
index 0000000000..92070bc45e
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-current.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+<refentry id="function.sqlite-current">
+ <refnamediv>
+  <refname>sqlite_current</refname>
+  <refpurpose>Fetches the current row from a result set as an array</refpurpose>
+ </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>array</type><methodname>sqlite_current</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>result_type</parameter></methodparam>
+     <methodparam choice="opt"><type>bool</type><parameter>decode_binary</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_current</function> is identical to
+     <function>sqlite_fetch_array</function> except that it does not advance
+     to the next row prior to returning the data; it returns the data from the
+     current position only.
+    </para>
+    <para>
+     If the current position is beyond the final row, this function returns
+     &false;
+    </para>
+    <note>
+     <para>
+      This function will not work on unbuffered result handles.
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_seek</function>,
+     <function>sqlite_next</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-error-string.xml b/reference/sqlite/functions/sqlite-error-string.xml
new file mode 100644
index 0000000000..5e10ec78a6
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-error-string.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-error-string">
+   <refnamediv>
+    <refname>sqlite_error_string</refname>
+    <refpurpose>Returns the textual description of an error code</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_error_string</methodname>
+     <methodparam><type>int</type><parameter>error_code</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns a human readable description of the
+     <parameter>error_code</parameter> returned from
+     <function>sqlite_last_error</function>.
+    </para>
+    <para>
+     See also <function>sqlite_last_error</function>.
+    </para>
+   </refsect1>
+  </refentry>
+  
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-escape-string.xml b/reference/sqlite/functions/sqlite-escape-string.xml
new file mode 100644
index 0000000000..ab47f37890
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-escape-string.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-escape-string">
+   <refnamediv>
+    <refname>sqlite_escape_string</refname>
+    <refpurpose>Escapes a string for use as a query parameter</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_escape_string</methodname>
+     <methodparam><type>string</type><parameter>item</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_escape_string</function> will correctly quote the string
+     specified by <parameter>item</parameter>
+     for use in an SQLite SQL statement.  This includes doubling up
+     single-quote characters (<literal>'</literal>) and checking for
+     binary-unsafe characters in the query string.
+    </para>
+    <para>
+     If the <parameter>item</parameter> contains a <literal>NUL</literal>
+     character, or if it begins with a character whose ordinal value is
+     <literal>0x01</literal>, PHP will apply a binary encoding scheme so that
+     you can safely store and retrieve binary data.
+    </para>
+    <para>
+     Although the encoding makes it safe to insert the data, it will render
+     simple text comparisions and LIKE clauses in your queries unusable for
+     the columns that contain the binary data.  In practice, this shouldn't be
+     a problem, as your schema should be such that you don't use such things
+     on binary columns (in fact, it might be better to store binary data using
+     other means, such as in files).
+    </para>
+    <warning>
+     <simpara>
+      <function>addslashes</function> should <emphasis>NOT</emphasis> be used
+      to quote your strings for SQLite queries; it will lead to strange results when
+      retrieving your data.
+     </simpara>
+    </warning>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-fetch-array.xml b/reference/sqlite/functions/sqlite-fetch-array.xml
new file mode 100644
index 0000000000..ea8c05a580
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-fetch-array.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+  <refentry id="function.sqlite-fetch-array">
+   <refnamediv>
+    <refname>sqlite_fetch_array</refname>
+    <refpurpose>Fetches the next row from a result set as an array.</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>array</type><methodname>sqlite_fetch_array</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>result_type</parameter></methodparam>
+     <methodparam choice="opt"><type>bool</type><parameter>decode_binary</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Fetches the next row from the given <parameter>result</parameter> handle.
+     If there are no more rows, returns &false;, otherwise returns an
+     associative array representing the row data.
+    </para>    
+    <para>
+     <parameter>result_type</parameter> can be used to specifiy how you want
+     the results to be returned.  The default value is
+     <literal>SQLITE_BOTH</literal> which returns columns indexed by their
+     ordinal column number and by column name.
+     <literal>SQLITE_ASSOC</literal> causes the array to be indexed only by
+     column names, and <literal>SQLITE_NUM</literal> to be indexed only by
+     ordinal column numbers.
+    </para>
+    <para>
+     The column names returned by <literal>SQLITE_ASSOC</literal> and
+     <literal>SQLITE_BOTH</literal> will be case-folded according to the value
+     of the <link linkend="ini.sqlite.assoc-case">sqlite.assoc_case</link>
+     configuration option.
+    </para>
+    <para>
+     When <parameter>decode_binary</parameter> is set to &true; (the default),
+     PHP will decode the binary encoding it applied to the data if it
+     was encoded using the <function>sqlite_escape_string</function>.  You
+     will usually always leave this value at its default, unless you are
+     interoperating with databases created by other sqlite capable
+     applications.
+    </para>
+    <para>
+     See also <function>sqlite_array_query</function> and
+     <function>sqlite_fetch_string</function>.
+    </para>
+   </refsect1>
+  </refentry>
+  
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-fetch-string.xml b/reference/sqlite/functions/sqlite-fetch-string.xml
new file mode 100644
index 0000000000..853c4c185b
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-fetch-string.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-fetch-string">
+   <refnamediv>
+    <refname>sqlite_fetch_string</refname>
+    <refpurpose>Fetches first column of a result set as a string.</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_fetch_string</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>result_type</parameter></methodparam>
+     <methodparam choice="opt"><type>bool</type><parameter>decode_binary</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_fetch_string</function> is identical to
+     <function>sqlite_fetch_array</function> except that it returns the value
+     of the first column of the rowset.
+    </para>
+    <para>
+     This is the most optimial way to retrieve data when you are only
+     interested in the values from a single column of data.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-field-name.xml b/reference/sqlite/functions/sqlite-field-name.xml
new file mode 100644
index 0000000000..73144ac312
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-field-name.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-field-name">
+   <refnamediv>
+    <refname>sqlite_field_name</refname>
+    <refpurpose>Returns the name of a particular field</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_field_name</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam><type>int</type><parameter>field_index</parameter></methodparam>
+    </methodsynopsis>
+
+    <para>
+     Given the ordinal column number, <literal>field_index</literal>, returns
+     the name of that field in the result handle
+     <parameter>result</parameter>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-has-more.xml b/reference/sqlite/functions/sqlite-has-more.xml
new file mode 100644
index 0000000000..0db4161419
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-has-more.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+ <refentry id="function.sqlite-has-more">
+  <refnamediv>
+   <refname>sqlite_has_more</refname>
+    <refpurpose>Returns whether or not more rows are available</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><methodname>sqlite_has_more</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+    </methodsynopsis>
+
+    <para>
+     <function>sqlite_has_more</function> returns &true; if there are more
+     rows available from the <parameter>result</parameter> handle, or &false;
+     otherwise.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-last-error.xml b/reference/sqlite/functions/sqlite-last-error.xml
new file mode 100644
index 0000000000..de35569d4c
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-last-error.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-last-error">
+   <refnamediv>
+    <refname>sqlite_last_error</refname>
+    <refpurpose>Returns the error code of the last error for a database</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>int</type><methodname>sqlite_last_error</methodname>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns the error code from the last operation performed on
+     <parameter>db</parameter>, the database handle.
+    </para>
+    <para>
+     See also <function>sqlite_error_string</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-last-insert-rowid.xml b/reference/sqlite/functions/sqlite-last-insert-rowid.xml
new file mode 100644
index 0000000000..374e742758
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-last-insert-rowid.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-last-insert-rowid">
+   <refnamediv>
+    <refname>sqlite_last_insert_rowid</refname>
+    <refpurpose>Returns the rowid of the most recently inserted row</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>int</type><methodname>sqlite_last_insert_rowid</methodname>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns the rowid of the row that was most recently inserted into the
+     database <parameter>db</parameter>, if it was created as an
+     auto-increment field.
+    </para>
+    <note>
+     <para>
+      You can create auto-increment fields in SQLite by declaring them as
+      <literal>INTEGER PRIMARY KEY</literal> in your table schema.
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-libencoding.xml b/reference/sqlite/functions/sqlite-libencoding.xml
new file mode 100644
index 0000000000..6eb35cd9c3
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-libencoding.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-libencoding">
+   <refnamediv>
+    <refname>sqlite_libencoding</refname>
+    <refpurpose>Returns the encoding of the linked SQLite library
+    </refpurpose></refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_libencoding</methodname>
+    </methodsynopsis>
+    <para>
+     The SQLite library may be compiled in either ISO-8859-1 or UTF-8
+     compatible modes.  This function allows you to determine which encoding
+     scheme is used by your version of the library.
+    </para>
+    <note>
+     <para>
+      The default PHP distribution builds libsqlite in ISO-8859-1 encoding
+      mode.  However, this is a misnomer; rather than handling ISO-8859-1, it
+      operates according to your current locale settings for string
+      comparisons and sort ordering.  So, rather than ISO-8859-1, you should
+      think of it as being '8-bit' instead.
+     </para>
+     <para>
+      When compiled with UTF-8 support, sqlite handles encoding and decoding
+      of UTF-8 multi-byte character sequences, but does not yet do a complete
+      job when working with the data (no normalization is performed for
+      example), and some comparison operations may still not be carried out
+      correctly.
+     </para>
+     <para>
+      It is not recommended that you use PHP in a web-server configuration
+      with a version of the SQLite library compiled with UTF-8 support, since
+      libsqlite will abort() the process if it detects a problem with the
+      UTF-8 encoding.
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_libversion</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-libversion.xml b/reference/sqlite/functions/sqlite-libversion.xml
new file mode 100644
index 0000000000..ed4fdc9509
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-libversion.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-libversion">
+   <refnamediv>
+    <refname>sqlite_libversion</refname>
+    <refpurpose>Returns the version of the linked SQLite library</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title> 
+    <methodsynopsis>
+     <type>string</type><methodname>sqlite_libencoding</methodname>
+    </methodsynopsis>
+    <para>
+     Returns the version of the linked SQLite library as a string.
+    </para>
+    <para>
+     See also <function>sqlite_libencoding</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-next.xml b/reference/sqlite/functions/sqlite-next.xml
new file mode 100644
index 0000000000..91e8a704bc
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-next.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+<refentry id="function.sqlite-next">
+ <refnamediv>
+  <refname>sqlite_next</refname>
+  <refpurpose>Seek to next row number</refpurpose>
+ </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><methodname>sqlite_next</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_next</function> advances the result handle
+     <parameter>result</parameter> to the next row.
+     Returns &false; if there are no more rows, &true; otherwise.
+    </para>
+    <note>
+     <para>
+      This function cannot be used with unbuffered result handles.
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_seek</function>,
+     <function>sqlite_current</function> and
+     <function>sqlite_rewind</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-num-fields.xml b/reference/sqlite/functions/sqlite-num-fields.xml
new file mode 100644
index 0000000000..0c9de7af42
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-num-fields.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-num-fields">
+   <refnamediv>
+    <refname>sqlite_num_fields</refname>
+    <refpurpose>Returns the number of fields in a result set</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>int</type><methodname>sqlite_num_fields</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns the number of fields in the <parameter>result</parameter> set.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-num-rows.xml b/reference/sqlite/functions/sqlite-num-rows.xml
new file mode 100644
index 0000000000..b2c7e9eb06
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-num-rows.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-num-rows">
+   <refnamediv>
+    <refname>sqlite_num_rows</refname>
+    <refpurpose>Returns the number of rows in a result set</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>int</type><methodname>sqlite_num_rows</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Returns the number of rows in the <parameter>result</parameter> set.
+    </para>
+    <note>
+     <para>
+      This function cannot be used with unbuffered result sets.
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-open.xml b/reference/sqlite/functions/sqlite-open.xml
new file mode 100644
index 0000000000..176c5c3721
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-open.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+<refentry id="function.sqlite-open">
+ <refnamediv>
+  <refname>sqlite_open</refname>
+   <refpurpose>Opens a SQLite database.  Will create the database if it does not exist</refpurpose>
+  </refnamediv>
+  <refsect1>
+   <title>Description</title>
+   <methodsynopsis>
+    <type>resource</type><methodname>sqlite_open</methodname>
+    <methodparam><type>string</type><parameter>filename</parameter></methodparam>
+    <methodparam choice="opt"><type>int</type><parameter>mode</parameter></methodparam>
+    <methodparam choice="opt"><type>string</type><parameter>&amp;errmessage</parameter></methodparam>
+   </methodsynopsis>
+    <para>
+     Returns a resource on success, &false; on error.
+    </para>
+    <para>
+     The <parameter>filename</parameter> parameter is the name of the
+     database.  It can be a relative or absolute path to the file that sqlite
+     will use to store your data.  If the file does not exist, sqlite will
+     attempt to create it.  You <emphasis>MUST</emphasis> have write
+     permissions to the file if you want to insert data or modify the database
+     schema.
+    </para>
+    <para>
+     The <parameter>mode</parameter> parameter specifies the mode of the file and is
+     intended to be used to open the database in read-only mode.
+     Presently, this parameter is ignored by the sqlite library.  The default
+     value for mode is the octal value <literal>0666</literal> and this is the
+     recommended value to use if you need access to the
+     <parameter>errmessage</parameter> parameter.
+    </para>
+    <para>
+     <parameter>errmessage</parameter> is passed by reference and is set to
+     hold a descriptive error message explaining why the database could not be
+     opened if there was an error.
+    </para>
+    <example>
+     <title><function>sqlite_open</function> example</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+   if ($db=sqlite_open('mysqlitedb', 0666, $sqliteerror)) { 
+      sqlite_query('CREATE TABLE foo (bar varchar(10))');
+      sqlite_query("INSERT INTO foo VALUES ('fnord')"); 
+      $result=sqlite_query('select bar from foo');
+      var_dump(sqlite_fetch_array($result)); 
+   } else {
+      die($sqliteerror);
+   }
+?>]]>
+     </programlisting>
+    </example>
+    <note>
+     <simpara>
+      On Unix platforms, SQLite is sensitive to scripts that use the fork() system call.  If you
+      do have such a script, it is recommended that you close the handle prior
+      to forking and then re-open it in the child and/or parent.
+      For more information on this issue, see <ulink
+       url="http://www.sqlite.org/c_interface.html">The C language interface
+       to the SQLite library</ulink> in the section entitled
+      <literal>Multi-Threading And SQLite</literal>. 
+     </simpara>
+    </note>
+    <note>
+     <simpara>
+      Starting with SQLite library version 2.8.2, you can specify
+      <literal>:memory:</literal> as the <parameter>filename</parameter> to
+      create a database that lives only in the memory of the computer.
+      This is useful mostly for temporary processing, as the in-memory
+      database will be destroyed when the process ends.  It can also be
+      useful when coupled with the <literal>ATTACH DATABASE</literal> SQL
+      statement to load other databases and move and query data betweem them.
+     </simpara>
+    </note>
+    <note>
+     <simpara>
+      SQLite is safe_mode and open_basedir aware.
+     </simpara>
+    </note>
+
+    <para>
+     See also <function>sqlite_popen</function>,
+     <function>sqlite_close</function> and
+     <function>sqlite_query</function>.
+    </para>
+   </refsect1>
+  </refentry>
+ 
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-popen.xml b/reference/sqlite/functions/sqlite-popen.xml
new file mode 100644
index 0000000000..dbcabc30a7
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-popen.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+<refentry id="function.sqlite-popen">
+ <refnamediv>
+  <refname>sqlite_popen</refname>
+   <refpurpose>Opens a persistent handle to an SQLite database.  Will create the database if it does not exist</refpurpose>
+  </refnamediv>
+  <refsect1>
+   <title>Description</title>
+   <methodsynopsis>
+    <type>resource</type><methodname>sqlite_popen</methodname>
+    <methodparam><type>string</type><parameter>filename</parameter></methodparam>
+    <methodparam choice="opt"><type>int</type><parameter>mode</parameter></methodparam>
+    <methodparam choice="opt"><type>string</type><parameter>&amp;errmessage</parameter></methodparam>
+   </methodsynopsis>
+    <note>
+     <simpara>
+      This function behaves identically to <function>sqlite_open</function>
+      except that is uses the persistent resource mechanism of PHP.
+      For information about the meaning of the parameters, read the
+      <function>sqlite_open</function> manual page.
+     </simpara>
+    </note>
+    <para>
+     <function>sqlite_popen</function> will first check to see if a persistent
+     handle has already been opened for the given
+     <parameter>filename</parameter>.  If it finds one, it returns that handle
+     to your script, otherwise it opens a fresh handle to the database.
+    </para>
+    <para>
+     The benefit of this approach is that you don't incurr the performance
+     cost of re-reading the database and index schema on each page hit served
+     by persistent web server SAPI's (any SAPI except for regular CGI or CLI).
+    </para>
+    <note>
+     <simpara>
+      If you use persistent handles and have the database updated by a
+      background process (perhaps via a crontab), and that process re-creates
+      the database by overwriting it (either by unlinking and rebuilding, or
+      moving the updated version to replace the current version),
+      you may experience undefined behaviour when a persistent handle on the
+      old version of the database is recycled.
+     </simpara>
+     <simpara>
+      To avoid this situation, have your background processes open the same
+      database file and perform their updates in a transaction.
+     </simpara>
+    </note>
+    <para>
+     See also <function>sqlite_popen</function>,
+     <function>sqlite_close</function> and
+     <function>sqlite_query</function>.
+    </para>
+   </refsect1>
+  </refentry>
+ 
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-query.xml b/reference/sqlite/functions/sqlite-query.xml
new file mode 100644
index 0000000000..6c97799b30
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-query.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+<refentry id="function.sqlite-query">
+   <refnamediv>
+    <refname>sqlite_query</refname>
+    <refpurpose>Executes a query against a given database and returns a result handle</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>resource</type><methodname>sqlite_query</methodname>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+     <methodparam><type>string</type><parameter>query</parameter></methodparam>
+    </methodsynopsis>
+    <methodsynopsis>
+     <type>resource</type><methodname>sqlite_query</methodname>
+     <methodparam><type>string</type><parameter>query</parameter></methodparam>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     Executes an SQL statement given by the <parameter>query</parameter> against
+     a given database (specified by the <parameter>db</parameter> parameter).
+    </para>
+    <para>
+     For queries that return rows, this function will return a result handle
+     which can then be used with functions such as
+     <function>sqlite_fetch_array</function> and
+     <function>sqlite_seek</function>.
+    </para>
+    <para>
+     For other kinds of queries, this function will return a boolean result;
+     &true; for success or &false; for failure.
+    </para>
+    <para>
+     Regardless of the query type, this function will return &false; if the
+     query failed.
+    </para>
+    <para>
+     <function>sqlite_query</function> returns a buffered, seekable result
+     handle.  This is useful for reasonably small queries where you need to
+     be able to randomly access the rows.  Buffered result handles will
+     allocate memory to hold the entire result and will not return until it
+     has been fetched.  If you only need sequential access to the data, it is
+     recommended that you use the much higher performance
+     <function>sqlite_unbuffered_query</function> instead.
+    </para>
+    <note>
+     <simpara>
+      Two alternative syntaxes are supported for compatibility with other
+      database extensions (such as MySQL).
+      The preferred form is the first one, where the
+      <parameter>db</parameter> parameter is the first parameter to the
+      function.
+     </simpara>
+    </note>
+    <note>
+     <simpara>
+      SQLite <emphasis>will</emphasis> execute multiple queries separated by
+      semicolons, so you can use it to execute a batch of SQL that you have
+      loaded from a file or have embedded in a script.
+     </simpara>
+     <simpara>
+      When executing multiple queries, the return value of this function
+      will be &false; if the was an error, but undefined otherwise (it might
+      be &true; for success or it might return a result handle).
+     </simpara>
+    </note>
+    <para>
+     See also <function>sqlite_array_query</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-register-aggregate.xml b/reference/sqlite/functions/sqlite-register-aggregate.xml
new file mode 100644
index 0000000000..70f13285ed
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-register-aggregate.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+  <refentry id="function.sqlite-register-aggregate">
+   <refnamediv>
+    <refname>sqlite_register_aggregate</refname>
+    <refpurpose>Register an aggregating UDF for use in SQL statements</refpurpose></refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><function>sqlite_register_aggregate</function>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+     <methodparam><type>string</type><parameter>function_name</parameter></methodparam>
+     <methodparam><type>mixed</type><parameter>step_func</parameter></methodparam>
+     <methodparam><type>mixed</type><parameter>finalize_func</parameter></methodparam>
+     <methodparam choice="opt"><type>int</type><parameter>num_args</parameter></methodparam>
+   </methodsynopsis>
+   <para>
+    <function>sqlite_register_aggregate</function> is similar to
+    <function>sqlite_create_function</function> except that it registers
+    functions that can be used to calculate a result aggregated across all the
+    rows of a query.
+   </para>
+   <para>
+    The key difference between this function and
+    <function>sqlite_create_function</function> is that two functions are
+    required to manage the aggregate; <parameter>step_func</parameter> is
+    called for each row of the result set.  Your PHP function should
+    accumulate the result and store it into the aggregation context.
+    Once all the rows have been processed,
+    <parameter>finalize_func</parameter> will be called and it should then
+    take the data from the aggregation context and return the result.
+   </para>
+   <example>
+    <title>max_length aggregation function example</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+   $data = array(
+      'one',
+      'two',
+      'three',
+      'four'
+      'five'
+      'six',
+      'seven',
+      'eight',
+      'nine'
+      'ten'
+      );
+   $db = sqlite_open(':memory:');
+   sqlite_query($db, "CREATE TABLE strings(a)");
+   foreach ($data as $str) {
+      sqlite_query($db, "INSERT INTO strings VALUES('" .
+         sqlite_escape_string($str) . "')");
+   }
+
+   function max_len_step(&$context, $string)
+   {
+       if (strlen($string) > $context) {
+          $context = strlen($string);
+       }
+   }
+
+   function max_len_finalize(&$context)
+   {
+       return $context;
+   }
+
+   sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');
+
+   var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));
+   
+?>]]>
+   </programlisting>
+   <para>
+    In this example, we are creating an aggregating function that will
+    calculate the length of the longest string in one of the columns of the
+    table.  For each row, the <literal>max_len_step</literal> function is
+    called and passed a <parameter>context</parameter> parameter.  The context
+    parameter is just like any other PHP variable and be set to hold an array
+    or even an object value.  In this example, we are simply using it to hold
+    the maximum length we have seen so far; if the
+    <parameter>string</parameter> has a length longer than the current
+    maximum, we update the the context to hold this new maximum length.
+   </para>
+   <para>
+    After all of the rows have been processed, SQLite calls the
+    <literal>max_len_finalize</literal> function to determine the aggregate
+    result.  Here, we could perform some kind of calculation based on the
+    data found in the <parameter>context</parameter>.  In our simple example
+    though, we have been calculating the result as the query progressed, so we
+    simply need to return the context value.
+   </para>
+  </example>
+  <note>
+   <para>
+    It is NOT recommended for you to store a copy of the values in the context
+    and then process them at the end, as you would cause SQLite to use a lot of
+    memory to process the query - just think of how much memory you would need
+    if a million rows were stored in memory, each containing a string 32 bytes
+    in length.
+   </para>
+  </note>
+  <para>
+   See also <function>sqlite_create_function</function>.
+  </para>
+ </refsect1>
+</refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-rewind.xml b/reference/sqlite/functions/sqlite-rewind.xml
new file mode 100644
index 0000000000..7b6f0d367e
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-rewind.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-rewind">
+   <refnamediv>
+    <refname>sqlite_rewind</refname>
+    <refpurpose>Seek to the first row number</refpurpose>
+  </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><methodname>sqlite_rewind</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_rewind</function> seeks back to the first row in the
+     result set.  Returns &false; if there are no rows in the result set,
+     &true; otherwise.
+    </para>
+    <note>
+     <para>
+      This function cannot be used with unbuffered result sets.
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_next</function>,
+     <function>sqlite_current</function> and <function>sqlite_seek</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-seek.xml b/reference/sqlite/functions/sqlite-seek.xml
new file mode 100644
index 0000000000..32478c4129
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-seek.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-seek">
+   <refnamediv>
+    <refname>sqlite_seek</refname>
+    <refpurpose>Seek to a particular row number</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>bool</type><methodname>sqlite_rewind</methodname>
+     <methodparam><type>resource</type><parameter>result</parameter></methodparam>
+     <methodparam><type>int</type><parameter>rownum</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_seek</function> seeks to the row given by the parameter
+     <parameter>rownum</parameter>.  The row number is one-based (1 is the
+     first row). Returns &false; if the row does not exist, &true; otherwise.
+    </para>
+    <note>
+     <para>
+      This function cannot be used with unbuffered result handles.
+     </para>
+    </note>
+    <para>
+     See also <function>sqlite_next</function>,
+     <function>sqlite_current</function> and
+     <function>sqlite_rewind</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/functions/sqlite-unbuffered-query.xml b/reference/sqlite/functions/sqlite-unbuffered-query.xml
new file mode 100644
index 0000000000..4f02f3dc3a
--- /dev/null
+++ b/reference/sqlite/functions/sqlite-unbuffered-query.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+
+  <refentry id="function.sqlite-unbuffered-query">
+   <refnamediv>
+    <refname>sqlite_unbuffered_query</refname>
+    <refpurpose>Execute a query that does not prefetch and buffer all data</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Description</title>
+    <methodsynopsis>
+     <type>resource</type><methodname>sqlite_unbuffered_query</methodname>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+     <methodparam><type>string</type><parameter>query</parameter></methodparam>
+    </methodsynopsis>
+    <methodsynopsis>
+     <type>resource</type><methodname>sqlite_unbuffered_query</methodname>
+     <methodparam><type>string</type><parameter>query</parameter></methodparam>
+     <methodparam><type>resource</type><parameter>db</parameter></methodparam>
+    </methodsynopsis>
+    <para>
+     <function>sqlite_unbuffered_query</function> is identical to
+     <function>sqlite_query</function> except that the result that is returned
+     is a sequential forward-only result set that can only be used to read
+     each row, one after the other.
+    </para>
+    <para>
+     This function is ideal for generating things such as HTML tables where
+     you only need to process one row at a time and don't need to randomly
+     access the row data.
+    </para>
+    <note>
+     <para>
+      Functions such as <function>sqlite_seek</function> and
+      <function>sqlite_rewind</function> do not work on result handles
+      returned from this function.
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+
+
+<!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../../manual.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:nil
+ sgml-local-ecat-files:nil
+ End:
+ vim600: syn=xml fen fdm=syntax fdl=2 si
+ vim: et tw=78 syn=sgml
+ vi: ts=1 sw=1
+ -->
diff --git a/reference/sqlite/ini.xml b/reference/sqlite/ini.xml
new file mode 100644
index 0000000000..af5a3b8dbe
--- /dev/null
+++ b/reference/sqlite/ini.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+<sect2 id="sqlite.configuration">
+ &reftitle.runtime;
+ &extension.runtime;
+ <para>
+  <table>
+   <title>SQLite Configuration Options</title>
+   <tgroup cols="3">
+    <thead>
+     <row>
+      <entry>Name</entry>
+      <entry>Default</entry>
+      <entry>Changeable</entry>
+     </row>
+    </thead>
+    <tbody>
+     <row>
+      <entry>sqlite.assoc_case</entry>
+      <entry>0</entry>
+      <entry>PHP_INI_SYSTEM</entry>
+     </row>
+    </tbody>
+   </tgroup>
+  </table>
+  For further details and definition of the PHP_INI_* constants see
+  <function>ini_set</function>.
+ </para>
+ <para>
+  Here is a short explanation of the configuration directives.
+  <variablelist>
+   <varlistentry id="ini.sqlite.assoc-case">
+    <term>
+     <parameter>sqlite.assoc_case</parameter>
+     <type>int</type>
+    </term>
+    <listitem>
+     <para>
+      Whether to use mixed case (<literal>0</literal>), upper case
+      (<literal>1</literal>) or lower case (<literal>2</literal>) hash
+      indexes. 
+     </para>
+     <para>
+      This option is primarily useful when you need compatibility with other
+      database systems, where the names of the columns are always returned as
+      uppercase or lowercase, regardless of the case of the actual field names
+      in the database schema.
+     </para>
+     <para>
+      The SQLite library returns the column names in their natural case (that
+      matches the case you used in your schema).  When
+      <parameter>sqlite.assoc_case</parameter> is set to <literal>0</literal>
+      the natural case will be preserved.  When it is set to
+      <literal>1</literal> or <literal>2</literal>, PHP will apply case
+      folding on the hash keys to upper- or lower-case the keys, respectively.
+     </para>
+     <para>
+      Use of this option incurrs a slight performance penalty, but is MUCH
+      faster than performing the case folding yourself using PHP script.
+     </para>
+    </listitem>
+   </varlistentry>      
+  </variablelist>
+ </para>
+</sect2>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+--> 
diff --git a/reference/sqlite/reference.xml b/reference/sqlite/reference.xml
new file mode 100644
index 0000000000..7148d410f8
--- /dev/null
+++ b/reference/sqlite/reference.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.1 $ -->
+ <reference id="ref.sqlite">
+  <title>SQLite</title>
+  <titleabbrev>SQLite</titleabbrev>
+  <partintro>
+   &warn.experimental;
+   <sect1 id="sqlite.partintro">
+    &reftitle.intro;
+    <sect2 id="sqlite.intro">
+     <title>About SQLite</title>
+     <para>
+      This is an extension for the SQLite Embeddable SQL Database Engine.   
+      SQLite is a C library that implements an embeddable SQL database engine.
+      Programs that link with the SQLite library can have SQL database access
+      without running a separate RDBMS process.
+     </para>
+     <para>
+      SQLite is not a client library used to connect to a big database server.
+      SQLite is the server. The SQLite library reads and writes directly to and from
+      the database files on disk.
+     </para>
+     <note>
+      <para>
+       For further information see the SQLite Website 
+       (<ulink url="http://www.sqlite.org">http://www.sqlite.org</ulink>).
+      </para>
+     </note>
+    </sect2>
+    <sect2 id="sqlite.install">
+     <title>Installation</title>
+     <para>
+      Read the INSTALL file, which comes with the package. Or just use the PEAR 
+      installer with "pear install sqlite".
+      SQLite itself is already included, You do not need to install
+      any additional software.
+     </para>
+     <para>
+      You can download the Windows version of the extension from <ulink
+       url="http://snaps.php.net/win32/PECL_STABLE/php_sqlite.dll"
+       >http://snaps.php.net/win32/PECL_STABLE/php_sqlite.dll</ulink>
+     </para>
+    </sect2>
+    <sect2 id="sqlite.contact">
+     <title>Contact Information</title>
+     <para>
+      Any questions about the extension should be asked on one of the 
+      <ulink url="&url.php.support;">PHP Mailing lists</ulink>.
+     </para>
+    </sect2>
+
+    <sect2 id="sqlite.requirements">
+     &reftitle.required;
+     <para>
+      In order to have these functions available, you must compile PHP with
+      SQLite support, or load the SQLite extension dynamically from your
+      php.ini.
+     </para>
+    </sect2>
+    
+    <sect2 id="sqlite.resources">
+     &reftitle.resources;
+     <para>
+      There are two resources used in the SQLite Interface. The first one is the
+      database connection, the second one the result set. 
+     </para>
+    </sect2>
+
+	&reference.sqlite.constants;
+	&reference.sqlite.ini;
+	</sect1>
+</partintro>
+	
+&reference.sqlite.functions;
+
+</reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->