From a8f9361f1de4684bbc028fb12c10a6c6e878ba47 Mon Sep 17 00:00:00 2001 From: drh Date: Fri, 11 Mar 2005 04:39:58 +0000 Subject: [PATCH] Documentation updates for version 3.1.4. (CVS 2375) FossilOrigin-Name: a7261f1590367932db23f5c8d6d785887df1e8dd --- manifest | 18 +++++++++--------- manifest.uuid | 2 +- www/capi3.tcl | 27 +++++++++++++++++---------- www/capi3ref.tcl | 37 +++++++++++++++++++++++++++---------- www/changes.tcl | 16 ++++++++++++++++ www/index.tcl | 16 ++++++++++++++-- 6 files changed, 84 insertions(+), 32 deletions(-) diff --git a/manifest b/manifest index 33b6a8cb8d..26ee2cf1c2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Another\scase\sof\sreturning\sSQLITE_CORRUPT\swhen\sa\scorrupt\sdatabase\sfile\nis\sdetected.\s(CVS\s2374) -D 2005-03-10T17:06:34 +C Documentation\supdates\sfor\sversion\s3.1.4.\s(CVS\s2375) +D 2005-03-11T04:39:58 F Makefile.in 76443a83549d1539105e12d13bd0054a05ab2214 F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457 F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1 @@ -238,9 +238,9 @@ F www/arch2b.fig d22a2c9642d584b89d4088b1e51e2bb0f7c04bed F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0 F www/autoinc.tcl b357f5ba954b046ee35392ce0f884a2fcfcdea06 F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e -F www/capi3.tcl f01802bf3413c603f320e396b951979942ba4ee0 -F www/capi3ref.tcl c5a3ae75fc3505c034f3c4bbb62ab94cf359ac39 -F www/changes.tcl fba1b5c968e6df123561e91b102b3a3a12eb5266 +F www/capi3.tcl 7a7cc225fe02eb7ab861a6019b08baa0014409e1 +F www/capi3ref.tcl aec15cee5db96cd7ad5658b9988ee2730bf58f86 +F www/changes.tcl 167a925c072d5305a0741f71843d0c6a3d7081f0 F www/common.tcl de758130d54d95d151ea0d17a2ae5b92e1bb01de F www/compile.tcl 65b26bdfc964b66c5f0af841718a52f9795ceb05 F www/conflict.tcl cdd0f4b59b0ba6d61f67e6a38f3ae45853bacb30 @@ -256,7 +256,7 @@ F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c F www/faq.tcl 1e348dec52dc0f21f4216fd6918c69c56daa4cfd F www/fileformat.tcl 900c95b9633abc3dcfc384d9ddd8eb4876793059 F www/formatchng.tcl bfbf14dbf5181e771d06da7797767b0200b36d8a -F www/index.tcl c09198bfea01ecb547e232d9a1f98667b5056f25 +F www/index.tcl fc30249384e99f8f16d81f0cdce3080208da630d F www/lang.tcl 0e5aeb09864b9ae0746d8afaa6377193f1553486 F www/lockingv3.tcl f59b19d6c8920a931f096699d6faaf61c05db55f F www/mingw.tcl d96b451568c5d28545fefe0c80bee3431c73f69c @@ -274,7 +274,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618 F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0 F www/whentouse.tcl 3e522a06ad41992023c80ca29a048ae2331ca5bd -P f11c6e745200525056ae7cf97b4bdf1c7f1db588 -R aa18e74905e6647a1e0144af5f38bdf8 +P 8710192797b5b22f29b2af90198d03664665bd83 +R 5cdfb2a7c74fb9373942399ec1201a12 U drh -Z bdb3fe47d96b133342ba5ece7facc36d +Z 36aced3ee0f1f52c3cf4c20dc110d43d diff --git a/manifest.uuid b/manifest.uuid index 6167a967f7..793268b8f9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8710192797b5b22f29b2af90198d03664665bd83 \ No newline at end of file +a7261f1590367932db23f5c8d6d785887df1e8dd \ No newline at end of file diff --git a/www/capi3.tcl b/www/capi3.tcl index 184cc7f4b5..2e1e0ec180 100644 --- a/www/capi3.tcl +++ b/www/capi3.tcl @@ -1,7 +1,14 @@ -set rcsid {$Id: capi3.tcl,v 1.8 2005/02/16 23:43:34 danielk1977 Exp $} +set rcsid {$Id: capi3.tcl,v 1.9 2005/03/11 04:39:58 drh Exp $} source common.tcl header {C/C++ Interface For SQLite Version 3} -puts { + +proc AddHyperlinks {txt} { + regsub -all {([^:alnum:>])(sqlite3_\w+)(\([^\)]*\))} $txt \ + {\1\2\3} t2 + puts $t2 +} + +AddHyperlinks {

C/C++ Interface For SQLite Version 3

1.0 Overview

@@ -193,14 +200,14 @@ can be executed again.

-The SQL statement may contain tokens of the form "?" or "?nnn" or ":nnn:" -where "nnn" is an integer. Such tokens represent unspecified literal values -(or wildcards) to be filled in later by the +The SQL statement may contain tokens of the form "?" or "?nnn" or ":aaa" +where "nnn" is an integer and "aaa" is an identifier. +Such tokens represent unspecified literal values (or "wildcards") +to be filled in later by the sqlite3_bind interface. -Each wildcard as an associated number given -by the "nnn" that follows the "?". If the "?" is not followed by an -integer, then its number one more than the number of prior wildcards -in the same SQL statement. It is allowed for the same wildcard +Each wildcard has an associated number which is its sequence in the +statement or the "nnn" in the case of a "?nnn" form. +It is allowed for the same wildcard to occur more than once in the same SQL statement, in which case all instance of that wildcard will be filled in with the same value. Unbound wildcards have a value of NULL. @@ -273,7 +280,7 @@ then sqlite3_data_count() will return 0 whereas sqlite3_column_count() will continue to return the number of columns in the result set.

-

Returned data is examined using the other sqlite3_column_XXX() functions, +

Returned data is examined using the other sqlite3_column_***() functions, all of which take a column number as their second parameter. Columns are zero-indexed from left to right. Note that this is different to parameters, which are indexed starting at one. diff --git a/www/capi3ref.tcl b/www/capi3ref.tcl index fa69b1b322..2a5c494caa 100644 --- a/www/capi3ref.tcl +++ b/www/capi3ref.tcl @@ -1,4 +1,4 @@ -set rcsid {$Id: capi3ref.tcl,v 1.17 2004/12/07 02:14:52 drh Exp $} +set rcsid {$Id: capi3ref.tcl,v 1.18 2005/03/11 04:39:58 drh Exp $} source common.tcl header {C/C++ Interface For SQLite Version 3} puts { @@ -151,17 +151,34 @@ api {} { api {} { int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); } { - This routine identifies a callback function that is invoked - whenever an attempt is made to open a database table that is - currently locked by another process or thread. If the busy callback - is NULL, then sqlite3_exec() returns SQLITE_BUSY immediately if - it finds a locked table. If the busy callback is not NULL, then - sqlite3_exec() invokes the callback with two arguments. The + This routine identifies a callback function that might be invoked + whenever an attempt is made to open a database table + that another thread or process has locked. + If the busy callback is NULL, then SQLITE_BUSY is returned immediately + upon encountering the lock. + If the busy callback is not NULL, then the + callback might invoked with two arguments. The second argument is the number of prior calls to the busy callback for the same lock. If the - busy callback returns 0, then sqlite3_exec() immediately returns - SQLITE_BUSY. If the callback returns non-zero, then sqlite3_exec() - tries to open the table again and the cycle repeats. + busy callback returns 0, then no additional attempts are made to + access the database and SQLITE_BUSY is returned. + If the callback returns non-zero, then another attempt is made to open the + database for reading and the cycle repeats. + + That a busy handler is registered does not guarantee that + it will be invoked when there is lock contention. + If SQLite determines that invoking the busy handler could result in + a deadlock, it will return SQLITE_BUSY instead. + Consider a scenario where one process is holding a read lock that + it is trying to promote to a reserved lock and + a second process is holding a reserved lock that it is trying + to promote to an exclusive lock. The first process cannot proceed + because it is blocked by the second and the second process cannot + proceed because it is blocked by the first. If both processes + invoke the busy handlers, neither will make any progress. Therefore, + SQLite returns SQLITE_BUSY for the first process, hoping that this + will induce the first process to release its read lock and allow + the second process to proceed. The default busy callback is NULL. diff --git a/www/changes.tcl b/www/changes.tcl index 073663b9fd..544f60385b 100644 --- a/www/changes.tcl +++ b/www/changes.tcl @@ -21,6 +21,22 @@ proc chng {date desc} { puts "

" } +chng {2005 February 19 (3.1.4)} { +
  • Fix a bug in autovacuum that could cause database corruption if +a CREATE UNIQUE INDEX fails because of a constraint violation. +This problem only occurs if the new autovacuum feature introduced in +version 3.1 is turned on.
  • +
  • The F_FULLSYNC ioctl (currently only supported on OS-X) is disabled +if the synchronous pragma is set to something other than "full".
  • +
  • Add additional forward compatibility to the future version 3.2 database +file format.
  • +
  • Fix a bug in WHERE clauses of the form (rowid<'2')
  • +
  • New SQLITE_OMIT_... compile-time options added
  • +
  • Updates to the man page
  • +
  • Remove the use of strcasecmp() from the shell
  • +
  • Windows DLL exports symbols Tclsqlite_Init and Sqlite_Init
  • +} + chng {2005 February 19 (3.1.3)} {
  • Fix a problem with VACUUM on databases from which tables containing AUTOINCREMENT have been dropped.
  • diff --git a/www/index.tcl b/www/index.tcl index 54ad737399..acf97b9324 100644 --- a/www/index.tcl +++ b/www/index.tcl @@ -29,7 +29,7 @@ Features include: less than 250KB code space (gcc on i486)
  • Faster than popular client/server database engines for most common operations.
  • -
  • Simple, easy to use API.
  • +
  • Simple, easy to use API.
  • TCL bindings included. Bindings for many other languages @@ -61,6 +61,18 @@ proc newsitem {date title text} { puts "
    " } +newsitem {2005-Mar-10} {Version 3.1.4 Released} { + Version 3.1.4 fixes a critical bug that could cause database corruption + if the autovacuum mode of version 3.1.0 is turned on (it is off by + default) and a CREATE UNIQUE INDEX is executed within a transaction but + fails because the indexed columns are not unique. Anyone using the + autovacuum feature and unique indices should upgrade. + + Other changes in version 3.1.4 include the ability to disable + the F_FULLSYNC ioctl() by setting "PRAGMA synchronous=on" instead + of the default "PRAGMA synchronous=full". +} + newsitem {2005-Feb-19} {Version 3.1.3 Released} { Version 3.1.3 cleans up some minor issues discovered in version 3.1.2. } @@ -107,4 +119,4 @@ puts {

    Old news...

    } -footer {$Id: index.tcl,v 1.108 2005/02/19 13:46:25 drh Exp $} +footer {$Id: index.tcl,v 1.109 2005/03/11 04:39:58 drh Exp $}