Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Begin adding a change log for version 3.26.0. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a74a421c1218f1634b4ceabdb3a8a9e5 |
User & Date: | drh 2018-11-12 13:39:21.584 |
Context
2018-11-12
| ||
15:24 | Enhancements to the documentation regarding security and shadow tables. (check-in: 7b6b7a791b user: drh tags: trunk) | |
13:39 | Begin adding a change log for version 3.26.0. (check-in: a74a421c12 user: drh tags: trunk) | |
2018-11-07
| ||
20:07 | Merge changes from the 3.25 branch. (check-in: 3b8a91bbce user: drh tags: trunk) | |
Changes
Changes to pages/changes.in.
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | set nChng 0 proc chng {date desc {options {}}} { global nChng aChng xrefChng set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2018-11-05 (3.25.3)} { <li> Disallow the use of [window functions] in the recursive part of a CTE. Ticket [https://sqlite.org/src/info/e8275b415a2f03bee|e8275b415a2f03bee] <li> Fix the behavior of typeof() and length() on virtual tables. Ticket [https://sqlite.org/src/info/69d642332d25aa3b7315a6d385|69d642332d25aa3b7315a6d385] <li> Strengthen defenses against deliberately corrupted database files. | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 73 74 75 76 77 78 | set nChng 0 proc chng {date desc {options {}}} { global nChng aChng xrefChng set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2018-12-00 (3.26.0)} { <li>Optimization: when doing an UPDATE on a table with [indexes on expressions], do not update the expression indexes if they do not refer to any of the columns of the table being updated. <li>Added the [SQLITE_DBCONFIG_DEFENSIVE] option which disables the ability to create corrupt database files using ordinary SQL. <li>Added support for read-only [shadow tables] when the [SQLITE_DBCONFIG_DEFENSIVE] option is enabled. <li>Added the [PRAGMA legacy_alter_table] command, which if enabled causes the [ALTER TABLE] command to behave like older version of SQLite (prior to version 3.25.0) for compatibility. <li>Added [PRAGMA table_xinfo] that works just like [PRAGMA table_info] except thta is also shows hidden columns in virtual tables. <li>Added the [https://sqlite.org/src/file/ext/misc/explain.c|explain virtual table] as a run-time loadable extension. <li>Add a limit counter to the query planner to prevent excessive [sqlite3_prepare()] times for certain pathological SQL inputs. <li>Added support for the [sqlite3_normalized_sql()] interface, when compiling with SQLITE_ENABLE_NORMALIZE. <li>Enhanced triggers so that they can use [table-valued functions] that exist in schemas other than the schema where the trigger is defined. <li>Enhancements to the [CLI]: <ol type="a"> <li>Improvements to the ".help" command. <li>The SQLITE_HISTORY environment variable, if it exists, specifies the name of the command-line editing history file <li>The --deserialize option associated with opening a new database cause the database file to be read into memory and accessed using the [sqlite3_deserialize()] API. This simplifies running tests on a database without modifying the file on disk. </ol> <li>Enhancements to the [geopoly] extension: <ol type="a"> <li>Aways stores polygons using the binary format, which is faster and uses less space. <li>Added the [geopoly_regular()] function. <li>Added the [geopoly_ccw()] function. </ol> <li>Enhancements to the [session] extension: <ol type="a"> <li>Added the [SQLITE_CHANGESETAPPLY_INVERT] flag <li>Added the [sqlite3changeset_start_v2()] interface and the [SQLITE_CHANGESETSTART_INVERT] flag. <li>Added the [https://sqlite.org/src/file/ext/session/changesetfuzz.c|changesetfuzz.c] test-case generator utility. </ol> } chng {2018-11-05 (3.25.3)} { <li> Disallow the use of [window functions] in the recursive part of a CTE. Ticket [https://sqlite.org/src/info/e8275b415a2f03bee|e8275b415a2f03bee] <li> Fix the behavior of typeof() and length() on virtual tables. Ticket [https://sqlite.org/src/info/69d642332d25aa3b7315a6d385|69d642332d25aa3b7315a6d385] <li> Strengthen defenses against deliberately corrupted database files. |
︙ | ︙ |
Changes to pages/chronology.in.
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # ORDER BY mtime DESC; # # A small amount of manual editing and de-duplication followed. # # Manually edit the list for each subsequent release. # foreach line [split { 89e099fbe5|2018-11-05|Version 3.25.3 fb90e7189a|2018-09-25|Version 3.25.2 2ac9003de4|2018-09-18|Version 3.25.1 b63af6c3bd|2018-09-15|Version 3.25.0 c7ee083322|2018-06-04|Version 3.24.0 4bb2294022|2018-04-10|Version 3.23.1 736b53f57f|2018-04-02|Version 3.23.0 | > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # ORDER BY mtime DESC; # # A small amount of manual editing and de-duplication followed. # # Manually edit the list for each subsequent release. # foreach line [split { xxxxxxxxxx|pending|Version 3.26.0 89e099fbe5|2018-11-05|Version 3.25.3 fb90e7189a|2018-09-25|Version 3.25.2 2ac9003de4|2018-09-18|Version 3.25.1 b63af6c3bd|2018-09-15|Version 3.25.0 c7ee083322|2018-06-04|Version 3.24.0 4bb2294022|2018-04-10|Version 3.23.1 736b53f57f|2018-04-02|Version 3.23.0 |
︙ | ︙ |
Changes to pages/geopoly.in.
︙ | ︙ | |||
328 329 330 331 332 333 334 335 336 337 338 339 340 341 | SELECT geopoly_svg(geopoly_regular(x,y,40,n), printf('style="fill:none;stroke:%s;stroke-width:2"',color)) || printf(' <text x="%d" y="%d" alignment-baseline="central" text-anchor="middle">%d</text>',x,y+6,n) FROM t1; SELECT '</svg>'; </codeblock> <h1>Implementation Details</h1> <p>The geopoly module is an extension to the [R-Tree extension]. Geopoly uses the same underlying logic and shadow tables as the [R-Tree extension]. Geopoly merely presents a different interface, and provides some extra logic | > > > > > > > > > > > > > > > | 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | SELECT geopoly_svg(geopoly_regular(x,y,40,n), printf('style="fill:none;stroke:%s;stroke-width:2"',color)) || printf(' <text x="%d" y="%d" alignment-baseline="central" text-anchor="middle">%d</text>',x,y+6,n) FROM t1; SELECT '</svg>'; </codeblock> <tcl>hd_fragment regpoly geopoly_ccw</tcl> <h2>The geopoly_ccw(J) Function</h2> <p>The geopoly_ccw(J) function returns the polygon J with counter-clockwise (CCW) rotation. <p> [https://tools.ietf.org/html/rfc7946 | RFC-7946] requires that polygons use CCW rotation. But the spec also observes that many legacy GeoJSON files do not following the spec and contain polygons with clockwise (CW) rotation. The geopoly_ccw() function is useful for applications that are reading legacy GeoJSON scripts. If the input to geopoly_ccw() is a correctly-formatted polygon, then no changes are made. However, if the circulation of the input polygon is backwards, then geopoly_ccw() reverses the circulation order so that it conforms to the spec and so that it will work correctly with the Geopoly module. <h1>Implementation Details</h1> <p>The geopoly module is an extension to the [R-Tree extension]. Geopoly uses the same underlying logic and shadow tables as the [R-Tree extension]. Geopoly merely presents a different interface, and provides some extra logic |
︙ | ︙ |
Changes to pages/index.in.
︙ | ︙ | |||
10 11 12 13 14 15 16 | [full-featured SQL|full-featured], [public-domain], SQL database engine. SQLite is the [most used] database engine in the world. <a class="button" href="about.html">More Info</a></p> <hr class="xhr"> <span class="hdrfont">Latest Release: </span> | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [full-featured SQL|full-featured], [public-domain], SQL database engine. SQLite is the [most used] database engine in the world. <a class="button" href="about.html">More Info</a></p> <hr class="xhr"> <span class="hdrfont">Latest Release: </span> <a href="releaselog/3_26_0.html">Version 3.26.0</a> ([dateof:3.26.0]). <a class="button" href="download.html">Download</a> <a class="button" href="chronology.html">Prior Releases</a> <div class="mobileonly"> <hr class="xhr"> <h3>Common Links</h3> <tcl>common_links</tcl> |
︙ | ︙ |
Changes to pages/pragma.in.
︙ | ︙ | |||
1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 | ^Columns in the result set include the column name, data type, whether or not the column can be NULL, and the default value for the column. ^The "pk" column in the result set is zero for columns that are not part of the primary key, and is the index of the column in the primary key for columns that are part of the primary key.</p> <p>^The table named in the table_info pragma can also be a view.</p> } DangerousPragma {schema_version} { <p><b>PRAGMA DB.schema_version; <br>PRAGMA DB.schema_version = </b><i>integer </i>; <p> ^The schema_version pragma will to get or set | > > > > > > > > > | 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 | ^Columns in the result set include the column name, data type, whether or not the column can be NULL, and the default value for the column. ^The "pk" column in the result set is zero for columns that are not part of the primary key, and is the index of the column in the primary key for columns that are part of the primary key.</p> <p>^The table named in the table_info pragma can also be a view.</p> <p>See also: [PRAGMA table_xinfo] } Pragma table_xinfo { <p>^(<b>PRAGMA DB.table_xinfo(</b><i>table-name</i><b>);</b></p> <p>This pragma returns one row for each column in the named table, including [hidden columns] in virtual tables.)^ ^The output is the same as for [PRAGMA table_info] except that hidden columns are shown rather than being omitted. } DangerousPragma {schema_version} { <p><b>PRAGMA DB.schema_version; <br>PRAGMA DB.schema_version = </b><i>integer </i>; <p> ^The schema_version pragma will to get or set |
︙ | ︙ |