Index: pages/appfileformat.in ================================================================== --- pages/appfileformat.in +++ pages/appfileformat.in @@ -133,11 +133,11 @@ usually the entire file must be rewritten in order to change any component part.
The purpose of this document is to argue in favor of a fourth -new catagory of application file format: An SQLite database file. +new category of application file format: An SQLite database file.
Any application state that can be recorded in a pile-of-files can Index: pages/copyright.in ================================================================== --- pages/copyright.in +++ pages/copyright.in @@ -49,11 +49,11 @@
-Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include: Index: pages/dbstat.in ================================================================== --- pages/dbstat.in +++ pages/dbstat.in @@ -7,11 +7,11 @@
The DBSTAT virtual tables is a read-only [eponymous virtual table] that returns information about which pages of the database files are used by which tables and indexes in the schema. -The the DBSTAT virtual table is used to implement [sqlite3_analyzer.exe] +The DBSTAT virtual table is used to implement [sqlite3_analyzer.exe] utility program, and to help compute the [https://www.sqlite.org/src/repo-tabsize|table size pie-chart] in the [https://www.fossil-scm.org/|Fossil-implemented] version control system for SQLite.
Index: pages/faq.in ================================================================== --- pages/faq.in +++ pages/faq.in @@ -9,11 +9,11 @@ ############# # Enter questions and answers here. faq { - How do I create an AUTOINCREMENT field. + How do I create an AUTOINCREMENT field? } {Short answer: A column declared [INTEGER PRIMARY KEY] will autoincrement.
Longer answer: Index: pages/foreignkeys.in ================================================================== --- pages/foreignkeys.in +++ pages/foreignkeys.in @@ -322,11 +322,11 @@ So, in other words, misconfigured foreign key constraints that require looking at both the child and parent are DML errors. ^The English language error message for foreign key DML errors is usually "foreign key mismatch" but can also be "no such table" if the parent table does not exist. - ^(Foreign key DML errors are may be reported if: + ^(Foreign key DML errors are reported if:
^The result of any binary operator is either a numeric value or NULL, except for the [Operator ||] concatenation operator which always evaluates to either NULL or a text value.
" @@ -3237,12 +3239,13 @@ RecursiveBubbleDiagram insert-stmtThe INSERT statement comes in three basic forms. -
^The first form (with the "VALUES" keyword) creates one or more +
INSERT INTO table VALUES(...); +
^The first form (with the "VALUES" keyword) creates one or more
new rows in
an existing table. ^If the
The second form of the INSERT statement contains a [SELECT] statement +
INSERT INTO table SELECT ...; +
The second form of the INSERT statement contains a [SELECT] statement instead of a VALUES clause. ^A new entry is inserted into the table for each row of data returned by executing the SELECT statement. ^If a column-list is specified, the number of columns in the result of the SELECT must be the same as the number of items in the column-list. ^Otherwise, if no column-list is specified, the number of columns in the result of the SELECT must be the same as the number of columns in the table. ^Any SELECT statement, including [compound SELECTs] and SELECT statements with [ORDER BY] and/or [LIMIT] clauses, may be used in an INSERT statement of this form. -
The third form of an INSERT statement is with DEFAULT VALUES. +
INSERT INTO table DEFAULT VALUES; +
The third form of an INSERT statement is with DEFAULT VALUES. ^(The INSERT ... DEFAULT VALUES statement inserts a single new row into the named table.)^ ^Each column of the new row is populated with its [default value], or with a NULL if no default value is specified as part of the column definition in the [CREATE TABLE] statement. -
^The "REPLACE" and "INSERT OR action" forms specify an alternative -constraint conflict resolution algorithm to use during this one INSERT command. -See the section titled [ON CONFLICT] for additional information. +
+^The initial "INSERT" keyword can be replaced by +"REPLACE" and "INSERT OR action" to specify an alternative +constraint [ON CONFLICT|conflict resolution algorithm] to use during +that one INSERT command. For compatibility with MySQL, ^the parser allows the use of the single keyword REPLACE as an alias for "INSERT OR REPLACE".
^(The optional "schema-name." prefix on the Index: pages/privatebranch.in ================================================================== --- pages/privatebranch.in +++ pages/privatebranch.in @@ -357,11 +357,11 @@
fossil clone http://www.sqlite.org/src private-project.fossil
This command both creates the new repository and populates it with -all the latest SQLite could. You can the create a private branch as +all the latest SQLite could. You can then create a private branch as described in section 3.4.
When the private repository is created by cloning, incorporating new public SQLite releases becomes much easier too. To pull in all of the latest changes from the public SQLite repository, simply move into Index: pages/rbu.in ================================================================== --- pages/rbu.in +++ pages/rbu.in @@ -51,11 +51,11 @@ of the final database file in temporary disk space and writes a total of twice that to disk.
On the other hand, an RBU Vacuum uses more CPU than a regular SQLite VACUUM - in one test as much as five times as much. For this reason, an RBU -Vaccum is often significantly slower than an SQLite VACUUM under the same +Vacuum is often significantly slower than an SQLite VACUUM under the same conditions.
An ongoing RBU operation (either an update or a vacuum) does not @@ -102,11 +102,11 @@ RBU update is being applied. A read-lock is held on the target database to prevent this.
All changes to be applied by RBU are stored in a separate SQLite database
called the "RBU database". The database that is to be modified is called
the "target database".
@@ -235,11 +235,11 @@
If RBU is used to update a large BLOB value within a target database, it -may be be more efficient to store a patch or delta that can be used to modify +may be more efficient to store a patch or delta that can be used to modify the existing BLOB instead of an entirely new value within the RBU database. RBU allows deltas to be specified in two ways:
Show only differences in the schema not the table content
Show how many rows have changed on each table, but do not show - the actual chagnes
Show only the differences in content for TABLE, not for the entire database
Wrap SQL output in a single large transaction
By default, differences in the schema or content of virtual tables are not reported on.
However, if a [virtual table] implementation creates real tables (sometimes -refered to as "shadow" tables) within the database to store its data in, then +referred to as "shadow" tables) within the database to store its data in, then sqldiff.exe does calculate the difference between these. This can have surprising effects if the resulting SQL script is then run on a database that is not exactly the same as the source database. For several of SQLite's bundled virtual tables (FTS3, FTS5, rtree and others), the surprising effects may include corruption of the virtual table content. Index: pages/support.in ================================================================== --- pages/support.in +++ pages/support.in @@ -7,27 +7,27 @@
sqlite-users — General discussion for programmers using SQLite in their applications. This is probably the mailing list you want! -Sign-up +Sign-up Archives
sqlite-dev — Conversations about SQLite internals, for those who work directly on enhancing SQLite itself. -Sign-up +Sign-up
Client/server SQL database engines strive to implement a shared repository -of enterprise data. They emphasis scalability, concurrency, centralization, +of enterprise data. They emphasize scalability, concurrency, centralization, and control. SQLite strives to provide local data storage for individual applications and devices. SQLite emphasizes economy, efficiency, reliability, independence, and simplicity.