]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Updates to the architecture document. (CVS 1294)
authordrh <drh@noemail.net>
Sun, 14 Mar 2004 11:57:58 +0000 (11:57 +0000)
committerdrh <drh@noemail.net>
Sun, 14 Mar 2004 11:57:58 +0000 (11:57 +0000)
FossilOrigin-Name: c661cc81b6981c536c107f40525ad9783b11ea82

manifest
manifest.uuid
www/arch.tcl

index e677848e26d972de3616f890169931c9454b644c..c3b56b6dc75a3de82c2c03923cb92b8c2a911f94 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\smin/max\soptimizer\sso\sthat\sit\sworks\swhen\sthe\sFROM\sclause\sis\sa\nsubquery.\s\sTicket\s#658.\s(CVS\s1293)
-D 2004-03-13T14:00:36
+C Updates\sto\sthe\sarchitecture\sdocument.\s(CVS\s1294)
+D 2004-03-14T11:57:58
 F Makefile.in 46788b65500865e3fd965f7617d41697da8a11a1
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -163,7 +163,7 @@ F tool/speedtest.tcl 06c76698485ccf597b9e7dbb1ac70706eb873355
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F www/arch.fig d5f9752a4dbf242e9cfffffd3f5762b6c63b3bcf
 F www/arch.png 82ef36db1143828a7abc88b1e308a5f55d4336f4
-F www/arch.tcl 1e5289d63fc45564c67e205bc503db74718436ca
+F www/arch.tcl b329ca2c8dc75cd1cf0dd714b8bb47bdd458d0da
 F www/arch2.fig 613b5ac63511109064c2f93c5754ee662219937d
 F www/arch2.gif 49c6bb36160f03ca2b89eaa5bfb1f560c7d68ee7
 F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0
@@ -188,7 +188,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 5864fc6937b933b7da0c00e6c4c2ee1b9b939cff
-R 38ce5fb591e7b91ddde53b0f21b20e52
+P 31c94acc72d318b5dec0fef1485621943add45c8
+R 4444a9fae45099d79266fa1def7dab13
 U drh
-Z b929c36981acffd0768f9e08052aab34
+Z 8aa570decc2b64f7981738dac3c42536
index c86ca27f8e14dcbd7cf107b59f7d83ee33bd87aa..e3c4aa55281a922a4046113643b68db9dab1f785 100644 (file)
@@ -1 +1 @@
-31c94acc72d318b5dec0fef1485621943add45c8
\ No newline at end of file
+c661cc81b6981c536c107f40525ad9783b11ea82
\ No newline at end of file
index ef8a4799dbb31f1e258f000548b59d8c2b4923f3..af23deca2b3d890cac236e1c3d30e6a4215b31cc 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Run this Tcl script to generate the sqlite.html file.
 #
-set rcsid {$Id: arch.tcl,v 1.10 2004/02/18 16:56:32 drh Exp $}
+set rcsid {$Id: arch.tcl,v 1.11 2004/03/14 11:57:58 drh Exp $}
 
 puts {<html>
 <head>
@@ -42,8 +42,8 @@ version 2.8.0 (2003-Feb-16) only sqlite_exec() was supported.
 For version 2.8.0, the sqlite_exec and sqlite_compile methods
 existed as peers.  Beginning with version 2.8.13, the sqlite_compile
 method is the primary interface, and sqlite_exec is implemented
-using sqlite_compile.  Externally, there are API extensions but
-not changes that break backwards compatibility.  But internally,
+using sqlite_compile.  Externally, this change is an enhancement
+that maintains backwards compatibility.  But internally,
 the plumbing is very different.  The diagram at the right shows
 the structure of SQLite for version 2.8.13 and following.
 </p>
@@ -110,17 +110,19 @@ lemon is found in the "doc" subdirectory of the distribution.
 
 <p>After the parser assembles tokens into complete SQL statements,
 it calls the code generator to produce virtual machine code that
-will do the work that the SQL statements request.  There are seven
-files in the code generator:  <b>build.c</b>, <b>delete.c</b>,
-<b>expr.c</b>, <b>insert.c</b> <b>select.c</b>, <b>update.c</b>, 
+will do the work that the SQL statements request.  There are many
+files in the code generator:  <b>build.c</b>, <b>copy.c</b>,
+<b>delete.c</b>,
+<b>expr.c</b>, <b>insert.c</b>, <b>pragma.c</b>,
+<b>select.c</b>, <b>trigger.c</b>, <b>update.c</b>, <b>vacuum.c</b>
 and <b>where.c</b>.
 In these files is where most of the serious magic happens.
 <b>expr.c</b> handles code generation for expressions.
 <b>where.c</b> handles code generation for WHERE clauses on
-SELECT, UPDATE and DELETE statements.  The files
-<b>delete.c</b>, <b>insert.c</b>, <b>select.c</b>, and
-<b>update.c</b> handle the code generation for SQL statements
-with the same names.  (Each of these files calls routines
+SELECT, UPDATE and DELETE statements.  The files <b>copy.c</b>,
+<b>delete.c</b>, <b>insert.c</b>, <b>select.c</b>, <b>trigger.c</b>
+<b>update.c</b>, and <b>vacuum.c</b> handle the code generation
+for SQL statements with the same names.  (Each of these files calls routines
 in <b>expr.c</b> and <b>where.c</b> as necessary.)  All other
 SQL statements are coded out of <b>build.c</b>.</p>
 
@@ -135,10 +137,14 @@ machine has a stack which is used for intermediate storage.
 Each instruction contains an opcode and
 up to three additional operands.</p>
 
-<p>The virtual machine is entirely contained in a single
+<p>The virtual machine itself is entirely contained in a single
 source file <b>vdbe.c</b>.  The virtual machine also has
-its own header file <b>vdbe.h</b> that defines an interface
-between the virtual machine and the rest of the SQLite library.</p>
+its own header files: <b>vdbe.h</b> that defines an interface
+between the virtual machine and the rest of the SQLite library and
+<b>vdbeInt.h</b> which defines structure private the virtual machine.
+The <b>vdbeaux.c</b> file contains utilities used by the virtual
+machine and interface modules used by the rest of the library to
+construct VM programs.</p>
 
 <h2>Backend</h2>