/usr/share/doc/python-apsw/html/extensions.html is in python-apsw-doc 3.8.6-r1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Extensions — APSW 3.8.6-r1 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '3.8.6-r1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="copyright" title="Copyright" href="copyright.html" />
<link rel="top" title="APSW 3.8.6-r1 documentation" href="index.html" />
<link rel="next" title="APSW Module" href="apsw.html" />
<link rel="prev" title="Building" href="build.html" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-26815066-1']);
_gaq.push(['_trackPageview']);
</script>
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="apsw.html" title="APSW Module"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="build.html" title="Building"
accesskey="P">previous</a> |</li>
<li><a href="index.html">APSW 3.8.6-r1 documentation</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="extensions">
<span id="id1"></span><h1>Extensions<a class="headerlink" href="#extensions" title="Permalink to this headline">¶</a></h1>
<p>SQLite includes a number of extensions providing additional
functionality. All extensions are disabled by default and you need to
take steps to have them available at compilation time, to enable them
and then to use them.</p>
<div class="section" id="asynchronous-vfs">
<span id="ext-asyncvfs"></span><h2>Asynchronous VFS<a class="headerlink" href="#asynchronous-vfs" title="Permalink to this headline">¶</a></h2>
<p>This extension does SQLite I/O in a background thread processing a
queue of requests. To enable it you must have used <em class="xref std std-option">fetch
--asyncvfs</em> to <tt class="file docutils literal"><span class="pre">setup.py</span></tt> at some point. It is enabled by the
downloaded file <tt class="file docutils literal"><span class="pre">sqlite3async.c</span></tt> being present in the same
directory as <tt class="file docutils literal"><span class="pre">setup.py</span></tt>. See the <a class="reference external" href="https://sqlite.org/asyncvfs.html">SQLite documentation</a>.</p>
<p>To use you must first call <tt class="xref py py-func docutils literal"><span class="pre">apsw.async_initialize()</span></tt> which will
register the VFS. If you didn’t make it the default VFS then you need
to specify it when opening your database. From this point on, any
operations you perform that require writing to the database will be
queued and the database locked. You should start a background thread
to perform the write operations calling <tt class="xref py py-func docutils literal"><span class="pre">apsw.async_run()</span></tt> to do
the work. You can call <tt class="xref py py-func docutils literal"><span class="pre">apsw.async_control()</span></tt> to set and get
various things (eg adding delays, controlling locking) as well as
telling it when the writer code should exit. This is a simple example:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c"># Inherit from default vfs, do not make this the new default</span>
<span class="n">asyncvfsname</span><span class="o">=</span><span class="n">apsw</span><span class="o">.</span><span class="n">async_initialize</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
<span class="c"># Open database</span>
<span class="n">db</span><span class="o">=</span><span class="n">apsw</span><span class="o">.</span><span class="n">Connection</span><span class="p">(</span><span class="s">"database"</span><span class="p">,</span> <span class="n">vfs</span><span class="o">=</span><span class="n">asyncvfsname</span><span class="p">)</span>
<span class="c"># Make a worker thread</span>
<span class="n">t</span><span class="o">=</span><span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">apsw</span><span class="o">.</span><span class="n">async_run</span><span class="p">)</span>
<span class="n">t</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
<span class="c"># do some work</span>
<span class="n">cur</span><span class="o">=</span><span class="n">db</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
<span class="n">cur</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s">".."</span><span class="p">)</span>
<span class="c"># Close db</span>
<span class="n">db</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c"># Tell worker to quit when queue is empty</span>
<span class="n">apsw</span><span class="o">.</span><span class="n">async_control</span><span class="p">(</span><span class="n">apsw</span><span class="o">.</span><span class="n">SQLITEASYNC_HALT</span><span class="p">,</span> <span class="n">apsw</span><span class="o">.</span><span class="n">SQLITEASYNC_HALT_IDLE</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="section" id="fts3-4">
<span id="ext-fts3"></span><h2>FTS3/4<a class="headerlink" href="#fts3-4" title="Permalink to this headline">¶</a></h2>
<p>This is the third version of the <a class="reference external" href="https://sqlite.org/fts3.html">full text search</a> extension. It
makes it easy to find words in multi-word text fields. You must
enable the extension via <a class="reference internal" href="build.html#setup-build-flags"><em>setup.py build flags</em></a> before it will work. There are no additional
APIs and the <a class="reference external" href="https://sqlite.org/fts3.html">documented SQL</a> works as is.</p>
<p>Note that FTS4 is some augmentations to FTS3 and are enabled whenever
FTS3 is enabled as described in the <a class="reference external" href="https://sqlite.org/fts3.html#fts4">documentation</a></p>
</div>
<div class="section" id="icu">
<span id="ext-icu"></span><h2>ICU<a class="headerlink" href="#icu" title="Permalink to this headline">¶</a></h2>
<p>The ICU extension provides an <a class="reference external" href="http://en.wikipedia.org/wiki/International_Components_for_Unicode">International Components for Unicode</a>
interface, in particular enabling you do sorting and regular
expressions in a locale aware way. The <a class="reference external" href="https://sqlite.org/src/finfo?name=ext/icu/README.txt">documentation</a>
shows how to use it.</p>
</div>
<div class="section" id="rtree">
<span id="ext-rtree"></span><h2>RTree<a class="headerlink" href="#rtree" title="Permalink to this headline">¶</a></h2>
<p>The RTree extension provides a <a class="reference external" href="http://en.wikipedia.org/wiki/R-tree">spatial table</a> - see the <a class="reference external" href="https://sqlite.org/rtree.html">documentation</a>.
You must enable the extension via <a class="reference internal" href="build.html#setup-build-flags"><em>setup.py build flags</em></a> before it will work. There are no additional
APIs and the <a class="reference external" href="https://sqlite.org/rtree.html">documented SQL</a>
works as is.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Extensions</a><ul>
<li><a class="reference internal" href="#asynchronous-vfs">Asynchronous VFS</a></li>
<li><a class="reference internal" href="#fts3-4">FTS3/4</a></li>
<li><a class="reference internal" href="#icu">ICU</a></li>
<li><a class="reference internal" href="#rtree">RTree</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="build.html"
title="previous chapter">Building</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="apsw.html"
title="next chapter">APSW Module</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/extensions.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="apsw.html" title="APSW Module"
>next</a> |</li>
<li class="right" >
<a href="build.html" title="Building"
>previous</a> |</li>
<li><a href="index.html">APSW 3.8.6-r1 documentation</a> »</li>
</ul>
</div>
<div class="footer">
© <a href="copyright.html">Copyright</a> 2004-2014, Roger Binns <rogerb@rogerbinns.com>.
Last updated on Sep 07, 2014.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
</div>
</body>
</html>
|