/ Check-in [7e283297]
Login

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

Overview
Comment:Increase the version number to 3.3.9. Documentation changes prior to the release of version 3.3.9. (CVS 3556)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 7e2832978f69cad105699259247581514ee7bd33
User & Date: drh 2007-01-04 16:37:41
Context
2007-01-04
17:01
Version 3.3.9 (CVS 3557) check-in: 8bf19a6a user: drh tags: trunk
16:37
Increase the version number to 3.3.9. Documentation changes prior to the release of version 3.3.9. (CVS 3556) check-in: 7e283297 user: drh tags: trunk
16:37
Disable the alter2.test on utf16 since the results of that test only work for utf8. (CVS 3555) check-in: 87f350f3 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to VERSION.

     1         -3.3.8
            1  +3.3.9

Changes to www/capi3ref.tcl.

     1         -set rcsid {$Id: capi3ref.tcl,v 1.46 2006/11/09 15:18:00 drh Exp $}
            1  +set rcsid {$Id: capi3ref.tcl,v 1.47 2007/01/04 16:37:41 drh Exp $}
     2      2   source common.tcl
     3      3   header {C/C++ Interface For SQLite Version 3}
     4      4   puts {
     5      5   <h2>C/C++ Interface For SQLite Version 3</h2>
     6      6   }
     7      7   
     8      8   proc api {name prototype desc {notused x}} {
................................................................................
  1134   1134   int sqlite3_prepare16_v2(
  1135   1135     sqlite3 *db,            /* Database handle */
  1136   1136     const void *zSql,       /* SQL statement, UTF-16 encoded */
  1137   1137     int nBytes,             /* Length of zSql in bytes. */
  1138   1138     sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  1139   1139     const void **pzTail     /* OUT: Pointer to unused portion of zSql */
  1140   1140   );
         1141  +
         1142  +/* Legacy Interfaces */
  1141   1143   int sqlite3_prepare(
  1142   1144     sqlite3 *db,            /* Database handle */
  1143   1145     const char *zSql,       /* SQL statement, UTF-8 encoded */
  1144   1146     int nBytes,             /* Length of zSql in bytes. */
  1145   1147     sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
  1146   1148     const char **pzTail     /* OUT: Pointer to unused portion of zSql */
  1147   1149   );
................................................................................
  1154   1156   );
  1155   1157   } {
  1156   1158    To execute an SQL query, it must first be compiled into a byte-code
  1157   1159    program using one of these routines. 
  1158   1160   
  1159   1161    The first argument "db" is an SQLite database handle. The second
  1160   1162    argument "zSql" is the statement to be compiled, encoded as either
  1161         - UTF-8 or UTF-16.  The sqlite3_prepare() and sqlite3_prepare_v2()
  1162         - interfaces uses UTF-8 and sqlite3_prepare16() and sqlite3_prepare16_v2()
         1163  + UTF-8 or UTF-16.  The sqlite3_prepare_v2()
         1164  + interfaces uses UTF-8 and sqlite3_prepare16_v2()
  1163   1165    use UTF-16. If the next argument, "nBytes", is less
  1164   1166    than zero, then zSql is read up to the first nul terminator.  If
  1165   1167    "nBytes" is not less than zero, then it is the length of the string zSql
  1166   1168    in bytes (not characters).
  1167   1169   
  1168   1170    *pzTail is made to point to the first byte past the end of the first
  1169   1171    SQL statement in zSql.  This routine only compiles the first statement
................................................................................
  1175   1177    empty string or a comment) then *ppStmt is set to NULL.  The calling
  1176   1178    procedure is responsible for deleting this compiled SQL statement
  1177   1179    using sqlite3_finalize() after it has finished with it.
  1178   1180   
  1179   1181    On success, SQLITE_OK is returned.  Otherwise an error code is returned.
  1180   1182   
  1181   1183    The sqlite3_prepare_v2() and sqlite3_prepare16_v2() interfaces are
  1182         - recommended for all new programs. The other two interfaces are retained
         1184  + recommended for all new programs. The other two older interfaces are retained
  1183   1185    for backwards compatibility. In the "v2" interfaces, the prepared statement
  1184   1186    that is returned (the sqlite3_stmt object) contains a copy of the original
  1185   1187    SQL. This causes the sqlite3_step() interface to behave a little differently.
  1186   1188    If the database schema changes, instead of returning SQLITE_SCHEMA as it
  1187   1189    always used to do, sqlite3_step() will automatically recompile the SQL
  1188   1190    statement and try to run it again. Only after 5 consecutive failures will
  1189   1191    an SQLITE_SCHEMA failure be reported back. The other change is that
