Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Start the change log for 3.8.11. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b189725f2c4b8d61453257c0b837c844 |
User & Date: | drh 2015-05-23 02:44:28.107 |
Context
2015-05-23
| ||
17:48 | Enhance the file-format document to show the page type header numbers on various charts, for ease of reference. (check-in: 88dc8a8a7b user: drh tags: trunk) | |
02:44 | Start the change log for 3.8.11. (check-in: b189725f2c user: drh tags: trunk) | |
2015-05-20
| ||
18:24 | Add the sha1sum and SQLITE_SOURCE_ID for version 3.8.10.2. (check-in: f4e75764dd user: dan tags: branch-3.8.10) | |
18:20 | Update the list of reserved characters in fts5.html. (check-in: d2210cd43b user: dan tags: trunk) | |
Changes
Changes to pages/changes.in.
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 | set nChng 0 proc chng {date desc {options {}}} { global nChng aChng set aChng($nChng) [list $date $desc $options] incr nChng } chng {2015-05-09 (3.8.10.1)} { <li>Make [sqlite3_compileoption_used()] responsive to the [SQLITE_ENABLE_DBSTAT_VTAB] compile-time option. <li>Fix a harmless warning in the [command-line shell] on some versions of MSVC. <li>Fix minor issues with the [dbstat virtual table]. <li>SQLITE_SOURCE_ID: "2015-05-09 12:14:55 05b4b1f2a937c06c90db70c09890038f6c98ec40" | > > > > > > > > > > > > > > > > > > > > | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | set nChng 0 proc chng {date desc {options {}}} { global nChng aChng set aChng($nChng) [list $date $desc $options] incr nChng } chng {2015-00-00 (3.8.11)} { <li>Added the [sqlite3_value_dup()] and [sqlite3_value_free()] interfaces. <li>The [IS operator] is now able to drive indexes. <p><b>Bug fixes:</b> <li>Fix to CREATE TABLE AS so that columns of type TEXT never end up holding an INT value. Ticket [https://www.sqlite.org/src/info/f2ad7de056ab1dc9200|f2ad7de056ab1dc9200] } chng {2015-05-20 (3.8.10.2)} { <li>Fix an index corruption issue introduced by [version 3.8.7]. An index with a TEXT key can be corrupted by an [INSERT] into the corresponding table if the table has two nested triggers that convert the key value to INTEGER and back to TEXT again. Ticket [https://www.sqlite.org/src/info/34cd55d68e0e6e7c9a0711aab81a2ee3c354b4c0|34cd55d68e0] <li>SQLITE_SOURCE_ID: "2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4" <li>SHA1 for sqlite3.c: 638abb77965332c956dbbd2c8e4248e84da4eb63 } {patchagainst 1 patchagainst 2} chng {2015-05-09 (3.8.10.1)} { <li>Make [sqlite3_compileoption_used()] responsive to the [SQLITE_ENABLE_DBSTAT_VTAB] compile-time option. <li>Fix a harmless warning in the [command-line shell] on some versions of MSVC. <li>Fix minor issues with the [dbstat virtual table]. <li>SQLITE_SOURCE_ID: "2015-05-09 12:14:55 05b4b1f2a937c06c90db70c09890038f6c98ec40" |
︙ | ︙ |
Changes to pages/index.in.
︙ | ︙ | |||
68 69 70 71 72 73 74 | </td> <td width="20"></td><td bgcolor="#044a64" width="1"></td><td width="20"></td> <td valign="top"> <h3>Current Status</h3> <p><ul> | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | </td> <td width="20"></td><td bgcolor="#044a64" width="1"></td><td width="20"></td> <td valign="top"> <h3>Current Status</h3> <p><ul> <li><a href="releaselog/3_8_11.html">Version 3.8.11</a> of SQLite is recommended for all new development. </li> </ul></p> <h3>Common Links</h3> <p><ul> |
︙ | ︙ |
Changes to pages/news.in.
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 {2015-05-09} {Release 3.8.10.1} { <p>The 3.8.10 release did not add the new [SQLITE_ENABLE_DBSTAT_VTAB] compile-time option to the [sqlite3_compileoption_used()] interface. This patch release fixes that omission. And while we are at it, the associated [dbstat virtual table] was enhanced slightly and a harmless compiler warning was fixed. | > > > > > > > > > > > > > > > > | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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 {2015-05-20} {Release 3.8.10.2} { <p>Yikes! Index corruption after a sequence of valid SQL statements! <p>It has been many years since anything like [https://www.sqlite.org/src/info/34cd55d6|this bug] has snuck into an official SQLite release. But for the pasts seven months ([version 3.8.7] through [version 3.8.10.1]) if you do an INSERT into a carefully crafted schema in which there are two nested triggers that convert an index key value from TEXT to INTEGER and then back to TEXT again, the INTEGER value might get inserted as the index key instead of the correct TEXT, resulting in index corruption. This patch release adds a single line of code to fix the problem. <p>If you do actually encounter this problem, running [REINDEX] on the damaged indexes will clear it. } newsitem {2015-05-09} {Release 3.8.10.1} { <p>The 3.8.10 release did not add the new [SQLITE_ENABLE_DBSTAT_VTAB] compile-time option to the [sqlite3_compileoption_used()] interface. This patch release fixes that omission. And while we are at it, the associated [dbstat virtual table] was enhanced slightly and a harmless compiler warning was fixed. |
︙ | ︙ |
Changes to pages/testing.in.
︙ | ︙ | |||
668 669 670 671 672 673 674 | "-g -fprofile-arcs -ftest-coverage" and then the test program is run. Then "gcov -b" is run to generate a coverage report. The coverage report is verbose and inconvenient to read, so the gcov-generated report is processed using some simple scripts to put it into a more human-friendly format. This entire process is automated using scripts, of course. | | | | | | > > > | > > > > > > > | | 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 | "-g -fprofile-arcs -ftest-coverage" and then the test program is run. Then "gcov -b" is run to generate a coverage report. The coverage report is verbose and inconvenient to read, so the gcov-generated report is processed using some simple scripts to put it into a more human-friendly format. This entire process is automated using scripts, of course. <p>Note that running SQLite with gcov is not a test of SQLite — it is a test of the test suite. The gcov run does not test SQLite because the -fprofile-args and -ftest-coverage options cause the compiler to generate different code. The gcov run merely verifies that the test suite provides 100% branch test coverage. The gcov run is a test of the test - a meta-test. <p>After gcov has been run to verify 100% branch test coverage, then the test program is recompiled using delivery compiler options (without the special -fprofile-arcs and -ftest-coverage options) and the test program is rerun. This second run is the actual test of SQLite. <p>It is important to verify that the gcov test run and the second real test run both give the same output. Any differences in output indicate either the use of undefined or indeterminate behavior in the SQLite code (and hence a bug), or a bug in the compiler. Note that SQLite has, over the previous decade, encountered bugs in each of GCC, Clang, and MSVC. Compiler bugs, while rare, do happen, which is why it is so important to test the code in an as-delivered configuration. <tcl>hd_fragment thoughts1</tcl> <h3>7.6 Experience with full test coverage</h3> <p>The developers of SQLite have found that full coverage testing is an extremely effective method for locating and preventing bugs. Because every single branch instruction in SQLite core code is covered by test cases, the developers can be confident that changes made in one part of the code do not have unintended consequences in other parts of the code. The many new features and performance improvements that have been added to SQLite in recent years would not have been possible without the availability full-coverage testing.</p> <p>Maintaining 100% MC/DC is laborious and time-consuming. The level of effort needed to maintain full-coverage testing is probably not cost effective for a typical application. However, we think that full-coverage testing is justified for a [most widely deployed|very widely deployed] infrastructure library like SQLite, and especially for a database library which by its very nature "remembers" past mistakes. <tcl>hd_fragment dynamicanalysis</tcl> <h2>8.0 Dynamic Analysis</h2> <p>Dynamic analysis refers to internal and external checks on the SQLite code which are performed while the code is live and running. Dynamic analysis has proven to be a great help in maintaining the |
︙ | ︙ |