Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch branch-3.10 Excluding Merge-Ins
This is equivalent to a diff from a44bb18833 to 4802ce4c0a
2016-02-12
| ||
05:18 | Merge changes from the 3.10 branch. (check-in: 09a0fd52d7 user: drh tags: trunk) | |
05:17 | Change "Universal App Platform" to "Universal Windows Platform". (Leaf check-in: 4802ce4c0a user: drh tags: branch-3.10) | |
2016-02-10
| ||
13:38 | Add the snapshot tarball to the list of possible download files. (check-in: 6af983fad9 user: drh tags: branch-3.10) | |
2016-01-12
| ||
13:44 | Fix typos in the TCL interface documentation. (check-in: 217ea4895f user: drh tags: branch-3.10) | |
2016-01-11
| ||
13:00 | Begin entering 3.11.0 changes. (check-in: 166fc2da3a user: drh tags: trunk) | |
2016-01-06
| ||
16:09 | Fix an error regarding operator precedence in fts5.html. (check-in: a44bb18833 user: dan tags: trunk) | |
12:23 | Update download.in to look for products with version numbers starting with "31" instead of "30". (check-in: 55ba3b7506 user: dan tags: trunk) | |
Changes to pages/changes.in.
︙ | |||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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 48 49 50 51 52 53 54 55 | + + + + + + + + + + + + + + + + + + + + + + + + + + + | <tcl> set nChng 0 proc chng {date desc {options {}}} { global nChng aChng set aChng($nChng) [list $date $desc $options] incr nChng } chng {2016-01-20 (3.10.2)} { <p><b>Critical bug fix:</b> <li>Version 3.10.0 introduced a case-folding bug in the [LIKE] operator which is fixed by this patch release. Ticket [https://www.sqlite.org/src/info/80369eddd5c94 | 80369eddd5c94]. <p><b>Other miscellaneous bug fixes:</b> <li>Fix a use-after-free that can occur when SQLite is compiled with -DSQLITE_HAS_CODEC. <li>Fix the build so that it works with -DSQLITE_OMIT_WAL. <li>Fix the configure script for the amalgamation so that the --readline option works again on Raspberry PIs. <p><b>Hashes:</b> <li>SQLITE_SOURCE_ID: "2016-01-20 15:27:19 17efb4209f97fb4971656086b138599a91a75ff9" <li>SHA1 for sqlite3.c: f7088b19d97cd7a1c805ee95c696abd54f01de4f } {patchagainst 1 patchagainst 2} chng {2016-01-14 (3.10.1)} { <p><b>New feature:</b> <li>Add the [SQLITE_FCNTL_JOURNAL_POINTER] file control. <p><b>Bug fix:</b> <li>Fix a 16-month-old bug in the query planner that could generate incorrect results when a scalar subquery attempts to use the [block sorting] optimization. Ticket [https://www.sqlite.org/src/info/cb3aa0641d9a4|cb3aa0641d9a4]. <p><b>Hashes:</b> <li>SQLITE_SOURCE_ID: "2016-01-13 21:41:56 254419c36766225ca542ae873ed38255e3fb8588" <li>SHA1 for sqlite3.c: 1398ba8e4043550a533cdd0834bfdad1c9eab0f4 } {patchagainst 1} chng {2016-01-06 (3.10.0)} { <p><b>General improvements:</b> <li>Added support for [LIKE], [GLOB], and [REGEXP] operators on [virtual tables]. <li>Added the [colUsed field] to [sqlite3_index_info] for use by the [sqlite3_module.xBestIndex] method. <li>Enhance the [PRAGMA cache_spill] statement to accept a 32-bit integer |
︙ |
Changes to pages/download.in.
1 2 3 4 5 6 7 8 9 10 11 12 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | + - + + - + - + | <title>SQLite Download Page</title> <h2>SQLite Download Page</h2> <table width="100%" cellpadding="5" cellspacing="0"> <tcl> hd_keywords {download page} set nDownload 0 set BG {} unset -nocomplain href unset -nocomplain href_cnt set href_cnt 0 set disable_more 0 |
︙ | |||
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | + + + + + + + + - + + + + | hd_puts "<a id='a$href_cnt' href='hp1.html'>[file tail $file]</a><br>($size $units)</td>\n" hd_puts "<td width=\"5\"></td>" regsub -all VERSION $desc $version d2 hd_puts "\n<td valign=\"top\">" hd_resolve [string trim $d2] hd_puts "<br>(sha1: $sha1sum)</td></tr>\n" incr ::nDownload if {$disable_flag} { set ::disable_more 1 } } if {$frag!=""} { eval hd_keywords [lrange $frag 1 end] } } cd $::DEST proc Heading {title {tag {}} {bgcolor {}}} { set ::pending_heading $title set ::pending_tag $tag set ::BG $bgcolor set ::disable_more 0 # hd_puts "<tr><td colspan=4><big><b>$title</b></big></td></tr>" } set Caution #fff1c8 Heading {Pre-release Snapshots} {} $Caution Product {snapshot/sqlite-snapshot-DATE.tar.gz} { The [amalgamation] source code, the [command-line shell] source code, configure/make scripts for unix, and a Makefile.msc for Windows. } Product {snapshot/sqlite-amalgamation-DATE.zip} { The [amalgamation]: complete source code a single "sqlite3.c" file. } # The [amalgamation] as of VERSION. # See the <a href="http://www.sqlite.org/draft/releaselog/current.html">pending # change log</a> for details. Product {snapshot/sqlite-amalgamation32k-DATE.zip} { The [amalgamation] split into 6 separate source files each with less than 32767 lines of code. } # See the <a href="http://www.sqlite.org/draft/releaselog/current.html">pending # change log</a> for details. #Product {snapshot/sqlite-tea-DATE.zip} { # This is a snapshot (as of VERSION) of the current SQLite code under # development, packaged and ready to build using the # <a href="http://www.tcl-lang.org/doc/tea/">Tcl Extension Architecture (TEA)</a>. # Use this snapshot for testing only. This is not a release. #} Product {snapshot/sqlite-uap-DATE.vsix} { |
︙ | |||
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | + + + + + + + + + + + + + - - - + + + + + + + + + + - + - + + + + | Product {YEAR/sqlite-doc-VVV.zip} { Documentation as a bundle of static HTML files. } Heading {Precompiled Binaries for Linux} linux Product YEAR/sqlite-tools-linux-x86-VVV.zip { A bundle of command-line tools for managing SQLite database files, including the [command-line shell] program, the [sqldiff] program, and the [sqlite3_analyzer] program. } {} 1 Product YEAR/sqlite-shell-linux-x86-VVV.zip { The [command-line shell] program (version VERSION). } Product YEAR/sqlite-analyzer-linux-x86-VVV.zip { A program to analyze how space is allocated inside an SQLite database file (version VERSION). } Product YEAR/sqldiff-linux-x86-VVV.zip { A program to display differences between two SQLite database files. (version VERSION). } Heading {Precompiled Binaries for Mac OS X (x86)} mac Product YEAR/sqlite-tools-osx-x86-VVV.zip { A bundle of command-line tools for managing SQLite database files, including the [command-line shell] program, the [sqldiff] program, and the [sqlite3_analyzer] program. } {} 1 Product YEAR/sqlite-shell-osx-x86-VVV.zip { The [command-line shell] program (version VERSION). } Product YEAR/sqlite-analyzer-osx-x86-VVV.zip { A program to analyze how space is allocated inside an SQLite database file (version VERSION). } Product YEAR/sqldiff-osx-x86-VVV.zip { A program to display differences between two SQLite database files. (version VERSION). } Heading {Precompiled Binaries for Windows} win32 set start $nDownload |
︙ |
Changes to pages/fileformat2.in.
︙ | |||
496 497 498 499 500 501 502 | 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 | - + - + | that consists of a single page that is both a leaf and the root. Because there are pointers from parents to children, every page of a complete b-tree can be located if only the root page is known. Hence, b-trees are identified by their root page number.</p> <p>A b-tree page is either a table b-tree page or an index b-tree page. All pages within each complete b-tree are of the same type: either table |
︙ | |||
642 643 644 645 646 647 648 | 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 | - + | <tcl>hd_fragment varint {variable-length integer} {varint}</tcl> <p>A variable-length integer or "varint" is a static Huffman encoding of 64-bit twos-complement integers that uses less space for small positive values. A varint is between 1 and 9 bytes in length. The varint consists of either |
︙ | |||
683 684 685 686 687 688 689 | 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 | - + | pages. <li>A 4-byte big-endian integer page number for the first page of the overflow page list - omitted if all payload fits on the b-tree page. </ul></p></dd> <dt><p>Index B-Tree Interior Cell (header 0x02):</p></dt> <dd><p><ul> |
︙ | |||
753 754 755 756 757 758 759 | 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 | - + - + | <blockquote><dl> <dt>Table B-Tree Leaf Cell:</dt> <dd><p> ^If the payload size P is less than or equal to U-35 then the entire payload is stored on the b-tree leaf page. ^(Let M be ((U-12)*32/255)-23. If P is greater than U-35 |
︙ | |||
825 826 827 828 829 830 831 | 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 | - + | <p>^(In a database that uses ptrmap pages, all pages at locations identified by the computation in the previous paragraph must be ptrmap page and no other page may be a ptrmap page. Except, if the byte-lock page happens to fall on the same page number as a ptrmap page, then the ptrmap is moved to the following page for that one case.)^</p> <p>Each 5-byte entry on a ptrmap page provides back-link information about |
︙ | |||
1010 1011 1012 1013 1014 1015 1016 | 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 | - + | integer key for each entry in the table b-tree.</p> <p> ^The content of each SQL table row is stored in the database file by first combining the values in the various columns into a byte array in the record format, then storing that byte array as the payload in an entry in the table b-tree. ^The order of values in the record is the same as the order of columns in the SQL table definition. |
︙ | |||
1158 1159 1160 1161 1162 1163 1164 | 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 | - + | and virtual tables, the rootpage column is 0 or NULL.</p> <p>^(The sqlite_master.sql column stores SQL text that describes the object. This SQL text is a [CREATE TABLE], [CREATE VIRTUAL TABLE], [CREATE INDEX], [CREATE VIEW], or [CREATE TRIGGER] statement that if evaluated against the database file when it is the main database of a [database connection] |
︙ | |||
1204 1205 1206 1207 1208 1209 1210 | 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 | - + | <ul> <li><p>Indices with names of the form "sqlite_autoindex_TABLE_N" that are used to implement [UNIQUE] and [PRIMARY KEY] constraints on ordinary tables. <li><p>A table with the name "sqlite_sequence" that is used to keep track |
︙ | |||
1393 1394 1395 1396 1397 1398 1399 | 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 | - + | that contain between 10 and 40 samples that are distributed across the key space and with large nEq values. <p>^(In a well-formed sqlite_stat3 table, the samples for any single index must appear in the same order that they occur in the index. In other words, if the entry with left-most column S1 is earlier in the index b-tree than the |
︙ | |||
1460 1461 1462 1463 1464 1465 1466 | 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 | - + - + | <td>^(The sqlite_stat4.nLt column holds a list of N integers where the K-th integer is the approximate number of entries in the index whose K left-most columns are collectively less than the K left-most columns of the sample.)^ <tr><td valign="top" align="right">nDLt:</td> <td>^(The sqlite_stat4.nDLt column holds a list of N integers where |
︙ |
Changes to pages/index.in.
︙ | |||
106 107 108 109 110 111 112 | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | - + | </td> <td width="20"></td><td bgcolor="#044a64" width="1"></td><td width="20"></td> <td valign="top"> <h3>Current Status</h3> <p><ul> |
︙ |
Changes to pages/news.in.
︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 {2016-01-20} {Release 3.10.2} { <p>Yikes! An optimization attempt gone bad resulted in a [https://www.sqlite.org/src/info/80369eddd5c94 | bug in the LIKE operator] which is fixed by this patch release. Three other minor but low-risk fixes are also included in the patch. } newsitem {2016-01-14} {Release 3.10.1} { <p>SQLite [version 3.10.1] is a bug-fix release primarily targeting the fix for the query planner bug [https://www.sqlite.org/src/info/cb3aa0641d9a4|cb3aa0641d9a4] discovered by Mapscape. Also included is a minor API enhancement requested by the Firefox developers at Mozilla. The differences from version 3.10.0 are minimal. } newsitem {2016-01-06} {Release 3.10.0} { <p>SQLite [version 3.10.0] is a regularly scheduled maintenance release. } newsitem {2015-11-02} {Release 3.9.2} { <p>SQLite [version 3.9.2] is a patch release fixing two obscure bugs. |
︙ |
Changes to pages/queryplanner.in.
1 2 3 4 5 6 7 8 9 10 11 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | + + + + | <title>Query Planning</title> <tcl> hd_keywords {indexing} {indexing tutorial} proc figure {fignum tag img title} { if {$tag!=""} { set tag [string trim $tag #] hd_puts "<a name='$tag'></a>\n" } hd_puts "<p><center>\n" hd_puts "<img src=\"images/qp/$img\" alt=\"figure $fignum\"><br>\n" hd_puts "Figure $fignum: $title\n" hd_puts "</center></p>\n" } proc code {txt} { hd_puts "<center><table><tr><td><pre>\n" |
︙ | |||
119 120 121 122 123 124 125 | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | - + | <tcl>code { SELECT price FROM fruitsforsale WHERE rowid=4; }</tcl> <p> Since the information is stored in the table in rowid order, SQLite |
︙ | |||
142 143 144 145 146 147 148 | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | - + | <p> To make the original query more efficient, we can add an index on the "fruit" column of the "fruitsforsale" table like this: </p> <tcl>code { |
︙ | |||
260 261 262 263 264 265 266 | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | - + | </tcl> <p> The "state" index works just like the "fruit" index in that it is a new table with an extra column in front of the rowid and sorted by that extra column as the primary key. The only difference is that in Idx2, the first column is "state" instead of "fruit" as it is with |
︙ | |||
545 546 547 548 549 550 551 | 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 | - + | <tcl>figure 18 #fig18 obfruitidx1.gif {Sorting With An Index}</tcl> <p> The Idx1 index is scanned from top to bottom (or from bottom to top if "ORDER BY fruit DESC" is used) in order to find the rowids for each item in order by fruit. Then for each rowid, a binary search is done to lookup and output that row. In this way, the output appears in the requested order |
︙ | |||
674 675 676 677 678 679 680 | 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 | - - + + | <p> The same basic algorithm is followed, except this time the matching rows of the index are scanned from bottom to top instead of from top to bottom, so that the states will appear in descending order. </p> |
︙ |
Changes to pages/rescode.in.
︙ | |||
320 321 322 323 324 325 326 | 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | - - + + + | SQL statement being prepared is not authorized. } RESCODE SQLITE_FORMAT 24 { The SQLITE_FORMAT error code is not currently used by SQLite. } RESCODE SQLITE_RANGE 25 { The SQLITE_RANGE error indices that the parameter number argument |
︙ |
Added pages/sqlanalyze.in.