/ Hex Artifact Content
Login

Artifact 6c0b2c567404b15bd46a0cda2dc69615a8e679a8:


0000: 23 20 54 68 69 73 20 73 63 72 69 70 74 20 67 65  # This script ge
0010: 6e 65 72 61 74 65 73 20 74 68 65 20 22 64 6f 63  nerates the "doc
0020: 73 2e 68 74 6d 6c 22 20 70 61 67 65 20 74 68 61  s.html" page tha
0030: 74 20 64 65 73 63 72 69 62 65 73 20 76 61 72 69  t describes vari
0040: 6f 75 73 0a 23 20 73 6f 75 72 63 65 73 20 6f 66  ous.# sources of
0050: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61   documentation a
0060: 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 53 51 4c  vailable for SQL
0070: 69 74 65 2e 0a 23 0a 73 65 74 20 72 63 73 69 64  ite..#.set rcsid
0080: 20 7b 24 49 64 3a 20 64 6f 63 73 2e 74 63 6c 2c   {$Id: docs.tcl,
0090: 76 20 31 2e 31 31 20 32 30 30 35 2f 30 33 2f 31  v 1.11 2005/03/1
00a0: 39 20 31 34 3a 34 35 3a 35 30 20 64 72 68 20 45  9 14:45:50 drh E
00b0: 78 70 20 24 7d 0a 73 6f 75 72 63 65 20 63 6f 6d  xp $}.source com
00c0: 6d 6f 6e 2e 74 63 6c 0a 68 65 61 64 65 72 20 7b  mon.tcl.header {
00d0: 53 51 4c 69 74 65 20 44 6f 63 75 6d 65 6e 74 61  SQLite Documenta
00e0: 74 69 6f 6e 7d 0a 70 75 74 73 20 7b 0a 3c 68 32  tion}.puts {.<h2
00f0: 3e 41 76 61 69 6c 61 62 6c 65 20 44 6f 63 75 6d  >Available Docum
0100: 65 6e 74 61 74 69 6f 6e 3c 2f 68 32 3e 0a 3c 74  entation</h2>.<t
0110: 61 62 6c 65 20 77 69 64 74 68 3d 22 31 30 30 25  able width="100%
0120: 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 35  " cellpadding="5
0130: 22 3e 0a 7d 0a 0a 70 72 6f 63 20 64 6f 63 20 7b  ">.}..proc doc {
0140: 6e 61 6d 65 20 75 72 6c 20 64 65 73 63 7d 20 7b  name url desc} {
0150: 0a 20 20 70 75 74 73 20 7b 3c 74 72 3e 3c 74 64  .  puts {<tr><td
0160: 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22 20 61 6c   valign="top" al
0170: 69 67 6e 3d 22 72 69 67 68 74 22 3e 7d 0a 20 20  ign="right">}.  
0180: 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b 20 2b 7d  regsub -all { +}
0190: 20 24 6e 61 6d 65 20 7b 5c 26 6e 62 73 70 3b 7d   $name {\&nbsp;}
01a0: 20 6e 61 6d 65 0a 20 20 70 75 74 73 20 22 3c 61   name.  puts "<a
01b0: 20 68 72 65 66 3d 5c 22 24 75 72 6c 5c 22 3e 24   href=\"$url\">$
01c0: 6e 61 6d 65 3c 2f 61 3e 3c 2f 74 64 3e 22 0a 20  name</a></td>". 
01d0: 20 70 75 74 73 20 7b 3c 74 64 20 77 69 64 74 68   puts {<td width
01e0: 3d 22 31 30 22 3e 3c 2f 74 64 3e 7d 0a 20 20 70  ="10"></td>}.  p
01f0: 75 74 73 20 7b 3c 74 64 20 61 6c 69 67 6e 3d 22  uts {<td align="
0200: 74 6f 70 22 20 61 6c 69 67 6e 3d 22 6c 65 66 74  top" align="left
0210: 22 3e 7d 0a 20 20 70 75 74 73 20 24 64 65 73 63  ">}.  puts $desc
0220: 0a 20 20 70 75 74 73 20 7b 3c 2f 74 64 3e 3c 2f  .  puts {</td></
0230: 74 72 3e 7d 0a 7d 0a 0a 64 6f 63 20 7b 41 70 70  tr>}.}..doc {App
0240: 72 6f 70 72 69 61 74 65 20 55 73 65 73 20 46 6f  ropriate Uses Fo
0250: 72 20 53 51 4c 69 74 65 7d 20 7b 77 68 65 6e 74  r SQLite} {whent
0260: 6f 75 73 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  ouse.html} {.  T
0270: 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 73  his document des
0280: 63 72 69 62 65 73 20 73 69 74 75 61 74 69 6f 6e  cribes situation
0290: 73 20 77 68 65 72 65 20 53 51 4c 69 74 65 20 69  s where SQLite i
02a0: 73 20 61 6e 20 61 70 70 72 6f 72 69 61 74 65 0a  s an approriate.
02b0: 20 20 64 61 74 61 62 61 73 65 20 65 6e 67 69 6e    database engin
02c0: 65 20 74 6f 20 75 73 65 20 76 65 72 73 75 73 20  e to use versus 
02d0: 73 69 74 75 61 74 69 6f 6e 73 20 77 68 65 72 65  situations where
02e0: 20 61 20 63 6c 69 65 6e 74 2f 73 65 72 76 65 72   a client/server
02f0: 0a 20 20 64 61 74 61 62 61 73 65 20 65 6e 67 69  .  database engi
0300: 6e 65 20 6d 69 67 68 74 20 62 65 20 61 20 62 65  ne might be a be
0310: 74 74 65 72 20 63 68 6f 69 63 65 2e 0a 7d 0a 0a  tter choice..}..
0320: 64 6f 63 20 7b 44 69 73 74 69 6e 63 74 69 76 65  doc {Distinctive
0330: 20 46 65 61 74 75 72 65 73 7d 20 7b 64 69 66 66   Features} {diff
0340: 65 72 65 6e 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20  erent.html} {.  
0350: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 65 6e  This document en
0360: 75 6d 65 72 61 74 65 73 20 61 6e 64 20 64 65 73  umerates and des
0370: 63 72 69 62 65 73 20 73 6f 6d 65 20 6f 66 20 74  cribes some of t
0380: 68 65 20 66 65 61 74 75 72 65 73 20 6f 66 0a 20  he features of. 
0390: 20 53 51 4c 69 74 65 20 74 68 61 74 20 6d 61 6b   SQLite that mak
03a0: 65 20 69 74 20 64 69 66 66 65 72 65 6e 74 20 66  e it different f
03b0: 72 6f 6d 20 6f 74 68 65 72 20 53 51 4c 20 64 61  rom other SQL da
03c0: 74 61 62 61 73 65 20 65 6e 67 69 6e 65 73 2e 0a  tabase engines..
03d0: 7d 0a 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20 49  }..doc {SQLite I
03e0: 6e 20 35 20 4d 69 6e 75 74 65 73 20 4f 72 20 4c  n 5 Minutes Or L
03f0: 65 73 73 7d 20 7b 71 75 69 63 6b 73 74 61 72 74  ess} {quickstart
0400: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 76 65 72  .html} {.  A ver
0410: 79 20 71 75 69 63 6b 20 69 6e 74 72 6f 64 75 63  y quick introduc
0420: 74 69 6f 6e 20 74 6f 20 70 72 6f 67 72 61 6d 6d  tion to programm
0430: 69 6e 67 20 77 69 74 68 20 53 51 4c 69 74 65 2e  ing with SQLite.
0440: 0a 7d 0a 0a 64 6f 63 20 7b 53 51 4c 20 53 79 6e  .}..doc {SQL Syn
0450: 74 61 78 7d 20 7b 6c 61 6e 67 2e 68 74 6d 6c 7d  tax} {lang.html}
0460: 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65   {.  This docume
0470: 6e 74 20 64 65 73 63 72 69 62 65 73 20 74 68 65  nt describes the
0480: 20 53 51 4c 20 6c 61 6e 67 75 61 67 65 20 74 68   SQL language th
0490: 61 74 20 69 73 20 75 6e 64 65 72 73 74 6f 6f 64  at is understood
04a0: 20 62 79 0a 20 20 53 51 4c 69 74 65 2e 20 20 0a   by.  SQLite.  .
04b0: 7d 0a 0a 64 6f 63 20 7b 50 72 61 67 6d 61 20 63  }..doc {Pragma c
04c0: 6f 6d 6d 61 6e 64 73 7d 20 7b 70 72 61 67 6d 61  ommands} {pragma
04d0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
04e0: 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62  document describ
04f0: 65 73 20 53 51 4c 69 74 65 20 70 65 72 66 6f 72  es SQLite perfor
0500: 6d 61 6e 63 65 20 74 75 6e 69 6e 67 20 6f 70 74  mance tuning opt
0510: 69 6f 6e 73 20 61 6e 64 20 6f 74 68 65 72 20 0a  ions and other .
0520: 20 20 73 70 65 63 69 61 6c 20 70 75 72 70 6f 73    special purpos
0530: 65 20 64 61 74 61 62 61 73 65 20 63 6f 6d 6d 61  e database comma
0540: 6e 64 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 56 65 72  nds..}..doc {Ver
0550: 73 69 6f 6e 20 32 20 43 2f 43 2b 2b 20 41 50 49  sion 2 C/C++ API
0560: 7d 20 7b 63 5f 69 6e 74 65 72 66 61 63 65 2e 68  } {c_interface.h
0570: 74 6d 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63 72  tml} {.  A descr
0580: 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 43 2f  iption of the C/
0590: 43 2b 2b 20 69 6e 74 65 72 66 61 63 65 20 62 69  C++ interface bi
05a0: 6e 64 69 6e 67 73 20 66 6f 72 20 53 51 4c 69 74  ndings for SQLit
05b0: 65 20 74 68 72 6f 75 67 68 20 76 65 72 73 69 6f  e through versio
05c0: 6e 20 0a 20 20 32 2e 38 0a 7d 0a 64 6f 63 20 7b  n .  2.8.}.doc {
05d0: 53 51 4c 69 74 65 20 56 65 72 73 69 6f 6e 20 33  SQLite Version 3
05e0: 7d 20 7b 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c  } {version3.html
05f0: 7d 20 7b 0a 20 20 41 20 73 75 6d 6d 61 72 79 20  } {.  A summary 
0600: 6f 66 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65  of of the change
0610: 73 20 62 65 74 77 65 65 6e 20 53 51 4c 69 74 65  s between SQLite
0620: 20 76 65 72 73 69 6f 6e 20 32 2e 38 20 61 6e 64   version 2.8 and
0630: 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20   SQLite version 
0640: 33 2e 30 2e 0a 7d 0a 64 6f 63 20 7b 56 65 72 73  3.0..}.doc {Vers
0650: 69 6f 6e 20 33 20 43 2f 43 2b 2b 20 41 50 49 7d  ion 3 C/C++ API}
0660: 20 7b 63 61 70 69 33 2e 68 74 6d 6c 7d 20 7b 0a   {capi3.html} {.
0670: 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20    A description 
0680: 6f 66 20 74 68 65 20 43 2f 43 2b 2b 20 69 6e 74  of the C/C++ int
0690: 65 72 66 61 63 65 20 62 69 6e 64 69 6e 67 73 20  erface bindings 
06a0: 66 6f 72 20 53 51 4c 69 74 65 20 76 65 72 73 69  for SQLite versi
06b0: 6f 6e 20 33 2e 30 2e 30 0a 20 20 61 6e 64 20 66  on 3.0.0.  and f
06c0: 6f 6c 6c 6f 77 69 6e 67 2e 0a 7d 0a 64 6f 63 20  ollowing..}.doc 
06d0: 7b 56 65 72 73 69 6f 6e 20 33 20 43 2f 43 2b 2b  {Version 3 C/C++
06e0: 20 41 50 49 3c 62 72 3e 52 65 66 65 72 65 6e 63   API<br>Referenc
06f0: 65 7d 20 7b 63 61 70 69 33 72 65 66 2e 68 74 6d  e} {capi3ref.htm
0700: 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75  l} {.  This docu
0710: 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 20 65  ment describes e
0720: 61 63 68 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  ach API function
0730: 20 73 65 70 61 72 61 74 65 6c 79 2e 0a 7d 0a 0a   separately..}..
0740: 64 6f 63 20 7b 54 63 6c 20 41 50 49 7d 20 7b 74  doc {Tcl API} {t
0750: 63 6c 73 71 6c 69 74 65 2e 68 74 6d 6c 7d 20 7b  clsqlite.html} {
0760: 0a 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e  .  A description
0770: 20 6f 66 20 74 68 65 20 54 43 4c 20 69 6e 74 65   of the TCL inte
0780: 72 66 61 63 65 20 62 69 6e 64 69 6e 67 73 20 66  rface bindings f
0790: 6f 72 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a 64 6f  or SQLite..}..do
07a0: 63 20 7b 4c 6f 63 6b 69 6e 67 20 41 6e 64 20 43  c {Locking And C
07b0: 6f 6e 63 75 72 72 65 6e 63 79 3c 62 72 3e 49 6e  oncurrency<br>In
07c0: 20 53 51 4c 69 74 65 20 56 65 72 73 69 6f 6e 20   SQLite Version 
07d0: 33 7d 20 7b 6c 6f 63 6b 69 6e 67 76 33 2e 68 74  3} {lockingv3.ht
07e0: 6d 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69  ml} {.  A descri
07f0: 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 68 65  ption of how the
0800: 20 6e 65 77 20 6c 6f 63 6b 69 6e 67 20 63 6f 64   new locking cod
0810: 65 20 69 6e 20 76 65 72 73 69 6f 6e 20 33 20 69  e in version 3 i
0820: 6e 63 72 65 61 73 65 73 0a 20 20 63 6f 6e 63 75  ncreases.  concu
0830: 72 72 61 6e 63 79 20 61 6e 64 20 64 65 63 72 65  rrancy and decre
0840: 61 73 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d  ases the problem
0850: 20 6f 66 20 77 72 69 74 65 72 20 73 74 61 72 76   of writer starv
0860: 61 74 69 6f 6e 2e 0a 7d 0a 0a 64 6f 63 20 7b 56  ation..}..doc {V
0870: 65 72 73 69 6f 6e 20 32 20 44 61 74 61 54 79 70  ersion 2 DataTyp
0880: 65 73 20 7d 20 7b 64 61 74 61 74 79 70 65 73 2e  es } {datatypes.
0890: 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63  html} {.  A desc
08a0: 72 69 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 53  ription of how S
08b0: 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20 32 20  QLite version 2 
08c0: 68 61 6e 64 6c 65 73 20 53 51 4c 20 64 61 74 61  handles SQL data
08d0: 74 79 70 65 73 2e 0a 20 20 53 68 6f 72 74 20 73  types..  Short s
08e0: 75 6d 6d 61 72 79 3a 20 20 45 76 65 72 79 74 68  ummary:  Everyth
08f0: 69 6e 67 20 69 73 20 61 20 73 74 72 69 6e 67 2e  ing is a string.
0900: 0a 7d 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20  .}.doc {Version 
0910: 33 20 44 61 74 61 54 79 70 65 73 20 7d 20 7b 64  3 DataTypes } {d
0920: 61 74 61 74 79 70 65 33 2e 68 74 6d 6c 7d 20 7b  atatype3.html} {
0930: 0a 20 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f  .  SQLite versio
0940: 6e 20 33 20 69 6e 74 72 6f 64 75 63 65 73 20 74  n 3 introduces t
0950: 68 65 20 63 6f 6e 63 65 70 74 20 6f 66 20 6d 61  he concept of ma
0960: 6e 69 66 65 73 74 20 74 79 70 69 6e 67 2c 20 77  nifest typing, w
0970: 68 65 72 65 20 74 68 65 0a 20 20 74 79 70 65 20  here the.  type 
0980: 6f 66 20 61 20 76 61 6c 75 65 20 69 73 20 61 73  of a value is as
0990: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68  sociated with th
09a0: 65 20 76 61 6c 75 65 20 69 74 73 65 6c 66 2c 20  e value itself, 
09b0: 6e 6f 74 20 74 68 65 20 63 6f 6c 75 6d 6e 20 74  not the column t
09c0: 68 61 74 0a 20 20 69 74 20 69 73 20 73 74 6f 72  hat.  it is stor
09d0: 65 64 20 69 6e 2e 0a 20 20 54 68 69 73 20 70 61  ed in..  This pa
09e0: 67 65 20 64 65 73 63 72 69 62 65 73 20 64 61 74  ge describes dat
09f0: 61 20 74 79 70 69 6e 67 20 66 6f 72 20 53 51 4c  a typing for SQL
0a00: 69 74 65 20 76 65 72 73 69 6f 6e 20 33 20 69 6e  ite version 3 in
0a10: 20 66 75 72 74 68 65 72 20 64 65 74 61 69 6c 2e   further detail.
0a20: 0a 7d 0a 0a 64 6f 63 20 7b 52 65 6c 65 61 73 65  .}..doc {Release
0a30: 20 48 69 73 74 6f 72 79 7d 20 7b 63 68 61 6e 67   History} {chang
0a40: 65 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 63  es.html} {.  A c
0a50: 68 72 6f 6e 6f 6c 6f 67 79 20 6f 66 20 53 51 4c  hronology of SQL
0a60: 69 74 65 20 72 65 6c 65 61 73 65 73 20 67 6f 69  ite releases goi
0a70: 6e 67 20 62 61 63 6b 20 74 6f 20 76 65 72 73 69  ng back to versi
0a80: 6f 6e 20 31 2e 30 2e 30 0a 7d 0a 0a 64 6f 63 20  on 1.0.0.}..doc 
0a90: 7b 4e 75 6c 6c 20 48 61 6e 64 6c 69 6e 67 7d 20  {Null Handling} 
0aa0: 7b 6e 75 6c 6c 73 2e 68 74 6d 6c 7d 20 7b 0a 20  {nulls.html} {. 
0ab0: 20 44 69 66 66 65 72 65 6e 74 20 53 51 4c 20 64   Different SQL d
0ac0: 61 74 61 62 61 73 65 20 65 6e 67 69 6e 65 73 20  atabase engines 
0ad0: 68 61 6e 64 6c 65 20 4e 55 4c 4c 73 20 69 6e 20  handle NULLs in 
0ae0: 64 69 66 66 65 72 65 6e 74 20 77 61 79 73 2e 20  different ways. 
0af0: 20 54 68 65 0a 20 20 53 51 4c 20 73 74 61 6e 64   The.  SQL stand
0b00: 61 72 64 73 20 61 72 65 20 61 6d 62 69 67 75 6f  ards are ambiguo
0b10: 75 73 2e 20 20 54 68 69 73 20 64 6f 63 75 6d 65  us.  This docume
0b20: 6e 74 20 64 65 73 63 72 69 62 65 73 20 68 6f 77  nt describes how
0b30: 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65 73 0a   SQLite handles.
0b40: 20 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6d 70 61    NULLs in compa
0b50: 72 69 73 6f 6e 20 77 69 74 68 20 6f 74 68 65 72  rison with other
0b60: 20 53 51 4c 20 64 61 74 61 62 61 73 65 20 65 6e   SQL database en
0b70: 67 69 6e 65 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 43  gines..}..doc {C
0b80: 6f 70 79 72 69 67 68 74 7d 20 7b 63 6f 70 79 72  opyright} {copyr
0b90: 69 67 68 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53  ight.html} {.  S
0ba0: 51 4c 69 74 65 20 69 73 20 69 6e 20 74 68 65 20  QLite is in the 
0bb0: 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 20 20  public domain.  
0bc0: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65  This document de
0bd0: 73 63 72 69 62 65 73 20 77 68 61 74 20 74 68 61  scribes what tha
0be0: 74 20 6d 65 61 6e 73 0a 20 20 61 6e 64 20 74 68  t means.  and th
0bf0: 65 20 69 6d 70 6c 69 63 61 74 69 6f 6e 73 20 66  e implications f
0c00: 6f 72 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 2e  or contributors.
0c10: 0a 7d 0a 0a 64 6f 63 20 7b 55 6e 73 75 70 70 6f  .}..doc {Unsuppo
0c20: 72 74 65 64 20 53 51 4c 7d 20 7b 6f 6d 69 74 74  rted SQL} {omitt
0c30: 65 64 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69  ed.html} {.  Thi
0c40: 73 20 70 61 67 65 20 64 65 73 63 72 69 62 65 73  s page describes
0c50: 20 66 65 61 74 75 72 65 73 20 6f 66 20 53 51 4c   features of SQL
0c60: 20 74 68 61 74 20 53 51 4c 69 74 65 20 64 6f 65   that SQLite doe
0c70: 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 2e 0a 7d  s not support..}
0c80: 0a 0a 64 6f 63 20 7b 53 70 65 65 64 20 43 6f 6d  ..doc {Speed Com
0c90: 70 61 72 69 73 6f 6e 7d 20 7b 73 70 65 65 64 2e  parison} {speed.
0ca0: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20 73 70  html} {.  The sp
0cb0: 65 65 64 20 6f 66 20 76 65 72 73 69 6f 6e 20 32  eed of version 2
0cc0: 2e 37 2e 36 20 6f 66 20 53 51 4c 69 74 65 20 69  .7.6 of SQLite i
0cd0: 73 20 63 6f 6d 70 61 72 65 64 20 61 67 61 69 6e  s compared again
0ce0: 73 74 20 50 6f 73 74 67 72 65 53 51 4c 20 61 6e  st PostgreSQL an
0cf0: 64 0a 20 20 4d 79 53 51 4c 2e 0a 7d 0a 0a 64 6f  d.  MySQL..}..do
0d00: 63 20 7b 41 72 63 68 69 74 65 63 74 75 72 65 7d  c {Architecture}
0d10: 20 7b 61 72 63 68 2e 68 74 6d 6c 7d 20 7b 0a 20   {arch.html} {. 
0d20: 20 41 6e 20 61 72 63 68 69 74 65 63 74 75 72 61   An architectura
0d30: 6c 20 6f 76 65 72 76 69 65 77 20 6f 66 20 74 68  l overview of th
0d40: 65 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79  e SQLite library
0d50: 2c 20 75 73 65 66 75 6c 20 66 6f 72 20 74 68 6f  , useful for tho
0d60: 73 65 20 77 68 6f 20 77 61 6e 74 0a 20 20 74 6f  se who want.  to
0d70: 20 68 61 63 6b 20 74 68 65 20 63 6f 64 65 2e 0a   hack the code..
0d80: 7d 0a 0a 64 6f 63 20 7b 56 44 42 45 20 54 75 74  }..doc {VDBE Tut
0d90: 6f 72 69 61 6c 7d 20 7b 76 64 62 65 2e 68 74 6d  orial} {vdbe.htm
0da0: 6c 7d 20 7b 0a 20 20 54 68 65 20 56 44 42 45 20  l} {.  The VDBE 
0db0: 69 73 20 74 68 65 20 73 75 62 73 79 73 74 65 6d  is the subsystem
0dc0: 20 77 69 74 68 69 6e 20 53 51 4c 69 74 65 20 74   within SQLite t
0dd0: 68 61 74 20 64 6f 65 73 20 74 68 65 20 61 63 74  hat does the act
0de0: 75 61 6c 20 77 6f 72 6b 20 6f 66 0a 20 20 65 78  ual work of.  ex
0df0: 65 63 75 74 69 6e 67 20 53 51 4c 20 73 74 61 74  ecuting SQL stat
0e00: 65 6d 65 6e 74 73 2e 20 20 54 68 69 73 20 70 61  ements.  This pa
0e10: 67 65 20 64 65 73 63 72 69 62 65 73 20 74 68 65  ge describes the
0e20: 20 70 72 69 6e 63 69 70 6c 65 73 20 6f 66 20 6f   principles of o
0e30: 70 65 72 61 74 69 6f 6e 0a 20 20 66 6f 72 20 74  peration.  for t
0e40: 68 65 20 56 44 42 45 20 69 6e 20 53 51 4c 69 74  he VDBE in SQLit
0e50: 65 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 20 20  e version 2.7.  
0e60: 54 68 69 73 20 69 73 20 65 73 73 65 6e 74 69 61  This is essentia
0e70: 6c 20 72 65 61 64 69 6e 67 20 66 6f 72 20 61 6e  l reading for an
0e80: 79 6f 6e 65 0a 20 20 77 68 6f 20 77 61 6e 74 20  yone.  who want 
0e90: 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 53 51  to modify the SQ
0ea0: 4c 69 74 65 20 73 6f 75 72 63 65 73 2e 0a 7d 0a  Lite sources..}.
0eb0: 0a 64 6f 63 20 7b 56 44 42 45 20 4f 70 63 6f 64  .doc {VDBE Opcod
0ec0: 65 73 7d 20 7b 6f 70 63 6f 64 65 2e 68 74 6d 6c  es} {opcode.html
0ed0: 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d  } {.  This docum
0ee0: 65 6e 74 20 69 73 20 61 6e 20 61 75 74 6f 6d 61  ent is an automa
0ef0: 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65  tically generate
0f00: 64 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66  d description of
0f10: 20 74 68 65 20 76 61 72 69 6f 75 73 0a 20 20 6f   the various.  o
0f20: 70 63 6f 64 65 73 20 74 68 61 74 20 74 68 65 20  pcodes that the 
0f30: 56 44 42 45 20 75 6e 64 65 72 73 74 61 6e 64 73  VDBE understands
0f40: 2e 20 20 50 72 6f 67 72 61 6d 6d 65 72 73 20 63  .  Programmers c
0f50: 61 6e 20 75 73 65 20 74 68 69 73 20 64 6f 63 75  an use this docu
0f60: 6d 65 6e 74 20 61 73 0a 20 20 61 20 72 65 66 65  ment as.  a refe
0f70: 72 65 6e 63 65 20 74 6f 20 62 65 74 74 65 72 20  rence to better 
0f80: 75 6e 64 65 72 73 74 61 6e 64 20 74 68 65 20 6f  understand the o
0f90: 75 74 70 75 74 20 6f 66 20 45 58 50 4c 41 49 4e  utput of EXPLAIN
0fa0: 20 6c 69 73 74 69 6e 67 73 20 66 72 6f 6d 0a 20   listings from. 
0fb0: 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a 64 6f 63 20   SQLite..}..doc 
0fc0: 7b 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 4f 70 74  {Compilation Opt
0fd0: 69 6f 6e 73 7d 20 7b 63 6f 6d 70 69 6c 65 2e 68  ions} {compile.h
0fe0: 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f  tml} {.  This do
0ff0: 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73  cument describes
1000: 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d   the compile tim
1010: 65 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 6d  e options that m
1020: 61 79 20 62 65 20 73 65 74 20 74 6f 20 0a 20 20  ay be set to .  
1030: 6d 6f 64 69 66 79 20 74 68 65 20 64 65 66 61 75  modify the defau
1040: 6c 74 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20  lt behaviour of 
1050: 74 68 65 20 6c 69 62 72 61 72 79 20 6f 72 20 6f  the library or o
1060: 6d 69 74 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61  mit optional fea
1070: 74 75 72 65 73 0a 20 20 69 6e 20 6f 72 64 65 72  tures.  in order
1080: 20 74 6f 20 72 65 64 75 63 65 20 62 69 6e 61 72   to reduce binar
1090: 79 20 73 69 7a 65 2e 0a 7d 0a 0a 64 6f 63 20 7b  y size..}..doc {
10a0: 42 61 63 6b 77 61 72 64 73 20 43 6f 6d 70 61 74  Backwards Compat
10b0: 69 62 69 6c 69 74 79 7d 20 7b 66 6f 72 6d 61 74  ibility} {format
10c0: 63 68 6e 67 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  chng.html} {.  T
10d0: 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 74  his document det
10e0: 61 69 6c 73 20 61 6c 6c 20 6f 66 20 74 68 65 20  ails all of the 
10f0: 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 63 68 61  incompatible cha
1100: 6e 67 65 73 20 74 6f 20 74 68 65 20 53 51 4c 69  nges to the SQLi
1110: 74 65 0a 20 20 66 69 6c 65 20 66 6f 72 6d 61 74  te.  file format
1120: 20 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72   that have occur
1130: 72 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f  red since versio
1140: 6e 20 31 2e 30 2e 30 2e 0a 7d 0a 0a 70 75 74 73  n 1.0.0..}..puts
1150: 20 7b 3c 2f 74 61 62 6c 65 3e 7d 0a 66 6f 6f 74   {</table>}.foot
1160: 65 72 20 24 72 63 73 69 64 0a                    er $rcsid.