/ Check-in [d9f6fdb7]
Login

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

Overview
Comment:Update the version number and change comments in preparation for the release of 3.3.14. (CVS 3789)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: d9f6fdb72b29354921e6de40df5ed4f86b158a01
User & Date: drh 2007-04-02 00:53:19
Context
2007-04-02
05:07
Fix a resource leak introduced by the change-counter optimisation. Also add some test coverage. (CVS 3790) check-in: ba0538a4 user: danielk1977 tags: trunk
00:53
Update the version number and change comments in preparation for the release of 3.3.14. (CVS 3789) check-in: d9f6fdb7 user: drh tags: trunk
2007-04-01
23:49
Fix some warnings about unused and uninitialized variables. (CVS 3788) check-in: 18aec1dd user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to VERSION.

     1         -3.3.13
            1  +3.3.14

Changes to www/changes.tcl.

    20     20     if {[regexp {\(([0-9.]+)\)} $date all vers]} {
    21     21       set label [string map {. _} $vers]
    22     22       puts "<A NAME=\"version_$label\">"
    23     23     }
    24     24     puts "<DT><B>$date</B></DT>"
    25     25     puts "<DD><P><UL>$desc</UL></P></DD>"
    26     26   }
           27  +
           28  +chng {2007 April 2 (3.3.14)} {
           29  +<li>Fix a <a href="http://www.sqlite.org/cvstrac/tktview?tn=2273">bug</a>
           30  +    in 3.3.13 that could cause a segfault when the IN operator
           31  +    is used one one term of a two-column index and the right-hand side of
           32  +    the IN operator contains a NULL.</li>
           33  +<li>Added a new OS interface method for determining the sector size
           34  +    of underlying media:  sqlite3OsSectorSize().</li>
           35  +<li>A new algorithm for statements of the form
           36  +    INSERT INTO <i>table1</i> SELECT * FROM <i>table2</i>
           37  +    is faster and reduces fragmentation.  VACUUM uses statements of
           38  +    this form and thus runs faster and defragments better.</li>
           39  +<li>Performance enhancements through reductions in disk I/O:
           40  +<ul>
           41  +<li>Do not read the last page of an overflow chain when
           42  +    deleting the row - just add that page to the freelist.</li>
           43  +<li>Do not store pages being deleted in the 
           44  +    rollback journal.</li>
           45  +<li>Do not read in the (meaningless) content of
           46  +    pages extracted from the freelist.</li>
           47  +<li>Do not flush the page cache (and thus avoiding
           48  +    a cache refill) unless another process changes the underlying
           49  +    database file.</li>
           50  +<li>Truncate rather than delete the rollback journal when committing
           51  +    a transaction in exclusive access mode, or when committing the TEMP
           52  +    database.</li>
           53  +</ul></li>
           54  +<li>Added support for exclusive access mode using
           55  +    <a href="pragma.html#pragma_locking_mode">
           56  +    "PRAGMA locking_mode=EXCLUSIVE"</a></li>
           57  +<li>Use heap space instead of stack space for large buffers in the
           58  +    pager - useful on embedded platforms with  stack-space
           59  +    limitations.</li>
           60  +<li>Add a makefile target "sqlite3.c" that builds an amalgamation containing
           61  +    the core SQLite library C code in a single file.</li>
           62  +<li>Get the library working correctly when compiled 
           63  +    with GCC option "-fstrict-aliasing".</li>
           64  +<li>Removed the vestigal SQLITE_PROTOCOL error.</li>
           65  +<li>Improvements to test coverage, other minor bugs fixed,
           66  +    memory leaks plugged,
           67  +    code refactored and/or recommented in places for easier reading.</li>
           68  +}
    27     69   
    28     70   chng {2007 February 13 (3.3.13)} {
    29     71   <li>Add a "fragmentation" measurement in the output of sqlite3_analyzer.</li>
    30     72   <li>Add the COLLATE operator used to explicitly set the collating sequence
    31     73   used by an expression.  This feature is considered experimental pending
    32     74   additional testing.</li>
    33     75   <li>Allow up to 64 tables in a join - the old limit was 32.</li>

Changes to www/pragma.tcl.

     1      1   #
     2      2   # Run this Tcl script to generate the pragma.html file.
     3      3   #
     4         -set rcsid {$Id: pragma.tcl,v 1.21 2007/03/26 08:41:13 danielk1977 Exp $}
            4  +set rcsid {$Id: pragma.tcl,v 1.22 2007/04/02 00:53:19 drh Exp $}
     5      5   source common.tcl
     6      6   header {Pragma statements supported by SQLite}
     7      7   
     8      8   proc Section {name {label {}}} {
     9      9     puts "\n<hr />"
    10     10     if {$label!=""} {
    11     11       puts "<a name=\"$label\"></a>"
................................................................................
   243    243   
   244    244       <p>In NORMAL locking-mode (the default), a database connection
   245    245       unlocks the database file at the conclusion of each read or
   246    246       write transaction. When the locking-mode is set to EXCLUSIVE, the
   247    247       database connection never releases file-locks. The first time the
   248    248       database is read in EXCLUSIVE mode, a shared lock is obtained and 
   249    249       held. The first time the database is written, an exclusive lock is
   250         -    obtained and held.
          250  +    obtained and held.</p>
   251    251   
   252    252       <p>Database locks obtained by a connection in EXCLUSIVE mode may be
   253    253       released either by closing the database connection, or by setting the
   254    254       locking-mode back to NORMAL using this pragma and then accessing the
   255    255       database file (for read or write). Simply setting the locking-mode to
   256         -    NORMAL is not enough, locks not be released until the next time
   257         -    the database file is accessed.
          256  +    NORMAL is not enough - locks are not be released until the next time
          257  +    the database file is accessed.</p>
   258    258   
   259    259       <p>There are two reasons to set the locking-mode to EXCLUSIVE. One
   260    260       is if the application actually wants to prevent other processes from
   261    261       accessing the database file. The other is that a small number of
   262    262       filesystem operations are saved by optimizations enabled in this
   263         -    mode. This may be significant in embedded environments.
          263  +    mode. This may be significant in embedded environments.</p>
          264  +
          265  +    <p>When the locking_mode pragma specifies a particular database,
          266  +    for example:</p>
          267  +
          268  +    <blockquote>
          269  +PRAGMA <b>main.</b>locking_mode=EXCLUSIVE;
          270  +    </blockquote>
          271  +
          272  +    <p>Then the locking mode applies only to the named database.  If no
          273  +    database name qualifier preceeds the "locking_mode" keyword then
          274  +    the locking mode is applied to all databases, including any new
          275  +    databases added by subsequent <a href="lang_attach.html">ATTACH</a>
          276  +    commands.</p>
          277  +
          278  +   <p>The "temp" database (in which TEMP tables and indices are stored)
          279  +   always uses exclusive locking mode.  The locking mode of temp cannot
          280  +   be changed.  All other databases use the normal locking mode by default
          281  +   and are effected by this pragma.</p>
   264    282   </li>
   265    283   
   266    284   <a name="pragma_page_size"></a>
   267    285   <li><p><b>PRAGMA page_size;
   268    286          <br>PRAGMA page_size = </b><i>bytes</i><b>;</b></p>
   269    287       <p>Query or set the page-size of the database. The page-size
   270    288       may only be set if the database has not yet been created. The page