This file is indexed.

/usr/share/doc/python-apsw/html/extensions.html is in python-apsw-doc 3.8.2-r1-1ubuntu1.

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
199
200
201
202
203
204
205
206
207
208
209
210
211
<!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 &mdash; APSW 3.8.2-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.2-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.2-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.2-r1 documentation</a> &raquo;</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&#8217;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">&quot;&quot;</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">&quot;database&quot;</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">&quot;..&quot;</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.2-r1 documentation</a> &raquo;</li> 
      </ul>
    </div>

    <div class="footer">
        &copy; <a href="copyright.html">Copyright</a> 2004-2013, Roger Binns &lt;rogerb@rogerbinns.com&gt;.
      Last updated on Dec 08, 2013.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
<div class="footer">This page uses <a href="http://analytics.google.com/">
Google Analytics</a> to collect statistics. You can disable it by blocking
the JavaScript coming from www.google-analytics.com.
<script type="text/javascript">
  (function() {
    var ga = document.createElement('script');
    ga.src = ('https:' == document.location.protocol ?
              'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
  })();
</script>
</div>

  </body>
</html>