Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a description of NULLS FIRST and NULLS LAST. Add a note about the addition of sqlite3_drop_modules(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a7856e4125c57d75eb8e6c957734f05c |
User & Date: | drh 2019-08-29 17:19:33.532 |
Context
2019-09-04
| ||
15:18 | Update the speed-and-size spreadsheet with the latest figures. (check-in: 33e05d1299 user: drh tags: trunk) | |
2019-08-29
| ||
17:19 | Add a description of NULLS FIRST and NULLS LAST. Add a note about the addition of sqlite3_drop_modules(). (check-in: a7856e4125 user: drh tags: trunk) | |
2019-08-15
| ||
23:05 | Mention new defensive capabilities in the security.html page. (check-in: b714ca6b96 user: drh tags: trunk) | |
Changes
Changes to art/syntax/bubble-generator-data.tcl.
︙ | ︙ | |||
468 469 470 471 472 473 474 475 476 477 478 479 480 481 | or {line ON expr} {line USING ( {loop /column-name ,} )} nil } ordering-term { line expr {opt COLLATE /collation-name} {or nil ASC DESC} } compound-operator { or UNION {line UNION ALL} INTERSECT EXCEPT } update-stmt { rightstack {line {opt with-clause} UPDATE {or {} {line OR ROLLBACK} | > | 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 | or {line ON expr} {line USING ( {loop /column-name ,} )} nil } ordering-term { line expr {opt COLLATE /collation-name} {or nil ASC DESC} {or nil {line NULLS FIRST} {line NULLS LAST}} } compound-operator { or UNION {line UNION ALL} INTERSECT EXCEPT } update-stmt { rightstack {line {opt with-clause} UPDATE {or {} {line OR ROLLBACK} |
︙ | ︙ |
Changes to art/syntax/ordering-term.gif.
cannot compute difference between binary files
Changes to pages/changes.in.
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2019-10-00 (3.30.0)} { <li> Add support for the [FILTER clause on aggregate functions]. <li> The [index_info] and [index_xinfo] pragmas are enhanced to provide information about the on-disk representation of [WITHOUT ROWID] tables. <li> Improvements to the [.recover dot-command] in the [CLI] so that it recovers more content from corrupt database files. <li> Enhance the [RBU] extension to support [indexes on expressions]. <li> Change the schema parser so that it will error out if any of the type, name, and tbl_name columns of the [sqlite_master table] have been corrupted and the database connection is not in [writable_schema] mode. | > > > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2019-10-00 (3.30.0)} { <li> Add support for the [FILTER clause on aggregate functions]. <li> Add support for the [NULLS FIRST] and [NULLS LAST] syntax in [ORDER BY] clauses. <li> The [index_info] and [index_xinfo] pragmas are enhanced to provide information about the on-disk representation of [WITHOUT ROWID] tables. <li> Add the [sqlite3_drop_modules()] interface, allowing applications to disable automatically loaded virtual tables that they do not need. <li> Improvements to the [.recover dot-command] in the [CLI] so that it recovers more content from corrupt database files. <li> Enhance the [RBU] extension to support [indexes on expressions]. <li> Change the schema parser so that it will error out if any of the type, name, and tbl_name columns of the [sqlite_master table] have been corrupted and the database connection is not in [writable_schema] mode. |
︙ | ︙ |
Changes to pages/datatype3.in.
︙ | ︙ | |||
396 397 398 399 400 401 402 403 404 405 406 407 408 409 | <tcl>hd_fragment comparisons {comparison expressions}</tcl> <h1>Comparison Expressions</h1> <p>SQLite version 3 has the usual set of SQL comparison operators including "=", "==", "<", "<=", ">", ">=", "!=", "<>", "IN", "NOT IN", "BETWEEN", "IS", and "IS NOT", . <h2>Sort Order</h2> <p>The results of a comparison depend on the storage classes of the operands, according to the following rules:</p> <ul> <li><p>^A value with storage class NULL is considered less than any other value (including another value with storage class NULL).</p> | > | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 | <tcl>hd_fragment comparisons {comparison expressions}</tcl> <h1>Comparison Expressions</h1> <p>SQLite version 3 has the usual set of SQL comparison operators including "=", "==", "<", "<=", ">", ">=", "!=", "<>", "IN", "NOT IN", "BETWEEN", "IS", and "IS NOT", . <tcl>hd_fragment sortorder {sort order}</tcl> <h2>Sort Order</h2> <p>The results of a comparison depend on the storage classes of the operands, according to the following rules:</p> <ul> <li><p>^A value with storage class NULL is considered less than any other value (including another value with storage class NULL).</p> |
︙ | ︙ |
Changes to pages/lang.in.
︙ | ︙ | |||
938 939 940 941 942 943 944 945 946 947 948 949 950 951 | and later are able to understand the descending index format. For compatibility, version of SQLite between 3.3.0 and 3.7.9 use the legacy schema format by default. The newer schema format is used by default in version 3.7.10 ([dateof:3.7.10]) and later. ^The [legacy_file_format pragma] can be used to change set the specific behavior for any version of SQLite.</p> <tcl>hd_fragment collidx {COLLATE}</tcl> <p>^The COLLATE clause optionally following each column name or expression defines a collating sequence used for text entries in that column. ^The default collating sequence is the collating sequence defined for that column in the [CREATE TABLE] statement. ^Or if no collating sequence is otherwise defined, | > > > > > | 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 | and later are able to understand the descending index format. For compatibility, version of SQLite between 3.3.0 and 3.7.9 use the legacy schema format by default. The newer schema format is used by default in version 3.7.10 ([dateof:3.7.10]) and later. ^The [legacy_file_format pragma] can be used to change set the specific behavior for any version of SQLite.</p> <p>The NULLS FIRST and NULLS LAST predicates are not supported for indexes. For [sort order|sorting purposes], SQLite considers NULL values to be smaller than all other values. Hences NULL values always appear at the beginning of an ASC index and at the end of a DESC index.</p> <tcl>hd_fragment collidx {COLLATE}</tcl> <p>^The COLLATE clause optionally following each column name or expression defines a collating sequence used for text entries in that column. ^The default collating sequence is the collating sequence defined for that column in the [CREATE TABLE] statement. ^Or if no collating sequence is otherwise defined, |
︙ | ︙ | |||
4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 | evaluating the left-most expression in the ORDER BY list, then ties are broken by evaluating the second left-most expression and so on. The order in which two rows for which all ORDER BY expressions evaluate to equal values are returned is undefined. ^Each ORDER BY expression may be optionally followed by one of the keywords ASC (smaller values are returned first) or DESC (larger values are returned first). ^If neither ASC or DESC are specified, rows are sorted in ascending (smaller values first) order by default. <p>Each ORDER BY expression is processed as follows:</p> <ol> <li><p>^If the ORDER BY expression is a constant integer K then the expression is considered an alias for the K-th column of the result set (columns are numbered from left to right starting with 1). | > > > > > > | 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 | evaluating the left-most expression in the ORDER BY list, then ties are broken by evaluating the second left-most expression and so on. The order in which two rows for which all ORDER BY expressions evaluate to equal values are returned is undefined. ^Each ORDER BY expression may be optionally followed by one of the keywords ASC (smaller values are returned first) or DESC (larger values are returned first). ^If neither ASC or DESC are specified, rows are sorted in ascending (smaller values first) order by default. <tcl>hd_fragment nullslast {NULLS FIRST} {NULLS LAST}</tcl> <p>SQLite considers NULL values to be smaller than any other values for sorting purposes. Hence, NULLs naturally appear at the beginning of an ASC order-by and at the end of a DESC order-by. This can be changed using the "ASC NULLS LAST" or "DESC NULLS FIRST" syntax. <p>Each ORDER BY expression is processed as follows:</p> <ol> <li><p>^If the ORDER BY expression is a constant integer K then the expression is considered an alias for the K-th column of the result set (columns are numbered from left to right starting with 1). |
︙ | ︙ |