Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Track the revised DQS interface. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | new-dbconfig-options |
Files: | files | file ages | folders |
SHA3-256: |
09cea3924b986f62583a7e8617eb0392 |
User & Date: | drh 2019-06-17 13:56:26.833 |
Context
2019-06-17
| ||
14:14 | Add notes about the new sqlite3_db_config() interfaces. Enhanced discussion of the double-quoted string literal misfeature. (check-in: ab87f9f72b user: drh tags: trunk) | |
13:56 | Track the revised DQS interface. (Closed-Leaf check-in: 09cea3924b user: drh tags: new-dbconfig-options) | |
2019-06-15
| ||
15:24 | Documentation on the new SQLITE_DBCONFIG options. (check-in: 4ebc1051c2 user: drh tags: new-dbconfig-options) | |
Changes
Changes to pages/changes.in.
︙ | ︙ | |||
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 | global nChng aChng xrefChng set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2019-07-00 (3.29.0)} { <li> Improved optimization of AND and OR operators when one or the other operand is a constant. <li> Added the "[https://sqlite.org/src/file/ext/misc/dbdata.c|sqlite_dbdata]" virtual table for extracting raw low-level content from an SQLite database, even a database that is corrupt. <li> Enhancements to the [CLI]: <ol type="a"> <li> Add the ".recover" command which tries to recover as much content as possible from a corrupt database file. <li> Add the ".filectrl" command useful for testing. <li> Add the long-standing ".testctrl" command to the ".help" menu. </ol> } chng {2019-04-16 (3.28.0)} { <li> Enhanced [window functions]: <ol type="a"> <li> Add support the [EXCLUDE clause]. | > > > > > > > > | 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 | global nChng aChng xrefChng set aChng($nChng) [list $date $desc $options] set xrefChng($date) $nChng incr nChng } chng {2019-07-00 (3.29.0)} { <li> The [double-quoted string literal] misfeature is deactivated by default for DDL statements. It can be reactivated if needed, to support legacy applications, using the [SQLITE_DBCONFIG_DQS_DDL] action of the [sqlite3_db_config()] interface. <li> Added the [SQLITE_DBCONFIG_DQS_DML] action to [sqlite3_db_config()] that will disable the [double-quoted string literal] misfeature for DML statements. <li> Improved optimization of AND and OR operators when one or the other operand is a constant. <li> Added the "[https://sqlite.org/src/file/ext/misc/dbdata.c|sqlite_dbdata]" virtual table for extracting raw low-level content from an SQLite database, even a database that is corrupt. <li> Enhancements to the [CLI]: <ol type="a"> <li> Add the ".recover" command which tries to recover as much content as possible from a corrupt database file. <li> Add the ".filectrl" command useful for testing. <li> Add the long-standing ".testctrl" command to the ".help" menu. <li> Added the ".dbconfig" command </ol> } chng {2019-04-16 (3.28.0)} { <li> Enhanced [window functions]: <ol type="a"> <li> Add support the [EXCLUDE clause]. |
︙ | ︙ |
Changes to pages/quirks.in.
︙ | ︙ | |||
240 241 242 243 244 245 246 | and single-quotes around string literals. For example: <ul> <li> <tt>"this is a legal SQL column name"</tt> <li> <tt>'this is an SQL string literal'</tt> </ul> <p> SQLite accepts both of the above. But, in an effort to be compatible | | | | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | and single-quotes around string literals. For example: <ul> <li> <tt>"this is a legal SQL column name"</tt> <li> <tt>'this is an SQL string literal'</tt> </ul> <p> SQLite accepts both of the above. But, in an effort to be compatible with MySQL 3.x (which was one of the most widely used RDBMSes when SQLite was first being designed) SQLite will also interpret a double-quotes string as string literal if it does not match any valid identifier. <p> This misfeature means that a misspelled double-quoted identifier will be interpreted as a string literal, rather than generating an error. It also lures developers who are new to the SQL language into |
︙ | ︙ | |||
270 271 272 273 274 275 276 | string literals inside of DDL statements ([CREATE TABLE], [CREATE INDEX], and so forth) is disallowed and will cause a syntax error. Double quoted strings needed to be deactivated in DDL statements as they were causing problems for [ALTER TABLE]. (See the ticket at [https://www.sqlite.org/src/info/9b78184be266f] for details.) If needed for compatibility, the older behavior can be restored by | | | | | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 | string literals inside of DDL statements ([CREATE TABLE], [CREATE INDEX], and so forth) is disallowed and will cause a syntax error. Double quoted strings needed to be deactivated in DDL statements as they were causing problems for [ALTER TABLE]. (See the ticket at [https://www.sqlite.org/src/info/9b78184be266f] for details.) If needed for compatibility, the older behavior can be restored by disabling the [SQLITE_DBCONFIG_DQS_DDL] option on the [sqlite3_db_config()] interface. <li><p> The [SQLITE_DBCONFIG_DQS_DML] option the [sqlite3_db_config()] interface is available as of SQLite 3.29.0 ([dateof:3.29.0]) and can be used to disable double-quoted string literals for DML statements. This setting is currently off by default, but might default on in future releases of SQLite. Developers are encouraged to turn this setting on now, in preparation for the future when it might be activated by default. </ul> <h1>Keywords Can Often Be Used As Identifiers</h1> |
︙ | ︙ |