................................................................................
  1227   1229   
  1228   1230   }
  1229   1231   
  1230   1232   api {} {
  1231   1233   int sqlite3_reset(sqlite3_stmt *pStmt);
  1232   1234   } {
  1233   1235    The sqlite3_reset() function is called to reset a prepared SQL
  1234         - statement obtained by a previous call to sqlite3_prepare(),
  1235         - sqlite3_prepare_v2(), sqlite3_prepare16() or
         1236  + statement obtained by a previous call to 
         1237  + sqlite3_prepare_v2() or
  1236   1238    sqlite3_prepare16_v2() back to it's initial state, ready to be re-executed.
  1237   1239    Any SQL statement variables that had values bound to them using
  1238   1240    the sqlite3_bind_*() API retain their values.
  1239   1241   }
  1240   1242   
  1241   1243   api {} {
  1242   1244   void sqlite3_result_blob(sqlite3_context*, const void*, int n, void(*)(void*));
................................................................................
  1348   1350    or to deny access to certain tables or columns within the database.
  1349   1351   }
  1350   1352   
  1351   1353   api {} {
  1352   1354   int sqlite3_step(sqlite3_stmt*);
  1353   1355   } {
  1354   1356    After an SQL query has been prepared with a call to either
  1355         - sqlite3_prepare(), sqlite3_prepare_v2(), sqlite3_prepare16(),
  1356         - or sqlite3_prepare16_v2(), then this function must be
         1357  + sqlite3_prepare_v2() or sqlite3_prepare16_v2() or to one of
         1358  + the legacy interfaces sqlite3_prepare() or sqlite3_prepare16(),
         1359  + then this function must be
  1357   1360    called one or more times to execute the statement.
  1358   1361   
  1359   1362    The details of the behavior of this sqlite3_step() interface depend
  1360   1363    on whether the statement was prepared using the newer "v2" interface
  1361   1364    sqlite3_prepare_v2() and sqlite3_prepare16_v2() or the older legacy
  1362   1365    interface sqlite3_prepare() and sqlite3_prepare16().  The use of the
  1363   1366    new "v2" interface is recommended for new applications but the legacy
................................................................................
  1376   1379    successfully.  sqlite3_step() should not be called again on this virtual
  1377   1380    machine without first calling sqlite3_reset() to reset the virtual
  1378   1381    machine back to its initial state.
  1379   1382   
  1380   1383    If the SQL statement being executed returns any data, then 
  1381   1384    SQLITE_ROW is returned each time a new row of data is ready
  1382   1385    for processing by the caller. The values may be accessed using
  1383         - the sqlite3_column_*() functions. sqlite3_step()
  1384         - is called again to retrieve the next row of data.
         1386  + the sqlite3_column_int(), sqlite3_column_text(), and similar functions.
         1387  + sqlite3_step() is called again to retrieve the next row of data.
  1385   1388    
  1386   1389    SQLITE_ERROR means that a run-time error (such as a constraint
  1387   1390    violation) has occurred.  sqlite3_step() should not be called again on
  1388   1391    the VM. More information may be found by calling sqlite3_errmsg().
  1389   1392    A more specific error code (example: SQLITE_INTERRUPT, SQLITE_SCHEMA,
  1390   1393    SQLITE_CORRUPT, and so forth) can be obtained by calling
  1391   1394    sqlite3_reset() on the prepared statement.  In the "v2" interface,

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 January 4 (3.3.9)} {
           29  +<li>Fix bugs in pager.c that could lead to database corruption if two
           30  +processes both try to recover a hot journal at the same instant</li>
           31  +<li>Added the <a href="capi3ref.html#sqlite3_prepare_v2>sqlite3_prepare_v2()</a>
           32  +API.</li>
           33  +<li>Fixed the ".dump" command in the command-line shell to show
           34  +triggers and views again.</li>
           35  +<li>Change the table_info pragma so that it returns NULL for the default
           36  +value if there is no default value</li>
           37  +<li>Support for non-ASCII characters in win95 filenames</li>
           38  +<li>Query optimizer enhancements:
           39  +<ul>
           40  +<li>Optimizer does a better job of using indices to satisfy ORDER BY
           41  +clauses that sort on the integer primary key</li>
           42  +<li>Use an index to satisfy an IS NULL operator in the WHERE clause</li>
           43  +<li>Fix a bug that was causing the optimizer to miss an OR optimization
           44  +opportunity</li>
           45  +<li>The optimizer has more freedom to reorder tables in the FROM clause
           46  +even in there are LEFT joins.</li>
           47  +</ul>
           48  +<li>Extension loading supported added to winCE</li>
           49  +<li>Allow constrain names on the DEFAULT clause in a table definition</li>
           50  +<li>Added the ".bail" command to the command-line shell</li>
           51  +<li>Make CVS (comma separate value) output from the command-line shell
           52  +more closely aligned to accepted practice</li>
           53  +<li>Experimental FTS2 module added</li>
           54  +<li>Use sqlite3_mprintf() instead of strdup() to avoid libc dependencies</li>
           55  +<li>VACUUM uses a temporary file in the official TEMP folder, not in the
           56  +same directory as the original database</li>
           57  +<li>The prefix on temporary filenames on windows is changed from "sqlite"
           58  +to "etilqs".</li>
           59  +}
    27     60   
    28     61   chng {2006 October 9 (3.3.8)} {
    29     62   <li>Support for full text search using the
    30     63   <a href="http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex">FTS1 module</a>
    31     64   (beta)</li>
    32     65   <li>Added OS-X locking patches (beta - disabled by default)</li>
    33     66   <li>Introduce extended error codes and add error codes for various

Changes to www/index.tcl.

    23     23       even after system crashes and power failures.
    24     24   <li>Zero-configuration - no setup or administration needed.</li>
    25     25   <li>Implements most of SQL92.
    26     26       (<a href="omitted.html">Features not supported</a>)</li>
    27     27   <li>A complete database is stored in a single disk file.</li>
    28     28   <li>Database files can be freely shared between machines with
    29     29       different byte orders.</li>
    30         -<li>Supports databases up to 2 terabytes
           30  +<li>Supports databases up to 2 tebibytes
    31     31       (2<sup><small>41</small></sup> bytes) in size.</li>
    32         -<li>Sizes of strings and BLOBs limited only by available memory.</li>
           32  +<li>Strings and BLOBs up to 2 gibibytes (2<sup><small>31</small></sup> bytes)
           33  +    in size.</li>
    33     34   <li>Small code footprint: less than 250KiB fully configured or less
    34     35       than 150KiB with optional features omitted.</li>
    35     36   <li><a href="speed.html">Faster</a> than popular client/server database
    36     37       engines for most common operations.</li>
    37     38   <li>Simple, easy to use <a href="capi3.html">API</a>.</li>
    38     39   <li><a href="tclsqlite.html">TCL bindings</a> included.
    39     40       Bindings for many other languages 
................................................................................
    61     62   
    62     63   proc newsitem {date title text} {
    63     64     puts "<h3>$date - $title</h3>"
    64     65     regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt
    65     66     puts "<p>$txt</p>"
    66     67     puts "<hr width=\"50%\">"
    67     68   }
           69  +
           70  +newsitem {2007-Jan-4} {Version 3.3.9} {
           71  +  Version 3.3.9 fixes bugs that can lead to database corruption under
           72  +  obsure and difficult to reproduce circumstances.  See
           73  +  <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">
           74  +  DatabaseCorruption</a> in the
           75  +  <a href="http://www.sqlite.org/cvstrac/wiki">wiki</a> for details.
           76  +  This release also add the new
           77  +  <a href="capi3ref.html#sqlite3_prepare_v2">sqlite3_prepare_v2()</a>
           78  +  API and includes important bug fixes in the command-line
           79  +  shell and enhancements to the query optimizer.  Upgrading is
           80  +  recommended.
           81  +}
    68     82   
    69     83   newsitem {2006-Oct-9} {Version 3.3.8} {
    70     84     Version 3.3.8 adds support for full-text search using the 
    71     85     <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsOne">FTS1
    72     86     module.</a>  There are also minor bug fixes.  Upgrade only if
    73     87     you want to try out the new full-text search capabilities or if
    74     88     you are having problems with 3.3.7.
................................................................................
    90    104     <a href="http://www.mikesclutter.com">Mike Owens</a>.
    91    105     is now available from <a href="http://www.apress.com">Apress</a>.
    92    106     The books covers the latest SQLite internals as well as
    93    107     the native C interface and bindings for PHP, Python,
    94    108     Perl, Ruby, Tcl, and Java.  Recommended.
    95    109   }
    96    110   
    97         -newsitem {2006-Jun-6} {Version 3.3.6} {
    98         -  Changes include improved tolerance for windows virus scanners
    99         -  and faster :memory: databases.  There are also fixes for several
   100         -  obscure bugs.  Upgrade if you are having problems.
   101         -}
   102         -
   103         -newsitem {2006-Apr-5} {Version 3.3.5} {
   104         -  This release fixes many minor bugs and documentation typos and
   105         -  provides some minor new features and performance enhancements.
   106         -  Upgrade only if you are having problems or need one of the new features.
   107         -}
   108         -
   109    111   
   110    112   puts {
   111    113   <p align="right"><a href="oldnews.html">Old news...</a></p>
   112    114   </td></tr></table>
   113    115   }
   114         -footer {$Id: index.tcl,v 1.143 2006/10/08 18:56:57 drh Exp $}
          116  +footer {$Id: index.tcl,v 1.144 2007/01/04 16:37:41 drh Exp $}

Changes to www/oldnews.tcl.

     5      5   proc newsitem {date title text} {
     6      6     puts "<h3>$date - $title</h3>"
     7      7     regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt
     8      8     puts "<p>$txt</p>"
     9      9     puts "<hr width=\"50%\">"
    10     10   }
    11     11   
           12  +
           13  +newsitem {2006-Jun-6} {Version 3.3.6} {
           14  +  Changes include improved tolerance for windows virus scanners
           15  +  and faster :memory: databases.  There are also fixes for several
           16  +  obscure bugs.  Upgrade if you are having problems.
           17  +}
           18  +
           19  +newsitem {2006-Apr-5} {Version 3.3.5} {
           20  +  This release fixes many minor bugs and documentation typos and
           21  +  provides some minor new features and performance enhancements.
           22  +  Upgrade only if you are having problems or need one of the new features.
           23  +}
    12     24   
    13     25   newsitem {2006-Feb-11} {Version 3.3.4} {
    14     26     This release fixes several bugs, including a 
    15     27     a blunder that might cause a deadlock on multithreaded systems.
    16     28     Anyone using SQLite in a multithreaded environment should probably upgrade.
    17     29   }
    18     30   
................................................................................
   344    356     changes to both the C-language API and the underlying file format
   345    357     that will enable SQLite to better support internationalization.
   346    358     The first beta is schedule for release on 2004-July-01.
   347    359   
   348    360     Plans are to continue to support SQLite version 2.8 with
   349    361     bug fixes.  But all new development will occur in version 3.0.
   350    362   }
   351         -footer {$Id: oldnews.tcl,v 1.16 2006/08/12 14:38:47 drh Exp $}
          363  +footer {$Id: oldnews.tcl,v 1.17 2007/01/04 16:37:41 drh Exp $}