Documentation Source Text

Check-in [8da1a575d7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More documentation tweaks. Add two new entries to the "limits" page.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8da1a575d77dc455b00b33798a9447683f6406ff
User & Date: drh 2013-04-27 18:31:34
Context
2013-04-30
11:51
Fix typos in the compile.html document. check-in: 32b04c8243 user: drh tags: trunk
2013-04-27
18:31
More documentation tweaks. Add two new entries to the "limits" page. check-in: 8da1a575d7 user: drh tags: trunk
12:01
Updates to documentation, especially the C API introduction. check-in: f0275a9b47 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to pages/about.in.

    55     55   architectures.  These features make SQLite a popular choice as
    56     56   an <a href="whentouse.html#appfileformat">Application File Format</a>.
    57     57   Think of SQLite not as a replacement for 
    58     58   [http://www.oracle.com/database/index.html|Oracle] but
    59     59   as a replacement for [http://man.he.net/man3/fopen|fopen()]</p>
    60     60   
    61     61   <p>SQLite is a compact library.
    62         -With all features enabled, the [library size] can be less than 350KiB,
           62  +With all features enabled, the [library size] can be less than 500KiB,
    63     63   depending on the target platform and compiler optimization settings.
    64     64   (64-bit code is larger.  And some compiler optimizations
    65     65   such as aggressive function inlining and loop unrolling can cause the
    66     66   object code to be much larger.)  If optional features are omitted, the
    67     67   size of the SQLite library can be reduced below 300KiB.  SQLite can also
    68     68   be made to run in minimal stack space (4KiB) and
    69     69   very little heap (100KiB), making SQLite a popular database engine 

Changes to pages/amalgamation.in.

    42     42   is that the additional optimizations often take the form of 
    43     43   function inlining which tends to make the size of the resulting
    44     44   binary image larger.</p>
    45     45   
    46     46   <p>The amalgamation and
    47     47   the sqlite3.h header file are available on
    48     48   the <a href="download.html">download page</a> as a file 
    49         -named sqlite-amalgamation-X_X_X.zip 
    50         -where the X's are replaced by the appropriate version number.</p>
           49  +named sqlite-amalgamation-X.zip
           50  +where the X is replaced by the appropriate version number.</p>

Changes to pages/features.in.

    11     11   <li>Implements most of SQL92.
    12     12       (<a href="omitted.html">Features not supported</a>)</li>
    13     13   <li>A complete database is stored in a 
    14     14       <a href="onefile.html">single cross-platform disk file</a>.</li>
    15     15   <li>Supports terabyte-sized databases and gigabyte-sized strings
    16     16       and blobs.  (See <a href="limits.html">limits.html</a>.)
    17     17   <li>Small code [footprint]: 
    18         -    less than 400KiB fully configured or less
    19         -    than 250KiB with optional features omitted.</li>
           18  +    less than 500KiB fully configured or much less
           19  +    with optional features omitted.</li>
    20     20   <li><a href="speed.html">Faster</a> than popular client/server database
    21     21       engines for most common operations.</li>
    22     22   <li>Simple, easy to use <a href="c3ref/intro.html">API</a>.</li>
    23     23   <li>Written in ANSI-C.  <a href="tclsqlite.html">TCL bindings</a> included.
    24         -    Bindings for dozens of other languages 
    25         -    <a href="http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers">
    26         -    available separately.</a></li>
           24  +    Bindings for dozens of other languages available separately.</li>
    27     25   <li>Well-commented source code with
    28     26       [test coverage |100% branch test coverage].</li>
    29     27   <li>Available as a 
    30     28       <a href="amalgamation.html">single ANSI-C source-code file</a> 
    31     29       that you can easily drop into another project.
    32     30   <li><a href="selfcontained.html">Self-contained</a>:
    33     31       no external dependencies.</li>

Changes to pages/limits.in.

   396    396   The theoretical maximum number of rows in a table is
   397    397   2<sup><small>64</small></sup> (18446744073709551616 or about 1.8e+19).
   398    398   This limit is unreachable since the maximum database size of 140 terabytes
   399    399   will be reached first.  A 140 terabytes database can hold no more than
   400    400   approximately 1e+13 rows, and then only if there are no indices and if
   401    401   each row contains very little data.
   402    402   }
          403  +
          404  +limititem {Maximum Database Size} {} {
          405  +<p>
          406  +Every database consists of one or more "pages".  Within a single database,
          407  +every page is the same size, but different database can have page sizes
          408  +that are powers of two between 512 and 65536, inclusive.  The maximum
          409  +size of a database file is 2147483646 pages.  At the maximum page size
          410  +of 65536 bytes, this translates into a maximum database size of 
          411  +approximately 1.4e+14 bytes (140 terabytes, or 128 tebibytes, or
          412  +140,000 gigabytes or 128,000 gibibytes).
          413  +<p>
          414  +This particular upper bound is untested since the developers do not 
          415  +have access to hardware capable of reaching this limit.  However, tests
          416  +do verify that SQLite behaves correctly and sanely when a database 
          417  +reaches the maximum file size of the underlying filesystem (which is
          418  +usually much less than the maximum theoretical database size) and when
          419  +a database is unable to grow due to disk space exhaustion.
          420  +}
          421  +
          422  +limititem {Maximum Number Of Tables In A Schema} {} {
          423  +<p>
          424  +Each table and index requires at least one page in the database file.
          425  +An "index" in the previous sentence means an index created explicitly
          426  +using a [CREATE INDEX] statement or implicit indices created by UNIQUE
          427  +and PRIMARY KEY constraints.  Since the maximum number of pages in a
          428  +database file is 2147483646 (a little over 2 billion) this is also then
          429  +an upper bound on the number of tables and indices in a schema.
          430  +<p>
          431  +Whenever a database is opened, the entire schema is scanned and parsed
          432  +and a parse tree for the schema is held in memory.  That means that
          433  +database connection startup time and initial memory usage
          434  +is proportional to the size of the schema.
          435  +}
   403    436   
   404    437   </tcl>
   405    438   </ol>