Documentation Source Text

Hex Artifact Content
Login

Artifact 2a1eaf761aa387b837c00a3f75e056000aea1875:


0000: 3c 74 69 74 6c 65 3e 53 51 4c 69 74 65 20 44 6f  <title>SQLite Do
0010: 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 74 69 74  cumentation</tit
0020: 6c 65 3e 0a 0a 3c 68 31 20 61 6c 69 67 6e 3d 22  le>..<h1 align="
0030: 63 65 6e 74 65 72 22 3e 43 61 74 65 67 6f 72 69  center">Categori
0040: 63 61 6c 20 49 6e 64 65 78 20 4f 66 20 53 51 4c  cal Index Of SQL
0050: 69 74 65 20 44 6f 63 75 6d 65 6e 74 73 3c 2f 68  ite Documents</h
0060: 31 3e 0a 0a 3c 74 61 62 6c 65 20 77 69 64 74 68  1>..<table width
0070: 3d 22 31 30 30 25 22 20 63 65 6c 6c 70 61 64 64  ="100%" cellpadd
0080: 69 6e 67 3d 22 35 22 3e 0a 0a 3c 74 63 6c 3e 0a  ing="5">..<tcl>.
0090: 68 64 5f 6b 65 79 77 6f 72 64 73 20 7b 63 61 74  hd_keywords {cat
00a0: 65 67 6f 72 69 63 61 6c 20 6c 69 73 74 69 6e 67  egorical listing
00b0: 20 6f 66 20 53 51 4c 69 74 65 20 64 6f 63 75 6d   of SQLite docum
00c0: 65 6e 74 73 7d 0a 70 72 6f 63 20 64 6f 63 20 7b  ents}.proc doc {
00d0: 6e 61 6d 65 20 75 72 6c 20 64 65 73 63 7d 20 7b  name url desc} {
00e0: 0a 20 20 68 64 5f 70 75 74 73 20 7b 3c 74 72 3e  .  hd_puts {<tr>
00f0: 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22  <td valign="top"
0100: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 7d   align="right">}
0110: 0a 20 20 72 65 67 73 75 62 20 2d 61 6c 6c 20 7b  .  regsub -all {
0120: 20 2b 7d 20 24 6e 61 6d 65 20 7b 5c 26 6e 62 73   +} $name {\&nbs
0130: 70 3b 7d 20 6e 61 6d 65 0a 20 20 68 64 5f 70 75  p;} name.  hd_pu
0140: 74 73 20 22 3c 61 20 68 72 65 66 3d 5c 22 24 75  ts "<a href=\"$u
0150: 72 6c 5c 22 3e 24 6e 61 6d 65 3c 2f 61 3e 3c 2f  rl\">$name</a></
0160: 74 64 3e 22 0a 20 20 68 64 5f 70 75 74 73 20 7b  td>".  hd_puts {
0170: 3c 74 64 20 77 69 64 74 68 3d 22 31 30 22 3e 3c  <td width="10"><
0180: 2f 74 64 3e 7d 0a 20 20 68 64 5f 70 75 74 73 20  /td>}.  hd_puts 
0190: 7b 3c 74 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70  {<td valign="top
01a0: 22 20 61 6c 69 67 6e 3d 22 6c 65 66 74 22 3e 7d  " align="left">}
01b0: 0a 20 20 68 64 5f 72 65 73 6f 6c 76 65 20 24 64  .  hd_resolve $d
01c0: 65 73 63 0a 20 20 68 64 5f 70 75 74 73 20 7b 3c  esc.  hd_puts {<
01d0: 2f 74 64 3e 3c 2f 74 72 3e 7d 0a 7d 0a 0a 70 72  /td></tr>}.}..pr
01e0: 6f 63 20 68 65 61 64 69 6e 67 20 7b 74 65 78 74  oc heading {text
01f0: 20 7b 63 61 70 74 69 6f 6e 20 7b 7d 7d 7d 20 7b   {caption {}}} {
0200: 0a 20 20 68 64 5f 70 75 74 73 20 7b 3c 74 72 3e  .  hd_puts {<tr>
0210: 3c 74 64 20 63 6f 6c 73 70 61 6e 3d 33 20 73 74  <td colspan=3 st
0220: 79 6c 65 3d 22 70 61 64 64 69 6e 67 3a 20 33 65  yle="padding: 3e
0230: 78 20 30 20 32 65 78 20 30 22 3e 7d 0a 20 20 68  x 0 2ex 0">}.  h
0240: 64 5f 70 75 74 73 20 22 3c 62 3e 24 74 65 78 74  d_puts "<b>$text
0250: 3c 2f 62 3e 22 0a 20 20 69 66 20 7b 24 63 61 70  </b>".  if {$cap
0260: 74 69 6f 6e 20 6e 65 20 22 22 7d 20 7b 0a 20 20  tion ne ""} {.  
0270: 20 20 68 64 5f 70 75 74 73 20 7b 3c 62 72 20 2f    hd_puts {<br /
0280: 3e 7d 0a 20 20 20 20 68 64 5f 70 75 74 73 20 22  >}.    hd_puts "
0290: 24 63 61 70 74 69 6f 6e 22 0a 20 20 7d 0a 7d 0a  $caption".  }.}.
02a0: 0a 68 65 61 64 69 6e 67 20 7b 4f 76 65 72 76 69  .heading {Overvi
02b0: 65 77 20 44 6f 63 75 6d 65 6e 74 73 7d 0a 0a 64  ew Documents}..d
02c0: 6f 63 20 7b 41 62 6f 75 74 20 53 51 4c 69 74 65  oc {About SQLite
02d0: 7d 20 7b 61 62 6f 75 74 2e 68 74 6d 6c 7d 20 7b  } {about.html} {
02e0: 0a 20 20 41 20 68 69 67 68 2d 6c 65 76 65 6c 20  .  A high-level 
02f0: 6f 76 65 72 76 69 65 77 20 6f 66 20 77 68 61 74  overview of what
0300: 20 53 51 4c 69 74 65 20 69 73 20 61 6e 64 20 77   SQLite is and w
0310: 68 79 20 79 6f 75 20 6d 69 67 68 74 20 62 65 0a  hy you might be.
0320: 20 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 20    interested in 
0330: 75 73 69 6e 67 20 69 74 2e 0a 7d 0a 0a 64 6f 63  using it..}..doc
0340: 20 7b 41 70 70 72 6f 70 72 69 61 74 65 20 55 73   {Appropriate Us
0350: 65 73 20 46 6f 72 20 53 51 4c 69 74 65 7d 20 7b  es For SQLite} {
0360: 77 68 65 6e 74 6f 75 73 65 2e 68 74 6d 6c 7d 20  whentouse.html} 
0370: 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e  {.  This documen
0380: 74 20 64 65 73 63 72 69 62 65 73 20 73 69 74 75  t describes situ
0390: 61 74 69 6f 6e 73 20 77 68 65 72 65 20 53 51 4c  ations where SQL
03a0: 69 74 65 20 69 73 20 61 6e 20 61 70 70 72 6f 70  ite is an approp
03b0: 72 69 61 74 65 0a 20 20 64 61 74 61 62 61 73 65  riate.  database
03c0: 20 65 6e 67 69 6e 65 20 74 6f 20 75 73 65 20 76   engine to use v
03d0: 65 72 73 75 73 20 73 69 74 75 61 74 69 6f 6e 73  ersus situations
03e0: 20 77 68 65 72 65 20 61 20 63 6c 69 65 6e 74 2f   where a client/
03f0: 73 65 72 76 65 72 0a 20 20 64 61 74 61 62 61 73  server.  databas
0400: 65 20 65 6e 67 69 6e 65 20 6d 69 67 68 74 20 62  e engine might b
0410: 65 20 61 20 62 65 74 74 65 72 20 63 68 6f 69 63  e a better choic
0420: 65 2e 0a 7d 0a 64 6f 63 20 7b 44 69 73 74 69 6e  e..}.doc {Distin
0430: 63 74 69 76 65 20 46 65 61 74 75 72 65 73 7d 20  ctive Features} 
0440: 7b 64 69 66 66 65 72 65 6e 74 2e 68 74 6d 6c 7d  {different.html}
0450: 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65   {.  This docume
0460: 6e 74 20 65 6e 75 6d 65 72 61 74 65 73 20 61 6e  nt enumerates an
0470: 64 20 64 65 73 63 72 69 62 65 73 20 73 6f 6d 65  d describes some
0480: 20 6f 66 20 74 68 65 20 66 65 61 74 75 72 65 73   of the features
0490: 20 6f 66 0a 20 20 53 51 4c 69 74 65 20 74 68 61   of.  SQLite tha
04a0: 74 20 6d 61 6b 65 20 69 74 20 64 69 66 66 65 72  t make it differ
04b0: 65 6e 74 20 66 72 6f 6d 20 6f 74 68 65 72 20 53  ent from other S
04c0: 51 4c 20 64 61 74 61 62 61 73 65 20 65 6e 67 69  QL database engi
04d0: 6e 65 73 2e 0a 7d 0a 64 6f 63 20 7b 48 6f 77 20  nes..}.doc {How 
04e0: 53 51 4c 69 74 65 20 49 73 20 54 65 73 74 65 64  SQLite Is Tested
04f0: 7d 20 7b 74 65 73 74 69 6e 67 2e 68 74 6d 6c 7d  } {testing.html}
0500: 20 7b 0a 20 20 54 68 65 20 72 65 6c 69 61 62 69   {.  The reliabi
0510: 6c 69 74 79 20 61 6e 64 20 72 6f 62 75 73 74 6e  lity and robustn
0520: 65 73 73 20 6f 66 20 53 51 4c 69 74 65 20 69 73  ess of SQLite is
0530: 20 61 63 68 69 65 76 65 64 20 69 6e 20 6c 61 72   achieved in lar
0540: 67 65 20 70 61 72 74 0a 20 20 62 79 20 74 68 6f  ge part.  by tho
0550: 72 6f 75 67 68 20 61 6e 64 20 63 61 72 65 66 75  rough and carefu
0560: 6c 20 74 65 73 74 69 6e 67 2e 20 20 54 68 69 73  l testing.  This
0570: 20 64 6f 63 75 6d 65 6e 74 20 69 64 65 6e 74 69   document identi
0580: 66 69 65 73 20 74 68 65 0a 20 20 6d 61 6e 79 20  fies the.  many 
0590: 74 65 73 74 73 20 74 68 61 74 20 6f 63 63 75 72  tests that occur
05a0: 20 62 65 66 6f 72 65 20 65 76 65 72 79 20 72 65   before every re
05b0: 6c 65 61 73 65 20 6f 66 20 53 51 4c 69 74 65 2e  lease of SQLite.
05c0: 0a 7d 0a 64 6f 63 20 7b 43 6f 70 79 72 69 67 68  .}.doc {Copyrigh
05d0: 74 7d 20 7b 63 6f 70 79 72 69 67 68 74 2e 68 74  t} {copyright.ht
05e0: 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20 69  ml} {.  SQLite i
05f0: 73 20 69 6e 20 74 68 65 20 70 75 62 6c 69 63 20  s in the public 
0600: 64 6f 6d 61 69 6e 2e 20 20 54 68 69 73 20 64 6f  domain.  This do
0610: 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73  cument describes
0620: 20 77 68 61 74 20 74 68 61 74 20 6d 65 61 6e 73   what that means
0630: 0a 20 20 61 6e 64 20 74 68 65 20 69 6d 70 6c 69  .  and the impli
0640: 63 61 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74  cations for cont
0650: 72 69 62 75 74 6f 72 73 2e 0a 7d 0a 64 6f 63 20  ributors..}.doc 
0660: 7b 46 72 65 71 75 65 6e 74 6c 79 20 41 73 6b 65  {Frequently Aske
0670: 64 20 51 75 65 73 74 69 6f 6e 73 7d 20 7b 66 61  d Questions} {fa
0680: 71 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20  q.html} {.  The 
0690: 74 69 74 6c 65 20 6f 66 20 74 68 65 20 64 6f 63  title of the doc
06a0: 75 6d 65 6e 74 20 73 61 79 73 20 61 6c 6c 2e 2e  ument says all..
06b0: 2e 0a 7d 0a 64 6f 63 20 7b 42 6f 6f 6b 73 20 41  ..}.doc {Books A
06c0: 62 6f 75 74 20 53 51 4c 69 74 65 7d 20 7b 62 6f  bout SQLite} {bo
06d0: 6f 6b 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  oks.html} {.  A 
06e0: 6c 69 73 74 20 6f 66 20 69 6e 64 65 70 65 6e 64  list of independ
06f0: 65 6e 74 6c 79 20 77 72 69 74 74 65 6e 20 62 6f  ently written bo
0700: 6f 6b 73 20 61 62 6f 75 74 20 53 51 4c 69 74 65  oks about SQLite
0710: 2e 0a 7d 0a 64 6f 63 20 7b 41 6c 70 68 61 62 65  ..}.doc {Alphabe
0720: 74 69 63 61 6c 20 4c 69 73 74 69 6e 67 20 4f 66  tical Listing Of
0730: 20 44 6f 63 75 6d 65 6e 74 73 7d 20 7b 64 6f 63   Documents} {doc
0740: 6c 69 73 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41  list.html} {.  A
0750: 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 74 69 74   list of all tit
0760: 6c 65 64 20 70 61 67 65 73 20 6f 6e 20 74 68 69  led pages on thi
0770: 73 20 77 65 62 73 69 74 65 2c 20 73 6f 72 74 65  s website, sorte
0780: 64 20 62 79 20 74 69 74 6c 65 2e 0a 7d 0a 64 6f  d by title..}.do
0790: 63 20 7b 57 65 62 73 69 74 65 20 4b 65 79 77 6f  c {Website Keywo
07a0: 72 64 20 49 6e 64 65 78 7d 20 7b 6b 65 79 77 6f  rd Index} {keywo
07b0: 72 64 5f 69 6e 64 65 78 2e 68 74 6d 6c 7d 20 7b  rd_index.html} {
07c0: 0a 20 20 41 20 63 72 6f 73 73 2d 72 65 66 65 72  .  A cross-refer
07d0: 65 6e 63 65 20 66 72 6f 6d 20 6b 65 79 77 6f 72  ence from keywor
07e0: 64 73 20 74 6f 20 76 61 72 69 6f 75 73 20 70 61  ds to various pa
07f0: 67 65 73 20 77 69 74 68 69 6e 20 74 68 69 73 20  ges within this 
0800: 77 65 62 73 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b  website..}.doc {
0810: 50 65 72 6d 75 74 65 64 20 54 69 74 6c 65 20 49  Permuted Title I
0820: 6e 64 65 78 7d 20 7b 73 69 74 65 6d 61 70 2e 68  ndex} {sitemap.h
0830: 74 6d 6c 23 70 69 6e 64 65 78 7d 20 7b 0a 20 20  tml#pindex} {.  
0840: 41 6c 73 6f 20 6b 6e 6f 77 6e 20 61 73 20 61 20  Also known as a 
0850: 22 6b 65 79 77 6f 72 64 20 69 6e 20 63 6f 6e 74  "keyword in cont
0860: 65 78 74 22 20 6f 72 20 22 4b 57 49 43 22 20 69  ext" or "KWIC" i
0870: 6e 64 65 78 20 6f 72 20 61 73 20 61 20 63 6f 6e  ndex or as a con
0880: 63 6f 72 64 61 6e 63 65 2c 0a 20 20 74 68 69 73  cordance,.  this
0890: 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 61 20 6c   document is a l
08a0: 69 73 74 69 6e 67 20 6f 66 20 61 6c 6c 20 6f 74  isting of all ot
08b0: 68 65 72 20 64 6f 63 75 6d 65 6e 74 73 20 73 6f  her documents so
08c0: 72 74 65 64 20 62 79 20 6b 65 79 77 6f 72 64 2e  rted by keyword.
08d0: 0a 7d 0a 0a 0a 68 65 61 64 69 6e 67 20 7b 53 51  .}...heading {SQ
08e0: 4c 69 74 65 20 50 72 6f 67 72 61 6d 6d 69 6e 67  Lite Programming
08f0: 20 49 6e 74 65 72 66 61 63 65 73 7d 20 7b 0a 20   Interfaces} {. 
0900: 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 64   Documentation d
0910: 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 41 50  escribing the AP
0920: 49 73 20 75 73 65 64 20 74 6f 20 70 72 6f 67 72  Is used to progr
0930: 61 6d 20 53 51 4c 69 74 65 2c 20 61 6e 64 20 74  am SQLite, and t
0940: 68 65 20 53 51 4c 0a 20 20 64 69 61 6c 65 63 74  he SQL.  dialect
0950: 20 74 68 61 74 20 69 74 20 69 6e 74 65 72 70 72   that it interpr
0960: 65 74 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 53 51 4c  ets..}..doc {SQL
0970: 69 74 65 20 49 6e 20 35 20 4d 69 6e 75 74 65 73  ite In 5 Minutes
0980: 20 4f 72 20 4c 65 73 73 7d 20 7b 71 75 69 63 6b   Or Less} {quick
0990: 73 74 61 72 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20  start.html} {.  
09a0: 41 20 76 65 72 79 20 71 75 69 63 6b 20 69 6e 74  A very quick int
09b0: 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 70 72 6f  roduction to pro
09c0: 67 72 61 6d 6d 69 6e 67 20 77 69 74 68 20 53 51  gramming with SQ
09d0: 4c 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b 49 6e 74  Lite..}.doc {Int
09e0: 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 74 68 65  roduction to the
09f0: 20 43 2f 43 2b 2b 20 41 50 49 20 7d 20 7b 63 69   C/C++ API } {ci
0a00: 6e 74 72 6f 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  ntro.html} {.  T
0a10: 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 69 6e 74  his document int
0a20: 72 6f 64 75 63 65 73 20 74 68 65 20 43 2f 43 2b  roduces the C/C+
0a30: 2b 20 41 50 49 2e 20 55 73 65 72 73 20 73 68 6f  + API. Users sho
0a40: 75 6c 64 20 72 65 61 64 20 74 68 69 73 20 64 6f  uld read this do
0a50: 63 75 6d 65 6e 74 20 0a 20 20 62 65 66 6f 72 65  cument .  before
0a60: 20 74 68 65 20 43 2f 43 2b 2b 20 41 50 49 20 52   the C/C++ API R
0a70: 65 66 65 72 65 6e 63 65 20 47 75 69 64 65 20 6c  eference Guide l
0a80: 69 6e 6b 65 64 20 62 65 6c 6f 77 2e 0a 7d 0a 64  inked below..}.d
0a90: 6f 63 20 7b 48 6f 77 20 54 6f 20 43 6f 6d 70 69  oc {How To Compi
0aa0: 6c 65 20 53 51 4c 69 74 65 7d 20 7b 68 6f 77 74  le SQLite} {howt
0ab0: 6f 63 6f 6d 70 69 6c 65 2e 68 74 6d 6c 7d 20 7b  ocompile.html} {
0ac0: 0a 20 20 49 6e 73 74 72 75 63 74 69 6f 6e 73 20  .  Instructions 
0ad0: 61 6e 64 20 68 69 6e 74 73 20 66 6f 72 20 63 6f  and hints for co
0ae0: 6d 70 69 6c 69 6e 67 20 53 51 4c 69 74 65 20 43  mpiling SQLite C
0af0: 20 63 6f 64 65 20 61 6e 64 20 69 6e 74 65 67 72   code and integr
0b00: 61 74 69 6e 67 0a 20 20 74 68 61 74 20 63 6f 64  ating.  that cod
0b10: 65 20 77 69 74 68 20 79 6f 75 72 20 6f 77 6e 20  e with your own 
0b20: 61 70 70 6c 69 63 61 74 69 6f 6e 2e 0a 7d 0a 64  application..}.d
0b30: 6f 63 20 7b 43 2f 43 2b 2b 20 41 50 49 20 52 65  oc {C/C++ API Re
0b40: 66 65 72 65 6e 63 65 7d 20 7b 63 33 72 65 66 2f  ference} {c3ref/
0b50: 69 6e 74 72 6f 2e 68 74 6d 6c 7d 20 7b 0a 20 20  intro.html} {.  
0b60: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65  This document de
0b70: 73 63 72 69 62 65 73 20 65 61 63 68 20 41 50 49  scribes each API
0b80: 20 66 75 6e 63 74 69 6f 6e 20 73 65 70 61 72 61   function separa
0b90: 74 65 6c 79 2e 0a 7d 0a 64 6f 63 20 7b 52 65 73  tely..}.doc {Res
0ba0: 75 6c 74 20 43 6f 64 65 73 7d 20 7b 72 65 73 63  ult Codes} {resc
0bb0: 6f 64 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  ode.html} {.  A 
0bc0: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
0bd0: 68 65 20 6d 65 61 6e 69 6e 67 73 20 6f 66 20 74  he meanings of t
0be0: 68 65 20 6e 75 6d 65 72 69 63 20 72 65 73 75 6c  he numeric resul
0bf0: 74 20 63 6f 64 65 73 0a 20 20 72 65 74 75 72 6e  t codes.  return
0c00: 65 64 20 62 79 20 76 61 72 69 6f 75 73 20 43 2f  ed by various C/
0c10: 43 2b 2b 20 69 6e 74 65 72 66 61 63 65 73 2e 0a  C++ interfaces..
0c20: 7d 0a 64 6f 63 20 7b 54 63 6c 20 41 50 49 7d 20  }.doc {Tcl API} 
0c30: 7b 74 63 6c 73 71 6c 69 74 65 2e 68 74 6d 6c 7d  {tclsqlite.html}
0c40: 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74 69   {.  A descripti
0c50: 6f 6e 20 6f 66 20 74 68 65 20 54 43 4c 20 69 6e  on of the TCL in
0c60: 74 65 72 66 61 63 65 20 62 69 6e 64 69 6e 67 73  terface bindings
0c70: 20 66 6f 72 20 53 51 4c 69 74 65 2e 0a 7d 0a 64   for SQLite..}.d
0c80: 6f 63 20 7b 53 51 4c 20 53 79 6e 74 61 78 7d 20  oc {SQL Syntax} 
0c90: 7b 6c 61 6e 67 2e 68 74 6d 6c 7d 20 7b 0a 20 20  {lang.html} {.  
0ca0: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65  This document de
0cb0: 73 63 72 69 62 65 73 20 74 68 65 20 53 51 4c 20  scribes the SQL 
0cc0: 6c 61 6e 67 75 61 67 65 20 74 68 61 74 20 69 73  language that is
0cd0: 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 0a 20   understood by. 
0ce0: 20 53 51 4c 69 74 65 2e 20 20 0a 7d 0a 64 6f 63   SQLite.  .}.doc
0cf0: 20 7b 50 72 61 67 6d 61 20 63 6f 6d 6d 61 6e 64   {Pragma command
0d00: 73 7d 20 7b 70 72 61 67 6d 61 2e 68 74 6d 6c 7d  s} {pragma.html}
0d10: 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65   {.  This docume
0d20: 6e 74 20 64 65 73 63 72 69 62 65 73 20 53 51 4c  nt describes SQL
0d30: 69 74 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20  ite performance 
0d40: 74 75 6e 69 6e 67 20 6f 70 74 69 6f 6e 73 20 61  tuning options a
0d50: 6e 64 20 6f 74 68 65 72 20 0a 20 20 73 70 65 63  nd other .  spec
0d60: 69 61 6c 20 70 75 72 70 6f 73 65 20 64 61 74 61  ial purpose data
0d70: 62 61 73 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 7d  base commands..}
0d80: 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20 33 20  .doc {Version 3 
0d90: 44 61 74 61 54 79 70 65 73 20 7d 20 7b 64 61 74  DataTypes } {dat
0da0: 61 74 79 70 65 33 2e 68 74 6d 6c 7d 20 7b 0a 20  atype3.html} {. 
0db0: 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20   SQLite version 
0dc0: 33 20 69 6e 74 72 6f 64 75 63 65 73 20 74 68 65  3 introduces the
0dd0: 20 63 6f 6e 63 65 70 74 20 6f 66 20 6d 61 6e 69   concept of mani
0de0: 66 65 73 74 20 74 79 70 69 6e 67 2c 20 77 68 65  fest typing, whe
0df0: 72 65 20 74 68 65 0a 20 20 74 79 70 65 20 6f 66  re the.  type of
0e00: 20 61 20 76 61 6c 75 65 20 69 73 20 61 73 73 6f   a value is asso
0e10: 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20  ciated with the 
0e20: 76 61 6c 75 65 20 69 74 73 65 6c 66 2c 20 6e 6f  value itself, no
0e30: 74 20 74 68 65 20 63 6f 6c 75 6d 6e 20 74 68 61  t the column tha
0e40: 74 0a 20 20 69 74 20 69 73 20 73 74 6f 72 65 64  t.  it is stored
0e50: 20 69 6e 2e 0a 20 20 54 68 69 73 20 70 61 67 65   in..  This page
0e60: 20 64 65 73 63 72 69 62 65 73 20 64 61 74 61 20   describes data 
0e70: 74 79 70 69 6e 67 20 66 6f 72 20 53 51 4c 69 74  typing for SQLit
0e80: 65 20 76 65 72 73 69 6f 6e 20 33 20 69 6e 20 66  e version 3 in f
0e90: 75 72 74 68 65 72 20 64 65 74 61 69 6c 2e 0a 7d  urther detail..}
0ea0: 0a 64 6f 63 20 7b 4e 75 6c 6c 20 48 61 6e 64 6c  .doc {Null Handl
0eb0: 69 6e 67 7d 20 7b 6e 75 6c 6c 73 2e 68 74 6d 6c  ing} {nulls.html
0ec0: 7d 20 7b 0a 20 20 44 69 66 66 65 72 65 6e 74 20  } {.  Different 
0ed0: 53 51 4c 20 64 61 74 61 62 61 73 65 20 65 6e 67  SQL database eng
0ee0: 69 6e 65 73 20 68 61 6e 64 6c 65 20 4e 55 4c 4c  ines handle NULL
0ef0: 73 20 69 6e 20 64 69 66 66 65 72 65 6e 74 20 77  s in different w
0f00: 61 79 73 2e 20 20 54 68 65 0a 20 20 53 51 4c 20  ays.  The.  SQL 
0f10: 73 74 61 6e 64 61 72 64 73 20 61 72 65 20 61 6d  standards are am
0f20: 62 69 67 75 6f 75 73 2e 20 20 54 68 69 73 20 64  biguous.  This d
0f30: 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65  ocument describe
0f40: 73 20 68 6f 77 20 53 51 4c 69 74 65 20 68 61 6e  s how SQLite han
0f50: 64 6c 65 73 0a 20 20 4e 55 4c 4c 73 20 69 6e 20  dles.  NULLs in 
0f60: 63 6f 6d 70 61 72 69 73 6f 6e 20 77 69 74 68 20  comparison with 
0f70: 6f 74 68 65 72 20 53 51 4c 20 64 61 74 61 62 61  other SQL databa
0f80: 73 65 20 65 6e 67 69 6e 65 73 2e 0a 7d 0a 64 6f  se engines..}.do
0f90: 63 20 7b 55 6e 73 75 70 70 6f 72 74 65 64 20 53  c {Unsupported S
0fa0: 51 4c 7d 20 7b 6f 6d 69 74 74 65 64 2e 68 74 6d  QL} {omitted.htm
0fb0: 6c 7d 20 7b 0a 20 20 54 68 69 73 20 70 61 67 65  l} {.  This page
0fc0: 20 64 65 73 63 72 69 62 65 73 20 66 65 61 74 75   describes featu
0fd0: 72 65 73 20 6f 66 20 53 51 4c 20 74 68 61 74 20  res of SQL that 
0fe0: 53 51 4c 69 74 65 20 64 6f 65 73 20 6e 6f 74 20  SQLite does not 
0ff0: 73 75 70 70 6f 72 74 2e 0a 7d 0a 0a 0a 68 65 61  support..}...hea
1000: 64 69 6e 67 20 7b 53 51 4c 69 74 65 20 46 65 61  ding {SQLite Fea
1010: 74 75 72 65 73 20 61 6e 64 20 45 78 74 65 6e 73  tures and Extens
1020: 69 6f 6e 73 7d 20 7b 0a 20 20 50 61 67 65 73 20  ions} {.  Pages 
1030: 64 65 73 63 72 69 62 69 6e 67 20 73 70 65 63 69  describing speci
1040: 66 69 63 20 66 65 61 74 75 72 65 73 20 6f 72 20  fic features or 
1050: 65 78 74 65 6e 73 69 6f 6e 20 6d 6f 64 75 6c 65  extension module
1060: 73 20 6f 66 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a  s of SQLite..}..
1070: 64 6f 63 20 7b 41 73 79 6e 63 68 72 6f 6e 6f 75  doc {Asynchronou
1080: 73 20 49 4f 20 4d 6f 64 65 7d 20 7b 61 73 79 6e  s IO Mode} {asyn
1090: 63 76 66 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  cvfs.html} {.  T
10a0: 68 69 73 20 70 61 67 65 20 64 65 73 63 72 69 62  his page describ
10b0: 65 73 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e  es the asynchron
10c0: 6f 75 73 20 49 4f 20 65 78 74 65 6e 73 69 6f 6e  ous IO extension
10d0: 20 64 65 76 65 6c 6f 70 65 64 20 61 6c 6f 6e 67   developed along
10e0: 73 69 64 65 0a 20 20 53 51 4c 69 74 65 2e 20 55  side.  SQLite. U
10f0: 73 69 6e 67 20 61 73 79 6e 63 68 72 6f 6e 6f 75  sing asynchronou
1100: 73 20 49 4f 20 63 61 6e 20 63 61 75 73 65 20 53  s IO can cause S
1110: 51 4c 69 74 65 20 74 6f 20 61 70 70 65 61 72 20  QLite to appear 
1120: 6d 6f 72 65 20 72 65 73 70 6f 6e 73 69 76 65 0a  more responsive.
1130: 20 20 62 79 20 64 65 6c 65 67 61 74 69 6e 67 20    by delegating 
1140: 64 61 74 61 62 61 73 65 20 77 72 69 74 65 73 20  database writes 
1150: 74 6f 20 61 20 62 61 63 6b 67 72 6f 75 6e 64 20  to a background 
1160: 74 68 72 65 61 64 2e 20 20 3c 69 3e 4e 42 3a 20  thread.  <i>NB: 
1170: 20 54 68 69 73 0a 20 20 65 78 74 65 6e 73 69 6f   This.  extensio
1180: 6e 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e  n is deprecated.
1190: 20 20 5b 57 41 4c 20 6d 6f 64 65 5d 20 69 73 20    [WAL mode] is 
11a0: 72 65 63 6f 6d 6d 65 6e 64 65 64 20 61 73 20 61  recommended as a
11b0: 20 72 65 70 6c 61 63 65 6d 65 6e 74 2e 3c 2f 69   replacement.</i
11c0: 3e 0a 7d 0a 64 6f 63 20 7b 46 6f 72 65 69 67 6e  >.}.doc {Foreign
11d0: 20 4b 65 79 20 53 75 70 70 6f 72 74 7d 20 7b 66   Key Support} {f
11e0: 6f 72 65 69 67 6e 6b 65 79 73 2e 68 74 6d 6c 7d  oreignkeys.html}
11f0: 20 7b 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65   {.  This docume
1200: 6e 74 20 64 65 73 63 72 69 62 65 73 20 74 68 65  nt describes the
1210: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 6f 72   support for for
1220: 65 69 67 6e 20 6b 65 79 20 63 6f 6e 73 74 72 61  eign key constra
1230: 69 6e 74 73 20 69 6e 74 72 6f 64 75 63 65 64 0a  ints introduced.
1240: 20 20 69 6e 20 76 65 72 73 69 6f 6e 20 33 2e 36    in version 3.6
1250: 2e 31 39 2e 0a 7d 0a 64 6f 63 20 7b 46 75 6c 6c  .19..}.doc {Full
1260: 20 54 65 78 74 20 53 65 61 72 63 68 7d 20 7b 66   Text Search} {f
1270: 74 73 33 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  ts3.html} {.  A 
1280: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
1290: 68 65 20 53 51 4c 69 74 65 20 46 75 6c 6c 20 54  he SQLite Full T
12a0: 65 78 74 20 53 65 61 72 63 68 20 28 46 54 53 33  ext Search (FTS3
12b0: 29 20 65 78 74 65 6e 73 69 6f 6e 2e 0a 7d 0a 64  ) extension..}.d
12c0: 6f 63 20 7b 52 2d 54 72 65 65 73 7d 20 7b 72 74  oc {R-Trees} {rt
12d0: 72 65 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  ree.html} {.  A 
12e0: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
12f0: 68 65 20 53 51 4c 69 74 65 20 52 2d 54 72 65 65  he SQLite R-Tree
1300: 20 65 78 74 65 6e 73 69 6f 6e 2e 20 41 6e 20 52   extension. An R
1310: 2d 54 72 65 65 20 69 73 20 61 20 73 70 65 63 69  -Tree is a speci
1320: 61 6c 69 7a 65 64 0a 20 20 64 61 74 61 20 73 74  alized.  data st
1330: 72 75 63 74 75 72 65 20 74 68 61 74 20 73 75 70  ructure that sup
1340: 70 6f 72 74 73 20 66 61 73 74 20 6d 75 6c 74 69  ports fast multi
1350: 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 72 61 6e  -dimensional ran
1360: 67 65 20 71 75 65 72 69 65 73 20 6f 66 74 65 6e  ge queries often
1370: 0a 20 20 75 73 65 64 20 69 6e 20 67 65 6f 73 70  .  used in geosp
1380: 61 74 69 61 6c 20 73 79 73 74 65 6d 73 2e 0a 7d  atial systems..}
1390: 0a 64 6f 63 20 7b 52 75 6e 2d 54 69 6d 65 20 4c  .doc {Run-Time L
13a0: 6f 61 64 61 62 6c 65 20 45 78 74 65 6e 73 69 6f  oadable Extensio
13b0: 6e 73 7d 20 7b 6c 6f 61 64 65 78 74 2e 68 74 6d  ns} {loadext.htm
13c0: 6c 7d 20 7b 0a 20 20 41 20 67 65 6e 65 72 61 6c  l} {.  A general
13d0: 20 6f 76 65 72 76 69 65 77 20 6f 6e 20 68 6f 77   overview on how
13e0: 20 72 75 6e 2d 74 69 6d 65 20 6c 6f 61 64 61 62   run-time loadab
13f0: 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 77 6f  le extensions wo
1400: 72 6b 2c 20 68 6f 77 20 74 68 65 79 0a 20 20 61  rk, how they.  a
1410: 72 65 20 63 6f 6d 70 69 6c 65 64 2c 20 61 6e 64  re compiled, and
1420: 20 68 6f 77 20 64 65 76 65 6c 6f 70 65 72 73 20   how developers 
1430: 63 61 6e 20 63 72 65 61 74 65 20 74 68 65 69 72  can create their
1440: 20 6f 77 6e 20 72 75 6e 2d 74 69 6d 65 20 6c 6f   own run-time lo
1450: 61 64 61 62 6c 65 0a 20 20 65 78 74 65 6e 73 69  adable.  extensi
1460: 6f 6e 73 20 66 6f 72 20 53 51 4c 69 74 65 2e 0a  ons for SQLite..
1470: 7d 0a 64 6f 63 20 7b 53 68 61 72 65 64 20 43 61  }.doc {Shared Ca
1480: 63 68 65 20 4d 6f 64 65 7d 20 7b 73 68 61 72 65  che Mode} {share
1490: 64 63 61 63 68 65 2e 68 74 6d 6c 7d 20 7b 0a 20  dcache.html} {. 
14a0: 20 56 65 72 73 69 6f 6e 20 33 2e 33 2e 30 20 61   Version 3.3.0 a
14b0: 6e 64 20 6c 61 74 65 72 20 73 75 70 70 6f 72 74  nd later support
14c0: 73 20 74 68 65 20 61 62 69 6c 69 74 79 20 66 6f  s the ability fo
14d0: 72 20 74 77 6f 20 6f 72 20 6d 6f 72 65 0a 20 20  r two or more.  
14e0: 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74  database connect
14f0: 69 6f 6e 73 20 74 6f 20 73 68 61 72 65 20 74 68  ions to share th
1500: 65 20 73 61 6d 65 20 70 61 67 65 20 61 6e 64 20  e same page and 
1510: 73 63 68 65 6d 61 20 63 61 63 68 65 2e 0a 20 20  schema cache..  
1520: 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20  This feature is 
1530: 75 73 65 66 75 6c 20 66 6f 72 20 63 65 72 74 61  useful for certa
1540: 69 6e 20 73 70 65 63 69 61 6c 69 7a 65 64 20 61  in specialized a
1550: 70 70 6c 69 63 61 74 69 6f 6e 73 2e 0a 7d 0a 64  pplications..}.d
1560: 6f 63 20 7b 55 6e 6c 6f 63 6b 20 4e 6f 74 69 66  oc {Unlock Notif
1570: 79 7d 20 7b 75 6e 6c 6f 63 6b 5f 6e 6f 74 69 66  y} {unlock_notif
1580: 79 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20  y.html} {.  The 
1590: 22 75 6e 6c 6f 63 6b 20 6e 6f 74 69 66 79 22 20  "unlock notify" 
15a0: 66 65 61 74 75 72 65 20 63 61 6e 20 62 65 20 75  feature can be u
15b0: 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69  sed in conjuncti
15c0: 6f 6e 20 77 69 74 68 0a 20 20 5b 73 68 61 72 65  on with.  [share
15d0: 64 20 63 61 63 68 65 20 6d 6f 64 65 5d 20 74 6f  d cache mode] to
15e0: 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 6c   more efficientl
15f0: 79 20 6d 61 6e 61 67 65 20 72 65 73 6f 75 72 63  y manage resourc
1600: 65 20 63 6f 6e 66 6c 69 63 74 20 28 64 61 74 61  e conflict (data
1610: 62 61 73 65 0a 20 20 74 61 62 6c 65 20 6c 6f 63  base.  table loc
1620: 6b 73 29 2e 0a 7d 0a 64 6f 63 20 7b 55 73 69 6e  ks)..}.doc {Usin
1630: 67 20 54 68 65 20 4f 6e 6c 69 6e 65 20 42 61 63  g The Online Bac
1640: 6b 75 70 20 49 6e 74 65 72 66 61 63 65 7d 20 7b  kup Interface} {
1650: 62 61 63 6b 75 70 2e 68 74 6d 6c 7d 20 7b 0a 20  backup.html} {. 
1660: 20 54 68 65 20 5b 73 71 6c 69 74 65 33 5f 62 61   The [sqlite3_ba
1670: 63 6b 75 70 5f 69 6e 69 74 20 7c 20 6f 6e 6c 69  ckup_init | onli
1680: 6e 65 2d 62 61 63 6b 75 70 20 69 6e 74 65 72 66  ne-backup interf
1690: 61 63 65 5d 20 63 61 6e 20 62 65 20 75 73 65 64  ace] can be used
16a0: 20 74 6f 0a 20 20 63 6f 70 79 20 63 6f 6e 74 65   to.  copy conte
16b0: 6e 74 20 66 72 6f 6d 20 61 20 64 69 73 6b 20 66  nt from a disk f
16c0: 69 6c 65 20 69 6e 74 6f 20 61 6e 20 69 6e 2d 6d  ile into an in-m
16d0: 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65 20 6f  emory database o
16e0: 72 20 76 69 63 65 0a 20 20 76 65 72 73 61 20 61  r vice.  versa a
16f0: 6e 64 20 69 74 20 63 61 6e 20 6d 61 6b 65 20 61  nd it can make a
1700: 20 68 6f 74 20 62 61 63 6b 75 70 20 6f 66 20 61   hot backup of a
1710: 20 6c 69 76 65 20 64 61 74 61 62 61 73 65 2e 20   live database. 
1720: 20 54 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f   This applicatio
1730: 6e 0a 20 20 6e 6f 74 65 20 67 69 76 65 73 20 65  n.  note gives e
1740: 78 61 6d 70 6c 65 73 20 6f 66 20 68 6f 77 2e 0a  xamples of how..
1750: 7d 0a 0a 68 65 61 64 69 6e 67 20 7b 55 70 67 72  }..heading {Upgr
1760: 61 64 69 6e 67 20 53 51 4c 69 74 65 2c 20 42 61  ading SQLite, Ba
1770: 63 6b 77 61 72 64 73 20 43 6f 6d 70 61 74 69 62  ckwards Compatib
1780: 69 6c 69 74 79 7d 0a 0a 64 6f 63 20 7b 4d 6f 76  ility}..doc {Mov
1790: 69 6e 67 20 46 72 6f 6d 20 53 51 4c 69 74 65 20  ing From SQLite 
17a0: 33 2e 35 20 74 6f 20 33 2e 36 7d 20 7b 33 35 74  3.5 to 3.6} {35t
17b0: 6f 33 36 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  o36.html} {.  A 
17c0: 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62  document describ
17d0: 69 6e 67 20 74 68 65 20 64 69 66 66 65 72 65 6e  ing the differen
17e0: 63 65 73 20 62 65 74 77 65 65 6e 20 53 51 4c 69  ces between SQLi
17f0: 74 65 20 76 65 72 73 69 6f 6e 20 33 2e 35 2e 39  te version 3.5.9
1800: 0a 20 20 61 6e 64 20 33 2e 36 2e 30 2e 0a 7d 0a  .  and 3.6.0..}.
1810: 64 6f 63 20 7b 4d 6f 76 69 6e 67 20 46 72 6f 6d  doc {Moving From
1820: 20 53 51 4c 69 74 65 20 33 2e 34 20 74 6f 20 33   SQLite 3.4 to 3
1830: 2e 35 7d 20 7b 33 34 74 6f 33 35 2e 68 74 6d 6c  .5} {34to35.html
1840: 7d 20 7b 0a 20 20 41 20 64 6f 63 75 6d 65 6e 74  } {.  A document
1850: 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20   describing the 
1860: 64 69 66 66 65 72 65 6e 63 65 73 20 62 65 74 77  differences betw
1870: 65 65 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69  een SQLite versi
1880: 6f 6e 20 33 2e 34 2e 32 0a 20 20 61 6e 64 20 33  on 3.4.2.  and 3
1890: 2e 35 2e 30 2e 0a 7d 0a 64 6f 63 20 7b 52 65 6c  .5.0..}.doc {Rel
18a0: 65 61 73 65 20 48 69 73 74 6f 72 79 7d 20 7b 63  ease History} {c
18b0: 68 61 6e 67 65 73 2e 68 74 6d 6c 7d 20 7b 0a 20  hanges.html} {. 
18c0: 20 41 20 63 68 72 6f 6e 6f 6c 6f 67 79 20 6f 66   A chronology of
18d0: 20 53 51 4c 69 74 65 20 72 65 6c 65 61 73 65 73   SQLite releases
18e0: 20 67 6f 69 6e 67 20 62 61 63 6b 20 74 6f 20 76   going back to v
18f0: 65 72 73 69 6f 6e 20 31 2e 30 2e 30 0a 7d 0a 64  ersion 1.0.0.}.d
1900: 6f 63 20 7b 42 61 63 6b 77 61 72 64 73 20 43 6f  oc {Backwards Co
1910: 6d 70 61 74 69 62 69 6c 69 74 79 7d 20 7b 66 6f  mpatibility} {fo
1920: 72 6d 61 74 63 68 6e 67 2e 68 74 6d 6c 7d 20 7b  rmatchng.html} {
1930: 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74  .  This document
1940: 20 64 65 74 61 69 6c 73 20 61 6c 6c 20 6f 66 20   details all of 
1950: 74 68 65 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65  the incompatible
1960: 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20   changes to the 
1970: 53 51 4c 69 74 65 0a 20 20 66 69 6c 65 20 66 6f  SQLite.  file fo
1980: 72 6d 61 74 20 74 68 61 74 20 68 61 76 65 20 6f  rmat that have o
1990: 63 63 75 72 72 65 64 20 73 69 6e 63 65 20 76 65  ccurred since ve
19a0: 72 73 69 6f 6e 20 31 2e 30 2e 30 2e 0a 7d 0a 0a  rsion 1.0.0..}..
19b0: 64 6f 63 20 7b 50 72 69 76 61 74 65 20 42 72 61  doc {Private Bra
19c0: 6e 63 68 65 73 7d 20 7b 70 72 69 76 61 74 65 62  nches} {privateb
19d0: 72 61 6e 63 68 2e 68 74 6d 6c 7d 20 7b 0a 20 20  ranch.html} {.  
19e0: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 73 75  This document su
19f0: 67 67 65 73 74 73 20 70 72 6f 63 65 64 75 72 65  ggests procedure
1a00: 73 20 66 6f 72 20 6d 61 69 6e 74 61 69 6e 69 6e  s for maintainin
1a10: 67 20 61 20 70 72 69 76 61 74 65 20 62 72 61 6e  g a private bran
1a20: 63 68 0a 20 20 6f 72 20 66 6f 72 6b 20 6f 66 20  ch.  or fork of 
1a30: 53 51 4c 69 74 65 20 61 6e 64 20 6b 65 65 70 69  SQLite and keepi
1a40: 6e 67 20 74 68 61 74 20 62 72 61 6e 63 68 20 6f  ng that branch o
1a50: 72 20 66 6f 72 6b 20 69 6e 20 73 79 6e 63 20 77  r fork in sync w
1a60: 69 74 68 20 74 68 65 0a 20 20 70 75 62 6c 69 63  ith the.  public
1a70: 20 53 51 4c 69 74 65 20 73 6f 75 72 63 65 20 74   SQLite source t
1a80: 72 65 65 2e 0a 7d 0a 0a 68 65 61 64 69 6e 67 20  ree..}..heading 
1a90: 7b 53 51 4c 69 74 65 20 54 65 63 68 6e 69 63 61  {SQLite Technica
1aa0: 6c 2f 44 65 73 69 67 6e 20 44 6f 63 75 6d 65 6e  l/Design Documen
1ab0: 74 61 74 69 6f 6e 7d 0a 0a 64 6f 63 20 7b 54 65  tation}..doc {Te
1ac0: 6d 70 6f 72 61 72 79 20 46 69 6c 65 73 20 55 73  mporary Files Us
1ad0: 65 64 20 42 79 20 53 51 4c 69 74 65 7d 20 7b 74  ed By SQLite} {t
1ae0: 65 6d 70 66 69 6c 65 73 2e 68 74 6d 6c 7d 20 7b  empfiles.html} {
1af0: 0a 20 20 53 51 4c 69 74 65 20 63 61 6e 20 70 6f  .  SQLite can po
1b00: 74 65 6e 74 69 61 6c 6c 79 20 75 73 65 20 6d 61  tentially use ma
1b10: 6e 79 20 64 69 66 66 65 72 65 6e 74 20 74 65 6d  ny different tem
1b20: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 77 68 65  porary files whe
1b30: 6e 0a 20 20 70 72 6f 63 65 73 73 69 6e 67 20 63  n.  processing c
1b40: 65 72 74 61 69 6e 20 53 51 4c 20 73 74 61 74 65  ertain SQL state
1b50: 6d 65 6e 74 73 2e 20 20 54 68 69 73 20 64 6f 63  ments.  This doc
1b60: 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 20  ument describes 
1b70: 74 68 65 0a 20 20 6d 61 6e 79 20 6b 69 6e 64 73  the.  many kinds
1b80: 20 6f 66 20 74 65 6d 70 6f 72 61 72 79 20 66 69   of temporary fi
1b90: 6c 65 73 20 74 68 61 74 20 53 51 4c 69 74 65 20  les that SQLite 
1ba0: 75 73 65 73 20 61 6e 64 20 6f 66 66 65 72 73 20  uses and offers 
1bb0: 73 75 67 67 65 73 74 69 6f 6e 73 0a 20 20 66 6f  suggestions.  fo
1bc0: 72 20 61 76 6f 69 64 69 6e 67 20 74 68 65 6d 20  r avoiding them 
1bd0: 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65 72 65  on systems where
1be0: 20 63 72 65 61 74 69 6e 67 20 61 20 74 65 6d 70   creating a temp
1bf0: 6f 72 61 72 79 20 66 69 6c 65 20 69 73 20 61 6e  orary file is an
1c00: 0a 20 20 65 78 70 65 6e 73 69 76 65 20 6f 70 65  .  expensive ope
1c10: 72 61 74 69 6f 6e 2e 0a 7d 0a 0a 64 6f 63 20 7b  ration..}..doc {
1c20: 49 6e 2d 4d 65 6d 6f 72 79 20 44 61 74 61 62 61  In-Memory Databa
1c30: 73 65 73 7d 20 7b 69 6e 6d 65 6d 6f 72 79 64 62  ses} {inmemorydb
1c40: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69 74  .html} {.  SQLit
1c50: 65 20 6e 6f 72 6d 61 6c 6c 79 20 73 74 6f 72 65  e normally store
1c60: 73 20 63 6f 6e 74 65 6e 74 20 69 6e 20 61 20 64  s content in a d
1c70: 69 73 6b 20 66 69 6c 65 2e 20 20 48 6f 77 65 76  isk file.  Howev
1c80: 65 72 2c 20 69 74 20 63 61 6e 20 61 6c 73 6f 0a  er, it can also.
1c90: 20 20 62 65 20 75 73 65 64 20 61 73 20 61 6e 20    be used as an 
1ca0: 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61  in-memory databa
1cb0: 73 65 20 65 6e 67 69 6e 65 2e 20 20 54 68 69 73  se engine.  This
1cc0: 20 64 6f 63 75 6d 65 6e 74 20 65 78 70 6c 61 69   document explai
1cd0: 6e 73 20 68 6f 77 2e 0a 7d 0a 0a 64 6f 63 20 7b  ns how..}..doc {
1ce0: 48 6f 77 20 53 51 4c 69 74 65 20 49 6d 70 6c 65  How SQLite Imple
1cf0: 6d 65 6e 74 73 20 41 74 6f 6d 69 63 20 43 6f 6d  ments Atomic Com
1d00: 6d 69 74 7d 20 7b 61 74 6f 6d 69 63 63 6f 6d 6d  mit} {atomiccomm
1d10: 69 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 64  it.html} {.  A d
1d20: 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68  escription of th
1d30: 65 20 6c 6f 67 69 63 20 77 69 74 68 69 6e 20 53  e logic within S
1d40: 51 4c 69 74 65 20 74 68 61 74 20 69 6d 70 6c 65  QLite that imple
1d50: 6d 65 6e 74 73 0a 20 20 74 72 61 6e 73 61 63 74  ments.  transact
1d60: 69 6f 6e 73 20 77 69 74 68 20 61 74 6f 6d 69 63  ions with atomic
1d70: 20 63 6f 6d 6d 69 74 2c 20 65 76 65 6e 20 69 6e   commit, even in
1d80: 20 74 68 65 20 66 61 63 65 20 6f 66 20 70 6f 77   the face of pow
1d90: 65 72 0a 20 20 66 61 69 6c 75 72 65 73 2e 0a 7d  er.  failures..}
1da0: 0a 0a 64 6f 63 20 7b 44 79 6e 61 6d 69 63 20 4d  ..doc {Dynamic M
1db0: 65 6d 6f 72 79 20 41 6c 6c 6f 63 61 74 69 6f 6e  emory Allocation
1dc0: 20 69 6e 20 53 51 4c 69 74 65 7d 20 7b 6d 61 6c   in SQLite} {mal
1dd0: 6c 6f 63 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51  loc.html} {.  SQ
1de0: 4c 69 74 65 20 68 61 73 20 61 20 73 6f 70 68 69  Lite has a sophi
1df0: 73 74 69 63 61 74 65 64 20 6d 65 6d 6f 72 79 20  sticated memory 
1e00: 61 6c 6c 6f 63 61 74 69 6f 6e 20 73 75 62 73 79  allocation subsy
1e10: 73 74 65 6d 20 74 68 61 74 20 63 61 6e 20 62 65  stem that can be
1e20: 0a 20 20 63 6f 6e 66 69 67 75 72 65 64 20 61 6e  .  configured an
1e30: 64 20 63 75 73 74 6f 6d 69 7a 65 64 20 74 6f 20  d customized to 
1e40: 6d 65 65 74 20 6d 65 6d 6f 72 79 20 75 73 61 67  meet memory usag
1e50: 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f  e requirements o
1e60: 66 20 74 68 65 0a 20 20 61 70 70 6c 69 63 61 74  f the.  applicat
1e70: 69 6f 6e 20 61 6e 64 20 74 68 61 74 20 69 73 20  ion and that is 
1e80: 72 6f 62 75 73 74 20 61 67 61 69 6e 73 74 20 6f  robust against o
1e90: 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 63 6f 6e  ut-of-memory con
1ea0: 64 69 74 69 6f 6e 73 20 61 6e 64 0a 20 20 6c 65  ditions and.  le
1eb0: 61 6b 2d 66 72 65 65 2e 20 20 54 68 69 73 20 64  ak-free.  This d
1ec0: 6f 63 75 6d 65 6e 74 20 70 72 6f 76 69 64 65 73  ocument provides
1ed0: 20 74 68 65 20 64 65 74 61 69 6c 73 2e 0a 7d 0a   the details..}.
1ee0: 0a 64 6f 63 20 7b 43 75 73 74 6f 6d 69 7a 69 6e  .doc {Customizin
1ef0: 67 20 41 6e 64 20 50 6f 72 74 69 6e 67 20 53 51  g And Porting SQ
1f00: 4c 69 74 65 7d 20 7b 63 75 73 74 6f 6d 62 75 69  Lite} {custombui
1f10: 6c 64 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69  ld.html} {.  Thi
1f20: 73 20 64 6f 63 75 6d 65 6e 74 20 65 78 70 6c 61  s document expla
1f30: 69 6e 73 20 68 6f 77 20 74 6f 20 63 75 73 74 6f  ins how to custo
1f40: 6d 69 7a 65 20 74 68 65 20 62 75 69 6c 64 20 6f  mize the build o
1f50: 66 20 53 51 4c 69 74 65 20 61 6e 64 0a 20 20 68  f SQLite and.  h
1f60: 6f 77 20 74 6f 20 70 6f 72 74 20 53 51 4c 69 74  ow to port SQLit
1f70: 65 20 74 6f 20 6e 65 77 20 70 6c 61 74 66 6f 72  e to new platfor
1f80: 6d 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 4c 6f 63 6b  ms..}..doc {Lock
1f90: 69 6e 67 20 41 6e 64 20 43 6f 6e 63 75 72 72 65  ing And Concurre
1fa0: 6e 63 79 3c 62 72 3e 49 6e 20 53 51 4c 69 74 65  ncy<br>In SQLite
1fb0: 20 56 65 72 73 69 6f 6e 20 33 7d 20 7b 6c 6f 63   Version 3} {loc
1fc0: 6b 69 6e 67 76 33 2e 68 74 6d 6c 7d 20 7b 0a 20  kingv3.html} {. 
1fd0: 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f   A description o
1fe0: 66 20 68 6f 77 20 74 68 65 20 6e 65 77 20 6c 6f  f how the new lo
1ff0: 63 6b 69 6e 67 20 63 6f 64 65 20 69 6e 20 76 65  cking code in ve
2000: 72 73 69 6f 6e 20 33 20 69 6e 63 72 65 61 73 65  rsion 3 increase
2010: 73 0a 20 20 63 6f 6e 63 75 72 72 65 6e 63 79 20  s.  concurrency 
2020: 61 6e 64 20 64 65 63 72 65 61 73 65 73 20 74 68  and decreases th
2030: 65 20 70 72 6f 62 6c 65 6d 20 6f 66 20 77 72 69  e problem of wri
2040: 74 65 72 20 73 74 61 72 76 61 74 69 6f 6e 2e 0a  ter starvation..
2050: 7d 0a 0a 64 6f 63 20 7b 4f 76 65 72 76 69 65 77  }..doc {Overview
2060: 20 4f 66 20 54 68 65 20 4f 70 74 69 6d 69 7a 65   Of The Optimize
2070: 72 7d 20 7b 6f 70 74 6f 76 65 72 76 69 65 77 2e  r} {optoverview.
2080: 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 71 75 69 63  html} {.  A quic
2090: 6b 20 6f 76 65 72 76 69 65 77 20 6f 66 20 74 68  k overview of th
20a0: 65 20 76 61 72 69 6f 75 73 20 71 75 65 72 79 20  e various query 
20b0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74 68  optimizations th
20c0: 61 74 20 61 72 65 0a 20 20 61 74 74 65 6d 70 74  at are.  attempt
20d0: 65 64 20 62 79 20 74 68 65 20 53 51 4c 69 74 65  ed by the SQLite
20e0: 20 63 6f 64 65 20 67 65 6e 65 72 61 74 6f 72 2e   code generator.
20f0: 0a 7d 0a 0a 64 6f 63 20 7b 41 72 63 68 69 74 65  .}..doc {Archite
2100: 63 74 75 72 65 7d 20 7b 61 72 63 68 2e 68 74 6d  cture} {arch.htm
2110: 6c 7d 20 7b 0a 20 20 41 6e 20 61 72 63 68 69 74  l} {.  An archit
2120: 65 63 74 75 72 61 6c 20 6f 76 65 72 76 69 65 77  ectural overview
2130: 20 6f 66 20 74 68 65 20 53 51 4c 69 74 65 20 6c   of the SQLite l
2140: 69 62 72 61 72 79 2c 20 75 73 65 66 75 6c 20 66  ibrary, useful f
2150: 6f 72 20 74 68 6f 73 65 20 77 68 6f 20 77 61 6e  or those who wan
2160: 74 0a 20 20 74 6f 20 68 61 63 6b 20 74 68 65 20  t.  to hack the 
2170: 63 6f 64 65 2e 0a 7d 0a 0a 64 6f 63 20 7b 56 44  code..}..doc {VD
2180: 42 45 20 4f 70 63 6f 64 65 73 7d 20 7b 6f 70 63  BE Opcodes} {opc
2190: 6f 64 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  ode.html} {.  Th
21a0: 69 73 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 61  is document is a
21b0: 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  n automatically 
21c0: 67 65 6e 65 72 61 74 65 64 20 64 65 73 63 72 69  generated descri
21d0: 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 76 61 72  ption of the var
21e0: 69 6f 75 73 0a 20 20 6f 70 63 6f 64 65 73 20 74  ious.  opcodes t
21f0: 68 61 74 20 74 68 65 20 56 44 42 45 20 75 6e 64  hat the VDBE und
2200: 65 72 73 74 61 6e 64 73 2e 20 20 50 72 6f 67 72  erstands.  Progr
2210: 61 6d 6d 65 72 73 20 63 61 6e 20 75 73 65 20 74  ammers can use t
2220: 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 61 73 0a  his document as.
2230: 20 20 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f    a reference to
2240: 20 62 65 74 74 65 72 20 75 6e 64 65 72 73 74 61   better understa
2250: 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  nd the output of
2260: 20 45 58 50 4c 41 49 4e 20 6c 69 73 74 69 6e 67   EXPLAIN listing
2270: 73 20 66 72 6f 6d 0a 20 20 53 51 4c 69 74 65 2e  s from.  SQLite.
2280: 0a 7d 0a 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20  .}..doc {SQLite 
2290: 46 69 6c 65 20 46 6f 72 6d 61 74 7d 20 7b 66 69  File Format} {fi
22a0: 6c 65 66 6f 72 6d 61 74 32 2e 68 74 6d 6c 7d 20  leformat2.html} 
22b0: 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74 69 6f  {.  A descriptio
22c0: 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d 61 74 20  n of the format 
22d0: 75 73 65 64 20 66 6f 72 20 53 51 4c 69 74 65 20  used for SQLite 
22e0: 64 61 74 61 62 61 73 65 20 61 6e 64 20 6a 6f 75  database and jou
22f0: 72 6e 61 6c 20 66 69 6c 65 73 2c 20 61 6e 64 0a  rnal files, and.
2300: 20 20 6f 74 68 65 72 20 64 65 74 61 69 6c 73 20    other details 
2310: 72 65 71 75 69 72 65 64 20 74 6f 20 63 72 65 61  required to crea
2320: 74 65 20 73 6f 66 74 77 61 72 65 20 74 6f 20 72  te software to r
2330: 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 53 51  ead and write SQ
2340: 4c 69 74 65 20 0a 20 20 64 61 74 61 62 61 73 65  Lite .  database
2350: 73 20 77 69 74 68 6f 75 74 20 75 73 69 6e 67 20  s without using 
2360: 53 51 4c 69 74 65 2e 0a 7d 0a 0a 64 6f 63 20 7b  SQLite..}..doc {
2370: 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 4f 70 74 69  Compilation Opti
2380: 6f 6e 73 7d 20 7b 63 6f 6d 70 69 6c 65 2e 68 74  ons} {compile.ht
2390: 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63  ml} {.  This doc
23a0: 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 20  ument describes 
23b0: 74 68 65 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65  the compile time
23c0: 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 6d 61   options that ma
23d0: 79 20 62 65 20 73 65 74 20 74 6f 20 0a 20 20 6d  y be set to .  m
23e0: 6f 64 69 66 79 20 74 68 65 20 64 65 66 61 75 6c  odify the defaul
23f0: 74 20 62 65 68 61 76 69 6f 72 20 6f 66 20 74 68  t behavior of th
2400: 65 20 6c 69 62 72 61 72 79 20 6f 72 20 6f 6d 69  e library or omi
2410: 74 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61 74 75  t optional featu
2420: 72 65 73 0a 20 20 69 6e 20 6f 72 64 65 72 20 74  res.  in order t
2430: 6f 20 72 65 64 75 63 65 20 62 69 6e 61 72 79 20  o reduce binary 
2440: 73 69 7a 65 2e 0a 7d 0a 0a 64 6f 63 20 7b 4c 69  size..}..doc {Li
2450: 6d 69 74 73 20 49 6e 20 53 51 4c 69 74 65 7d 20  mits In SQLite} 
2460: 7b 6c 69 6d 69 74 73 2e 68 74 6d 6c 7d 20 7b 0a  {limits.html} {.
2470: 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20    This document 
2480: 64 65 73 63 72 69 62 65 73 20 6c 69 6d 69 74 61  describes limita
2490: 74 69 6f 6e 73 20 6f 66 20 53 51 4c 69 74 65 20  tions of SQLite 
24a0: 28 74 68 65 20 6d 61 78 69 6d 75 6d 20 6c 65 6e  (the maximum len
24b0: 67 74 68 20 6f 66 20 61 0a 20 20 73 74 72 69 6e  gth of a.  strin
24c0: 67 20 6f 72 20 62 6c 6f 62 2c 20 74 68 65 20 6d  g or blob, the m
24d0: 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 61  aximum size of a
24e0: 20 64 61 74 61 62 61 73 65 2c 20 74 68 65 20 6d   database, the m
24f0: 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66  aximum number of
2500: 0a 20 20 74 61 62 6c 65 73 20 69 6e 20 61 20 64  .  tables in a d
2510: 61 74 61 62 61 73 65 2c 20 65 74 63 2e 29 20 61  atabase, etc.) a
2520: 6e 64 20 68 6f 77 20 74 68 65 73 65 20 6c 69 6d  nd how these lim
2530: 69 74 73 20 63 61 6e 20 62 65 20 61 6c 74 65 72  its can be alter
2540: 65 64 20 61 74 0a 20 20 63 6f 6d 70 69 6c 65 2d  ed at.  compile-
2550: 74 69 6d 65 20 61 6e 64 20 72 75 6e 2d 74 69 6d  time and run-tim
2560: 65 2e 0a 7d 0a 0a 0a 0a 68 65 61 64 69 6e 67 20  e..}....heading 
2570: 7b 4f 62 73 6f 6c 65 74 65 20 44 6f 63 75 6d 65  {Obsolete Docume
2580: 6e 74 73 7d 20 7b 0a 20 20 54 68 65 73 65 20 64  nts} {.  These d
2590: 6f 63 75 6d 65 6e 74 73 20 65 69 74 68 65 72 20  ocuments either 
25a0: 70 65 72 74 61 69 6e 20 74 6f 20 53 51 4c 69 74  pertain to SQLit
25b0: 65 20 76 65 72 73 69 6f 6e 20 32 20 6f 72 20 77  e version 2 or w
25c0: 65 72 65 20 77 72 69 74 74 65 6e 0a 20 20 64 75  ere written.  du
25d0: 72 69 6e 67 20 74 68 65 20 74 72 61 6e 73 69 74  ring the transit
25e0: 69 6f 6e 20 70 65 72 69 6f 64 20 62 65 74 77 65  ion period betwe
25f0: 65 6e 20 76 65 72 73 69 6f 6e 73 20 32 20 61 6e  en versions 2 an
2600: 64 20 33 20 28 63 69 72 63 61 20 32 30 30 34 29  d 3 (circa 2004)
2610: 2e 0a 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e  ..  This documen
2620: 74 73 20 61 72 65 20 6e 6f 20 6c 6f 6e 67 65 72  ts are no longer
2630: 20 75 70 2d 74 6f 2d 64 61 74 65 2e 20 20 54 68   up-to-date.  Th
2640: 65 79 20 61 72 65 20 72 65 74 61 69 6e 65 64 20  ey are retained 
2650: 66 6f 72 20 0a 20 20 68 69 73 74 6f 72 69 63 61  for .  historica
2660: 6c 20 72 65 66 65 72 65 6e 63 65 2e 0a 7d 0a 64  l reference..}.d
2670: 6f 63 20 7b 56 65 72 73 69 6f 6e 20 32 20 43 2f  oc {Version 2 C/
2680: 43 2b 2b 20 41 50 49 7d 20 7b 63 5f 69 6e 74 65  C++ API} {c_inte
2690: 72 66 61 63 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20  rface.html} {.  
26a0: 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66  A description of
26b0: 20 74 68 65 20 43 2f 43 2b 2b 20 69 6e 74 65 72   the C/C++ inter
26c0: 66 61 63 65 20 62 69 6e 64 69 6e 67 73 20 66 6f  face bindings fo
26d0: 72 20 53 51 4c 69 74 65 20 74 68 72 6f 75 67 68  r SQLite through
26e0: 20 76 65 72 73 69 6f 6e 20 0a 20 20 32 2e 38 0a   version .  2.8.
26f0: 7d 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20 32  }.doc {Version 2
2700: 20 44 61 74 61 54 79 70 65 73 20 7d 20 7b 64 61   DataTypes } {da
2710: 74 61 74 79 70 65 73 2e 68 74 6d 6c 7d 20 7b 0a  tatypes.html} {.
2720: 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20    A description 
2730: 6f 66 20 68 6f 77 20 53 51 4c 69 74 65 20 76 65  of how SQLite ve
2740: 72 73 69 6f 6e 20 32 20 68 61 6e 64 6c 65 73 20  rsion 2 handles 
2750: 53 51 4c 20 64 61 74 61 74 79 70 65 73 2e 0a 20  SQL datatypes.. 
2760: 20 53 68 6f 72 74 20 73 75 6d 6d 61 72 79 3a 20   Short summary: 
2770: 20 45 76 65 72 79 74 68 69 6e 67 20 69 73 20 61   Everything is a
2780: 20 73 74 72 69 6e 67 2e 0a 7d 0a 64 6f 63 20 7b   string..}.doc {
2790: 56 44 42 45 20 54 75 74 6f 72 69 61 6c 7d 20 7b  VDBE Tutorial} {
27a0: 76 64 62 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  vdbe.html} {.  T
27b0: 68 65 20 56 44 42 45 20 69 73 20 74 68 65 20 73  he VDBE is the s
27c0: 75 62 73 79 73 74 65 6d 20 77 69 74 68 69 6e 20  ubsystem within 
27d0: 53 51 4c 69 74 65 20 74 68 61 74 20 64 6f 65 73  SQLite that does
27e0: 20 74 68 65 20 61 63 74 75 61 6c 20 77 6f 72 6b   the actual work
27f0: 20 6f 66 0a 20 20 65 78 65 63 75 74 69 6e 67 20   of.  executing 
2800: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 20  SQL statements. 
2810: 20 54 68 69 73 20 70 61 67 65 20 64 65 73 63 72   This page descr
2820: 69 62 65 73 20 74 68 65 20 70 72 69 6e 63 69 70  ibes the princip
2830: 6c 65 73 20 6f 66 20 6f 70 65 72 61 74 69 6f 6e  les of operation
2840: 0a 20 20 66 6f 72 20 74 68 65 20 56 44 42 45 20  .  for the VDBE 
2850: 69 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f  in SQLite versio
2860: 6e 20 32 2e 37 2e 20 20 54 68 69 73 20 69 73 20  n 2.7.  This is 
2870: 65 73 73 65 6e 74 69 61 6c 20 72 65 61 64 69 6e  essential readin
2880: 67 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 20 20 77  g for anyone.  w
2890: 68 6f 20 77 61 6e 74 20 74 6f 20 6d 6f 64 69 66  ho want to modif
28a0: 79 20 74 68 65 20 53 51 4c 69 74 65 20 73 6f 75  y the SQLite sou
28b0: 72 63 65 73 2e 0a 7d 0a 64 6f 63 20 7b 53 51 4c  rces..}.doc {SQL
28c0: 69 74 65 20 56 65 72 73 69 6f 6e 20 33 7d 20 7b  ite Version 3} {
28d0: 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 7d 20 7b  version3.html} {
28e0: 0a 20 20 41 20 73 75 6d 6d 61 72 79 20 6f 66 20  .  A summary of 
28f0: 74 68 65 20 63 68 61 6e 67 65 73 20 62 65 74 77  the changes betw
2900: 65 65 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69  een SQLite versi
2910: 6f 6e 20 32 2e 38 20 61 6e 64 20 53 51 4c 69 74  on 2.8 and SQLit
2920: 65 20 76 65 72 73 69 6f 6e 20 33 2e 30 2e 0a 7d  e version 3.0..}
2930: 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20 33 20  .doc {Version 3 
2940: 43 2f 43 2b 2b 20 41 50 49 7d 20 7b 63 61 70 69  C/C++ API} {capi
2950: 33 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 73 75  3.html} {.  A su
2960: 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 41 50 49  mmary of the API
2970: 20 72 65 6c 61 74 65 64 20 63 68 61 6e 67 65 73   related changes
2980: 20 62 65 74 77 65 65 6e 20 53 51 4c 69 74 65 20   between SQLite 
2990: 76 65 72 73 69 6f 6e 20 32 2e 38 20 61 6e 64 20  version 2.8 and 
29a0: 0a 20 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f  .  SQLite versio
29b0: 6e 20 33 2e 30 2e 20 0a 7d 0a 64 6f 63 20 7b 53  n 3.0. .}.doc {S
29c0: 70 65 65 64 20 43 6f 6d 70 61 72 69 73 6f 6e 7d  peed Comparison}
29d0: 20 7b 73 70 65 65 64 2e 68 74 6d 6c 7d 20 7b 0a   {speed.html} {.
29e0: 20 20 54 68 65 20 73 70 65 65 64 20 6f 66 20 76    The speed of v
29f0: 65 72 73 69 6f 6e 20 32 2e 37 2e 36 20 6f 66 20  ersion 2.7.6 of 
2a00: 53 51 4c 69 74 65 20 69 73 20 63 6f 6d 70 61 72  SQLite is compar
2a10: 65 64 20 61 67 61 69 6e 73 74 20 50 6f 73 74 67  ed against Postg
2a20: 72 65 53 51 4c 20 61 6e 64 0a 20 20 4d 79 53 51  reSQL and.  MySQ
2a30: 4c 2e 0a 7d 0a 0a 3c 2f 74 63 6c 3e 0a 3c 2f 74  L..}..</tcl>.</t
2a40: 61 62 6c 65 3e 0a                                able>.