Documentation Source Text

Check-in [03bca65239]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Updates to the change log for version 3.27.0.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:03bca6523910f1d7593178f69a10a3c82e390b35793a820c3f871e5f82ee58ae
User & Date: drh 2019-01-28 20:31:32
Context
2019-01-31
17:51
Add documentation for SQLITE_CONFIG_MEMDB_MAXSIZE. check-in: cb850cf9a5 user: drh tags: trunk
2019-01-28
20:31
Updates to the change log for version 3.27.0. check-in: 03bca65239 user: drh tags: trunk
2019-01-22
20:59
Clean up links in the arch.html and opcode.html documents. check-in: ea5ed63f07 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Show Whitespace Changes Patch

Changes to pages/changes.in.

    25     25   <li>Added the [VACUUM INTO] command
    26     26   <li>Issue an SQLITE_WARNING message on the [error log] if a 
    27     27   [double-quoted string literal] is used.
    28     28   <li>The [sqlite3_normalized_sql()] interface works on any prepared statement
    29     29   created using [sqlite3_prepare_v2()] or [sqlite3_prepare_v3()].  It is no
    30     30   longer necessary to use [sqlite3_prepare_v3()] with [SQLITE_PREPARE_NORMALIZE]
    31     31   in order to use [sqlite3_normalized_sql()].
    32         -<li>Add the remove_diacritics=2 option to [FTS3] and [FTS5].
           32  +<li>Added the remove_diacritics=2 option to [FTS3] and [FTS5].
           33  +<li>Added the [SQLITE_PREPARE_NO_VTAB] option to [sqlite3_prepare_v3()].
           34  +Use that option to prevent circular references to [shadow tables] from
           35  +causing resource leaks.
           36  +<li>Enhancements to the [sqlite3_deserialize()] interface:
           37  +<ol type="a">
           38  +<li> Add the [SQLITE_FCNTL_SIZE_LIMIT] [sqlite3_file_control|file-control] for
           39  +     setting an upper bound on the size of the in-memory database created
           40  +     by sqlite3_deserialize.  The default upper bound is 1GiB, or whatever
           41  +     alternative value is specified by [SQLITE_MEMDB_DEFAULT_MAXSIZE].
           42  +<li> Honor the [SQLITE_DESERIALIZE_READONLY] flag, which was previously described
           43  +     in the documentation, but was previously a no-op.
           44  +<li> Enhance the "deserialize" command of the [TCL Interface] to give it
           45  +     new "--maxsize N" and "--readonly BOOLEAN" options.
           46  +</ol>
           47  +<li>Enhancements to the [CLI], mostly to support testing and debugging
           48  +of the SQLite library itself:
           49  +<ol type="a">
           50  +<li> Add support for ".open --hexdb". The 
           51  +     "[https://sqlite.org/src/doc/trunk/tool/dbtotxt.md|dbtotxt]" utility 
           52  +     program used to generate the text for the "hexdb" is added to the 
           53  +     source tree.
           54  +<li> Add support for the "--maxsize N" option on ".open --deserialize".
           55  +<li> Added the "--memtrace" command-line option, to shall all memory allocations
           56  +     and deallocations.
           57  +<li> Add the ".eqp trace" option on builds with SQLITE_DEBUG, to enable
           58  +     bytecode program listing with indentation and 
           59  +     [PRAGMA vdbe_trace] all in one step.
           60  +</ol>
           61  +<li> Omit deprecated PRAGMA statements when compiling with [SQLITE_OMIT_DEPRECATED].
    33     62   <p><b>Bug fixes:</b>
    34     63   <li>Do not use a partial index to do a table scan on an IN operator.
    35     64   Ticket [https://www.sqlite.org/src/info/1d958d90596593a774|1d958d90596593a774].
    36     65   <li>Fix the [query flattener] so that it works on queries that contain
    37     66   subqueries that use [window functions].
    38     67   Ticket [https://www.sqlite.org/src/info/f09fcd17810f65f717|709fcd17810f65f717]
    39     68   <li>Ensure that ALTER TABLE modifies table and column names embedded in WITH

Changes to pages/compile.in.

   483    483   
   484    484   COMPILE_OPTION {SQLITE_MAX_WORKER_THREADS=<i>N</i>} {
   485    485     Set an upper bound on the [sqlite3_limit](db,[SQLITE_LIMIT_WORKER_THREADS],N)
   486    486     setting that determines the maximum number of auxiliary threads that a single
   487    487     [prepared statement] will use to aid with CPU-intensive computations
   488    488     (mostly sorting).  See also the [SQLITE_DEFAULT_WORKER_THREADS] options.
   489    489   }
          490  +
          491  +COMPILE_OPTION {SQLITE_MEMDB_DEFAULT_MAXSIZE=<i>N</i>} {
          492  +  Set the default size limit (in bytes) for in-memory databases created using
          493  +  [sqlite3_deserialize()].  This is just the default.  The limit can be
          494  +  changed at run-time for individual databases using the
          495  +  [SQLITE_FCNTL_SIZE_LIMIT] [sqlite3_file_control|file-control].
          496  +  If no default is specified, 1073741824 is used.
          497  +}
   490    498   
   491    499   COMPILE_OPTION {SQLITE_MINIMUM_FILE_DESCRIPTOR=<i>N</i>} {
   492    500     The unix [VFS] will never use a file descriptor less than <i>N</i>.  The
   493    501     default value of <i>N</i> is 3.
   494    502     <p>
   495    503     Avoiding the use of low-numbered file descriptors is a defense against
   496    504     accidental database corruption.  If a database file was opened using
................................................................................
  1540   1548     This option causes SQLite to omit support for interfaces
  1541   1549     marked as deprecated.  This includes 
  1542   1550     [sqlite3_aggregate_count()],
  1543   1551     [sqlite3_expired()],
  1544   1552     [sqlite3_transfer_bindings()],
  1545   1553     [sqlite3_global_recover()],
  1546   1554     [sqlite3_thread_cleanup()] and
  1547         -  [sqlite3_memory_alarm()] interfaces.
         1555  +  [sqlite3_memory_alarm()] interfaces and
         1556  +  [PRAGMA] statements [PRAGMA count_changes],
         1557  +  [PRAGMA data_store_directory],
         1558  +  [PRAGMA default_cache_size],
         1559  +  [PRAGMA empty_result_callbacks],
         1560  +  [PRAGMA full_column_names],
         1561  +  [PRAGMA short_column_names], and
         1562  +  [PRAGMA temp_store_directory].
  1548   1563   }
  1549   1564   
  1550   1565   COMPILE_OPTION {SQLITE_OMIT_DISKIO} {
  1551   1566     This option omits all support for writing to the disk and forces
  1552   1567     databases to exist in memory only.  This option has not been 
  1553   1568     maintained and probably does not work with newer versions of SQLite.
  1554   1569   }

Changes to pages/lang.in.

  5014   5014   else it must be an empty file, or the VACUUM INTO command will
  5015   5015   fail with an error.
  5016   5016   
  5017   5017   <p>
  5018   5018   The VACUUM INTO command is transactional in the sense that
  5019   5019   the generated output database is a consistent snapshot of the
  5020   5020   orgininal database.  However, if the VACUUM INTO command is
  5021         -interrupted by a unplanned shutdown or power lose, in that
  5022         -case the generated output database might not be complete.
         5021  +interrupted by a unplanned shutdown or power lose, then
         5022  +the generated output database might be incomplete and corrupt.
  5023   5023   Also, SQLite does not invoke fsync() or FlushFileBuffers()
  5024   5024   on the generated database to ensure that it has reached
  5025   5025   non-volatile storage before completing.
  5026   5026   
  5027   5027   
  5028   5028   <tcl>hd_fragment howvacuumworks {how vacuum works}</tcl>
  5029   5029   <h3>How VACUUM works</h3>

Changes to pages/quirks.in.

   240    240   and single-quotes around string literals.
   241    241   <ul>
   242    242   <li> <tt>"this is a legal SQL column name"</tt>
   243    243   <li> <tt>'this is an SQL string literal'</tt>
   244    244   </ul>
   245    245   <p>
   246    246   SQLite accepts both of the above.  But, in an effort to be compatible
   247         -with MySQL 3.x (which was widely popular when SQLite was first being
   248         -designed) will also use content contained in double-quotes as a string
   249         -literal if the content does not match any valid identifier.
          247  +with MySQL 3.x (which was very popular when SQLite was first being
          248  +designed) SQLite will also use content contained in double-quotes as a s
          249  +tring literal if the content does not match any valid identifier.
   250    250   <p>
   251    251   An unfortunate side-effect of this is that a misspelled double-quoted
   252    252   identifier will be interpreted as a string literal, rather than generating
   253    253   an error.
   254    254   Another problem is that this behavior allows developers who are new to
   255    255   the SQL language to continue using double-quoted string literals when they
   256    256   really need to learn to use the correct single-quoted string literal form.