Enhance the command-line completion extension to return the names of
[sqlite.git] / ext / misc / README.md
blob69cb230255e9cf78ecd6c4d99c9706a2f534b9d7
1 ## Miscellaneous Extensions
3 This folder contains a collection of smaller loadable extensions.
4 See <https://www.sqlite.org/loadext.html> for instructions on how
5 to compile and use loadable extensions.
6 Each extension in this folder is implemented in a single file of C code.
8 Each source file contains a description in its header comment.  See the
9 header comments for details about each extension.  Additional notes are
10 as follows:
12   *  **carray.c** &mdash;  This module implements the
13      [carray](https://www.sqlite.org/carray.html) table-valued function.
14      It is a good example of how to go about implementing a custom
15      [table-valued function](https://www.sqlite.org/vtab.html#tabfunc2).
17   *  **csv.c** &mdash;  A [virtual table](https://sqlite.org/vtab.html)
18      for reading 
19      [Comma-Separated-Value (CSV) files](https://en.wikipedia.org/wiki/Comma-separated_values).
21   *  **dbdump.c** &mdash;  This is not actually a loadable extension, but
22      rather a library that implements an approximate equivalent to the
23      ".dump" command of the
24      [command-line shell](https://www.sqlite.org/cli.html).
26   *  **json1.c** &mdash;  Various SQL functions and table-valued functions
27      for processing JSON.  This extension is already built into the
28      [SQLite amalgamation](https://sqlite.org/amalgamation.html).  See
29      <https://sqlite.org/json1.html> for additional information.
31   *  **memvfs.c** &mdash;  This file implements a custom
32      [VFS](https://www.sqlite.org/vfs.html) that stores an entire database
33      file in a single block of RAM.  It serves as a good example of how
34      to implement a simple custom VFS.
36   *  **rot13.c** &mdash;  This file implements the very simple rot13()
37      substitution function.  This file makes a good template for implementing
38      new custom SQL functions for SQLite.
40   *  **series.c** &mdash;  This is an implementation of the
41      "generate_series" [virtual table](https://www.sqlite.org/vtab.html).
42      It can make a good template for new custom virtual table implementations.
44   *  **shathree.c** &mdash;  An implementation of the sha3() and
45      sha3_query() SQL functions.  The file is named "shathree.c" instead
46      of "sha3.c" because the default entry point names in SQLite are based
47      on the source filename with digits removed, so if we used the name
48      "sha3.c" then the entry point would conflict with the prior "sha1.c"
49      extension.
51   *  **unionvtab.c** &mdash; Implementation of the unionvtab and
52      [swarmvtab](https://sqlite.org/swarmvtab.html) virtual tables.
53      These virtual tables allow a single
54      large table to be spread out across multiple database files.  In the
55      case of swarmvtab, the individual database files can be attached on
56      demand.
58   *  **zipfile.c** &mdash;  A [virtual table](https://sqlite.org/vtab.html)
59      that can read and write a 
60      [ZIP archive](https://en.wikipedia.org/wiki/Zip_%28file_format%29).