Documentation Source Text

Hex Artifact Content
Login

Artifact 2a0805d8aa8d4cae0d7e9a6822e94cac7df09220:


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 44 61 74 61 54 79 70 65 73 7d  .doc {DataTypes}
0d90: 20 7b 64 61 74 61 74 79 70 65 33 2e 68 74 6d 6c   {datatype3.html
0da0: 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20 76 65 72  } {.  SQLite ver
0db0: 73 69 6f 6e 20 33 20 69 6e 74 72 6f 64 75 63 65  sion 3 introduce
0dc0: 73 20 74 68 65 20 63 6f 6e 63 65 70 74 20 6f 66  s the concept of
0dd0: 20 6d 61 6e 69 66 65 73 74 20 74 79 70 69 6e 67   manifest typing
0de0: 2c 20 77 68 65 72 65 20 74 68 65 0a 20 20 74 79  , where the.  ty
0df0: 70 65 20 6f 66 20 61 20 76 61 6c 75 65 20 69 73  pe of a value is
0e00: 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68   associated with
0e10: 20 74 68 65 20 76 61 6c 75 65 20 69 74 73 65 6c   the value itsel
0e20: 66 2c 20 6e 6f 74 20 74 68 65 20 63 6f 6c 75 6d  f, not the colum
0e30: 6e 20 74 68 61 74 0a 20 20 69 74 20 69 73 20 73  n that.  it is s
0e40: 74 6f 72 65 64 20 69 6e 2e 0a 20 20 54 68 69 73  tored in..  This
0e50: 20 70 61 67 65 20 64 65 73 63 72 69 62 65 73 20   page describes 
0e60: 64 61 74 61 20 74 79 70 69 6e 67 20 66 6f 72 20  data typing for 
0e70: 53 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20 33  SQLite version 3
0e80: 20 69 6e 20 66 75 72 74 68 65 72 20 64 65 74 61   in further deta
0e90: 69 6c 2e 0a 7d 0a 0a 68 65 61 64 69 6e 67 20 7b  il..}..heading {
0ea0: 53 51 4c 69 74 65 20 46 65 61 74 75 72 65 73 20  SQLite Features 
0eb0: 61 6e 64 20 45 78 74 65 6e 73 69 6f 6e 73 7d 20  and Extensions} 
0ec0: 7b 0a 20 20 50 61 67 65 73 20 64 65 73 63 72 69  {.  Pages descri
0ed0: 62 69 6e 67 20 73 70 65 63 69 66 69 63 20 66 65  bing specific fe
0ee0: 61 74 75 72 65 73 20 6f 72 20 65 78 74 65 6e 73  atures or extens
0ef0: 69 6f 6e 20 6d 6f 64 75 6c 65 73 20 6f 66 20 53  ion modules of S
0f00: 51 4c 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b 38 2b  QLite..}.doc {8+
0f10: 33 20 46 69 6c 65 6e 61 6d 65 73 7d 20 7b 73 68  3 Filenames} {sh
0f20: 6f 72 74 6e 61 6d 65 73 2e 68 74 6d 6c 7d 20 7b  ortnames.html} {
0f30: 0a 20 20 48 6f 77 20 74 6f 20 6d 61 6b 65 20 53  .  How to make S
0f40: 51 4c 69 74 65 20 77 6f 72 6b 20 6f 6e 20 66 69  QLite work on fi
0f50: 6c 65 73 79 73 74 65 6d 73 20 74 68 61 74 20 6f  lesystems that o
0f60: 6e 6c 79 20 73 75 70 70 6f 72 74 20 0a 20 20 38  nly support .  8
0f70: 2b 33 20 66 69 6c 65 6e 61 6d 65 73 2e 0a 7d 0a  +3 filenames..}.
0f80: 64 6f 63 20 7b 41 75 74 6f 69 6e 63 72 65 6d 65  doc {Autoincreme
0f90: 6e 74 7d 20 7b 61 75 74 6f 69 6e 63 2e 68 74 6d  nt} {autoinc.htm
0fa0: 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70  l} {.  A descrip
0fb0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 41 55 54 4f  tion of the AUTO
0fc0: 49 4e 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72  INCREMENT keywor
0fd0: 64 20 69 6e 20 53 51 4c 69 74 65 2c 20 77 68 61  d in SQLite, wha
0fe0: 74 20 69 74 20 64 6f 65 73 2c 0a 20 20 77 68 79  t it does,.  why
0ff0: 20 69 74 20 69 73 20 73 6f 6d 65 74 69 6d 65 73   it is sometimes
1000: 20 75 73 65 66 75 6c 2c 20 61 6e 64 20 77 68 79   useful, and why
1010: 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 61 76   it should be av
1020: 6f 69 64 65 64 20 69 66 20 6e 6f 74 0a 20 20 73  oided if not.  s
1030: 74 72 69 63 74 6c 79 20 6e 65 63 65 73 73 61 72  trictly necessar
1040: 79 2e 0a 7d 0a 64 6f 63 20 7b 42 61 63 6b 75 70  y..}.doc {Backup
1050: 20 41 50 49 7d 20 7b 62 61 63 6b 75 70 2e 68 74   API} {backup.ht
1060: 6d 6c 7d 20 7b 0a 20 20 54 68 65 20 5b 73 71 6c  ml} {.  The [sql
1070: 69 74 65 33 5f 62 61 63 6b 75 70 5f 69 6e 69 74  ite3_backup_init
1080: 20 7c 20 6f 6e 6c 69 6e 65 2d 62 61 63 6b 75 70   | online-backup
1090: 20 69 6e 74 65 72 66 61 63 65 5d 20 63 61 6e 20   interface] can 
10a0: 62 65 20 75 73 65 64 20 74 6f 0a 20 20 63 6f 70  be used to.  cop
10b0: 79 20 63 6f 6e 74 65 6e 74 20 66 72 6f 6d 20 61  y content from a
10c0: 20 64 69 73 6b 20 66 69 6c 65 20 69 6e 74 6f 20   disk file into 
10d0: 61 6e 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74  an in-memory dat
10e0: 61 62 61 73 65 20 6f 72 20 76 69 63 65 0a 20 20  abase or vice.  
10f0: 76 65 72 73 61 20 61 6e 64 20 69 74 20 63 61 6e  versa and it can
1100: 20 6d 61 6b 65 20 61 20 68 6f 74 20 62 61 63 6b   make a hot back
1110: 75 70 20 6f 66 20 61 20 6c 69 76 65 20 64 61 74  up of a live dat
1120: 61 62 61 73 65 2e 20 20 54 68 69 73 20 61 70 70  abase.  This app
1130: 6c 69 63 61 74 69 6f 6e 0a 20 20 6e 6f 74 65 20  lication.  note 
1140: 67 69 76 65 73 20 65 78 61 6d 70 6c 65 73 20 6f  gives examples o
1150: 66 20 68 6f 77 2e 0a 7d 0a 64 6f 63 20 7b 43 6f  f how..}.doc {Co
1160: 6d 6d 61 6e 64 2d 4c 69 6e 65 20 53 68 65 6c 6c  mmand-Line Shell
1170: 7d 20 7b 63 6c 69 2e 68 74 6d 6c 7d 20 7b 0a 20  } {cli.html} {. 
1180: 20 4e 6f 74 65 73 20 6f 6e 20 75 73 69 6e 67 20   Notes on using 
1190: 74 68 65 20 22 73 71 6c 69 74 65 33 2e 65 78 65  the "sqlite3.exe
11a0: 22 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 69  " command-line i
11b0: 6e 74 65 72 66 61 63 65 20 74 68 61 74 0a 20 20  nterface that.  
11c0: 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63  can be used to c
11d0: 72 65 61 74 65 2c 20 6d 6f 64 69 66 79 2c 20 61  reate, modify, a
11e0: 6e 64 20 71 75 65 72 79 20 61 72 62 69 74 72 61  nd query arbitra
11f0: 72 79 20 53 51 4c 69 74 65 0a 20 20 64 61 74 61  ry SQLite.  data
1200: 62 61 73 65 20 66 69 6c 65 73 2e 0a 7d 0a 64 6f  base files..}.do
1210: 63 20 7b 45 72 72 6f 72 20 61 6e 64 20 57 61 72  c {Error and War
1220: 6e 69 6e 67 20 4c 6f 67 7d 20 7b 65 72 72 6c 6f  ning Log} {errlo
1230: 67 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69  g.html} {.  SQLi
1240: 74 65 20 73 75 70 70 6f 72 74 73 20 61 6e 20 22  te supports an "
1250: 65 72 72 6f 72 20 61 6e 64 20 77 61 72 6e 69 6e  error and warnin
1260: 67 20 6c 6f 67 22 20 64 65 73 69 67 6e 20 74 6f  g log" design to
1270: 20 63 61 70 74 75 72 65 20 69 6e 66 6f 72 6d 61   capture informa
1280: 74 69 6f 6e 0a 20 20 61 62 6f 75 74 20 73 75 73  tion.  about sus
1290: 70 69 63 69 6f 75 73 20 61 6e 64 2f 6f 72 20 65  picious and/or e
12a0: 72 72 6f 72 20 65 76 65 6e 74 73 20 64 75 72 69  rror events duri
12b0: 6e 67 20 6f 70 65 72 61 74 69 6f 6e 2e 20 20 45  ng operation.  E
12c0: 6d 62 65 64 64 65 64 20 61 70 70 6c 69 63 61 74  mbedded applicat
12d0: 69 6f 6e 73 0a 20 20 61 72 65 20 65 6e 63 6f 75  ions.  are encou
12e0: 72 61 67 65 64 20 74 6f 20 65 6e 61 62 6c 65 20  raged to enable 
12f0: 74 68 65 20 65 72 72 6f 72 20 61 6e 64 20 77 61  the error and wa
1300: 72 6e 69 6e 67 20 6c 6f 67 20 74 6f 20 68 65 6c  rning log to hel
1310: 70 20 77 69 74 68 20 64 65 62 75 67 67 69 6e 67  p with debugging
1320: 0a 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 70  .  application p
1330: 72 6f 62 6c 65 6d 73 20 74 68 61 74 20 61 72 69  roblems that ari
1340: 73 65 20 69 6e 20 74 68 65 20 66 69 65 6c 64 2e  se in the field.
1350: 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20    This document 
1360: 65 78 70 6c 61 69 6e 73 20 68 6f 77 0a 20 20 74  explains how.  t
1370: 6f 20 64 6f 20 74 68 61 74 2e 0a 7d 0a 64 6f 63  o do that..}.doc
1380: 20 7b 46 6f 72 65 69 67 6e 20 4b 65 79 20 53 75   {Foreign Key Su
1390: 70 70 6f 72 74 7d 20 7b 66 6f 72 65 69 67 6e 6b  pport} {foreignk
13a0: 65 79 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  eys.html} {.  Th
13b0: 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63  is document desc
13c0: 72 69 62 65 73 20 74 68 65 20 73 75 70 70 6f 72  ribes the suppor
13d0: 74 20 66 6f 72 20 66 6f 72 65 69 67 6e 20 6b 65  t for foreign ke
13e0: 79 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e  y constraints in
13f0: 74 72 6f 64 75 63 65 64 0a 20 20 69 6e 20 76 65  troduced.  in ve
1400: 72 73 69 6f 6e 20 33 2e 36 2e 31 39 2e 0a 7d 0a  rsion 3.6.19..}.
1410: 64 6f 63 20 7b 46 75 6c 6c 20 54 65 78 74 20 53  doc {Full Text S
1420: 65 61 72 63 68 7d 20 7b 66 74 73 33 2e 68 74 6d  earch} {fts3.htm
1430: 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70  l} {.  A descrip
1440: 74 69 6f 6e 20 6f 66 20 74 68 65 20 53 51 4c 69  tion of the SQLi
1450: 74 65 20 46 75 6c 6c 20 54 65 78 74 20 53 65 61  te Full Text Sea
1460: 72 63 68 20 28 46 54 53 33 29 20 65 78 74 65 6e  rch (FTS3) exten
1470: 73 69 6f 6e 2e 0a 7d 0a 64 6f 63 20 7b 49 6e 64  sion..}.doc {Ind
1480: 65 78 65 73 20 4f 6e 20 45 78 70 72 65 73 73 69  exes On Expressi
1490: 6f 6e 73 7d 20 7b 65 78 70 72 69 64 78 2e 68 74  ons} {expridx.ht
14a0: 6d 6c 7d 20 7b 0a 20 20 4e 6f 74 65 73 20 6f 6e  ml} {.  Notes on
14b0: 20 68 6f 77 20 74 6f 20 63 72 65 61 74 65 20 69   how to create i
14c0: 6e 64 65 78 65 73 20 6f 6e 20 65 78 70 72 65 73  ndexes on expres
14d0: 73 69 6f 6e 73 20 69 6e 73 74 65 61 64 20 6f 66  sions instead of
14e0: 20 6a 75 73 74 0a 20 20 69 6e 64 69 76 69 64 75   just.  individu
14f0: 61 6c 20 63 6f 6c 75 6d 6e 73 2e 0a 7d 0a 64 6f  al columns..}.do
1500: 63 20 7b 49 6e 74 65 72 6e 61 6c 20 76 65 72 73  c {Internal vers
1510: 75 73 20 45 78 74 65 72 6e 61 6c 20 42 6c 6f 62  us External Blob
1520: 20 53 74 6f 72 61 67 65 7d 20 7b 69 6e 74 65 72   Storage} {inter
1530: 6e 2d 76 2d 65 78 74 65 72 6e 2d 62 6c 6f 62 2e  n-v-extern-blob.
1540: 68 74 6d 6c 7d 20 7b 0a 20 20 53 68 6f 75 6c 64  html} {.  Should
1550: 20 79 6f 75 20 73 74 6f 72 65 20 6c 61 72 67 65   you store large
1560: 20 42 4c 4f 42 73 20 64 69 72 65 63 74 6c 79 20   BLOBs directly 
1570: 69 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 2c  in the database,
1580: 20 6f 72 20 73 74 6f 72 65 20 74 68 65 6d 0a 20   or store them. 
1590: 20 69 6e 20 66 69 6c 65 73 20 61 6e 64 20 6a 75   in files and ju
15a0: 73 74 20 72 65 63 6f 72 64 20 74 68 65 20 66 69  st record the fi
15b0: 6c 65 6e 61 6d 65 20 69 6e 20 74 68 65 20 64 61  lename in the da
15c0: 74 61 62 61 73 65 3f 20 20 54 68 69 73 20 64 6f  tabase?  This do
15d0: 63 75 6d 65 6e 74 0a 20 20 73 65 65 6b 73 20 74  cument.  seeks t
15e0: 6f 20 73 68 65 64 20 6c 69 67 68 74 20 6f 6e 20  o shed light on 
15f0: 74 68 61 74 20 71 75 65 73 74 69 6f 6e 2e 0a 7d  that question..}
1600: 0a 64 6f 63 20 7b 4c 69 6d 69 74 73 20 49 6e 20  .doc {Limits In 
1610: 53 51 4c 69 74 65 7d 20 7b 6c 69 6d 69 74 73 2e  SQLite} {limits.
1620: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64  html} {.  This d
1630: 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65  ocument describe
1640: 73 20 6c 69 6d 69 74 61 74 69 6f 6e 73 20 6f 66  s limitations of
1650: 20 53 51 4c 69 74 65 20 28 74 68 65 20 6d 61 78   SQLite (the max
1660: 69 6d 75 6d 20 6c 65 6e 67 74 68 20 6f 66 20 61  imum length of a
1670: 0a 20 20 73 74 72 69 6e 67 20 6f 72 20 62 6c 6f  .  string or blo
1680: 62 2c 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 73  b, the maximum s
1690: 69 7a 65 20 6f 66 20 61 20 64 61 74 61 62 61 73  ize of a databas
16a0: 65 2c 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e  e, the maximum n
16b0: 75 6d 62 65 72 20 6f 66 0a 20 20 74 61 62 6c 65  umber of.  table
16c0: 73 20 69 6e 20 61 20 64 61 74 61 62 61 73 65 2c  s in a database,
16d0: 20 65 74 63 2e 29 20 61 6e 64 20 68 6f 77 20 74   etc.) and how t
16e0: 68 65 73 65 20 6c 69 6d 69 74 73 20 63 61 6e 20  hese limits can 
16f0: 62 65 20 61 6c 74 65 72 65 64 20 61 74 0a 20 20  be altered at.  
1700: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64  compile-time and
1710: 20 72 75 6e 2d 74 69 6d 65 2e 0a 7d 0a 64 6f 63   run-time..}.doc
1720: 20 7b 4d 65 6d 6f 72 79 2d 4d 61 70 70 65 64 20   {Memory-Mapped 
1730: 49 2f 4f 7d 20 7b 6d 6d 61 70 2e 68 74 6d 6c 7d  I/O} {mmap.html}
1740: 20 7b 0a 20 20 53 51 4c 69 74 65 20 73 75 70 70   {.  SQLite supp
1750: 6f 72 74 73 20 6d 65 6d 6f 72 79 2d 6d 61 70 70  orts memory-mapp
1760: 65 64 20 49 2f 4f 2e 20 20 4c 65 61 72 6e 20 68  ed I/O.  Learn h
1770: 6f 77 20 74 6f 20 65 6e 61 62 6c 65 20 6d 65 6d  ow to enable mem
1780: 6f 72 79 2d 6d 61 70 70 65 64 0a 20 20 49 2f 4f  ory-mapped.  I/O
1790: 20 61 6e 64 20 61 62 6f 75 74 20 74 68 65 20 76   and about the v
17a0: 61 72 69 6f 75 73 20 61 64 76 61 6e 74 61 67 65  arious advantage
17b0: 73 20 61 6e 64 20 64 69 73 61 64 76 61 6e 74 61  s and disadvanta
17c0: 67 65 73 20 74 6f 20 75 73 69 6e 67 0a 20 20 6d  ges to using.  m
17d0: 65 6d 6f 72 79 2d 6d 61 70 70 65 64 20 49 2f 4f  emory-mapped I/O
17e0: 20 69 6e 20 74 68 69 73 20 64 6f 63 75 6d 65 6e   in this documen
17f0: 74 2e 0a 7d 0a 64 6f 63 20 7b 4d 75 6c 74 69 2d  t..}.doc {Multi-
1800: 74 68 72 65 61 64 65 64 20 50 72 6f 67 72 61 6d  threaded Program
1810: 73 20 61 6e 64 20 53 51 4c 69 74 65 7d 20 7b 74  s and SQLite} {t
1820: 68 72 65 61 64 73 61 66 65 2e 68 74 6d 6c 7d 20  hreadsafe.html} 
1830: 7b 0a 20 20 53 51 4c 69 74 65 20 69 73 20 73 61  {.  SQLite is sa
1840: 66 65 20 74 6f 20 75 73 65 20 69 6e 20 6d 75 6c  fe to use in mul
1850: 74 69 2d 74 68 72 65 61 64 65 64 20 70 72 6f 67  ti-threaded prog
1860: 72 61 6d 73 2e 20 20 54 68 69 73 20 64 6f 63 75  rams.  This docu
1870: 6d 65 6e 74 0a 20 20 70 72 6f 76 69 64 65 73 20  ment.  provides 
1880: 74 68 65 20 64 65 74 61 69 6c 73 20 61 6e 64 20  the details and 
1890: 68 69 6e 74 73 20 6f 6e 20 68 6f 77 20 74 6f 20  hints on how to 
18a0: 6d 61 78 69 6d 69 7a 65 20 70 65 72 66 6f 72 6d  maximize perform
18b0: 61 6e 63 65 2e 0a 7d 0a 64 6f 63 20 7b 4e 75 6c  ance..}.doc {Nul
18c0: 6c 20 48 61 6e 64 6c 69 6e 67 7d 20 7b 6e 75 6c  l Handling} {nul
18d0: 6c 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 44 69 66  ls.html} {.  Dif
18e0: 66 65 72 65 6e 74 20 53 51 4c 20 64 61 74 61 62  ferent SQL datab
18f0: 61 73 65 20 65 6e 67 69 6e 65 73 20 68 61 6e 64  ase engines hand
1900: 6c 65 20 4e 55 4c 4c 73 20 69 6e 20 64 69 66 66  le NULLs in diff
1910: 65 72 65 6e 74 20 77 61 79 73 2e 20 20 54 68 65  erent ways.  The
1920: 0a 20 20 53 51 4c 20 73 74 61 6e 64 61 72 64 73  .  SQL standards
1930: 20 61 72 65 20 61 6d 62 69 67 75 6f 75 73 2e 20   are ambiguous. 
1940: 20 54 68 69 73 20 28 63 69 72 63 61 20 32 30 30   This (circa 200
1950: 33 29 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63  3) document desc
1960: 72 69 62 65 73 0a 20 20 68 6f 77 20 53 51 4c 69  ribes.  how SQLi
1970: 74 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73  te handles NULLs
1980: 20 69 6e 20 63 6f 6d 70 61 72 69 73 6f 6e 20 77   in comparison w
1990: 69 74 68 20 6f 74 68 65 72 20 53 51 4c 20 64 61  ith other SQL da
19a0: 74 61 62 61 73 65 20 65 6e 67 69 6e 65 73 2e 0a  tabase engines..
19b0: 7d 0a 64 6f 63 20 7b 50 61 72 74 69 61 6c 20 49  }.doc {Partial I
19c0: 6e 64 65 78 65 73 7d 20 7b 70 61 72 74 69 61 6c  ndexes} {partial
19d0: 69 6e 64 65 78 2e 68 74 6d 6c 7d 20 7b 0a 20 20  index.html} {.  
19e0: 41 20 70 61 72 74 69 61 6c 20 69 6e 64 65 78 20  A partial index 
19f0: 69 73 20 61 6e 20 69 6e 64 65 78 20 74 68 61 74  is an index that
1a00: 20 6f 6e 6c 79 20 63 6f 76 65 72 73 20 61 20 73   only covers a s
1a10: 75 62 73 65 74 20 6f 66 20 74 68 65 20 72 6f 77  ubset of the row
1a20: 73 20 69 6e 0a 20 20 61 20 74 61 62 6c 65 2e 20  s in.  a table. 
1a30: 20 4c 65 61 72 6e 20 68 6f 77 20 74 6f 20 75 73   Learn how to us
1a40: 65 20 70 61 72 74 69 61 6c 20 69 6e 64 65 78 65  e partial indexe
1a50: 73 20 69 6e 20 53 51 4c 69 74 65 20 66 72 6f 6d  s in SQLite from
1a60: 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 2e 0a   this document..
1a70: 7d 0a 64 6f 63 20 7b 52 2d 54 72 65 65 73 7d 20  }.doc {R-Trees} 
1a80: 7b 72 74 72 65 65 2e 68 74 6d 6c 7d 20 7b 0a 20  {rtree.html} {. 
1a90: 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f   A description o
1aa0: 66 20 74 68 65 20 53 51 4c 69 74 65 20 52 2d 54  f the SQLite R-T
1ab0: 72 65 65 20 65 78 74 65 6e 73 69 6f 6e 2e 20 41  ree extension. A
1ac0: 6e 20 52 2d 54 72 65 65 20 69 73 20 61 20 73 70  n R-Tree is a sp
1ad0: 65 63 69 61 6c 69 7a 65 64 0a 20 20 64 61 74 61  ecialized.  data
1ae0: 20 73 74 72 75 63 74 75 72 65 20 74 68 61 74 20   structure that 
1af0: 73 75 70 70 6f 72 74 73 20 66 61 73 74 20 6d 75  supports fast mu
1b00: 6c 74 69 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20  lti-dimensional 
1b10: 72 61 6e 67 65 20 71 75 65 72 69 65 73 20 6f 66  range queries of
1b20: 74 65 6e 0a 20 20 75 73 65 64 20 69 6e 20 67 65  ten.  used in ge
1b30: 6f 73 70 61 74 69 61 6c 20 73 79 73 74 65 6d 73  ospatial systems
1b40: 2e 0a 7d 0a 64 6f 63 20 7b 52 75 6e 2d 54 69 6d  ..}.doc {Run-Tim
1b50: 65 20 4c 6f 61 64 61 62 6c 65 20 45 78 74 65 6e  e Loadable Exten
1b60: 73 69 6f 6e 73 7d 20 7b 6c 6f 61 64 65 78 74 2e  sions} {loadext.
1b70: 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 67 65 6e 65  html} {.  A gene
1b80: 72 61 6c 20 6f 76 65 72 76 69 65 77 20 6f 6e 20  ral overview on 
1b90: 68 6f 77 20 72 75 6e 2d 74 69 6d 65 20 6c 6f 61  how run-time loa
1ba0: 64 61 62 6c 65 20 65 78 74 65 6e 73 69 6f 6e 73  dable extensions
1bb0: 20 77 6f 72 6b 2c 20 68 6f 77 20 74 68 65 79 0a   work, how they.
1bc0: 20 20 61 72 65 20 63 6f 6d 70 69 6c 65 64 2c 20    are compiled, 
1bd0: 61 6e 64 20 68 6f 77 20 64 65 76 65 6c 6f 70 65  and how develope
1be0: 72 73 20 63 61 6e 20 63 72 65 61 74 65 20 74 68  rs can create th
1bf0: 65 69 72 20 6f 77 6e 20 72 75 6e 2d 74 69 6d 65  eir own run-time
1c00: 20 6c 6f 61 64 61 62 6c 65 0a 20 20 65 78 74 65   loadable.  exte
1c10: 6e 73 69 6f 6e 73 20 66 6f 72 20 53 51 4c 69 74  nsions for SQLit
1c20: 65 2e 0a 7d 0a 64 6f 63 20 7b 53 68 61 72 65 64  e..}.doc {Shared
1c30: 20 43 61 63 68 65 20 4d 6f 64 65 7d 20 7b 73 68   Cache Mode} {sh
1c40: 61 72 65 64 63 61 63 68 65 2e 68 74 6d 6c 7d 20  aredcache.html} 
1c50: 7b 0a 20 20 56 65 72 73 69 6f 6e 20 33 2e 33 2e  {.  Version 3.3.
1c60: 30 20 61 6e 64 20 6c 61 74 65 72 20 73 75 70 70  0 and later supp
1c70: 6f 72 74 73 20 74 68 65 20 61 62 69 6c 69 74 79  orts the ability
1c80: 20 66 6f 72 20 74 77 6f 20 6f 72 20 6d 6f 72 65   for two or more
1c90: 0a 20 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e  .  database conn
1ca0: 65 63 74 69 6f 6e 73 20 74 6f 20 73 68 61 72 65  ections to share
1cb0: 20 74 68 65 20 73 61 6d 65 20 70 61 67 65 20 61   the same page a
1cc0: 6e 64 20 73 63 68 65 6d 61 20 63 61 63 68 65 2e  nd schema cache.
1cd0: 0a 20 20 54 68 69 73 20 66 65 61 74 75 72 65 20  .  This feature 
1ce0: 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 63 65  is useful for ce
1cf0: 72 74 61 69 6e 20 73 70 65 63 69 61 6c 69 7a 65  rtain specialize
1d00: 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 0a  d applications..
1d10: 7d 0a 64 6f 63 20 7b 55 6e 6c 6f 63 6b 20 4e 6f  }.doc {Unlock No
1d20: 74 69 66 79 7d 20 7b 75 6e 6c 6f 63 6b 5f 6e 6f  tify} {unlock_no
1d30: 74 69 66 79 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  tify.html} {.  T
1d40: 68 65 20 22 75 6e 6c 6f 63 6b 20 6e 6f 74 69 66  he "unlock notif
1d50: 79 22 20 66 65 61 74 75 72 65 20 63 61 6e 20 62  y" feature can b
1d60: 65 20 75 73 65 64 20 69 6e 20 63 6f 6e 6a 75 6e  e used in conjun
1d70: 63 74 69 6f 6e 20 77 69 74 68 0a 20 20 5b 73 68  ction with.  [sh
1d80: 61 72 65 64 20 63 61 63 68 65 20 6d 6f 64 65 5d  ared cache mode]
1d90: 20 74 6f 20 6d 6f 72 65 20 65 66 66 69 63 69 65   to more efficie
1da0: 6e 74 6c 79 20 6d 61 6e 61 67 65 20 72 65 73 6f  ntly manage reso
1db0: 75 72 63 65 20 63 6f 6e 66 6c 69 63 74 20 28 64  urce conflict (d
1dc0: 61 74 61 62 61 73 65 0a 20 20 74 61 62 6c 65 20  atabase.  table 
1dd0: 6c 6f 63 6b 73 29 2e 0a 7d 0a 64 6f 63 20 7b 55  locks)..}.doc {U
1de0: 52 49 20 46 69 6c 65 6e 61 6d 65 73 7d 20 7b 75  RI Filenames} {u
1df0: 72 69 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65  ri.html} {.  The
1e00: 20 6e 61 6d 65 73 20 6f 66 20 64 61 74 61 62 61   names of databa
1e10: 73 65 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20  se files can be 
1e20: 73 70 65 63 69 66 69 65 64 20 75 73 69 6e 67 20  specified using 
1e30: 65 69 74 68 65 72 20 61 6e 20 6f 72 64 69 6e 61  either an ordina
1e40: 72 79 0a 20 20 66 69 6c 65 6e 61 6d 65 20 6f 72  ry.  filename or
1e50: 20 61 20 55 52 49 2e 20 20 55 73 69 6e 67 20 55   a URI.  Using U
1e60: 52 49 20 66 69 6c 65 6e 61 6d 65 73 20 70 72 6f  RI filenames pro
1e70: 76 69 64 65 73 20 61 64 64 69 74 69 6f 6e 61 6c  vides additional
1e80: 20 63 61 70 61 62 69 6c 69 74 69 65 73 2c 0a 20   capabilities,. 
1e90: 20 61 73 20 74 68 69 73 20 64 6f 63 75 6d 65 6e   as this documen
1ea0: 74 20 64 65 73 63 72 69 62 65 73 2e 0a 7d 0a 64  t describes..}.d
1eb0: 6f 63 20 7b 57 49 54 48 4f 55 54 20 52 4f 57 49  oc {WITHOUT ROWI
1ec0: 44 20 54 61 62 6c 65 73 7d 20 7b 77 69 74 68 6f  D Tables} {witho
1ed0: 75 74 72 6f 77 69 64 2e 68 74 6d 6c 7d 20 7b 0a  utrowid.html} {.
1ee0: 20 20 54 68 65 20 57 49 54 48 4f 55 54 20 52 4f    The WITHOUT RO
1ef0: 57 49 44 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  WID optimization
1f00: 20 69 73 20 61 20 6f 70 74 69 6f 6e 20 74 68 61   is a option tha
1f10: 74 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20  t can sometimes 
1f20: 72 65 73 75 6c 74 0a 20 20 69 6e 20 73 6d 61 6c  result.  in smal
1f30: 6c 65 72 20 61 6e 64 20 66 61 73 74 65 72 20 64  ler and faster d
1f40: 61 74 61 62 61 73 65 73 2e 0a 7d 0a 64 6f 63 20  atabases..}.doc 
1f50: 7b 57 72 69 74 65 2d 41 68 65 61 64 20 4c 6f 67  {Write-Ahead Log
1f60: 20 28 57 41 4c 29 20 4d 6f 64 65 7d 20 7b 77 61   (WAL) Mode} {wa
1f70: 6c 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 72 61 6e  l.html} {.  Tran
1f80: 73 61 63 74 69 6f 6e 20 63 6f 6e 74 72 6f 6c 20  saction control 
1f90: 75 73 69 6e 67 20 61 20 77 72 69 74 65 2d 61 68  using a write-ah
1fa0: 65 61 64 20 6c 6f 67 20 6f 66 66 65 72 73 20 6d  ead log offers m
1fb0: 6f 72 65 20 63 6f 6e 63 75 72 72 65 6e 63 79 20  ore concurrency 
1fc0: 61 6e 64 0a 20 20 69 73 20 6f 66 74 65 6e 20 66  and.  is often f
1fd0: 61 73 74 65 72 20 74 68 61 6e 20 74 68 65 20 64  aster than the d
1fe0: 65 66 61 75 6c 74 20 72 6f 6c 6c 62 61 63 6b 20  efault rollback 
1ff0: 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 54  transactions.  T
2000: 68 69 73 20 64 6f 63 75 6d 65 6e 74 0a 20 20 65  his document.  e
2010: 78 70 6c 61 69 6e 73 20 68 6f 77 20 74 6f 20 75  xplains how to u
2020: 73 65 20 57 41 4c 20 6d 6f 64 65 20 66 6f 72 20  se WAL mode for 
2030: 69 6d 70 72 6f 76 65 64 20 70 65 72 66 6f 72 6d  improved perform
2040: 61 6e 63 65 2e 0a 7d 0a 0a 68 65 61 64 69 6e 67  ance..}..heading
2050: 20 7b 41 64 76 6f 63 61 63 79 7d 20 7b 0a 20 20   {Advocacy} {.  
2060: 44 6f 63 75 6d 65 6e 74 73 20 74 68 61 74 20 73  Documents that s
2070: 74 72 69 76 65 20 74 6f 20 65 6e 63 6f 75 72 61  trive to encoura
2080: 67 65 20 74 68 65 20 75 73 65 20 6f 66 20 53 51  ge the use of SQ
2090: 4c 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b 53 51 4c  Lite..}.doc {SQL
20a0: 69 74 65 20 41 73 20 41 6e 20 41 70 70 6c 69 63  ite As An Applic
20b0: 61 74 69 6f 6e 20 46 69 6c 65 20 46 6f 72 6d 61  ation File Forma
20c0: 74 7d 20 7b 61 70 70 66 69 6c 65 66 6f 72 6d 61  t} {appfileforma
20d0: 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73  t.html} {.  This
20e0: 20 61 72 74 69 63 6c 65 20 61 64 76 6f 63 61 74   article advocat
20f0: 65 73 20 75 73 69 6e 67 20 53 51 4c 69 74 65 20  es using SQLite 
2100: 61 73 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f  as an applicatio
2110: 6e 20 66 69 6c 65 20 66 6f 72 6d 61 74 0a 20 20  n file format.  
2120: 69 6e 20 70 6c 61 63 65 20 6f 66 20 58 4d 4c 20  in place of XML 
2130: 6f 72 20 4a 53 4f 4e 20 6f 72 20 61 20 22 70 69  or JSON or a "pi
2140: 6c 65 2d 6f 66 2d 66 69 6c 65 22 2e 0a 7d 0a 64  le-of-file"..}.d
2150: 6f 63 20 7b 57 65 6c 6c 20 4b 6e 6f 77 6e 20 55  oc {Well Known U
2160: 73 65 72 73 7d 20 7b 66 61 6d 6f 75 73 2e 68 74  sers} {famous.ht
2170: 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 70 61 67  ml} {.  This pag
2180: 65 20 6c 69 73 74 73 20 61 20 73 6d 61 6c 6c 20  e lists a small 
2190: 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 6d 61  subset of the ma
21a0: 6e 79 20 74 68 6f 75 73 61 6e 64 73 20 6f 66 20  ny thousands of 
21b0: 64 65 76 69 63 65 73 0a 20 20 61 6e 64 20 61 70  devices.  and ap
21c0: 70 6c 69 63 61 74 69 6f 6e 20 70 72 6f 67 72 61  plication progra
21d0: 6d 73 20 74 68 61 74 20 6d 61 6b 65 20 75 73 65  ms that make use
21e0: 20 6f 66 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a 0a   of SQLite..}...
21f0: 68 65 61 64 69 6e 67 20 7b 53 51 4c 69 74 65 20  heading {SQLite 
2200: 54 65 63 68 6e 69 63 61 6c 2f 44 65 73 69 67 6e  Technical/Design
2210: 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 7d 20   Documentation} 
2220: 7b 0a 20 20 54 68 65 73 65 20 64 6f 63 75 6d 65  {.  These docume
2230: 6e 74 73 20 61 72 65 20 6f 72 69 65 6e 74 65 64  nts are oriented
2240: 20 74 6f 77 61 72 64 20 64 65 73 63 72 69 62 69   toward describi
2250: 6e 67 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 0a  ng the internal.
2260: 20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e    implementation
2270: 20 64 65 74 61 69 6c 73 20 61 6e 64 20 6f 70 65   details and ope
2280: 72 61 74 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65  ration of SQLite
2290: 2e 20 20 0a 7d 0a 0a 64 6f 63 20 7b 48 6f 77 20  .  .}..doc {How 
22a0: 44 61 74 61 62 61 73 65 20 43 6f 72 72 75 70 74  Database Corrupt
22b0: 69 6f 6e 20 43 61 6e 20 4f 63 63 75 72 7d 20 7b  ion Can Occur} {
22c0: 68 6f 77 74 6f 63 6f 72 72 75 70 74 2e 68 74 6d  howtocorrupt.htm
22d0: 6c 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20 69 73  l} {.  SQLite is
22e0: 20 68 69 67 68 6c 79 20 72 65 73 69 73 74 65 6e   highly resisten
22f0: 74 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f  t to database co
2300: 72 72 75 70 74 69 6f 6e 2e 20 20 42 75 74 20 61  rruption.  But a
2310: 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 4f 53  pplication,.  OS
2320: 2c 20 61 6e 64 20 68 61 72 64 77 61 72 65 20 62  , and hardware b
2330: 75 67 73 20 63 61 6e 20 73 74 69 6c 6c 20 72 65  ugs can still re
2340: 73 75 6c 74 20 69 6e 20 63 6f 72 72 75 70 74 20  sult in corrupt 
2350: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e 0a  database files..
2360: 20 20 54 68 69 73 20 61 72 74 69 63 6c 65 20 64    This article d
2370: 65 73 63 72 69 62 65 73 20 6d 61 6e 79 20 6f 66  escribes many of
2380: 20 74 68 65 20 77 61 79 73 20 74 68 61 74 20 53   the ways that S
2390: 51 4c 69 74 65 20 64 61 74 61 62 61 73 65 20 66  QLite database f
23a0: 69 6c 65 73 0a 20 20 63 61 6e 20 67 6f 20 63 6f  iles.  can go co
23b0: 72 72 75 70 74 2e 0a 7d 0a 0a 64 6f 63 20 7b 54  rrupt..}..doc {T
23c0: 65 6d 70 6f 72 61 72 79 20 46 69 6c 65 73 20 55  emporary Files U
23d0: 73 65 64 20 42 79 20 53 51 4c 69 74 65 7d 20 7b  sed By SQLite} {
23e0: 74 65 6d 70 66 69 6c 65 73 2e 68 74 6d 6c 7d 20  tempfiles.html} 
23f0: 7b 0a 20 20 53 51 4c 69 74 65 20 63 61 6e 20 70  {.  SQLite can p
2400: 6f 74 65 6e 74 69 61 6c 6c 79 20 75 73 65 20 6d  otentially use m
2410: 61 6e 79 20 64 69 66 66 65 72 65 6e 74 20 74 65  any different te
2420: 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 77 68  mporary files wh
2430: 65 6e 0a 20 20 70 72 6f 63 65 73 73 69 6e 67 20  en.  processing 
2440: 63 65 72 74 61 69 6e 20 53 51 4c 20 73 74 61 74  certain SQL stat
2450: 65 6d 65 6e 74 73 2e 20 20 54 68 69 73 20 64 6f  ements.  This do
2460: 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73  cument describes
2470: 20 74 68 65 0a 20 20 6d 61 6e 79 20 6b 69 6e 64   the.  many kind
2480: 73 20 6f 66 20 74 65 6d 70 6f 72 61 72 79 20 66  s of temporary f
2490: 69 6c 65 73 20 74 68 61 74 20 53 51 4c 69 74 65  iles that SQLite
24a0: 20 75 73 65 73 20 61 6e 64 20 6f 66 66 65 72 73   uses and offers
24b0: 20 73 75 67 67 65 73 74 69 6f 6e 73 0a 20 20 66   suggestions.  f
24c0: 6f 72 20 61 76 6f 69 64 69 6e 67 20 74 68 65 6d  or avoiding them
24d0: 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65 72   on systems wher
24e0: 65 20 63 72 65 61 74 69 6e 67 20 61 20 74 65 6d  e creating a tem
24f0: 70 6f 72 61 72 79 20 66 69 6c 65 20 69 73 20 61  porary file is a
2500: 6e 0a 20 20 65 78 70 65 6e 73 69 76 65 20 6f 70  n.  expensive op
2510: 65 72 61 74 69 6f 6e 2e 0a 7d 0a 0a 64 6f 63 20  eration..}..doc 
2520: 7b 49 6e 2d 4d 65 6d 6f 72 79 20 44 61 74 61 62  {In-Memory Datab
2530: 61 73 65 73 7d 20 7b 69 6e 6d 65 6d 6f 72 79 64  ases} {inmemoryd
2540: 62 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69  b.html} {.  SQLi
2550: 74 65 20 6e 6f 72 6d 61 6c 6c 79 20 73 74 6f 72  te normally stor
2560: 65 73 20 63 6f 6e 74 65 6e 74 20 69 6e 20 61 20  es content in a 
2570: 64 69 73 6b 20 66 69 6c 65 2e 20 20 48 6f 77 65  disk file.  Howe
2580: 76 65 72 2c 20 69 74 20 63 61 6e 20 61 6c 73 6f  ver, it can also
2590: 0a 20 20 62 65 20 75 73 65 64 20 61 73 20 61 6e  .  be used as an
25a0: 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62   in-memory datab
25b0: 61 73 65 20 65 6e 67 69 6e 65 2e 20 20 54 68 69  ase engine.  Thi
25c0: 73 20 64 6f 63 75 6d 65 6e 74 20 65 78 70 6c 61  s document expla
25d0: 69 6e 73 20 68 6f 77 2e 0a 7d 0a 0a 64 6f 63 20  ins how..}..doc 
25e0: 7b 48 6f 77 20 53 51 4c 69 74 65 20 49 6d 70 6c  {How SQLite Impl
25f0: 65 6d 65 6e 74 73 20 41 74 6f 6d 69 63 20 43 6f  ements Atomic Co
2600: 6d 6d 69 74 7d 20 7b 61 74 6f 6d 69 63 63 6f 6d  mmit} {atomiccom
2610: 6d 69 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  mit.html} {.  A 
2620: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
2630: 68 65 20 6c 6f 67 69 63 20 77 69 74 68 69 6e 20  he logic within 
2640: 53 51 4c 69 74 65 20 74 68 61 74 20 69 6d 70 6c  SQLite that impl
2650: 65 6d 65 6e 74 73 0a 20 20 74 72 61 6e 73 61 63  ements.  transac
2660: 74 69 6f 6e 73 20 77 69 74 68 20 61 74 6f 6d 69  tions with atomi
2670: 63 20 63 6f 6d 6d 69 74 2c 20 65 76 65 6e 20 69  c commit, even i
2680: 6e 20 74 68 65 20 66 61 63 65 20 6f 66 20 70 6f  n the face of po
2690: 77 65 72 0a 20 20 66 61 69 6c 75 72 65 73 2e 0a  wer.  failures..
26a0: 7d 0a 0a 64 6f 63 20 7b 44 79 6e 61 6d 69 63 20  }..doc {Dynamic 
26b0: 4d 65 6d 6f 72 79 20 41 6c 6c 6f 63 61 74 69 6f  Memory Allocatio
26c0: 6e 20 69 6e 20 53 51 4c 69 74 65 7d 20 7b 6d 61  n in SQLite} {ma
26d0: 6c 6c 6f 63 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53  lloc.html} {.  S
26e0: 51 4c 69 74 65 20 68 61 73 20 61 20 73 6f 70 68  QLite has a soph
26f0: 69 73 74 69 63 61 74 65 64 20 6d 65 6d 6f 72 79  isticated memory
2700: 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 73 75 62 73   allocation subs
2710: 79 73 74 65 6d 20 74 68 61 74 20 63 61 6e 20 62  ystem that can b
2720: 65 0a 20 20 63 6f 6e 66 69 67 75 72 65 64 20 61  e.  configured a
2730: 6e 64 20 63 75 73 74 6f 6d 69 7a 65 64 20 74 6f  nd customized to
2740: 20 6d 65 65 74 20 6d 65 6d 6f 72 79 20 75 73 61   meet memory usa
2750: 67 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20  ge requirements 
2760: 6f 66 20 74 68 65 0a 20 20 61 70 70 6c 69 63 61  of the.  applica
2770: 74 69 6f 6e 20 61 6e 64 20 74 68 61 74 20 69 73  tion and that is
2780: 20 72 6f 62 75 73 74 20 61 67 61 69 6e 73 74 20   robust against 
2790: 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 63 6f  out-of-memory co
27a0: 6e 64 69 74 69 6f 6e 73 20 61 6e 64 0a 20 20 6c  nditions and.  l
27b0: 65 61 6b 2d 66 72 65 65 2e 20 20 54 68 69 73 20  eak-free.  This 
27c0: 64 6f 63 75 6d 65 6e 74 20 70 72 6f 76 69 64 65  document provide
27d0: 73 20 74 68 65 20 64 65 74 61 69 6c 73 2e 0a 7d  s the details..}
27e0: 0a 0a 64 6f 63 20 7b 43 75 73 74 6f 6d 69 7a 69  ..doc {Customizi
27f0: 6e 67 20 41 6e 64 20 50 6f 72 74 69 6e 67 20 53  ng And Porting S
2800: 51 4c 69 74 65 7d 20 7b 63 75 73 74 6f 6d 62 75  QLite} {custombu
2810: 69 6c 64 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  ild.html} {.  Th
2820: 69 73 20 64 6f 63 75 6d 65 6e 74 20 65 78 70 6c  is document expl
2830: 61 69 6e 73 20 68 6f 77 20 74 6f 20 63 75 73 74  ains how to cust
2840: 6f 6d 69 7a 65 20 74 68 65 20 62 75 69 6c 64 20  omize the build 
2850: 6f 66 20 53 51 4c 69 74 65 20 61 6e 64 0a 20 20  of SQLite and.  
2860: 68 6f 77 20 74 6f 20 70 6f 72 74 20 53 51 4c 69  how to port SQLi
2870: 74 65 20 74 6f 20 6e 65 77 20 70 6c 61 74 66 6f  te to new platfo
2880: 72 6d 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 4c 6f 63  rms..}..doc {Loc
2890: 6b 69 6e 67 20 41 6e 64 20 43 6f 6e 63 75 72 72  king And Concurr
28a0: 65 6e 63 79 3c 62 72 3e 49 6e 20 53 51 4c 69 74  ency<br>In SQLit
28b0: 65 20 56 65 72 73 69 6f 6e 20 33 7d 20 7b 6c 6f  e Version 3} {lo
28c0: 63 6b 69 6e 67 76 33 2e 68 74 6d 6c 7d 20 7b 0a  ckingv3.html} {.
28d0: 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20    A description 
28e0: 6f 66 20 68 6f 77 20 74 68 65 20 6e 65 77 20 6c  of how the new l
28f0: 6f 63 6b 69 6e 67 20 63 6f 64 65 20 69 6e 20 76  ocking code in v
2900: 65 72 73 69 6f 6e 20 33 20 69 6e 63 72 65 61 73  ersion 3 increas
2910: 65 73 0a 20 20 63 6f 6e 63 75 72 72 65 6e 63 79  es.  concurrency
2920: 20 61 6e 64 20 64 65 63 72 65 61 73 65 73 20 74   and decreases t
2930: 68 65 20 70 72 6f 62 6c 65 6d 20 6f 66 20 77 72  he problem of wr
2940: 69 74 65 72 20 73 74 61 72 76 61 74 69 6f 6e 2e  iter starvation.
2950: 0a 7d 0a 0a 64 6f 63 20 7b 49 73 6f 6c 61 74 69  .}..doc {Isolati
2960: 6f 6e 20 49 6e 20 53 51 4c 69 74 65 7d 20 7b 69  on In SQLite} {i
2970: 73 6f 6c 61 74 69 6f 6e 2e 68 74 6d 6c 7d 20 7b  solation.html} {
2980: 0a 20 20 57 68 65 6e 20 77 65 20 73 61 79 20 74  .  When we say t
2990: 68 61 74 20 53 51 4c 69 74 65 20 74 72 61 6e 73  hat SQLite trans
29a0: 61 63 74 69 6f 6e 73 20 61 72 65 20 22 73 65 72  actions are "ser
29b0: 69 61 6c 69 7a 61 62 6c 65 22 20 77 68 61 74 20  ializable" what 
29c0: 65 78 61 63 74 6c 79 0a 20 20 64 6f 65 73 20 74  exactly.  does t
29d0: 68 61 74 20 6d 65 61 6e 3f 20 20 48 6f 77 20 61  hat mean?  How a
29e0: 6e 64 20 77 68 65 6e 20 61 72 65 20 63 68 61 6e  nd when are chan
29f0: 67 65 73 20 6d 61 64 65 20 76 69 73 69 62 6c 65  ges made visible
2a00: 20 77 69 74 68 69 6e 20 74 68 65 0a 20 20 73 61   within the.  sa
2a10: 6d 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e  me database conn
2a20: 65 63 74 69 6f 6e 20 61 6e 64 20 74 6f 20 6f 74  ection and to ot
2a30: 68 65 72 20 64 61 74 61 62 61 73 65 20 63 6f 6e  her database con
2a40: 6e 65 63 74 69 6f 6e 73 3f 0a 7d 0a 0a 64 6f 63  nections?.}..doc
2a50: 20 7b 4f 76 65 72 76 69 65 77 20 4f 66 20 54 68   {Overview Of Th
2a60: 65 20 4f 70 74 69 6d 69 7a 65 72 7d 20 7b 6f 70  e Optimizer} {op
2a70: 74 6f 76 65 72 76 69 65 77 2e 68 74 6d 6c 7d 20  toverview.html} 
2a80: 7b 0a 20 20 41 20 71 75 69 63 6b 20 6f 76 65 72  {.  A quick over
2a90: 76 69 65 77 20 6f 66 20 74 68 65 20 76 61 72 69  view of the vari
2aa0: 6f 75 73 20 71 75 65 72 79 20 6f 70 74 69 6d 69  ous query optimi
2ab0: 7a 61 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65  zations that are
2ac0: 0a 20 20 61 74 74 65 6d 70 74 65 64 20 62 79 20  .  attempted by 
2ad0: 74 68 65 20 53 51 4c 69 74 65 20 63 6f 64 65 20  the SQLite code 
2ae0: 67 65 6e 65 72 61 74 6f 72 2e 0a 7d 0a 64 6f 63  generator..}.doc
2af0: 20 7b 54 68 65 20 4e 65 78 74 2d 47 65 6e 65 72   {The Next-Gener
2b00: 61 74 69 6f 6e 20 51 75 65 72 79 20 50 6c 61 6e  ation Query Plan
2b10: 6e 65 72 7d 20 7b 71 75 65 72 79 70 6c 61 6e 6e  ner} {queryplann
2b20: 65 72 2d 6e 67 2e 68 74 6d 6c 7d 20 7b 0a 20 20  er-ng.html} {.  
2b30: 41 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72  Additional infor
2b40: 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65  mation about the
2b50: 20 53 51 4c 69 74 65 20 71 75 65 72 79 20 70 6c   SQLite query pl
2b60: 61 6e 6e 65 72 2c 20 61 6e 64 20 69 6e 20 70 61  anner, and in pa
2b70: 72 74 69 63 75 6c 61 72 0a 20 20 74 68 65 20 72  rticular.  the r
2b80: 65 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 71  edesign of the q
2b90: 75 65 72 79 20 70 6c 61 6e 6e 65 72 20 74 68 61  uery planner tha
2ba0: 74 20 6f 63 63 75 72 72 65 64 20 66 6f 72 20 76  t occurred for v
2bb0: 65 72 73 69 6f 6e 20 33 2e 38 2e 30 2e 0a 7d 0a  ersion 3.8.0..}.
2bc0: 0a 64 6f 63 20 7b 41 72 63 68 69 74 65 63 74 75  .doc {Architectu
2bd0: 72 65 7d 20 7b 61 72 63 68 2e 68 74 6d 6c 7d 20  re} {arch.html} 
2be0: 7b 0a 20 20 41 6e 20 61 72 63 68 69 74 65 63 74  {.  An architect
2bf0: 75 72 61 6c 20 6f 76 65 72 76 69 65 77 20 6f 66  ural overview of
2c00: 20 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62 72   the SQLite libr
2c10: 61 72 79 2c 20 75 73 65 66 75 6c 20 66 6f 72 20  ary, useful for 
2c20: 74 68 6f 73 65 20 77 68 6f 20 77 61 6e 74 0a 20  those who want. 
2c30: 20 74 6f 20 68 61 63 6b 20 74 68 65 20 63 6f 64   to hack the cod
2c40: 65 2e 0a 7d 0a 64 6f 63 20 7b 56 44 42 45 20 4f  e..}.doc {VDBE O
2c50: 70 63 6f 64 65 73 7d 20 7b 6f 70 63 6f 64 65 2e  pcodes} {opcode.
2c60: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64  html} {.  This d
2c70: 6f 63 75 6d 65 6e 74 20 69 73 20 61 6e 20 61 75  ocument is an au
2c80: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
2c90: 72 61 74 65 64 20 64 65 73 63 72 69 70 74 69 6f  rated descriptio
2ca0: 6e 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75 73  n of the various
2cb0: 0a 20 20 6f 70 63 6f 64 65 73 20 74 68 61 74 20  .  opcodes that 
2cc0: 74 68 65 20 56 44 42 45 20 75 6e 64 65 72 73 74  the VDBE underst
2cd0: 61 6e 64 73 2e 20 20 50 72 6f 67 72 61 6d 6d 65  ands.  Programme
2ce0: 72 73 20 63 61 6e 20 75 73 65 20 74 68 69 73 20  rs can use this 
2cf0: 64 6f 63 75 6d 65 6e 74 20 61 73 0a 20 20 61 20  document as.  a 
2d00: 72 65 66 65 72 65 6e 63 65 20 74 6f 20 62 65 74  reference to bet
2d10: 74 65 72 20 75 6e 64 65 72 73 74 61 6e 64 20 74  ter understand t
2d20: 68 65 20 6f 75 74 70 75 74 20 6f 66 20 45 58 50  he output of EXP
2d30: 4c 41 49 4e 20 6c 69 73 74 69 6e 67 73 20 66 72  LAIN listings fr
2d40: 6f 6d 0a 20 20 53 51 4c 69 74 65 2e 0a 7d 0a 64  om.  SQLite..}.d
2d50: 6f 63 20 7b 56 69 72 74 75 61 6c 20 46 69 6c 65  oc {Virtual File
2d60: 73 79 73 74 65 6d 7d 20 7b 76 66 73 2e 68 74 6d  system} {vfs.htm
2d70: 6c 7d 20 7b 0a 20 20 54 68 65 20 22 56 46 53 22  l} {.  The "VFS"
2d80: 20 6f 62 6a 65 63 74 20 69 73 20 74 68 65 20 69   object is the i
2d90: 6e 74 65 72 66 61 63 65 20 62 65 74 77 65 65 6e  nterface between
2da0: 20 74 68 65 20 53 51 4c 69 74 65 20 63 6f 72 65   the SQLite core
2db0: 20 61 6e 64 20 74 68 65 0a 20 20 75 6e 64 65 72   and the.  under
2dc0: 6c 79 69 6e 67 20 6f 70 65 72 61 74 69 6e 67 20  lying operating 
2dd0: 73 79 73 74 65 6d 2e 20 20 4c 65 61 72 6e 20 6d  system.  Learn m
2de0: 6f 72 65 20 61 62 6f 75 74 20 68 6f 77 20 74 68  ore about how th
2df0: 65 20 56 46 53 20 6f 62 6a 65 63 74 0a 20 20 77  e VFS object.  w
2e00: 6f 72 6b 73 20 61 6e 64 20 68 6f 77 20 74 6f 20  orks and how to 
2e10: 63 72 65 61 74 65 20 6e 65 77 20 56 46 53 20 6f  create new VFS o
2e20: 62 6a 65 63 74 73 20 66 72 6f 6d 20 74 68 69 73  bjects from this
2e30: 20 61 72 74 69 63 6c 65 2e 0a 7d 0a 64 6f 63 20   article..}.doc 
2e40: 7b 56 69 72 74 75 61 6c 20 54 61 62 6c 65 73 7d  {Virtual Tables}
2e50: 20 7b 76 74 61 62 2e 68 74 6d 6c 7d 20 7b 0a 20   {vtab.html} {. 
2e60: 20 54 68 69 73 20 61 72 74 69 63 6c 65 20 64 65   This article de
2e70: 73 63 72 69 62 65 73 20 74 68 65 20 76 69 72 74  scribes the virt
2e80: 75 61 6c 20 74 61 62 6c 65 20 6d 65 63 68 61 6e  ual table mechan
2e90: 69 73 6d 20 61 6e 64 20 41 50 49 20 69 6e 20 53  ism and API in S
2ea0: 51 4c 69 74 65 20 61 6e 64 20 68 6f 77 0a 20 20  QLite and how.  
2eb0: 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 74  it can be used t
2ec0: 6f 20 61 64 64 20 6e 65 77 20 63 61 70 61 62 69  o add new capabi
2ed0: 6c 69 74 69 65 73 20 74 6f 20 74 68 65 20 63 6f  lities to the co
2ee0: 72 65 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72  re SQLite librar
2ef0: 79 2e 0a 7d 0a 0a 64 6f 63 20 7b 53 51 4c 69 74  y..}..doc {SQLit
2f00: 65 20 46 69 6c 65 20 46 6f 72 6d 61 74 7d 20 7b  e File Format} {
2f10: 66 69 6c 65 66 6f 72 6d 61 74 32 2e 68 74 6d 6c  fileformat2.html
2f20: 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74  } {.  A descript
2f30: 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d 61  ion of the forma
2f40: 74 20 75 73 65 64 20 66 6f 72 20 53 51 4c 69 74  t used for SQLit
2f50: 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6a  e database and j
2f60: 6f 75 72 6e 61 6c 20 66 69 6c 65 73 2c 20 61 6e  ournal files, an
2f70: 64 0a 20 20 6f 74 68 65 72 20 64 65 74 61 69 6c  d.  other detail
2f80: 73 20 72 65 71 75 69 72 65 64 20 74 6f 20 63 72  s required to cr
2f90: 65 61 74 65 20 73 6f 66 74 77 61 72 65 20 74 6f  eate software to
2fa0: 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20   read and write 
2fb0: 53 51 4c 69 74 65 20 0a 20 20 64 61 74 61 62 61  SQLite .  databa
2fc0: 73 65 73 20 77 69 74 68 6f 75 74 20 75 73 69 6e  ses without usin
2fd0: 67 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a 64 6f 63  g SQLite..}..doc
2fe0: 20 7b 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 4f 70   {Compilation Op
2ff0: 74 69 6f 6e 73 7d 20 7b 63 6f 6d 70 69 6c 65 2e  tions} {compile.
3000: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64  html} {.  This d
3010: 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65  ocument describe
3020: 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 74 69  s the compile ti
3030: 6d 65 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20  me options that 
3040: 6d 61 79 20 62 65 20 73 65 74 20 74 6f 20 0a 20  may be set to . 
3050: 20 6d 6f 64 69 66 79 20 74 68 65 20 64 65 66 61   modify the defa
3060: 75 6c 74 20 62 65 68 61 76 69 6f 72 20 6f 66 20  ult behavior of 
3070: 74 68 65 20 6c 69 62 72 61 72 79 20 6f 72 20 6f  the library or o
3080: 6d 69 74 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61  mit optional fea
3090: 74 75 72 65 73 0a 20 20 69 6e 20 6f 72 64 65 72  tures.  in order
30a0: 20 74 6f 20 72 65 64 75 63 65 20 62 69 6e 61 72   to reduce binar
30b0: 79 20 73 69 7a 65 2e 0a 7d 0a 0a 68 65 61 64 69  y size..}..headi
30c0: 6e 67 20 7b 55 70 67 72 61 64 69 6e 67 20 53 51  ng {Upgrading SQ
30d0: 4c 69 74 65 2c 20 42 61 63 6b 77 61 72 64 73 20  Lite, Backwards 
30e0: 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 7d 0a 0a  Compatibility}..
30f0: 64 6f 63 20 7b 4d 6f 76 69 6e 67 20 46 72 6f 6d  doc {Moving From
3100: 20 53 51 4c 69 74 65 20 33 2e 35 20 74 6f 20 33   SQLite 3.5 to 3
3110: 2e 36 7d 20 7b 33 35 74 6f 33 36 2e 68 74 6d 6c  .6} {35to36.html
3120: 7d 20 7b 0a 20 20 41 20 64 6f 63 75 6d 65 6e 74  } {.  A document
3130: 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20   describing the 
3140: 64 69 66 66 65 72 65 6e 63 65 73 20 62 65 74 77  differences betw
3150: 65 65 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69  een SQLite versi
3160: 6f 6e 20 33 2e 35 2e 39 0a 20 20 61 6e 64 20 33  on 3.5.9.  and 3
3170: 2e 36 2e 30 2e 0a 7d 0a 64 6f 63 20 7b 4d 6f 76  .6.0..}.doc {Mov
3180: 69 6e 67 20 46 72 6f 6d 20 53 51 4c 69 74 65 20  ing From SQLite 
3190: 33 2e 34 20 74 6f 20 33 2e 35 7d 20 7b 33 34 74  3.4 to 3.5} {34t
31a0: 6f 33 35 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20  o35.html} {.  A 
31b0: 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62  document describ
31c0: 69 6e 67 20 74 68 65 20 64 69 66 66 65 72 65 6e  ing the differen
31d0: 63 65 73 20 62 65 74 77 65 65 6e 20 53 51 4c 69  ces between SQLi
31e0: 74 65 20 76 65 72 73 69 6f 6e 20 33 2e 34 2e 32  te version 3.4.2
31f0: 0a 20 20 61 6e 64 20 33 2e 35 2e 30 2e 0a 7d 0a  .  and 3.5.0..}.
3200: 64 6f 63 20 7b 52 65 6c 65 61 73 65 20 48 69 73  doc {Release His
3210: 74 6f 72 79 7d 20 7b 63 68 61 6e 67 65 73 2e 68  tory} {changes.h
3220: 74 6d 6c 7d 20 7b 0a 20 20 41 20 63 68 72 6f 6e  tml} {.  A chron
3230: 6f 6c 6f 67 79 20 6f 66 20 53 51 4c 69 74 65 20  ology of SQLite 
3240: 72 65 6c 65 61 73 65 73 20 67 6f 69 6e 67 20 62  releases going b
3250: 61 63 6b 20 74 6f 20 76 65 72 73 69 6f 6e 20 31  ack to version 1
3260: 2e 30 2e 30 0a 7d 0a 64 6f 63 20 7b 42 61 63 6b  .0.0.}.doc {Back
3270: 77 61 72 64 73 20 43 6f 6d 70 61 74 69 62 69 6c  wards Compatibil
3280: 69 74 79 7d 20 7b 66 6f 72 6d 61 74 63 68 6e 67  ity} {formatchng
3290: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
32a0: 64 6f 63 75 6d 65 6e 74 20 64 65 74 61 69 6c 73  document details
32b0: 20 61 6c 6c 20 6f 66 20 74 68 65 20 69 6e 63 6f   all of the inco
32c0: 6d 70 61 74 69 62 6c 65 20 63 68 61 6e 67 65 73  mpatible changes
32d0: 20 74 6f 20 74 68 65 20 53 51 4c 69 74 65 0a 20   to the SQLite. 
32e0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 68 61   file format tha
32f0: 74 20 68 61 76 65 20 6f 63 63 75 72 72 65 64 20  t have occurred 
3300: 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 31 2e  since version 1.
3310: 30 2e 30 2e 0a 7d 0a 0a 64 6f 63 20 7b 50 72 69  0.0..}..doc {Pri
3320: 76 61 74 65 20 42 72 61 6e 63 68 65 73 7d 20 7b  vate Branches} {
3330: 70 72 69 76 61 74 65 62 72 61 6e 63 68 2e 68 74  privatebranch.ht
3340: 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63  ml} {.  This doc
3350: 75 6d 65 6e 74 20 73 75 67 67 65 73 74 73 20 70  ument suggests p
3360: 72 6f 63 65 64 75 72 65 73 20 66 6f 72 20 6d 61  rocedures for ma
3370: 69 6e 74 61 69 6e 69 6e 67 20 61 20 70 72 69 76  intaining a priv
3380: 61 74 65 20 62 72 61 6e 63 68 0a 20 20 6f 72 20  ate branch.  or 
3390: 66 6f 72 6b 20 6f 66 20 53 51 4c 69 74 65 20 61  fork of SQLite a
33a0: 6e 64 20 6b 65 65 70 69 6e 67 20 74 68 61 74 20  nd keeping that 
33b0: 62 72 61 6e 63 68 20 6f 72 20 66 6f 72 6b 20 69  branch or fork i
33c0: 6e 20 73 79 6e 63 20 77 69 74 68 20 74 68 65 0a  n sync with the.
33d0: 20 20 70 75 62 6c 69 63 20 53 51 4c 69 74 65 20    public SQLite 
33e0: 73 6f 75 72 63 65 20 74 72 65 65 2e 0a 7d 0a 0a  source tree..}..
33f0: 0a 68 65 61 64 69 6e 67 20 7b 4f 62 73 6f 6c 65  .heading {Obsole
3400: 74 65 20 44 6f 63 75 6d 65 6e 74 73 7d 20 7b 0a  te Documents} {.
3410: 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20    The following 
3420: 64 6f 63 75 6d 65 6e 74 73 20 61 72 65 20 6e 6f  documents are no
3430: 20 6c 6f 6e 67 65 72 20 63 75 72 72 65 6e 74 20   longer current 
3440: 61 6e 64 20 61 72 65 20 72 65 74 61 69 6e 65 64  and are retained
3450: 0a 20 20 66 6f 72 20 68 69 73 74 6f 72 69 63 61  .  for historica
3460: 6c 20 72 65 66 65 72 65 6e 63 65 20 6f 6e 6c 79  l reference only
3470: 2e 0a 20 20 54 68 65 73 65 20 64 6f 63 75 6d 65  ..  These docume
3480: 6e 74 73 20 67 65 6e 65 72 61 6c 6c 79 20 70 65  nts generally pe
3490: 72 74 61 69 6e 20 74 6f 20 6f 75 74 2d 6f 66 2d  rtain to out-of-
34a0: 64 61 74 65 2c 20 6f 62 73 6f 6c 65 74 65 2c 20  date, obsolete, 
34b0: 61 6e 64 2f 6f 72 0a 20 20 64 65 70 72 65 63 61  and/or.  depreca
34c0: 74 65 64 20 66 65 61 74 75 72 65 73 20 61 6e 64  ted features and
34d0: 20 65 78 74 65 6e 73 69 6f 6e 73 2e 0a 7d 0a 64   extensions..}.d
34e0: 6f 63 20 7b 41 73 79 6e 63 68 72 6f 6e 6f 75 73  oc {Asynchronous
34f0: 20 49 4f 20 4d 6f 64 65 7d 20 7b 61 73 79 6e 63   IO Mode} {async
3500: 76 66 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  vfs.html} {.  Th
3510: 69 73 20 70 61 67 65 20 64 65 73 63 72 69 62 65  is page describe
3520: 73 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f  s the asynchrono
3530: 75 73 20 49 4f 20 65 78 74 65 6e 73 69 6f 6e 20  us IO extension 
3540: 64 65 76 65 6c 6f 70 65 64 20 61 6c 6f 6e 67 73  developed alongs
3550: 69 64 65 0a 20 20 53 51 4c 69 74 65 2e 20 55 73  ide.  SQLite. Us
3560: 69 6e 67 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73  ing asynchronous
3570: 20 49 4f 20 63 61 6e 20 63 61 75 73 65 20 53 51   IO can cause SQ
3580: 4c 69 74 65 20 74 6f 20 61 70 70 65 61 72 20 6d  Lite to appear m
3590: 6f 72 65 20 72 65 73 70 6f 6e 73 69 76 65 0a 20  ore responsive. 
35a0: 20 62 79 20 64 65 6c 65 67 61 74 69 6e 67 20 64   by delegating d
35b0: 61 74 61 62 61 73 65 20 77 72 69 74 65 73 20 74  atabase writes t
35c0: 6f 20 61 20 62 61 63 6b 67 72 6f 75 6e 64 20 74  o a background t
35d0: 68 72 65 61 64 2e 20 20 3c 69 3e 4e 42 3a 20 20  hread.  <i>NB:  
35e0: 54 68 69 73 0a 20 20 65 78 74 65 6e 73 69 6f 6e  This.  extension
35f0: 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e 20   is deprecated. 
3600: 20 5b 57 41 4c 20 6d 6f 64 65 5d 20 69 73 20 72   [WAL mode] is r
3610: 65 63 6f 6d 6d 65 6e 64 65 64 20 61 73 20 61 20  ecommended as a 
3620: 72 65 70 6c 61 63 65 6d 65 6e 74 2e 3c 2f 69 3e  replacement.</i>
3630: 0a 7d 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20  .}.doc {Version 
3640: 32 20 43 2f 43 2b 2b 20 41 50 49 7d 20 7b 63 5f  2 C/C++ API} {c_
3650: 69 6e 74 65 72 66 61 63 65 2e 68 74 6d 6c 7d 20  interface.html} 
3660: 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74 69 6f  {.  A descriptio
3670: 6e 20 6f 66 20 74 68 65 20 43 2f 43 2b 2b 20 69  n of the C/C++ i
3680: 6e 74 65 72 66 61 63 65 20 62 69 6e 64 69 6e 67  nterface binding
3690: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 74 68 72  s for SQLite thr
36a0: 6f 75 67 68 20 76 65 72 73 69 6f 6e 20 0a 20 20  ough version .  
36b0: 32 2e 38 0a 7d 0a 64 6f 63 20 7b 56 65 72 73 69  2.8.}.doc {Versi
36c0: 6f 6e 20 32 20 44 61 74 61 54 79 70 65 73 20 7d  on 2 DataTypes }
36d0: 20 7b 64 61 74 61 74 79 70 65 73 2e 68 74 6d 6c   {datatypes.html
36e0: 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74  } {.  A descript
36f0: 69 6f 6e 20 6f 66 20 68 6f 77 20 53 51 4c 69 74  ion of how SQLit
3700: 65 20 76 65 72 73 69 6f 6e 20 32 20 68 61 6e 64  e version 2 hand
3710: 6c 65 73 20 53 51 4c 20 64 61 74 61 74 79 70 65  les SQL datatype
3720: 73 2e 0a 20 20 53 68 6f 72 74 20 73 75 6d 6d 61  s..  Short summa
3730: 72 79 3a 20 20 45 76 65 72 79 74 68 69 6e 67 20  ry:  Everything 
3740: 69 73 20 61 20 73 74 72 69 6e 67 2e 0a 7d 0a 64  is a string..}.d
3750: 6f 63 20 7b 56 44 42 45 20 54 75 74 6f 72 69 61  oc {VDBE Tutoria
3760: 6c 7d 20 7b 76 64 62 65 2e 68 74 6d 6c 7d 20 7b  l} {vdbe.html} {
3770: 0a 20 20 54 68 65 20 56 44 42 45 20 69 73 20 74  .  The VDBE is t
3780: 68 65 20 73 75 62 73 79 73 74 65 6d 20 77 69 74  he subsystem wit
3790: 68 69 6e 20 53 51 4c 69 74 65 20 74 68 61 74 20  hin SQLite that 
37a0: 64 6f 65 73 20 74 68 65 20 61 63 74 75 61 6c 20  does the actual 
37b0: 77 6f 72 6b 20 6f 66 0a 20 20 65 78 65 63 75 74  work of.  execut
37c0: 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d 65 6e  ing SQL statemen
37d0: 74 73 2e 20 20 54 68 69 73 20 70 61 67 65 20 64  ts.  This page d
37e0: 65 73 63 72 69 62 65 73 20 74 68 65 20 70 72 69  escribes the pri
37f0: 6e 63 69 70 6c 65 73 20 6f 66 20 6f 70 65 72 61  nciples of opera
3800: 74 69 6f 6e 0a 20 20 66 6f 72 20 74 68 65 20 56  tion.  for the V
3810: 44 42 45 20 69 6e 20 53 51 4c 69 74 65 20 76 65  DBE in SQLite ve
3820: 72 73 69 6f 6e 20 32 2e 37 2e 20 20 54 68 69 73  rsion 2.7.  This
3830: 20 69 73 20 65 73 73 65 6e 74 69 61 6c 20 72 65   is essential re
3840: 61 64 69 6e 67 20 66 6f 72 20 61 6e 79 6f 6e 65  ading for anyone
3850: 0a 20 20 77 68 6f 20 77 61 6e 74 20 74 6f 20 6d  .  who want to m
3860: 6f 64 69 66 79 20 74 68 65 20 53 51 4c 69 74 65  odify the SQLite
3870: 20 73 6f 75 72 63 65 73 2e 0a 7d 0a 64 6f 63 20   sources..}.doc 
3880: 7b 53 51 4c 69 74 65 20 56 65 72 73 69 6f 6e 20  {SQLite Version 
3890: 33 7d 20 7b 76 65 72 73 69 6f 6e 33 2e 68 74 6d  3} {version3.htm
38a0: 6c 7d 20 7b 0a 20 20 41 20 73 75 6d 6d 61 72 79  l} {.  A summary
38b0: 20 6f 66 20 74 68 65 20 63 68 61 6e 67 65 73 20   of the changes 
38c0: 62 65 74 77 65 65 6e 20 53 51 4c 69 74 65 20 76  between SQLite v
38d0: 65 72 73 69 6f 6e 20 32 2e 38 20 61 6e 64 20 53  ersion 2.8 and S
38e0: 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20 33 2e  QLite version 3.
38f0: 30 2e 0a 7d 0a 64 6f 63 20 7b 56 65 72 73 69 6f  0..}.doc {Versio
3900: 6e 20 33 20 43 2f 43 2b 2b 20 41 50 49 7d 20 7b  n 3 C/C++ API} {
3910: 63 61 70 69 33 2e 68 74 6d 6c 7d 20 7b 0a 20 20  capi3.html} {.  
3920: 41 20 73 75 6d 6d 61 72 79 20 6f 66 20 74 68 65  A summary of the
3930: 20 41 50 49 20 72 65 6c 61 74 65 64 20 63 68 61   API related cha
3940: 6e 67 65 73 20 62 65 74 77 65 65 6e 20 53 51 4c  nges between SQL
3950: 69 74 65 20 76 65 72 73 69 6f 6e 20 32 2e 38 20  ite version 2.8 
3960: 61 6e 64 20 0a 20 20 53 51 4c 69 74 65 20 76 65  and .  SQLite ve
3970: 72 73 69 6f 6e 20 33 2e 30 2e 20 0a 7d 0a 64 6f  rsion 3.0. .}.do
3980: 63 20 7b 53 70 65 65 64 20 43 6f 6d 70 61 72 69  c {Speed Compari
3990: 73 6f 6e 7d 20 7b 73 70 65 65 64 2e 68 74 6d 6c  son} {speed.html
39a0: 7d 20 7b 0a 20 20 54 68 65 20 73 70 65 65 64 20  } {.  The speed 
39b0: 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 36  of version 2.7.6
39c0: 20 6f 66 20 53 51 4c 69 74 65 20 69 73 20 63 6f   of SQLite is co
39d0: 6d 70 61 72 65 64 20 61 67 61 69 6e 73 74 20 50  mpared against P
39e0: 6f 73 74 67 72 65 53 51 4c 20 61 6e 64 0a 20 20  ostgreSQL and.  
39f0: 4d 79 53 51 4c 2e 0a 7d 0a 0a 3c 2f 74 63 6c 3e  MySQL..}..</tcl>
3a00: 0a 3c 2f 74 61 62 6c 65 3e 0a                    .</table>.