From 3500b7c2d43e9b3758fc65991c36f179cd039476 Mon Sep 17 00:00:00 2001
From: drh
The B-tree module requests information from the disk in fixed-size chunks. The default chunk size is 1024 bytes but can vary between 512 and 65536 bytes. -The page cache is reponsible for reading, writing, and +The page cache is responsible for reading, writing, and caching these chunks. The page cache also provides the rollback and atomic commit abstraction and takes care of locking of the database file. The diff --git a/www/capi3ref.tcl b/www/capi3ref.tcl index cf50cad6c9..92e084d03a 100644 --- a/www/capi3ref.tcl +++ b/www/capi3ref.tcl @@ -1,4 +1,4 @@ -set rcsid {$Id: capi3ref.tcl,v 1.13 2004/09/30 13:43:14 drh Exp $} +set rcsid {$Id: capi3ref.tcl,v 1.14 2004/10/10 17:24:54 drh Exp $} source common.tcl header {C/C++ Interface For SQLite Version 3} puts { @@ -35,7 +35,7 @@ api {result-codes} { #define SQLITE_EMPTY 16 /* (Internal Only) Database table is empty */ #define SQLITE_SCHEMA 17 /* The database schema changed */ #define SQLITE_TOOBIG 18 /* Too much data for one row of a table */ -#define SQLITE_CONSTRAINT 19 /* Abort due to contraint violation */ +#define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */ #define SQLITE_MISMATCH 20 /* Data type mismatch */ #define SQLITE_MISUSE 21 /* Library used incorrectly */ #define SQLITE_NOLFS 22 /* Uses OS features not supported on host */ @@ -170,8 +170,8 @@ api {} { } { This routine sets a busy handler that sleeps for a while when a table is locked. The handler will sleep multiple times until - at least "ms" milleseconds of sleeping have been done. After - "ms" milleseconds of sleeping, the handler returns 0 which + at least "ms" milliseconds of sleeping have been done. After + "ms" milliseconds of sleeping, the handler returns 0 which causes sqlite3_exec() to return SQLITE_BUSY. Calling this routine with an argument less than or equal to zero @@ -498,7 +498,7 @@ int sqlite3_create_function16( #define SQLITE_ANY 5 } { These two functions are used to add user functions or aggregates - implemented in C to the SQL langauge interpreted by SQLite. The + implemented in C to the SQL language interpreted by SQLite. The difference only between the two is that the second parameter, the name of the (scalar) function or aggregate, is encoded in UTF-8 for sqlite3_create_function() and UTF-16 for sqlite3_create_function16(). @@ -520,7 +520,7 @@ int sqlite3_create_function16( and xFinal parameters. An aggregate function requires an implementation of xStep and xFinal, but NULL should be passed for xFunc. To delete an existing user function or aggregate, pass NULL for all three function - callback. Specifying an inconstent set of callback values, such as an + callback. Specifying an inconstant set of callback values, such as an xFunc and an xFinal, or an xStep but no xFinal, SQLITE_ERROR is returned. } @@ -635,7 +635,7 @@ int sqlite3_finalize(sqlite3_stmt *pStmt); virtual machine. If the virtual machine has not completed execution when this routine is called, that is like encountering an error or an interrupt. (See sqlite3_interrupt().) Incomplete updates may be - rolled back and transactions cancelled, depending on the circumstances, + rolled back and transactions canceled, depending on the circumstances, and the result code returned will be SQLITE_ABORT. } @@ -730,7 +730,7 @@ char *sqlite3_vmprintf(const char*, va_list); } { These routines are variants of the "sprintf()" from the standard C library. The resulting string is written into memory - obtained from malloc() so that there is never a possiblity of buffer + obtained from malloc() so that there is never a possibility of buffer overflow. These routines also implement some additional formatting options that are useful for constructing SQL statements. @@ -1002,7 +1002,7 @@ int sqlite3_step(sqlite3_stmt*); Perhaps it was called on a virtual machine that had already been finalized or on one that had previously returned SQLITE_ERROR or SQLITE_DONE. Or it could be the case the the same database connection - is being used simulataneously by two or more threads. + is being used simultaneously by two or more threads. } api {} { diff --git a/www/changes.tcl b/www/changes.tcl index c6b8adad35..204cb220ea 100644 --- a/www/changes.tcl +++ b/www/changes.tcl @@ -318,7 +318,7 @@ chng {2002 Sep 25 (2.7.2)} {
Another reason for supporing multiple algorithms is that sometimes +
Another reason for supporting multiple algorithms is that sometimes it is useful to use an algorithm other than the default. Suppose, for example, you are inserting 1000 records into a database, all within a single @@ -83,7 +83,7 @@ transaction, but one of those records is malformed and causes a constraint error. Under PostgreSQL or Oracle, none of the 1000 records would get inserted. In MySQL, some subset of the records that appeared before the malformed record would be inserted -but the rest would not. Neither behavior is espeically helpful. +but the rest would not. Neither behavior is especially helpful. What you really want is to use the IGNORE algorithm to insert all but the malformed record.
diff --git a/www/datatype3.tcl b/www/datatype3.tcl index e10870ba14..8597d76347 100644 --- a/www/datatype3.tcl +++ b/www/datatype3.tcl @@ -1,4 +1,4 @@ -set rcsid {$Id: datatype3.tcl,v 1.7 2004/07/19 00:39:46 drh Exp $} +set rcsid {$Id: datatype3.tcl,v 1.8 2004/10/10 17:24:55 drh Exp $} source common.tcl header {Datatypes In SQLite Version 3} puts { @@ -173,7 +173,7 @@ two values being compared, according to the following rules:A TEXT value is less than a BLOB value. When two TEXT values are compared, the C library function memcmp() is usually used to - determine the result. However this can be overriden, as described + determine the result. However this can be overridden, as described under 'User-defined collation Sequences' below.
When two BLOB values are compared, the result is always diff --git a/www/datatypes.tcl b/www/datatypes.tcl index af8836207d..1b45fb6757 100644 --- a/www/datatypes.tcl +++ b/www/datatypes.tcl @@ -1,7 +1,7 @@ # # Run this script to generated a datatypes.html output file # -set rcsid {$Id: datatypes.tcl,v 1.7 2004/05/31 15:06:30 drh Exp $} +set rcsid {$Id: datatypes.tcl,v 1.8 2004/10/10 17:24:55 drh Exp $} source common.tcl header {Datatypes In SQLite version 2} puts { @@ -145,7 +145,7 @@ is assumed that you are using version 2.7.0 or later of SQLite.
For an expression, the datatype of the result is often determined by -the outermost operator. For example, arithmatic operators ("+", "*", "%") +the outermost operator. For example, arithmetic operators ("+", "*", "%") always return a numeric results. The string concatenation operator ("||") returns a text result. And so forth. If you are ever in doubt about the datatype of an expression you can use the special typeof() diff --git a/www/download.tcl b/www/download.tcl index 95f82664aa..f3bdaf8c49 100644 --- a/www/download.tcl +++ b/www/download.tcl @@ -1,7 +1,7 @@ # # Run this TCL script to generate HTML for the download.html file. # -set rcsid {$Id: download.tcl,v 1.14 2004/08/29 18:14:18 drh Exp $} +set rcsid {$Id: download.tcl,v 1.15 2004/10/10 17:24:55 drh Exp $} source common.tcl header {SQLite Download Page} @@ -118,11 +118,11 @@ All SQLite source code is maintained in a CVS repository that is available for read-only access by anyone. You can interactively view the -respository contents and download individual files +repository contents and download individual files by visiting http://www.sqlite.org/cvstrac/dir?d=sqlite. -To access the respository directly, use the following +To access the repository directly, use the following commands:
diff --git a/www/faq.tcl b/www/faq.tcl index 7db3ae4611..1575a2a691 100644 --- a/www/faq.tcl +++ b/www/faq.tcl @@ -1,7 +1,7 @@ # # Run this script to generated a faq.html output file # -set rcsid {$Id: faq.tcl,v 1.25 2004/09/18 18:00:24 drh Exp $} +set rcsid {$Id: faq.tcl,v 1.26 2004/10/10 17:24:55 drh Exp $} source common.tcl header {SQLite Frequently Asked Questions} @@ -335,7 +335,7 @@ faq { What is the maximum size of a VARCHAR in SQLite? } {SQLite does not enforce datatype constraints. - A VARCHAR column can hold as much data as you care to put it in.
+ A VARCHAR column can hold as much data as you care to put in it. } faq { @@ -344,7 +344,7 @@ faq {SQLite version 3.0 lets you puts BLOB data into any column, even columns that are declared to hold some other type.
-SQLite version 2.8 would hold store text data without embedded +
SQLite version 2.8 will store any text data without embedded '\000' characters. If you need to store BLOB data in SQLite version 2.8 you'll want to encode that data first. There is a source file named @@ -402,7 +402,7 @@ faq { } faq { - Can I use SQLite in my commerical product without paying royalties? + Can I use SQLite in my commercial product without paying royalties? } {
Yes. SQLite is in the public domain. No claim of ownership is made to any part of the code. You can do anything you want with it.
diff --git a/www/fileformat.tcl b/www/fileformat.tcl index d39d9e4da1..d143f0839b 100644 --- a/www/fileformat.tcl +++ b/www/fileformat.tcl @@ -1,7 +1,7 @@ # # Run this script to generated a fileformat.html output file # -set rcsid {$Id: fileformat.tcl,v 1.12 2004/05/31 15:06:30 drh Exp $} +set rcsid {$Id: fileformat.tcl,v 1.13 2004/10/10 17:24:55 drh Exp $} source common.tcl header {SQLite Database File Format (Version 2)} puts { @@ -29,7 +29,7 @@ layers in the architecture.-We wil describe each layer beginning with the bottom (pager) +We will describe each layer beginning with the bottom (pager) layer and working upwards.
@@ -641,7 +641,7 @@ byte index of the corresponding column value. Thus, Offset 0 contains the byte index for Value 0, Offset 1 contains the byte offset of Value 1, and so forth. The number of bytes in a column value can always be found by subtracting offsets. This allows NULLs to be -recovered from the record unabiguously. +recovered from the record unambiguously.@@ -678,7 +678,7 @@ additional information on this encoding.) Numbers are also nul-terminated. Text values consists of the character 'c' followed by a copy of the text string and a nul-terminator. These encoding rules result in NULLs being sorted first, followed by numerical values in numerical -order, followed by text values in lexigraphical order. +order, followed by text values in lexicographical order.
Version 2.8.0 introduces a change to the format of the rollback journal file. The main database file format is unchanged. Versions 2.7.6 and earlier can read and write 2.8.0 databases and vice versa. - Version 2.8.0 can rollback a transation that was started by version + Version 2.8.0 can rollback a transaction that was started by version 2.7.6 and earlier. But version 2.7.6 and earlier cannot rollback a transaction started by version 2.8.0 or later.
diff --git a/www/lang.tcl b/www/lang.tcl index 3257a8d793..91fd68e915 100644 --- a/www/lang.tcl +++ b/www/lang.tcl @@ -1,7 +1,7 @@ # # Run this Tcl script to generate the sqlite.html file. # -set rcsid {$Id: lang.tcl,v 1.73 2004/10/05 02:41:43 drh Exp $} +set rcsid {$Id: lang.tcl,v 1.74 2004/10/10 17:24:55 drh Exp $} source common.tcl header {Query Language Understood by SQLite} puts { @@ -11,7 +11,7 @@ puts { language. But it does omit some features while at the same time adding a few features of its own. This document attempts to -describe percisely what parts of the SQL language SQLite does +describe precisely what parts of the SQL language SQLite does and does not support. A list of keywords is given at the end. @@ -202,7 +202,7 @@ command. Such transactions usually persist until the next COMMIT or ROLLBACK command. But a transaction will also ROLLBACK if the database is closed or if an error occurs and the ROLLBACK conflict resolution algorithm is specified. -See the documention on the ON CONFLICT +See the documentation on the ON CONFLICT clause for additional information about the ROLLBACK conflict resolution algorithm. @@ -218,7 +218,7 @@ write operation creates a RESERVED lock. Because the acquisition of locks is deferred until they are needed, it is possible that another thread or process could create a separate transaction and write to the database after the BEGIN on the current thread has executed. -If the transation is immediate, then RESERVED locks +If the transaction is immediate, then RESERVED locks are acquired on all databases as soon as the BEGIN command is executed, without waiting for the database to be used. After a BEGIN IMMEDIATE, you are guaranteed that @@ -378,7 +378,7 @@ See the section titledThe exact text of each CREATE INDEX statement is stored in the sqlite_master or sqlite_temp_master table, depending on whether the table -being indexed is temporary. Everytime the database is opened, +being indexed is temporary. Every time the database is opened, all CREATE INDEX statements are read from the sqlite_master table and used to regenerate SQLite's internal representation of the index layout.
@@ -496,7 +496,7 @@ the names of the columns in the result.The exact text of each CREATE TABLE statement is stored in the sqlite_master -table. Everytime the database is opened, all CREATE TABLE statements +table. Every time the database is opened, all CREATE TABLE statements are read from the sqlite_master table and used to regenerate SQLite's internal representation of the table layout. If the original command was a CREATE TABLE AS then then an equivalent @@ -871,7 +871,7 @@ AND OR -
Supported unary operaters are these:
+Supported unary operators are these:
- + ! ~
@@ -894,7 +894,7 @@ operand modulo its right operand."
puts {
-The LIKE operator does a wildcard comparision. The operand
+
The LIKE operator does a wildcard comparison. The operand
to the right contains the wildcards.}
puts "A percent symbol [Operator %] in the right operand
matches any sequence of zero or more characters on the left.
@@ -951,7 +951,7 @@ by the NOT keyword to invert the sense of the test.
operand of an IN operator, then the first row of the result of the
SELECT becomes the value used in the expression. If the SELECT yields
more than one result row, all rows after the first are ignored. If
-the SELECT yeilds no rows, then the value of the SELECT is NULL.
+the SELECT yields no rows, then the value of the SELECT is NULL.
Both simple and aggregate functions are supported. A simple
function can be used in any expression. Simple functions return
@@ -1040,7 +1040,7 @@ only a single argument.
When this conflict resolution strategy deletes rows in order to -statisfy a constraint, it does not invoke delete triggers on those +satisfy a constraint, it does not invoke delete triggers on those rows. But that may change in a future release.
The algorithm specified in the OR clause of a COPY, INSERT, or UPDATE @@ -1315,7 +1315,7 @@ is returned it is as an integer.
PRAGMA database_list;
For each open database, invoke the callback function once with information about that database. Arguments include the index and - the name the datbase was attached with. The first row will be for + the name the database was attached with. The first row will be for the main database. The second row will be for the database used to store temporary tables.
PRAGMA default_synchronous; @@ -1543,7 +1543,7 @@ puts {in that one table.
The DISTINCT keyword causes a subset of result rows to be returned, in which each result row is different. NULL values are not treated as -distinct from eachother. The default behavior is that all result rows +distinct from each other. The default behavior is that all result rows be returned, which can be made explicit with the keyword ALL.
The query is executed against one or more tables specified after
@@ -1633,7 +1633,7 @@ VACUUM [ The VACUUM command is an SQLite extension modelled after a similar
+ The VACUUM command is an SQLite extension modeled after a similar
command found in PostgreSQL. If VACUUM is invoked with the name of a
table or index then it is suppose to clean up the named table or index.
In version 1.0 of SQLite, the VACUUM command would invoke
@@ -1642,7 +1642,7 @@ In version 1.0 of SQLite, the VACUUM command would invoke
VACUUM became a no-op when the GDBM backend was removed from
SQLITE in version 2.0.0.
-VACUUM was reimplimented in version 2.8.1.
+VACUUM was reimplemented in version 2.8.1.
The index or table name argument is now ignored.
SQLite was originally coded in such a way that the answer to all questions in the chart below would be "Yes". But the -expriments run on other SQL engines showed that none of them +experiments run on other SQL engines showed that none of them worked this way. So SQLite was modified to work the same as Oracle, PostgreSQL, and DB2. This involved making NULLs indistinct for the purposes of the SELECT DISTINCT statement and diff --git a/www/oldnews.tcl b/www/oldnews.tcl index 329737f8fc..a52e0e5f85 100644 --- a/www/oldnews.tcl +++ b/www/oldnews.tcl @@ -94,7 +94,7 @@ newsitem {2004-Jun-18} {Version 3.0.0 (alpha) Released} { newsitem {2004-Jun-09} {Version 2.8.14 Released} { SQLite version 2.8.14 is a patch release to the stable 2.8 series. There is no reason to upgrade if 2.8.13 is working ok for you. - This is only a bug-fix release. Most developement effort is + This is only a bug-fix release. Most development effort is going into version 3.0.0 which is due out soon. } @@ -116,4 +116,4 @@ newsitem {2004-Apr-23} {Work Begins On SQLite Version 3} { Plans are to continue to support SQLite version 2.8 with bug fixes. But all new development will occur in version 3.0. } -footer {$Id: oldnews.tcl,v 1.5 2004/09/18 18:00:24 drh Exp $} +footer {$Id: oldnews.tcl,v 1.6 2004/10/10 17:24:55 drh Exp $} diff --git a/www/opcode.tcl b/www/opcode.tcl index d6039f257d..77dfa5c8f7 100644 --- a/www/opcode.tcl +++ b/www/opcode.tcl @@ -1,7 +1,7 @@ # # Run this Tcl script to generate the sqlite.html file. # -set rcsid {$Id: opcode.tcl,v 1.13 2004/05/31 15:06:30 drh Exp $} +set rcsid {$Id: opcode.tcl,v 1.14 2004/10/10 17:24:55 drh Exp $} source common.tcl header {SQLite Virtual Machine Opcodes} puts { @@ -66,7 +66,7 @@ in this document was generated by scanning the vdbe.c source file and extracting the necessary information from comments. So the source code comments are really the canonical source of information -about the virtual macchine. When in doubt, refer to the source code.
+about the virtual machine. When in doubt, refer to the source code.Each instruction in the virtual machine consists of an opcode and
up to three operands named P1, P2 and P3. P1 may be an arbitrary
diff --git a/www/speed.tcl b/www/speed.tcl
index f830cf02cf..9f68a3e14d 100644
--- a/www/speed.tcl
+++ b/www/speed.tcl
@@ -1,7 +1,7 @@
#
# Run this Tcl script to generate the speed.html file.
#
-set rcsid {$Id: speed.tcl,v 1.14 2004/05/31 15:06:30 drh Exp $ }
+set rcsid {$Id: speed.tcl,v 1.15 2004/10/10 17:24:55 drh Exp $ }
source common.tcl
header {SQLite Database Speed Comparison}
@@ -75,7 +75,7 @@ tests.
I am told that the default PostgreSQL configuration in RedHat 7.3
is unnecessarily conservative (it is designed to
work on a machine with 8MB of RAM) and that PostgreSQL could
-be made to run a lot faster with some knowledgable configuration
+be made to run a lot faster with some knowledgeable configuration
tuning.
Matt Sergeant reports that he has tuned his PostgreSQL installation
and rerun the tests shown below. His results show that
@@ -248,7 +248,7 @@ COMMIT;
This test still does 100 full table scans but it uses -uses string comparisons instead of numerical comparisions. +uses string comparisons instead of numerical comparisons. SQLite is over three times faster than PostgreSQL here and about 30% faster than MySQL.
diff --git a/www/whentouse.tcl b/www/whentouse.tcl index a47fbf04fe..c69e70828a 100644 --- a/www/whentouse.tcl +++ b/www/whentouse.tcl @@ -1,7 +1,7 @@ # # Run this TCL script to generate HTML for the goals.html file. # -set rcsid {$Id: whentouse.tcl,v 1.1 2004/01/27 15:58:38 drh Exp $} +set rcsid {$Id: whentouse.tcl,v 1.2 2004/10/10 17:24:55 drh Exp $} puts {Stand-in for an enterprise database during demos or testing
-If you are writting a client application for an enterprise database engine, +If you are writing a client application for an enterprise database engine, it makes sense to use a generic database backend that allows you to connect to many different kinds of SQL database engines. It makes even better sense to @@ -207,14 +207,14 @@ the underlying filesystem implementation, there is nothing SQLite can do to prevent it.
A good rule of thumb is that you should avoid using SQLite -in situations where the same database will be accessed simultenously +in situations where the same database will be accessed simultaneously from many computers over a network filesystem.
High-volume Websites
SQLite will normally work fine as the database backend to a website. -But if you website is so busy that your are thinking of splitted the +But if you website is so busy that your are thinking of splitting the database component off onto a separate machine, then you should definitely consider using an enterprise-class client/server database engine instead of SQLite.
@@ -234,7 +234,7 @@ consider using a different database engine.High Concurrancy
+High Concurrency
SQLite uses reader/writer locks on the entire database file. That means @@ -246,7 +246,7 @@ database. For many situations, this is not a problem. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some problems that require -more concurrancy, and those problems will need to seek a different +more concurrency, and those problems will need to seek a different solution.