Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix documentation typos. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ce2a4ec1e717264097b2e2487c6683a0 |
User & Date: | drh 2013-08-23 16:16:12.659 |
Context
2013-08-23
| ||
16:37 | Clarification and typo fixes in the NGQP document. (check-in: a5a0ee107d user: drh tags: trunk) | |
16:16 | Fix documentation typos. (check-in: ce2a4ec1e7 user: drh tags: trunk) | |
01:57 | Add documentation for the query_only and defer_foreign_keys pragmas. Update the change log for the 3.8.0 release. (check-in: 8e16497ef1 user: drh tags: trunk) | |
Changes
Changes to pages/changes.in.
︙ | |||
43 44 45 46 47 48 49 | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - + | incr nChng if {$nChng==1 && [file exists $DEST/$filename]} { file copy -force $DEST/$filename $DEST/releaselog/current.html } } } |
︙ | |||
85 86 87 88 89 90 91 | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | - - + + | HAVE_POSIX_FALLOCATE compile-time option is used. <li>Update the ".import" command in the [command-line shell] to support multi-line fields and correct RFC-4180 quoting and to issue warning and/or error messages if the input text is not strictly RFC-4180 compliant. <li>Bug fix: In the [unicode61] tokenizer of [FTS4], treat all private code points as identifier symbols. <li>Bug fix: Bare identifiers in ORDER BY clauses bind more tightly to output column |
︙ |
Changes to pages/cintro.in.
︙ | |||
362 363 364 365 366 367 368 | 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 | - + | The [sqlite3_config()] interface is used to make global, process-wide configuration changes for SQLite. The [sqlite3_config()] interface must be called before any [database connections] are created. The [sqlite3_config()] interface allows the programmer to do things like: <ul> <li>Adjust how SQLite does [memory allocation], including setting up alternative memory allocators appropriate for safety-critical |
︙ |
Changes to pages/fileio.in.
︙ | |||
1581 1582 1583 1584 1585 1586 1587 | 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 | - + | <h3 id=opening_a_write_transaction>Beginning a Write Transaction</h3> <p> Before any database pages may be modified within the <i>page cache</i>, the <i>database connection</i> must open a <i>write transaction</i>. Opening a <i>write transaction</i> requires that the <i>database connection</i> obtains a <i>reserved lock</i> (or greater) on the |
︙ |
Changes to pages/lang.in.
︙ | |||
2752 2753 2754 2755 2756 2757 2758 | 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 | - + | an existing table. ^If no column-list is specified then the number of values inserted into each row must be the same as the number of columns in the table. ^In this case the result of evaluating the left-most expression in each term of the VALUES list is inserted into the left-most column of the each new row, and forth for each subsequent expression. ^If a column-list is specified, then the number of values in each term of the |
︙ |
Changes to pages/mmap.in.
︙ | |||
67 68 69 70 71 72 73 | 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | - + | <p>To read a page of database content using the legacy xRead() method, SQLite first allocates a page-size chunk of heap memory then invokes the xRead() method which causes the database page content to be copied into the newly allocated heap memory. This involves (at a minimum) a copy of the entire page.</p> |
︙ |
Changes to pages/news.in.
︙ | |||
15 16 17 18 19 20 21 | 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 | - - - + + + + + + - - - - + + + + + + + + + + + + + + | 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%\">" } |
︙ |
Changes to pages/optoverview.in.
︙ | |||
641 642 643 644 645 646 647 | 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 | - + | HEADING 2 {Manual Control Of Query Plans Using CROSS JOIN} \ crossjoin {Manual Control Of Query Plans Using CROSS JOIN} {CROSS JOIN} PARAGRAPH { Programmers can force SQLite to use a particular loop nesting order for a join by using the CROSS JOIN operator instead of just JOIN, INNER JOIN, NATURAL JOIN, or a "," join. Though CROSS JOINs are |
︙ |
Changes to pages/partialindex.in.
︙ | |||
8 9 10 11 12 13 14 | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + | <p> A partial index is an index over a subset of the rows of a table. </p> <p> ^In ordinary indexes, there is exactly one entry in the index for every |
︙ | |||
119 120 121 122 123 124 125 | 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | - + | <blockquote> SELECT person_id FROM person WHERE is_team_leader AND team_id=?1; </blockquote>)^ <h2>3.0 Queries Using Partial Indexes</h2> |
︙ | |||
179 180 181 182 183 184 185 | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | - + | SELECT * FROM tab2 WHERE b=456 AND c<>0; <i>-- uses partial index</i> </blockquote>)^ ^(<p>But the next query can not use the partial index: <blockquote> SELECT * FROM tab2 WHERE b=456; <i>-- cannot use partial index</i> </blockquote>)^ <p>The latter query can not use the partial index because there might be |
︙ |
Changes to pages/queryplanner-ng.in.
︙ | |||
192 193 194 195 196 197 198 | 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | - + | <p>The arrows from the small circles labeled with "*" indicate the cost of running each loop with no dependencies. The outer loop must use this *-cost. Inner loops have the option of using the *-cost or a cost assuming one of the other terms is in an outer loop, whichever gives the best result. One can think of the *-costs as a short-hand notation indicating multiple arcs, one from each of the other nodes in the |
︙ | |||
255 256 257 258 259 260 261 | 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | - + | The general case involves a lot of extra complication, which for clarity is neglected in the remainder of this article.</p> <h3>3.3 Finding The Best Query Plan</h3> <p>Prior to version 3.8.0, SQLite always used the the "Nearest Neighbor" or "NN" heuristic when searching for the best query plan. |
︙ | |||
339 340 341 342 343 344 345 | 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | - + | But that is not enough for the TPC-H Q8 problem. With N=8 on TPC-H Q8 the N3 algorithm finds the solution R-N1-C-O-L-S-N2-P with a cost of 29.78. That is a big improvement over NN, but it is still not optimal. N3 finds the optimal solution for TPC-H Q8 when N is 10 or greater.</p> |
︙ | |||
545 546 547 548 549 550 551 | 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | - + | <p> The NGQP has no way of knowing that TAGXREF_I1 is almost useless in this query, unless [ANALYZE] has been run on the database. The [ANALYZE] command gathers statistics on the quality of the various indices and stores those statistics in [SQLITE_STAT1] table. Having access to this statistical information, |
︙ | |||
578 579 580 581 582 583 584 | 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 | - + | selected by both NN and N3. </p> <p>(Side note: The costs estimates in the two most recent graphs were computed by the NGQP using a base-2 logarithm and slightly different cost assumptions compared to the legacy query planner. Hence, the cost estimates in |
︙ | |||
614 615 616 617 618 619 620 | 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 | - + | <tcl>hd_fragment howtofix {query planner checklist}</tcl> <h2>5.0 Checklist For Avoiding Or Fixing Query Planner Problems</h2> <ol> <li><p><b>Don't panic!</b> Cases where the query planner picks an inferior plan are actually quite |
︙ | |||
659 660 661 662 663 664 665 | 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 | - + | Add logic that lets you know quickly and easily which queries are taking too much time. Then work on just those specific queries.</p> <li><p><b>Use the [CROSS JOIN] syntax to enforce a particular loop nesting order on queries that might use low-quality indices in an unanalyzed database.</b> SQLite [treats the CROSS JOIN operator specially], forcing the table to |
︙ |
Changes to pages/tclsqlite.in.
︙ | |||
75 76 77 78 79 80 81 | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | - + | This provides a small performance boost in single-threaded applications. </p></dd> <dt><b>-readonly</b> <i>BOOLEAN</i></dt> <dd><p> If true, then open the database file read-only. If false, then the database is opened for both reading and writing if filesystem permissions |
︙ | |||
744 745 746 747 748 749 750 | 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 | - + | METHOD wal_hook { <p>This method registers a callback routine that is invoked after transaction commit when the database is in [WAL mode]. Two arguments are appended to the callback command before it is invoked:</p> <ul> |
︙ |
Changes to pages/testing.in.
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - + | <title>How SQLite Is Tested</title> <tcl>hd_keywords testing *tested {test suite}</tcl> <tcl> # This document contains many size statistics about SQLite, statistics # that change frequently. We want the document to be up-to-date. To # facilitate that, all the size values are defined by variables here # which are then used as needed through the document. # # NOTE: Also update the version number in the text!!! # # sloc sqlite3.c |
︙ | |||
99 100 101 102 103 104 105 | 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | - + | <h1 align="center">How SQLite Is Tested</h1> <h2>1.0 Introduction</h2> <p>The reliability and robustness of SQLite is achieved in part by thorough and careful testing.</p> |
︙ | |||
154 155 156 157 158 159 160 | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | - + | [http://www.tcl.tk/ | TCL scripting language]. The TCL test harness itself consists of <tcl>KB {$stat(tclcSLOC)}</tcl> KSLOC of C code used to create the TCL interface. The test scripts are contained in <tcl>N {$stat(tclsNFile)}</tcl> files totaling <tcl>MiB {$stat(tclsNByte)}</tcl>MB in size. There are <tcl>N {$stat(tclNTest)}</tcl> distinct test cases, but many of the test cases are parameterized and run multiple times (with different parameters) |
︙ |
Changes to pages/whentouse.in.
︙ | |||
88 89 90 91 92 93 94 | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | - + - + | 32-bit and 64-bit and big- and little-endian architectures. <li> The application only has to load as much data as it needs, rather than reading the entire application file and holding a complete parse in memory. Startup time and memory consumption are reduced. <li> Small edits only overwrite the parts of the file that change, not the entire file, thus improving performance and reducing wear on SSD drives. |
︙ |