Documentation Source Text

Check-in [3c24a2c7f6]
Login

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

Overview
Comment:Remove all hyperlinks to CVSTrac in preparation for shutting down all CVSTrac servers, which are now unmaintained for 10 years and are showing their age.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 3c24a2c7f622060f98bd6494afec7292f0ab16d0c28676db28627a6af249b0ad
User & Date: drh 2018-11-15 16:53:57.210
Context
2018-11-16
01:43
Improvements to documentation on the CSV virtual table. (check-in: c0ef40b603 user: drh tags: trunk)
2018-11-15
16:53
Remove all hyperlinks to CVSTrac in preparation for shutting down all CVSTrac servers, which are now unmaintained for 10 years and are showing their age. (check-in: 3c24a2c7f6 user: drh tags: trunk)
2018-11-13
19:55
Improvements to documentation associated with new features in version 3.26.0. (check-in: 3d96456389 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/changes.in.
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
    uncovering.
   
}

chng {2009-05-25 (3.6.14.2)} {
<li>Fix a code generator bug introduced in [version 3.6.14].  This bug
    can cause incorrect query results under obscure circumstances.
    [Ticket #3879].
}

chng {2009-05-19 (3.6.14.1)} {
<li>Fix a bug in [group_concat()], [ticket #3841]
<li>Fix a performance bug in the pager cache, [ticket #3844]
<li>Fix a bug in the [sqlite3_backup] implementation that can lead
    to a corrupt backup database.  [Ticket #3858].
}

chng {2009-05-07 (3.6.14)} {
<li>Added the optional [asynchronous VFS] module.</li>
<li>Enhanced the query optimizer so that [virtual tables] are able to
    make use of OR and IN operators in the WHERE clause.</li>
<li>Speed improvements in the btree and pager layers.</li>







|



|
|

|







3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
    uncovering.
   
}

chng {2009-05-25 (3.6.14.2)} {
<li>Fix a code generator bug introduced in [version 3.6.14].  This bug
    can cause incorrect query results under obscure circumstances.
    Ticket #3879.
}

chng {2009-05-19 (3.6.14.1)} {
<li>Fix a bug in [group_concat()], ticket #3841
<li>Fix a performance bug in the pager cache, ticket #3844
<li>Fix a bug in the [sqlite3_backup] implementation that can lead
    to a corrupt backup database.  Ticket #3858.
}

chng {2009-05-07 (3.6.14)} {
<li>Added the optional [asynchronous VFS] module.</li>
<li>Enhanced the query optimizer so that [virtual tables] are able to
    make use of OR and IN operators in the WHERE clause.</li>
<li>Speed improvements in the btree and pager layers.</li>
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
<li>Improvements to the <a href="syntaxdiagrams.html">syntax bubble
    diagrams</a>
<li>Various minor bug fixes
}

chng {2009-01-15 (3.6.10)} {
<li>Fix a cache coherency problem that could lead to database corruption.
    [Ticket #3584].
}

chng {2009-01-14 (3.6.9)} {
<li>Fix two bugs, which when combined might result in incorrect
    query results.  Both bugs were harmless by themselves; only when
    they team up do they cause problems.  [Ticket #3581].
}

chng {2009-01-12 (3.6.8)} {
<li>Added support for [SAVEPOINT | nested transactions]</li>
<li>Enhanced the query optimizer so that it is able to use
    multiple indices to efficiently process 
    <a href="optoverview.html#or_opt">OR-connected constraints</a>







|





|







3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
<li>Improvements to the <a href="syntaxdiagrams.html">syntax bubble
    diagrams</a>
<li>Various minor bug fixes
}

chng {2009-01-15 (3.6.10)} {
<li>Fix a cache coherency problem that could lead to database corruption.
    Ticket #3584.
}

chng {2009-01-14 (3.6.9)} {
<li>Fix two bugs, which when combined might result in incorrect
    query results.  Both bugs were harmless by themselves; only when
    they team up do they cause problems.  Ticket #3581.
}

chng {2009-01-12 (3.6.8)} {
<li>Added support for [SAVEPOINT | nested transactions]</li>
<li>Enhanced the query optimizer so that it is able to use
    multiple indices to efficiently process 
    <a href="optoverview.html#or_opt">OR-connected constraints</a>
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
    a rollback.  This bug was first introduced in [version 3.6.4].</li>
<li>Two other very minor bug fixes</li>
}

chng {2008-11-19 (3.6.6)} {
<li>Fix a #define that prevented [memsys5] from compiling</li>
<li>Fix a problem in the virtual table commit mechanism that was causing
    a crash in FTS3.  [Ticket #3497].</li>
<li>Add the [sqlite3_pcache_methods2 | application-defined page cache]</li>
<li>Added built-in support for VxWorks</li>
}

chng {2008-11-12 (3.6.5)} {
<li>Add the MEMORY option to the [journal_mode pragma].</li>
<li>Added the [sqlite3_db_mutex()] interface.</li>







|







3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
    a rollback.  This bug was first introduced in [version 3.6.4].</li>
<li>Two other very minor bug fixes</li>
}

chng {2008-11-19 (3.6.6)} {
<li>Fix a #define that prevented [memsys5] from compiling</li>
<li>Fix a problem in the virtual table commit mechanism that was causing
    a crash in FTS3.  Ticket #3497.</li>
<li>Add the [sqlite3_pcache_methods2 | application-defined page cache]</li>
<li>Added built-in support for VxWorks</li>
}

chng {2008-11-12 (3.6.5)} {
<li>Add the MEMORY option to the [journal_mode pragma].</li>
<li>Added the [sqlite3_db_mutex()] interface.</li>
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
}

chng {2008-05-14 (3.5.9)} {
<li>Added <em>experimental</em>
    support for the [journal_mode] PRAGMA and persistent journal.</li>
<li>[journal_mode | Journal mode PERSIST] is the default behavior in
    [locking_mode | exclusive locking mode].</li>
<li>Fix a performance regression on LEFT JOIN (see [ticket #3015])
    that was mistakenly introduced in [version 3.5.8].</li>
<li>Performance enhancement: Reengineer the internal routines used
    to interpret and render variable-length integers.</li>
<li>Fix a buffer-overrun problem in [sqlite3_mprintf()] which occurs
    when a string without a zero-terminator is passed to "%.*s".</li>
<li>Always convert IEEE floating point NaN values into NULL during
    processing.  ([Ticket #3060])</li>
<li>Make sure that when a connection blocks on a RESERVED lock that
    it is able to continue after the lock is released.  ([Ticket #3093])</li>
<li>The "configure" scripts should now automatically configure Unix
    systems for large file support.  Improved error messages for
    when large files are encountered and large file support is disabled.</li>
<li>Avoid cache pages leaks following disk-full or I/O errors</li>
<li>And, many more minor bug fixes and performance enhancements....</li>
}








|






|

|







3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
}

chng {2008-05-14 (3.5.9)} {
<li>Added <em>experimental</em>
    support for the [journal_mode] PRAGMA and persistent journal.</li>
<li>[journal_mode | Journal mode PERSIST] is the default behavior in
    [locking_mode | exclusive locking mode].</li>
<li>Fix a performance regression on LEFT JOIN (see ticket #3015)
    that was mistakenly introduced in [version 3.5.8].</li>
<li>Performance enhancement: Reengineer the internal routines used
    to interpret and render variable-length integers.</li>
<li>Fix a buffer-overrun problem in [sqlite3_mprintf()] which occurs
    when a string without a zero-terminator is passed to "%.*s".</li>
<li>Always convert IEEE floating point NaN values into NULL during
    processing.  (Ticket #3060)</li>
<li>Make sure that when a connection blocks on a RESERVED lock that
    it is able to continue after the lock is released.  (Ticket #3093)</li>
<li>The "configure" scripts should now automatically configure Unix
    systems for large file support.  Improved error messages for
    when large files are encountered and large file support is disabled.</li>
<li>Avoid cache pages leaks following disk-full or I/O errors</li>
<li>And, many more minor bug fixes and performance enhancements....</li>
}

3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
    Firefox crashes.  Make arrangements to always test SQLITE_SECURE_DELETE
    prior to each release.</li>
<li>Other miscellaneous performance enhancements.</li>
<li>Other miscellaneous minor bug fixes.</li>
}

chng {2008-03-17 (3.5.7)} {
<li>Fix a bug ([ticket #2927]) in the register allocation for
compound selects - introduced by the new VM code in version 3.5.5.</li>
<li>ALTER TABLE uses double-quotes instead of single-quotes for quoting
filenames.</li>
<li>Use the WHERE clause to reduce the size of a materialized VIEW in
an UPDATE or DELETE statement. (Optimization)</li>
<li>Do not apply the flattening optimization if the outer query is an
aggregate and the inner query contains ORDER BY.  ([Ticket #2943])</li>
<li>Additional OS/2 updates</li>
<li>Added an experimental power-of-two, first-fit memory allocator.</li>
<li>Remove all instances of sprintf() from the code</li>
<li>Accept "Z" as the zulu timezone at the end of date strings</li>
<li>Fix a bug in the LIKE optimizer that occurs when the last character
before the first wildcard is an upper-case "Z"</li>
<li>Added the "bitvec" object for keeping track of which pages have
been journalled.  Improves speed and reduces memory consumption, especially
for large database files.</li>
<li>Get the SQLITE_ENABLE_LOCKING_STYLE macro working again on Mac OS X.</li>
<li>Store the statement journal in the temporary file directory instead of
collocated with the database file.</li>
<li>Many improvements and cleanups to the configure script</li>
}

chng {2008-02-06 (3.5.6)} {
<li>Fix a bug ([ticket #2913])
that prevented virtual tables from working in a LEFT JOIN.
The problem was introduced into shortly before the 3.5.5 release.</li>
<li>Bring the OS/2 porting layer up-to-date.</li>
<li>Add the new [sqlite3_result_error_code()] API and use it in the
implementation of [ATTACH] so that proper error codes are returned
when an [ATTACH] fails.</li>
}

chng {2008-01-31 (3.5.5)} {
<li>Convert the underlying virtual machine to be a register-based machine
rather than a stack-based machine.  The only user-visible change
is in the output of EXPLAIN.</li>
<li>Add the build-in RTRIM collating sequence.</li>
}

chng {2007-12-14 (3.5.4)} {
<li>Fix a critical bug in UPDATE or DELETE that occurs when an
OR REPLACE clause or a trigger causes rows in the same table to
be deleted as side effects.  (See [ticket #2832].)  The most likely
result of this bug is a segmentation fault, though database
corruption is a possibility.</li>
<li>Bring the processing of ORDER BY into compliance with the 
SQL standard for case where a result alias and a table column name
are in conflict.  Correct behavior is to prefer the result alias.
Older versions of SQLite incorrectly picked the table column.
(See [ticket #2822].)</li>
<li>The <a href="lang_vacuum.html">VACUUM</a> command preserves
the setting of the 
<a href="pragma.html#pragma_legacy_file_format">legacy_file_format pragma</a>.
([Ticket #2804].)</li>
<li>Productize and officially support the group_concat() SQL function.</li>
<li>Better optimization of some IN operator expressions.</li>
<li>Add the ability to change the 
<a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a> status of a
database by setting the auto_vaccum pragma and VACUUMing the database.</li>
<li>Prefix search in FTS3 is much more efficient.</li>
<li>Relax the SQL statement length restriction in the CLI so that







|






|
















|


















|






|



|







3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
    Firefox crashes.  Make arrangements to always test SQLITE_SECURE_DELETE
    prior to each release.</li>
<li>Other miscellaneous performance enhancements.</li>
<li>Other miscellaneous minor bug fixes.</li>
}

chng {2008-03-17 (3.5.7)} {
<li>Fix a bug (ticket #2927) in the register allocation for
compound selects - introduced by the new VM code in version 3.5.5.</li>
<li>ALTER TABLE uses double-quotes instead of single-quotes for quoting
filenames.</li>
<li>Use the WHERE clause to reduce the size of a materialized VIEW in
an UPDATE or DELETE statement. (Optimization)</li>
<li>Do not apply the flattening optimization if the outer query is an
aggregate and the inner query contains ORDER BY.  (Ticket #2943)</li>
<li>Additional OS/2 updates</li>
<li>Added an experimental power-of-two, first-fit memory allocator.</li>
<li>Remove all instances of sprintf() from the code</li>
<li>Accept "Z" as the zulu timezone at the end of date strings</li>
<li>Fix a bug in the LIKE optimizer that occurs when the last character
before the first wildcard is an upper-case "Z"</li>
<li>Added the "bitvec" object for keeping track of which pages have
been journalled.  Improves speed and reduces memory consumption, especially
for large database files.</li>
<li>Get the SQLITE_ENABLE_LOCKING_STYLE macro working again on Mac OS X.</li>
<li>Store the statement journal in the temporary file directory instead of
collocated with the database file.</li>
<li>Many improvements and cleanups to the configure script</li>
}

chng {2008-02-06 (3.5.6)} {
<li>Fix a bug (ticket #2913)
that prevented virtual tables from working in a LEFT JOIN.
The problem was introduced into shortly before the 3.5.5 release.</li>
<li>Bring the OS/2 porting layer up-to-date.</li>
<li>Add the new [sqlite3_result_error_code()] API and use it in the
implementation of [ATTACH] so that proper error codes are returned
when an [ATTACH] fails.</li>
}

chng {2008-01-31 (3.5.5)} {
<li>Convert the underlying virtual machine to be a register-based machine
rather than a stack-based machine.  The only user-visible change
is in the output of EXPLAIN.</li>
<li>Add the build-in RTRIM collating sequence.</li>
}

chng {2007-12-14 (3.5.4)} {
<li>Fix a critical bug in UPDATE or DELETE that occurs when an
OR REPLACE clause or a trigger causes rows in the same table to
be deleted as side effects.  (See ticket #2832.)  The most likely
result of this bug is a segmentation fault, though database
corruption is a possibility.</li>
<li>Bring the processing of ORDER BY into compliance with the 
SQL standard for case where a result alias and a table column name
are in conflict.  Correct behavior is to prefer the result alias.
Older versions of SQLite incorrectly picked the table column.
(See ticket #2822.)</li>
<li>The <a href="lang_vacuum.html">VACUUM</a> command preserves
the setting of the 
<a href="pragma.html#pragma_legacy_file_format">legacy_file_format pragma</a>.
(Ticket #2804.)</li>
<li>Productize and officially support the group_concat() SQL function.</li>
<li>Better optimization of some IN operator expressions.</li>
<li>Add the ability to change the 
<a href="pragma.html#pragma_auto_vacuum">auto_vacuum</a> status of a
database by setting the auto_vaccum pragma and VACUUMing the database.</li>
<li>Prefix search in FTS3 is much more efficient.</li>
<li>Relax the SQL statement length restriction in the CLI so that
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
chng {2007-10-04 (3.5.1)} {
<li><i><b>Nota Bene:</b> We are not using terms "alpha" or "beta" on this
    release because the code is stable and because if we use those terms,
    nobody will upgrade.  However, we still reserve the right to make
    incompatible changes to the new VFS interface in future releases.</i></li>

<li>Fix a bug in the handling of [SQLITE_FULL] errors that could lead
    to database corruption.  [Ticket #2686].
<li>The test_async.c drive now does full file locking and works correctly
    when used simultaneously by multiple processes on the same database.
<li>The CLI ignores whitespace (including comments) at the end of lines
<li>Make sure the query optimizer checks dependencies on all terms of
    a compound SELECT statement.  [Ticket #2640].
<li>Add demonstration code showing how to build a VFS for a raw
    mass storage without a filesystem.
<li>Added an output buffer size parameter to the xGetTempname() method
    of the VFS layer.
<li>Sticky [SQLITE_FULL] or [SQLITE_IOERR] errors in the pager are reset
    when a new transaction is started.
}







|




|







3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
chng {2007-10-04 (3.5.1)} {
<li><i><b>Nota Bene:</b> We are not using terms "alpha" or "beta" on this
    release because the code is stable and because if we use those terms,
    nobody will upgrade.  However, we still reserve the right to make
    incompatible changes to the new VFS interface in future releases.</i></li>

<li>Fix a bug in the handling of [SQLITE_FULL] errors that could lead
    to database corruption.  Ticket #2686.
<li>The test_async.c drive now does full file locking and works correctly
    when used simultaneously by multiple processes on the same database.
<li>The CLI ignores whitespace (including comments) at the end of lines
<li>Make sure the query optimizer checks dependencies on all terms of
    a compound SELECT statement.  Ticket #2640.
<li>Add demonstration code showing how to build a VFS for a raw
    mass storage without a filesystem.
<li>Added an output buffer size parameter to the xGetTempname() method
    of the VFS layer.
<li>Sticky [SQLITE_FULL] or [SQLITE_IOERR] errors in the pager are reset
    when a new transaction is started.
}
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
}


chng {2007-08-13 (3.4.2)} {
<li>Fix a database corruption bug that might occur if a ROLLBACK command
is executed in <a href="pragma.html#pragma_auto_vacuum">auto-vacuum mode</a>
and a very small [sqlite3_soft_heap_limit] is set. 
[Ticket #2565].

<li>Add the ability to run a full regression test with a small
[sqlite3_soft_heap_limit].

<li>Fix other minor problems with using small soft heap limits.

<li>Work-around for 
[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32575 | GCC bug 32575].

<li>Improved error detection of misused aggregate functions.

<li>Improvements to the amalgamation generator script so that all symbols
are prefixed with either SQLITE_PRIVATE or SQLITE_API.
}

chng {2007-07-20 (3.4.1)} {
<li>Fix a bug in <a href="lang_vacuum.html">VACUUM</a> that can lead to
    <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">
    database corruption</a> if two
    processes are connected to the database at the same time and one
    VACUUMs then the other then modifies the database.</li>
<li>The expression "+column" is now considered the same as "column"
    when computing the collating sequence to use on the expression.</li>
<li>In the <a href="tclsqlite.html">TCL language interface</a>,
   "@variable" instead of "$variable" always binds as a blob.</li>
<li>Added <a href="pragma.html#pragma_freelist_count">PRAGMA freelist_count</a>







|

















<
|







3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473

3474
3475
3476
3477
3478
3479
3480
3481
}


chng {2007-08-13 (3.4.2)} {
<li>Fix a database corruption bug that might occur if a ROLLBACK command
is executed in <a href="pragma.html#pragma_auto_vacuum">auto-vacuum mode</a>
and a very small [sqlite3_soft_heap_limit] is set. 
Ticket #2565.

<li>Add the ability to run a full regression test with a small
[sqlite3_soft_heap_limit].

<li>Fix other minor problems with using small soft heap limits.

<li>Work-around for 
[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32575 | GCC bug 32575].

<li>Improved error detection of misused aggregate functions.

<li>Improvements to the amalgamation generator script so that all symbols
are prefixed with either SQLITE_PRIVATE or SQLITE_API.
}

chng {2007-07-20 (3.4.1)} {
<li>Fix a bug in <a href="lang_vacuum.html">VACUUM</a> that can lead to

    database corruptio if two
    processes are connected to the database at the same time and one
    VACUUMs then the other then modifies the database.</li>
<li>The expression "+column" is now considered the same as "column"
    when computing the collating sequence to use on the expression.</li>
<li>In the <a href="tclsqlite.html">TCL language interface</a>,
   "@variable" instead of "$variable" always binds as a blob.</li>
<li>Added <a href="pragma.html#pragma_freelist_count">PRAGMA freelist_count</a>
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
    tokenization support to FTS2</li>
<li>Other minor bug fixes and documentation enhancements</li>
}

chng {2007-06-18 (3.4.0)} {
<li>Fix a bug that can lead to database corruption if an [SQLITE_BUSY] error
    occurs in the middle of an explicit transaction and that transaction
    is later committed.  [Ticket #2409].
    See the
    <a href="http://www.sqlite.org/cvstrac/wiki?p=CorruptionFollowingBusyError">
    CorruptionFollowingBusyError</a> wiki page for details.</i>
<li>Fix a bug that can lead to database corruption if autovacuum mode is
    on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement
    which itself follows a cache overflow inside a transaction.  See
    [ticket #2418]. 
    </li>
<li>Added explicit <a href="limits.html">upper bounds</a> on the sizes and
    quantities of things SQLite can process.  This change might cause
    compatibility problems for
    applications that use SQLite in the extreme, which is why the current
    release is 3.4.0 instead of 3.3.18.</li>
<li>Added support for [sqlite3_blob_open|Incremental BLOB I/O].</li>
<li>Added the [sqlite3_bind_zeroblob()] API</a>
    and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li>
<li>Added support for <a href="pragma.html#pragma_incremental_vacuum">
    Incremental Vacuum</a>.</li>
<li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to support
    ARM7 processors with goofy endianness.</li>
<li>Removed all instances of sprintf() and strcpy() from the core library.</li>
<li>Added support for
    [http://www.icu-project.org/ | International Components for Unicode (ICU)]
    to the full-text search extensions.
<li>In the Windows OS driver, reacquire a SHARED lock if an attempt to
    acquire an EXCLUSIVE lock fails.  [Ticket #2354]</li>
<li>Fix the REPLACE() function so that it returns NULL if the second argument
    is an empty string.  [Ticket #2324].</li>
<li>Document the hazards of type conversions in
    [sqlite3_column_blob()]
    and related APIs.  Fix unnecessary type conversions.  [Ticket #2321].</li>
<li>Internationalization of the TRIM() function.  [Ticket #2323]</li>
<li>Use memmove() instead of memcpy() when moving between memory regions
    that might overlap.  [Ticket #2334]</li>
<li>Fix an optimizer bug involving subqueries in a compound SELECT that has
    both an ORDER BY and a LIMIT clause.  [Ticket #2339].</li>
<li>Make sure the [sqlite3_snprintf()]
    interface does not zero-terminate the buffer if the buffer size is
    less than 1.  [Ticket #2341]</li>
<li>Fix the built-in printf logic so that it prints "NaN" not "Inf" for
    floating-point NaNs.  [Ticket #2345]</li>
<li>When converting BLOB to TEXT, use the text encoding of the main database.
    [Ticket #2349]</li>
<li>Keep the full precision of integers (if possible) when casting to
    NUMERIC.  [Ticket #2364]</li>
<li>Fix a bug in the handling of UTF16 codepoint 0xE000</li>
<li>Consider explicit collate clauses when matching WHERE constraints
    to indices in the query optimizer.  [Ticket #2391]</li>
<li>Fix the query optimizer to correctly handle constant expressions in 
    the ON clause of a LEFT JOIN.  [Ticket #2403]</li>
<li>Fix the query optimizer to handle rowid comparisons to NULL
    correctly.  [Ticket #2404]</li>
<li>Fix many potential segfaults that could be caused by malicious SQL
    statements.</li>
}

chng {2007-04-25 (3.3.17)} {
<li>When the "write_version" value of the database header is larger than
    what the library understands, make the database read-only instead of







|
<
<
<



|


















|

|


|
|

|

|


|

|

|

|


|

|

|







3497
3498
3499
3500
3501
3502
3503
3504



3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
    tokenization support to FTS2</li>
<li>Other minor bug fixes and documentation enhancements</li>
}

chng {2007-06-18 (3.4.0)} {
<li>Fix a bug that can lead to database corruption if an [SQLITE_BUSY] error
    occurs in the middle of an explicit transaction and that transaction
    is later committed.  Ticket #2409.



<li>Fix a bug that can lead to database corruption if autovacuum mode is
    on and a malloc() failure follows a CREATE TABLE or CREATE INDEX statement
    which itself follows a cache overflow inside a transaction.  See
    ticket #2418. 
    </li>
<li>Added explicit <a href="limits.html">upper bounds</a> on the sizes and
    quantities of things SQLite can process.  This change might cause
    compatibility problems for
    applications that use SQLite in the extreme, which is why the current
    release is 3.4.0 instead of 3.3.18.</li>
<li>Added support for [sqlite3_blob_open|Incremental BLOB I/O].</li>
<li>Added the [sqlite3_bind_zeroblob()] API</a>
    and the <a href="lang_expr.html#zeroblob">zeroblob()</a> SQL function.</li>
<li>Added support for <a href="pragma.html#pragma_incremental_vacuum">
    Incremental Vacuum</a>.</li>
<li>Added the SQLITE_MIXED_ENDIAN_64BIT_FLOAT compile-time option to support
    ARM7 processors with goofy endianness.</li>
<li>Removed all instances of sprintf() and strcpy() from the core library.</li>
<li>Added support for
    [http://www.icu-project.org/ | International Components for Unicode (ICU)]
    to the full-text search extensions.
<li>In the Windows OS driver, reacquire a SHARED lock if an attempt to
    acquire an EXCLUSIVE lock fails.  Ticket #2354</li>
<li>Fix the REPLACE() function so that it returns NULL if the second argument
    is an empty string.  Ticket #2324.</li>
<li>Document the hazards of type conversions in
    [sqlite3_column_blob()]
    and related APIs.  Fix unnecessary type conversions.  Ticket #2321.</li>
<li>Internationalization of the TRIM() function.  Ticket #2323</li>
<li>Use memmove() instead of memcpy() when moving between memory regions
    that might overlap.  Ticket #2334</li>
<li>Fix an optimizer bug involving subqueries in a compound SELECT that has
    both an ORDER BY and a LIMIT clause.  Ticket #2339.</li>
<li>Make sure the [sqlite3_snprintf()]
    interface does not zero-terminate the buffer if the buffer size is
    less than 1.  Ticket #2341</li>
<li>Fix the built-in printf logic so that it prints "NaN" not "Inf" for
    floating-point NaNs.  Ticket #2345</li>
<li>When converting BLOB to TEXT, use the text encoding of the main database.
    Ticket #2349</li>
<li>Keep the full precision of integers (if possible) when casting to
    NUMERIC.  Ticket #2364</li>
<li>Fix a bug in the handling of UTF16 codepoint 0xE000</li>
<li>Consider explicit collate clauses when matching WHERE constraints
    to indices in the query optimizer.  Ticket #2391</li>
<li>Fix the query optimizer to correctly handle constant expressions in 
    the ON clause of a LEFT JOIN.  Ticket #2403</li>
<li>Fix the query optimizer to handle rowid comparisons to NULL
    correctly.  Ticket #2404</li>
<li>Fix many potential segfaults that could be caused by malicious SQL
    statements.</li>
}

chng {2007-04-25 (3.3.17)} {
<li>When the "write_version" value of the database header is larger than
    what the library understands, make the database read-only instead of
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
    error.  It used to be silently ignored.</li>
<li>Fix an obscure and relatively harmless problem that might have caused
    a resource leak following an I/O error.</li>
<li>Many improvements to the test suite.  Test coverage now exceeded 98%</li>
}

chng {2007-04-02 (3.3.14)} {
<li>Fix a bug ([ticket #2273])
    that could cause a segfault when the IN operator
    is used one one term of a two-column index and the right-hand side of
    the IN operator contains a NULL.</li>
<li>Added a new OS interface method for determining the sector size
    of underlying media:  sqlite3OsSectorSize().</li>
<li>A new algorithm for statements of the form
    INSERT INTO <i>table1</i> SELECT * FROM <i>table2</i>







|







3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
    error.  It used to be silently ignored.</li>
<li>Fix an obscure and relatively harmless problem that might have caused
    a resource leak following an I/O error.</li>
<li>Many improvements to the test suite.  Test coverage now exceeded 98%</li>
}

chng {2007-04-02 (3.3.14)} {
<li>Fix a bug (ticket #2273)
    that could cause a segfault when the IN operator
    is used one one term of a two-column index and the right-hand side of
    the IN operator contains a NULL.</li>
<li>Added a new OS interface method for determining the sector size
    of underlying media:  sqlite3OsSectorSize().</li>
<li>A new algorithm for statements of the form
    INSERT INTO <i>table1</i> SELECT * FROM <i>table2</i>
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
}

chng {2007-01-09 (3.3.10)} {
<li>Fix bugs in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API
that can lead to segfaults.</li>
<li>Fix 1-second round-off errors in the 
<a href="http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions">
strftime()</a> function</li>
<li>Enhance the Windows OS layer to provide detailed error codes</li>
<li>Work around a win2k problem so that SQLite can use single-character
database file names</li>
<li>The
<a href="pragma.html#pragma_user_version">user_version</a> and
<a href="pragma.html#pragma_schema_version">schema_version</a> pragmas 
correctly set their column names in the result set</li>







<
|







3673
3674
3675
3676
3677
3678
3679

3680
3681
3682
3683
3684
3685
3686
3687
}

chng {2007-01-09 (3.3.10)} {
<li>Fix bugs in the implementation of the new 
<a href="c3ref/prepare.html">sqlite3_prepare_v2()</a> API
that can lead to segfaults.</li>
<li>Fix 1-second round-off errors in the 

strftime() function</li>
<li>Enhance the Windows OS layer to provide detailed error codes</li>
<li>Work around a win2k problem so that SQLite can use single-character
database file names</li>
<li>The
<a href="pragma.html#pragma_user_version">user_version</a> and
<a href="pragma.html#pragma_schema_version">schema_version</a> pragmas 
correctly set their column names in the result set</li>
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
<li>VACUUM uses a temporary file in the official TEMP folder, not in the
same directory as the original database</li>
<li>The prefix on temporary filenames on Windows is changed from "sqlite"
to "etilqs".</li>
}

chng {2006-10-09 (3.3.8)} {
<li>Support for full text search using the
<a href="http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex">FTS1 module</a>
(beta)</li>
<li>Added Mac OS X locking patches (beta - disabled by default)</li>
<li>Introduce extended error codes and add error codes for various
kinds of I/O errors.</li>
<li>Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW</li>
<li>Fix the regression test suite so that it works with Tcl8.5</li>
<li>Enhance sqlite3_set_authorizer() to provide notification of calls to
    SQL functions.</li>
<li>Added experimental API:  sqlite3_auto_extension()</li>
<li>Various minor bug fixes</li>
}

chng {2006-08-12 (3.3.7)} {
<li>Added support for
<a href="http://www.sqlite.org/cvstrac/wiki?p=VirtualTables">virtual tables</a>
(beta)</li>
<li>Added support for 
<a href="http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions">
dynamically loaded extensions</a> (beta)</li>
<li>The 
<a href="c3ref/interrupt.html">sqlite3_interrupt()</a>
routine can be called for a different thread</li>
<li>Added the <a href="lang_expr.html#match">MATCH</a> operator.</li>
<li>The default file format is now 1.  
}








|
<
<












|
<
<
|
<
<







3718
3719
3720
3721
3722
3723
3724
3725


3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738


3739


3740
3741
3742
3743
3744
3745
3746
<li>VACUUM uses a temporary file in the official TEMP folder, not in the
same directory as the original database</li>
<li>The prefix on temporary filenames on Windows is changed from "sqlite"
to "etilqs".</li>
}

chng {2006-10-09 (3.3.8)} {
<li>Support for full text search using the FTS1 module (beta)</li>


<li>Added Mac OS X locking patches (beta - disabled by default)</li>
<li>Introduce extended error codes and add error codes for various
kinds of I/O errors.</li>
<li>Added support for IF EXISTS on CREATE/DROP TRIGGER/VIEW</li>
<li>Fix the regression test suite so that it works with Tcl8.5</li>
<li>Enhance sqlite3_set_authorizer() to provide notification of calls to
    SQL functions.</li>
<li>Added experimental API:  sqlite3_auto_extension()</li>
<li>Various minor bug fixes</li>
}

chng {2006-08-12 (3.3.7)} {
<li>Added support for virtual tables (beta)</li>


<li>Added support for dynamically loaded extensions (beta)</li>


<li>The 
<a href="c3ref/interrupt.html">sqlite3_interrupt()</a>
routine can be called for a different thread</li>
<li>Added the <a href="lang_expr.html#match">MATCH</a> operator.</li>
<li>The default file format is now 1.  
}

Changes to pages/news.in.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  if {![regsub -all {(Version) (\d+)\.(\d+)\.(\d+)\.(\d+)} $title \
        {<a href="releaselog/\2_\3_\4_\5.html">\0</a>} title]} {
    regsub -all {(Version) (\d+)\.(\d+)\.(\d+)} $title \
      {<a href="releaselog/\2_\3_\4.html">\0</a>} title
  }
  hd_puts "<h3>$date - $title</h3>"
  regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt
  regsub -all {[Tt]icket #(\d+)} $txt \
      {<a href="http://www.sqlite.org/cvstrac/tktview?tn=\1">\0</a>} txt
  hd_resolve "<blockquote>$txt</blockquote>"
  hd_puts "<hr width=\"50%\">"
}

newsitem {2018-11-05} {Release 3.25.3} {
SQLite [version 3.25.3] is a third patch against 3.25.0 that fixes various
problems that have come to light and which seem serious enough to 







<
<







9
10
11
12
13
14
15


16
17
18
19
20
21
22
  if {![regsub -all {(Version) (\d+)\.(\d+)\.(\d+)\.(\d+)} $title \
        {<a href="releaselog/\2_\3_\4_\5.html">\0</a>} title]} {
    regsub -all {(Version) (\d+)\.(\d+)\.(\d+)} $title \
      {<a href="releaselog/\2_\3_\4.html">\0</a>} title
  }
  hd_puts "<h3>$date - $title</h3>"
  regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt


  hd_resolve "<blockquote>$txt</blockquote>"
  hd_puts "<hr width=\"50%\">"
}

newsitem {2018-11-05} {Release 3.25.3} {
SQLite [version 3.25.3] is a third patch against 3.25.0 that fixes various
problems that have come to light and which seem serious enough to 
Changes to pages/oldnews.in.
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
  SQLite [version 3.6.15] is a general maintenance release containing
  performance and robustness enhancements and fixes for various obscure
  bugs.  
}

newsitem {2009-05-25} {Version 3.6.14.2} {
  SQLite [version 3.6.14.2] fixes an obscure bug in the code generator
  (<a href="http://www.sqlite.org/cvstrac/tktview?tn=3879">ticket #3879</a>)
  section of SQLite which can potentially cause incorrect query results.
  The changes from the prior release consist of only this one bug fix,
  check-in <a href="http://www.sqlite.org/cvstrac/chngview?cn=6676">[6676]</a>
  and a change to the version number text.

  The bug was introduced in version 3.6.14.  It is recommended that
  users of version 3.6.14 and 3.6.14.1 upgrade to this release.  Applications
  are unlikely to hit this bug, but since it is difficult to predict which
  applications might hit it and which might not, we recommend that all
  users of 3.6.14 and 3.5.14.1 upgrade to this release.







|


|







1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
  SQLite [version 3.6.15] is a general maintenance release containing
  performance and robustness enhancements and fixes for various obscure
  bugs.  
}

newsitem {2009-05-25} {Version 3.6.14.2} {
  SQLite [version 3.6.14.2] fixes an obscure bug in the code generator
  (ticket #3879)
  section of SQLite which can potentially cause incorrect query results.
  The changes from the prior release consist of only this one bug fix,
  check-in [6676]
  and a change to the version number text.

  The bug was introduced in version 3.6.14.  It is recommended that
  users of version 3.6.14 and 3.6.14.1 upgrade to this release.  Applications
  are unlikely to hit this bug, but since it is difficult to predict which
  applications might hit it and which might not, we recommend that all
  users of 3.6.14 and 3.5.14.1 upgrade to this release.
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
  allocation subsystem in future releases.
}

newsitem {2007-10-04} {Version 3.5.1} {
  Fix a long-standing bug that might cause database corruption if a
  disk-full error occurs in the middle of a transaction and that
  transaction is not rolled back.
  <a href="http://www.sqlite.org/cvstrac/tktview?tn=2686">Ticket #2686.</a>

  The new VFS layer is stable.  However, we still reserve the right to
  make tweaks to the interface definition of the VFS if necessary.
}

newsitem {2007-09-04} {Version 3.5.0 alpha} {
  The OS interface layer and the memory allocation subsystems in







|







1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
  allocation subsystem in future releases.
}

newsitem {2007-10-04} {Version 3.5.1} {
  Fix a long-standing bug that might cause database corruption if a
  disk-full error occurs in the middle of a transaction and that
  transaction is not rolled back.
  Ticket #2686.

  The new VFS layer is stable.  However, we still reserve the right to
  make tweaks to the interface definition of the VFS if necessary.
}

newsitem {2007-09-04} {Version 3.5.0 alpha} {
  The OS interface layer and the memory allocation subsystems in
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
  freeze the new design.
}

newsitem {2007-08-13} {Version 3.4.2} {
  While stress-testing the 
  <a href="c3ref/soft_heap_limit.html">soft_heap_limit</a>
  feature, a bug that could lead to
  <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">database
  corruption</a> was <a href="http://www.sqlite.org/cvstrac/tktview?tn=2565">
  discovered and fixed</a>.
  Though the consequences of this bug are severe, the chances of hitting 
  it in a typical application are remote.  Upgrading is recommended
  only if you use the 
  <a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a>
  interface.
}

newsitem {2007-07-20} {Version 3.4.1} {
  This release fixes a bug in <a href="lang_vacuum.html">VACUUM</a> that
  can lead to <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">
  database corruption</a>.  The bug was introduced in version 
  <a href="changes.html#version_3_3_14">3.3.14</a>.
  Upgrading is recommended for all users.  Also included are a slew of
  other more routine
  <a href="changes.html#version_3_4_1">enhancements and bug fixes</a>.
}

newsitem {2007-06-18} {Version 3.4.0} {
  This release fixes two separate bugs either of which 
  can lead to database corruption.  Upgrading
  is strongly recommended.  If you must continue using an older version
  of SQLite, please at least read about how to avoid these bugs
  at
  <a href="http://www.sqlite.org/cvstrac/wiki?p=CorruptionFollowingBusyError">
  CorruptionFollowingBusyError</a> and
  <a href="http://www.sqlite.org/cvstrac/tktview?tn=2418">ticket #2418</a>
  <p>
  This release also adds explicit <a href="limits.html">limits</a> on the
  sizes and quantities of things SQLite will handle.  The new limits might
  causes compatibility problems for existing applications that
  use excessively large strings, BLOBs, tables, or SQL statements. 
  The new limits can be increased at compile-time to work around any problems
  that arise.  Nevertheless, the version number of this release is







<
<
|









<
|











<
<
|
<







1566
1567
1568
1569
1570
1571
1572


1573
1574
1575
1576
1577
1578
1579
1580
1581
1582

1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594


1595

1596
1597
1598
1599
1600
1601
1602
  freeze the new design.
}

newsitem {2007-08-13} {Version 3.4.2} {
  While stress-testing the 
  <a href="c3ref/soft_heap_limit.html">soft_heap_limit</a>
  feature, a bug that could lead to


  database corruption was discovered and fixed.
  Though the consequences of this bug are severe, the chances of hitting 
  it in a typical application are remote.  Upgrading is recommended
  only if you use the 
  <a href="c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit</a>
  interface.
}

newsitem {2007-07-20} {Version 3.4.1} {
  This release fixes a bug in <a href="lang_vacuum.html">VACUUM</a> that

  can lead to database corruption.  The bug was introduced in version 
  <a href="changes.html#version_3_3_14">3.3.14</a>.
  Upgrading is recommended for all users.  Also included are a slew of
  other more routine
  <a href="changes.html#version_3_4_1">enhancements and bug fixes</a>.
}

newsitem {2007-06-18} {Version 3.4.0} {
  This release fixes two separate bugs either of which 
  can lead to database corruption.  Upgrading
  is strongly recommended.  If you must continue using an older version
  of SQLite, please at least read about how to avoid these bugs


  at CorruptionFollowingBusyError and ticket #2418

  <p>
  This release also adds explicit <a href="limits.html">limits</a> on the
  sizes and quantities of things SQLite will handle.  The new limits might
  causes compatibility problems for existing applications that
  use excessively large strings, BLOBs, tables, or SQL statements. 
  The new limits can be increased at compile-time to work around any problems
  that arise.  Nevertheless, the version number of this release is
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
newsitem {2007-04-09} {Version 3.3.15} {
  An annoying bug introduced in 3.3.14 has been fixed.  There are
  also many enhancements to the test suite.  
}

newsitem {2007-04-02} {Version 3.3.14} {
  This version focuses on performance improvements.  If you recompile
  <a href="http://www.sqlite.org/cvstrac/wiki?p=TheAmalgamation">
  the amalgamation</a> using GCC option -O3 (the precompiled binaries
  use -O2) you may see performance
  improvements of 35% or more over version 3.3.13 depending on your
  workload.  This version also
  adds support for <a href="pragma.html#pragma_locking_mode">
  exclusive access mode</a>.
}








<
|







1627
1628
1629
1630
1631
1632
1633

1634
1635
1636
1637
1638
1639
1640
1641
newsitem {2007-04-09} {Version 3.3.15} {
  An annoying bug introduced in 3.3.14 has been fixed.  There are
  also many enhancements to the test suite.  
}

newsitem {2007-04-02} {Version 3.3.14} {
  This version focuses on performance improvements.  If you recompile

  the amalgamation using GCC option -O3 (the precompiled binaries
  use -O2) you may see performance
  improvements of 35% or more over version 3.3.13 depending on your
  workload.  This version also
  adds support for <a href="pragma.html#pragma_locking_mode">
  exclusive access mode</a>.
}

1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
  Version 3.3.10 fixes several bugs that were introduced by the previous
  release.  Upgrading is recommended.
}

newsitem {2007-01-04} {Version 3.3.9} {
  Version 3.3.9 fixes bugs that can lead to database corruption under
  obscure and difficult to reproduce circumstances.  See
  <a href="http://www.sqlite.org/cvstrac/wiki?p=DatabaseCorruption">
  DatabaseCorruption</a> in the
  <a href="http://www.sqlite.org/cvstrac/wiki">wiki</a> for details.
  This release also adds the new
  <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>
  API and includes important bug fixes in the command-line
  shell and enhancements to the query optimizer.  Upgrading is
  recommended.
}

newsitem {2006-10-09} {Version 3.3.8} {
  Version 3.3.8 adds support for full-text search using the 
  <a href="http://www.sqlite.org/cvstrac/wiki?p=FtsOne">FTS1
  module.</a>  There are also minor bug fixes.  Upgrade only if
  you want to try out the new full-text search capabilities or if
  you are having problems with 3.3.7.
}

newsitem {2006-08-12} {Version 3.3.7} {
  Version 3.3.7 includes support for loadable extensions and virtual
  tables.  But both features are still considered "beta" and their







<
|
|









<
|







1663
1664
1665
1666
1667
1668
1669

1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680

1681
1682
1683
1684
1685
1686
1687
1688
  Version 3.3.10 fixes several bugs that were introduced by the previous
  release.  Upgrading is recommended.
}

newsitem {2007-01-04} {Version 3.3.9} {
  Version 3.3.9 fixes bugs that can lead to database corruption under
  obscure and difficult to reproduce circumstances.  See

  DatabaseCorruption in the
  wiki for details.
  This release also adds the new
  <a href="c3ref/prepare.html">sqlite3_prepare_v2()</a>
  API and includes important bug fixes in the command-line
  shell and enhancements to the query optimizer.  Upgrading is
  recommended.
}

newsitem {2006-10-09} {Version 3.3.8} {
  Version 3.3.8 adds support for full-text search using the 

  FTS1 module.  There are also minor bug fixes.  Upgrade only if
  you want to try out the new full-text search capabilities or if
  you are having problems with 3.3.7.
}

newsitem {2006-08-12} {Version 3.3.7} {
  Version 3.3.7 includes support for loadable extensions and virtual
  tables.  But both features are still considered "beta" and their
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
  the library is running much faster again.

  Database connections can now be moved between threads as long as the
  connection holds no locks at the time it is moved.  Thus the common
  paradigm of maintaining a pool of database connections and handing
  them off to transient worker threads is now supported.
  Please help test this new feature.
  See <a href="http://www.sqlite.org/cvstrac/wiki?p=MultiThreading">
  the MultiThreading wiki page</a> for additional
  information.
}

newsitem {2006-01-10} {Version 3.3.0 alpha} {
  Version 3.3.0 adds support for CHECK constraints, DESC indices,
  separate REAL and INTEGER column affinities, a new OS interface layer
  design, and many other changes.  The code passed a regression







<
|







1738
1739
1740
1741
1742
1743
1744

1745
1746
1747
1748
1749
1750
1751
1752
  the library is running much faster again.

  Database connections can now be moved between threads as long as the
  connection holds no locks at the time it is moved.  Thus the common
  paradigm of maintaining a pool of database connections and handing
  them off to transient worker threads is now supported.
  Please help test this new feature.

  See the MultiThreading wiki page for additional
  information.
}

newsitem {2006-01-10} {Version 3.3.0 alpha} {
  Version 3.3.0 adds support for CHECK constraints, DESC indices,
  separate REAL and INTEGER column affinities, a new OS interface layer
  design, and many other changes.  The code passed a regression
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
  open-source software.  Thanks, AOL!

  Version 3.2.0 also fixes an obscure but serious bug that was discovered
  just prior to release.  If you have a multi-statement transaction and
  within that transaction an UPDATE or INSERT statement fails due to a
  constraint, then you try to rollback the whole transaction, the rollback
  might not work correctly.  See
  <a href="http://www.sqlite.org/cvstrac/tktview?tn=1171">Ticket #1171</a>
  for details.  Upgrading is recommended for all users.
}

newsitem {2005-03-16} {Version 3.1.6} {
  Version 3.1.6 fixes a critical bug that can cause database corruption
  when inserting rows into tables with around 125 columns. This bug was
  introduced in version 3.0.0.  See
  <a href="http://www.sqlite.org/cvstrac/tktview?tn=1163">Ticket #1163</a>
  for additional information.
}

newsitem {2005-03-11} {Versions 3.1.4 and 3.1.5 Released} {
  Version 3.1.4 fixes a critical bug that could cause database corruption
  if the autovacuum mode of version 3.1.0 is turned on (it is off by
  default) and a CREATE UNIQUE INDEX is executed within a transaction but
  fails because the indexed columns are not unique.  Anyone using the







<
|






<
|







1833
1834
1835
1836
1837
1838
1839

1840
1841
1842
1843
1844
1845
1846

1847
1848
1849
1850
1851
1852
1853
1854
  open-source software.  Thanks, AOL!

  Version 3.2.0 also fixes an obscure but serious bug that was discovered
  just prior to release.  If you have a multi-statement transaction and
  within that transaction an UPDATE or INSERT statement fails due to a
  constraint, then you try to rollback the whole transaction, the rollback
  might not work correctly.  See

  Ticket #1171 for details.  Upgrading is recommended for all users.
}

newsitem {2005-03-16} {Version 3.1.6} {
  Version 3.1.6 fixes a critical bug that can cause database corruption
  when inserting rows into tables with around 125 columns. This bug was
  introduced in version 3.0.0.  See

  Ticket #1163 for additional information.
}

newsitem {2005-03-11} {Versions 3.1.4 and 3.1.5 Released} {
  Version 3.1.4 fixes a critical bug that could cause database corruption
  if the autovacuum mode of version 3.1.0 is turned on (it is off by
  default) and a CREATE UNIQUE INDEX is executed within a transaction but
  fails because the indexed columns are not unique.  Anyone using the
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
  
newsitem {2005-02-15} {Versions 2.8.16 and 3.1.2 Released} {
  A critical bug in the VACUUM command that can lead to database
  corruption has been fixed in both the 2.x branch and the main
  3.x line.  This bug has existed in all prior versions of SQLite.
  Even though it is unlikely you will ever encounter this bug,
  it is suggested that all users upgrade.  See
  <a href="http://www.sqlite.org/cvstrac/tktview?tn=1116">
  ticket #1116</a>. for additional information.

  Version 3.1.2 is also the first stable release of the 3.1
  series.  SQLite 3.1 features added support for correlated
  subqueries, autovacuum, autoincrement, ALTER TABLE, and
  other enhancements.  See the 
  <a href="http://www.sqlite.org/releasenotes310.html">release notes
  for version 3.1.0</a> for a detailed description of the







<
|







1866
1867
1868
1869
1870
1871
1872

1873
1874
1875
1876
1877
1878
1879
1880
  
newsitem {2005-02-15} {Versions 2.8.16 and 3.1.2 Released} {
  A critical bug in the VACUUM command that can lead to database
  corruption has been fixed in both the 2.x branch and the main
  3.x line.  This bug has existed in all prior versions of SQLite.
  Even though it is unlikely you will ever encounter this bug,
  it is suggested that all users upgrade.  See

  ticket #1116 for additional information.

  Version 3.1.2 is also the first stable release of the 3.1
  series.  SQLite 3.1 features added support for correlated
  subqueries, autovacuum, autoincrement, ALTER TABLE, and
  other enhancements.  See the 
  <a href="http://www.sqlite.org/releasenotes310.html">release notes
  for version 3.1.0</a> for a detailed description of the