Documentation Source Text

Hex Artifact Content
Login

Artifact 1decaa3049a41d9751956908d56b0fe9b1b4873d:


0000: 68 65 61 64 69 6e 67 20 7b 44 6f 63 75 6d 65 6e  heading {Documen
0010: 74 20 4c 69 73 74 73 20 41 6e 64 20 49 6e 64 65  t Lists And Inde
0020: 78 65 73 7d 20 6c 69 73 74 73 0a 0a 64 6f 63 20  xes} lists..doc 
0030: 7b 41 6c 70 68 61 62 65 74 69 63 61 6c 20 4c 69  {Alphabetical Li
0040: 73 74 69 6e 67 20 4f 66 20 44 6f 63 75 6d 65 6e  sting Of Documen
0050: 74 73 7d 20 7b 64 6f 63 6c 69 73 74 2e 68 74 6d  ts} {doclist.htm
0060: 6c 7d 20 7b 0a 20 20 41 20 6c 69 73 74 20 6f 66  l} {.  A list of
0070: 20 61 6c 6c 20 74 69 74 6c 65 64 20 70 61 67 65   all titled page
0080: 73 20 6f 6e 20 74 68 69 73 20 77 65 62 73 69 74  s on this websit
0090: 65 2c 20 73 6f 72 74 65 64 20 62 79 20 74 69 74  e, sorted by tit
00a0: 6c 65 2e 0a 7d 0a 64 6f 63 20 7b 57 65 62 73 69  le..}.doc {Websi
00b0: 74 65 20 4b 65 79 77 6f 72 64 20 49 6e 64 65 78  te Keyword Index
00c0: 7d 20 7b 6b 65 79 77 6f 72 64 5f 69 6e 64 65 78  } {keyword_index
00d0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 63 72 6f  .html} {.  A cro
00e0: 73 73 2d 72 65 66 65 72 65 6e 63 65 20 66 72 6f  ss-reference fro
00f0: 6d 20 6b 65 79 77 6f 72 64 73 20 74 6f 20 76 61  m keywords to va
0100: 72 69 6f 75 73 20 70 61 67 65 73 20 77 69 74 68  rious pages with
0110: 69 6e 20 74 68 69 73 20 77 65 62 73 69 74 65 2e  in this website.
0120: 0a 7d 0a 64 6f 63 20 7b 50 65 72 6d 75 74 65 64  .}.doc {Permuted
0130: 20 54 69 74 6c 65 20 49 6e 64 65 78 7d 20 7b 73   Title Index} {s
0140: 69 74 65 6d 61 70 2e 68 74 6d 6c 23 70 69 6e 64  itemap.html#pind
0150: 65 78 7d 20 7b 0a 20 20 41 6c 73 6f 20 6b 6e 6f  ex} {.  Also kno
0160: 77 6e 20 61 73 20 61 20 22 6b 65 79 77 6f 72 64  wn as a "keyword
0170: 20 69 6e 20 63 6f 6e 74 65 78 74 22 20 6f 72 20   in context" or 
0180: 22 4b 57 49 43 22 20 69 6e 64 65 78 20 6f 72 20  "KWIC" index or 
0190: 61 73 20 61 20 63 6f 6e 63 6f 72 64 61 6e 63 65  as a concordance
01a0: 2c 0a 20 20 74 68 69 73 20 64 6f 63 75 6d 65 6e  ,.  this documen
01b0: 74 20 69 73 20 61 20 6c 69 73 74 69 6e 67 20 6f  t is a listing o
01c0: 66 20 61 6c 6c 20 6f 74 68 65 72 20 64 6f 63 75  f all other docu
01d0: 6d 65 6e 74 73 20 73 6f 72 74 65 64 20 62 79 20  ments sorted by 
01e0: 6b 65 79 77 6f 72 64 2e 0a 7d 0a 0a 23 23 23 23  keyword..}..####
01f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0200: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0210: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0220: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0230: 23 23 23 23 23 23 23 23 23 23 23 0a 68 65 61 64  ###########.head
0240: 69 6e 67 20 7b 4f 76 65 72 76 69 65 77 20 44 6f  ing {Overview Do
0250: 63 75 6d 65 6e 74 73 7d 20 6f 76 65 72 76 69 65  cuments} overvie
0260: 77 0a 0a 64 6f 63 20 7b 41 62 6f 75 74 20 53 51  w..doc {About SQ
0270: 4c 69 74 65 7d 20 7b 61 62 6f 75 74 2e 68 74 6d  Lite} {about.htm
0280: 6c 7d 20 7b 0a 20 20 41 20 68 69 67 68 2d 6c 65  l} {.  A high-le
0290: 76 65 6c 20 6f 76 65 72 76 69 65 77 20 6f 66 20  vel overview of 
02a0: 77 68 61 74 20 53 51 4c 69 74 65 20 69 73 20 61  what SQLite is a
02b0: 6e 64 20 77 68 79 20 79 6f 75 20 6d 69 67 68 74  nd why you might
02c0: 20 62 65 0a 20 20 69 6e 74 65 72 65 73 74 65 64   be.  interested
02d0: 20 69 6e 20 75 73 69 6e 67 20 69 74 2e 0a 7d 0a   in using it..}.
02e0: 0a 64 6f 63 20 7b 41 70 70 72 6f 70 72 69 61 74  .doc {Appropriat
02f0: 65 20 55 73 65 73 20 46 6f 72 20 53 51 4c 69 74  e Uses For SQLit
0300: 65 7d 20 7b 77 68 65 6e 74 6f 75 73 65 2e 68 74  e} {whentouse.ht
0310: 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63  ml} {.  This doc
0320: 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 20  ument describes 
0330: 73 69 74 75 61 74 69 6f 6e 73 20 77 68 65 72 65  situations where
0340: 20 53 51 4c 69 74 65 20 69 73 20 61 6e 20 61 70   SQLite is an ap
0350: 70 72 6f 70 72 69 61 74 65 0a 20 20 64 61 74 61  propriate.  data
0360: 62 61 73 65 20 65 6e 67 69 6e 65 20 74 6f 20 75  base engine to u
0370: 73 65 20 76 65 72 73 75 73 20 73 69 74 75 61 74  se versus situat
0380: 69 6f 6e 73 20 77 68 65 72 65 20 61 20 63 6c 69  ions where a cli
0390: 65 6e 74 2f 73 65 72 76 65 72 0a 20 20 64 61 74  ent/server.  dat
03a0: 61 62 61 73 65 20 65 6e 67 69 6e 65 20 6d 69 67  abase engine mig
03b0: 68 74 20 62 65 20 61 20 62 65 74 74 65 72 20 63  ht be a better c
03c0: 68 6f 69 63 65 2e 0a 7d 0a 64 6f 63 20 7b 44 69  hoice..}.doc {Di
03d0: 73 74 69 6e 63 74 69 76 65 20 46 65 61 74 75 72  stinctive Featur
03e0: 65 73 7d 20 7b 64 69 66 66 65 72 65 6e 74 2e 68  es} {different.h
03f0: 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f  tml} {.  This do
0400: 63 75 6d 65 6e 74 20 65 6e 75 6d 65 72 61 74 65  cument enumerate
0410: 73 20 61 6e 64 20 64 65 73 63 72 69 62 65 73 20  s and describes 
0420: 73 6f 6d 65 20 6f 66 20 74 68 65 20 66 65 61 74  some of the feat
0430: 75 72 65 73 20 6f 66 0a 20 20 53 51 4c 69 74 65  ures of.  SQLite
0440: 20 74 68 61 74 20 6d 61 6b 65 20 69 74 20 64 69   that make it di
0450: 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 6f 74 68  fferent from oth
0460: 65 72 20 53 51 4c 20 64 61 74 61 62 61 73 65 20  er SQL database 
0470: 65 6e 67 69 6e 65 73 2e 0a 7d 0a 64 6f 63 20 7b  engines..}.doc {
0480: 48 6f 77 20 53 51 4c 69 74 65 20 49 73 20 54 65  How SQLite Is Te
0490: 73 74 65 64 7d 20 7b 74 65 73 74 69 6e 67 2e 68  sted} {testing.h
04a0: 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20 72 65 6c  tml} {.  The rel
04b0: 69 61 62 69 6c 69 74 79 20 61 6e 64 20 72 6f 62  iability and rob
04c0: 75 73 74 6e 65 73 73 20 6f 66 20 53 51 4c 69 74  ustness of SQLit
04d0: 65 20 69 73 20 61 63 68 69 65 76 65 64 20 69 6e  e is achieved in
04e0: 20 6c 61 72 67 65 20 70 61 72 74 0a 20 20 62 79   large part.  by
04f0: 20 74 68 6f 72 6f 75 67 68 20 61 6e 64 20 63 61   thorough and ca
0500: 72 65 66 75 6c 20 74 65 73 74 69 6e 67 2e 20 20  reful testing.  
0510: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 69 64  This document id
0520: 65 6e 74 69 66 69 65 73 20 74 68 65 0a 20 20 6d  entifies the.  m
0530: 61 6e 79 20 74 65 73 74 73 20 74 68 61 74 20 6f  any tests that o
0540: 63 63 75 72 20 62 65 66 6f 72 65 20 65 76 65 72  ccur before ever
0550: 79 20 72 65 6c 65 61 73 65 20 6f 66 20 53 51 4c  y release of SQL
0560: 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b 43 6f 70 79  ite..}.doc {Copy
0570: 72 69 67 68 74 7d 20 7b 63 6f 70 79 72 69 67 68  right} {copyrigh
0580: 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69  t.html} {.  SQLi
0590: 74 65 20 69 73 20 69 6e 20 74 68 65 20 70 75 62  te is in the pub
05a0: 6c 69 63 20 64 6f 6d 61 69 6e 2e 20 20 54 68 69  lic domain.  Thi
05b0: 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72  s document descr
05c0: 69 62 65 73 20 77 68 61 74 20 74 68 61 74 20 6d  ibes what that m
05d0: 65 61 6e 73 0a 20 20 61 6e 64 20 74 68 65 20 69  eans.  and the i
05e0: 6d 70 6c 69 63 61 74 69 6f 6e 73 20 66 6f 72 20  mplications for 
05f0: 63 6f 6e 74 72 69 62 75 74 6f 72 73 2e 0a 7d 0a  contributors..}.
0600: 64 6f 63 20 7b 46 72 65 71 75 65 6e 74 6c 79 20  doc {Frequently 
0610: 41 73 6b 65 64 20 51 75 65 73 74 69 6f 6e 73 7d  Asked Questions}
0620: 20 7b 66 61 71 2e 68 74 6d 6c 7d 20 7b 0a 20 20   {faq.html} {.  
0630: 54 68 65 20 74 69 74 6c 65 20 6f 66 20 74 68 65  The title of the
0640: 20 64 6f 63 75 6d 65 6e 74 20 73 61 79 73 20 61   document says a
0650: 6c 6c 2e 2e 2e 0a 7d 0a 64 6f 63 20 7b 42 6f 6f  ll....}.doc {Boo
0660: 6b 73 20 41 62 6f 75 74 20 53 51 4c 69 74 65 7d  ks About SQLite}
0670: 20 7b 62 6f 6f 6b 73 2e 68 74 6d 6c 7d 20 7b 0a   {books.html} {.
0680: 20 20 41 20 6c 69 73 74 20 6f 66 20 69 6e 64 65    A list of inde
0690: 70 65 6e 64 65 6e 74 6c 79 20 77 72 69 74 74 65  pendently writte
06a0: 6e 20 62 6f 6f 6b 73 20 61 62 6f 75 74 20 53 51  n books about SQ
06b0: 4c 69 74 65 2e 0a 7d 0a 0a 0a 0a 23 23 23 23 23  Lite..}....#####
06c0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06d0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
06f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0700: 23 23 23 23 23 23 23 23 23 23 0a 68 65 61 64 69  ##########.headi
0710: 6e 67 20 7b 50 72 6f 67 72 61 6d 6d 69 6e 67 20  ng {Programming 
0720: 49 6e 74 65 72 66 61 63 65 73 7d 20 70 72 6f 67  Interfaces} prog
0730: 72 61 6d 6d 69 6e 67 20 7b 0a 20 20 44 6f 63 75  ramming {.  Docu
0740: 6d 65 6e 74 61 74 69 6f 6e 20 64 65 73 63 72 69  mentation descri
0750: 62 69 6e 67 20 74 68 65 20 41 50 49 73 20 75 73  bing the APIs us
0760: 65 64 20 74 6f 20 70 72 6f 67 72 61 6d 20 53 51  ed to program SQ
0770: 4c 69 74 65 2c 20 61 6e 64 20 74 68 65 20 53 51  Lite, and the SQ
0780: 4c 0a 20 20 64 69 61 6c 65 63 74 20 74 68 61 74  L.  dialect that
0790: 20 69 74 20 69 6e 74 65 72 70 72 65 74 73 2e 0a   it interprets..
07a0: 7d 0a 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20 49  }..doc {SQLite I
07b0: 6e 20 35 20 4d 69 6e 75 74 65 73 20 4f 72 20 4c  n 5 Minutes Or L
07c0: 65 73 73 7d 20 7b 71 75 69 63 6b 73 74 61 72 74  ess} {quickstart
07d0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 76 65 72  .html} {.  A ver
07e0: 79 20 71 75 69 63 6b 20 69 6e 74 72 6f 64 75 63  y quick introduc
07f0: 74 69 6f 6e 20 74 6f 20 70 72 6f 67 72 61 6d 6d  tion to programm
0800: 69 6e 67 20 77 69 74 68 20 53 51 4c 69 74 65 2e  ing with SQLite.
0810: 0a 7d 0a 64 6f 63 20 7b 49 6e 74 72 6f 64 75 63  .}.doc {Introduc
0820: 74 69 6f 6e 20 74 6f 20 74 68 65 20 43 2f 43 2b  tion to the C/C+
0830: 2b 20 41 50 49 20 7d 20 7b 63 69 6e 74 72 6f 2e  + API } {cintro.
0840: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64  html} {.  This d
0850: 6f 63 75 6d 65 6e 74 20 69 6e 74 72 6f 64 75 63  ocument introduc
0860: 65 73 20 74 68 65 20 43 2f 43 2b 2b 20 41 50 49  es the C/C++ API
0870: 2e 20 55 73 65 72 73 20 73 68 6f 75 6c 64 20 72  . Users should r
0880: 65 61 64 20 74 68 69 73 20 64 6f 63 75 6d 65 6e  ead this documen
0890: 74 20 0a 20 20 62 65 66 6f 72 65 20 74 68 65 20  t .  before the 
08a0: 43 2f 43 2b 2b 20 41 50 49 20 52 65 66 65 72 65  C/C++ API Refere
08b0: 6e 63 65 20 47 75 69 64 65 20 6c 69 6e 6b 65 64  nce Guide linked
08c0: 20 62 65 6c 6f 77 2e 0a 7d 0a 64 6f 63 20 7b 48   below..}.doc {H
08d0: 6f 77 20 54 6f 20 43 6f 6d 70 69 6c 65 20 53 51  ow To Compile SQ
08e0: 4c 69 74 65 7d 20 7b 68 6f 77 74 6f 63 6f 6d 70  Lite} {howtocomp
08f0: 69 6c 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 49 6e  ile.html} {.  In
0900: 73 74 72 75 63 74 69 6f 6e 73 20 61 6e 64 20 68  structions and h
0910: 69 6e 74 73 20 66 6f 72 20 63 6f 6d 70 69 6c 69  ints for compili
0920: 6e 67 20 53 51 4c 69 74 65 20 43 20 63 6f 64 65  ng SQLite C code
0930: 20 61 6e 64 20 69 6e 74 65 67 72 61 74 69 6e 67   and integrating
0940: 0a 20 20 74 68 61 74 20 63 6f 64 65 20 77 69 74  .  that code wit
0950: 68 20 79 6f 75 72 20 6f 77 6e 20 61 70 70 6c 69  h your own appli
0960: 63 61 74 69 6f 6e 2e 0a 7d 0a 64 6f 63 20 7b 43  cation..}.doc {C
0970: 2f 43 2b 2b 20 41 50 49 20 52 65 66 65 72 65 6e  /C++ API Referen
0980: 63 65 7d 20 7b 63 33 72 65 66 2f 69 6e 74 72 6f  ce} {c3ref/intro
0990: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
09a0: 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62  document describ
09b0: 65 73 20 65 61 63 68 20 41 50 49 20 66 75 6e 63  es each API func
09c0: 74 69 6f 6e 20 73 65 70 61 72 61 74 65 6c 79 2e  tion separately.
09d0: 0a 7d 0a 64 6f 63 20 7b 52 65 73 75 6c 74 20 61  .}.doc {Result a
09e0: 6e 64 20 45 72 72 6f 72 20 43 6f 64 65 73 7d 20  nd Error Codes} 
09f0: 7b 72 65 73 63 6f 64 65 2e 68 74 6d 6c 7d 20 7b  {rescode.html} {
0a00: 0a 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e  .  A description
0a10: 20 6f 66 20 74 68 65 20 6d 65 61 6e 69 6e 67 73   of the meanings
0a20: 20 6f 66 20 74 68 65 20 6e 75 6d 65 72 69 63 20   of the numeric 
0a30: 72 65 73 75 6c 74 20 63 6f 64 65 73 0a 20 20 72  result codes.  r
0a40: 65 74 75 72 6e 65 64 20 62 79 20 76 61 72 69 6f  eturned by vario
0a50: 75 73 20 43 2f 43 2b 2b 20 69 6e 74 65 72 66 61  us C/C++ interfa
0a60: 63 65 73 2e 0a 7d 0a 64 6f 63 20 7b 53 51 4c 20  ces..}.doc {SQL 
0a70: 53 79 6e 74 61 78 7d 20 7b 6c 61 6e 67 2e 68 74  Syntax} {lang.ht
0a80: 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 64 6f 63  ml} {.  This doc
0a90: 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 20  ument describes 
0aa0: 74 68 65 20 53 51 4c 20 6c 61 6e 67 75 61 67 65  the SQL language
0ab0: 20 74 68 61 74 20 69 73 20 75 6e 64 65 72 73 74   that is underst
0ac0: 6f 6f 64 20 62 79 0a 20 20 53 51 4c 69 74 65 2e  ood by.  SQLite.
0ad0: 20 20 0a 7d 0a 64 6f 63 20 7b 50 72 61 67 6d 61    .}.doc {Pragma
0ae0: 20 63 6f 6d 6d 61 6e 64 73 7d 20 7b 70 72 61 67   commands} {prag
0af0: 6d 61 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69  ma.html} {.  Thi
0b00: 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72  s document descr
0b10: 69 62 65 73 20 53 51 4c 69 74 65 20 70 65 72 66  ibes SQLite perf
0b20: 6f 72 6d 61 6e 63 65 20 74 75 6e 69 6e 67 20 6f  ormance tuning o
0b30: 70 74 69 6f 6e 73 20 61 6e 64 20 6f 74 68 65 72  ptions and other
0b40: 20 0a 20 20 73 70 65 63 69 61 6c 20 70 75 72 70   .  special purp
0b50: 6f 73 65 20 64 61 74 61 62 61 73 65 20 63 6f 6d  ose database com
0b60: 6d 61 6e 64 73 2e 0a 7d 0a 64 6f 63 20 7b 43 6f  mands..}.doc {Co
0b70: 72 65 20 53 51 4c 20 46 75 6e 63 74 69 6f 6e 73  re SQL Functions
0b80: 7d 20 7b 6c 61 6e 67 5f 63 6f 72 65 66 75 6e 63  } {lang_corefunc
0b90: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 47 65 6e 65 72  .html} {.  Gener
0ba0: 61 6c 2d 70 75 72 70 6f 73 65 20 62 75 69 6c 74  al-purpose built
0bb0: 2d 69 6e 20 73 63 61 6c 61 72 20 53 51 4c 20 66  -in scalar SQL f
0bc0: 75 6e 63 74 69 6f 6e 73 2e 0a 7d 0a 64 6f 63 20  unctions..}.doc 
0bd0: 7b 41 67 67 72 65 67 61 74 65 20 53 51 4c 20 46  {Aggregate SQL F
0be0: 75 6e 63 74 69 6f 6e 73 7d 20 7b 6c 61 6e 67 5f  unctions} {lang_
0bf0: 61 67 67 66 75 6e 63 2e 68 74 6d 6c 7d 20 7b 0a  aggfunc.html} {.
0c00: 20 20 47 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73    General-purpos
0c10: 65 20 62 75 69 6c 74 2d 69 6e 20 61 67 67 72 65  e built-in aggre
0c20: 67 61 74 65 20 53 51 4c 20 66 75 6e 63 74 69 6f  gate SQL functio
0c30: 6e 73 2e 0a 7d 0a 64 6f 63 20 7b 44 61 74 65 20  ns..}.doc {Date 
0c40: 61 6e 64 20 54 69 6d 65 20 53 51 4c 20 46 75 6e  and Time SQL Fun
0c50: 63 74 69 6f 6e 73 7d 20 7b 6c 61 6e 67 5f 64 61  ctions} {lang_da
0c60: 74 65 66 75 6e 63 2e 68 74 6d 6c 7d 20 7b 0a 20  tefunc.html} {. 
0c70: 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 73 20 66   SQL functions f
0c80: 6f 72 20 6d 61 6e 69 70 75 6c 61 74 69 6e 67 20  or manipulating 
0c90: 64 61 74 65 73 20 61 6e 64 20 74 69 6d 65 73 2e  dates and times.
0ca0: 0a 7d 0a 64 6f 63 20 7b 53 79 73 74 65 6d 2e 44  .}.doc {System.D
0cb0: 61 74 61 2e 53 51 4c 69 74 65 7d 20 7b 68 74 74  ata.SQLite} {htt
0cc0: 70 3a 2f 2f 73 79 73 74 65 6d 2e 64 61 74 61 2e  p://system.data.
0cd0: 73 71 6c 69 74 65 2e 6f 72 67 2f 7d 20 7b 0a 20  sqlite.org/} {. 
0ce0: 20 43 23 2f 2e 4e 45 54 20 62 69 6e 64 69 6e 67   C#/.NET binding
0cf0: 73 20 66 6f 72 20 53 51 4c 69 74 65 0a 7d 0a 64  s for SQLite.}.d
0d00: 6f 63 20 7b 54 63 6c 20 41 50 49 7d 20 7b 74 63  oc {Tcl API} {tc
0d10: 6c 73 71 6c 69 74 65 2e 68 74 6d 6c 7d 20 7b 0a  lsqlite.html} {.
0d20: 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20    A description 
0d30: 6f 66 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72  of the TCL inter
0d40: 66 61 63 65 20 62 69 6e 64 69 6e 67 73 20 66 6f  face bindings fo
0d50: 72 20 53 51 4c 69 74 65 2e 0a 7d 0a 64 6f 63 20  r SQLite..}.doc 
0d60: 7b 44 61 74 61 54 79 70 65 73 7d 20 7b 64 61 74  {DataTypes} {dat
0d70: 61 74 79 70 65 33 2e 68 74 6d 6c 7d 20 7b 0a 20  atype3.html} {. 
0d80: 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20   SQLite version 
0d90: 33 20 69 6e 74 72 6f 64 75 63 65 73 20 74 68 65  3 introduces the
0da0: 20 63 6f 6e 63 65 70 74 20 6f 66 20 6d 61 6e 69   concept of mani
0db0: 66 65 73 74 20 74 79 70 69 6e 67 2c 20 77 68 65  fest typing, whe
0dc0: 72 65 20 74 68 65 0a 20 20 74 79 70 65 20 6f 66  re the.  type of
0dd0: 20 61 20 76 61 6c 75 65 20 69 73 20 61 73 73 6f   a value is asso
0de0: 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20  ciated with the 
0df0: 76 61 6c 75 65 20 69 74 73 65 6c 66 2c 20 6e 6f  value itself, no
0e00: 74 20 74 68 65 20 63 6f 6c 75 6d 6e 20 74 68 61  t the column tha
0e10: 74 0a 20 20 69 74 20 69 73 20 73 74 6f 72 65 64  t.  it is stored
0e20: 20 69 6e 2e 0a 20 20 54 68 69 73 20 70 61 67 65   in..  This page
0e30: 20 64 65 73 63 72 69 62 65 73 20 64 61 74 61 20   describes data 
0e40: 74 79 70 69 6e 67 20 66 6f 72 20 53 51 4c 69 74  typing for SQLit
0e50: 65 20 76 65 72 73 69 6f 6e 20 33 20 69 6e 20 66  e version 3 in f
0e60: 75 72 74 68 65 72 20 64 65 74 61 69 6c 2e 0a 7d  urther detail..}
0e70: 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ..##############
0e80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0e90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ea0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0eb0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
0ec0: 23 0a 68 65 61 64 69 6e 67 20 7b 45 78 74 65 6e  #.heading {Exten
0ed0: 73 69 6f 6e 73 7d 20 65 78 74 65 6e 73 69 6f 6e  sions} extension
0ee0: 73 20 7b 0a 7d 0a 64 6f 63 20 7b 4a 73 6f 6e 31  s {.}.doc {Json1
0ef0: 20 2d 20 4a 53 4f 4e 20 49 6e 74 65 67 72 61 74   - JSON Integrat
0f00: 69 6f 6e 7d 20 7b 6a 73 6f 6e 31 2e 68 74 6d 6c  ion} {json1.html
0f10: 7d 20 7b 0a 20 20 53 51 4c 20 66 75 6e 63 74 69  } {.  SQL functi
0f20: 6f 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67  ons for creating
0f30: 2c 20 70 61 72 73 69 6e 67 2c 20 61 6e 64 20 71  , parsing, and q
0f40: 75 65 72 79 69 6e 67 20 4a 53 4f 4e 20 63 6f 6e  uerying JSON con
0f50: 74 65 6e 74 2e 0a 7d 0a 64 6f 63 20 7b 46 54 53  tent..}.doc {FTS
0f60: 35 20 2d 20 46 75 6c 6c 20 54 65 78 74 20 53 65  5 - Full Text Se
0f70: 61 72 63 68 7d 20 7b 66 74 73 35 2e 68 74 6d 6c  arch} {fts5.html
0f80: 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74  } {.  A descript
0f90: 69 6f 6e 20 6f 66 20 74 68 65 20 53 51 4c 69 74  ion of the SQLit
0fa0: 65 20 46 75 6c 6c 20 54 65 78 74 20 53 65 61 72  e Full Text Sear
0fb0: 63 68 20 28 46 54 53 35 29 20 65 78 74 65 6e 73  ch (FTS5) extens
0fc0: 69 6f 6e 2e 0a 7d 0a 64 6f 63 20 7b 46 54 53 33  ion..}.doc {FTS3
0fd0: 20 2d 20 46 75 6c 6c 20 54 65 78 74 20 53 65 61   - Full Text Sea
0fe0: 72 63 68 7d 20 7b 66 74 73 33 2e 68 74 6d 6c 7d  rch} {fts3.html}
0ff0: 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70 74 69   {.  A descripti
1000: 6f 6e 20 6f 66 20 74 68 65 20 53 51 4c 69 74 65  on of the SQLite
1010: 20 46 75 6c 6c 20 54 65 78 74 20 53 65 61 72 63   Full Text Searc
1020: 68 20 28 46 54 53 33 29 20 65 78 74 65 6e 73 69  h (FTS3) extensi
1030: 6f 6e 2e 0a 7d 0a 64 6f 63 20 7b 52 2d 54 72 65  on..}.doc {R-Tre
1040: 65 20 4d 6f 64 75 6c 65 7d 20 7b 72 74 72 65 65  e Module} {rtree
1050: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 64 65 73  .html} {.  A des
1060: 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20  cription of the 
1070: 53 51 4c 69 74 65 20 52 2d 54 72 65 65 20 65 78  SQLite R-Tree ex
1080: 74 65 6e 73 69 6f 6e 2e 20 41 6e 20 52 2d 54 72  tension. An R-Tr
1090: 65 65 20 69 73 20 61 20 73 70 65 63 69 61 6c 69  ee is a speciali
10a0: 7a 65 64 0a 20 20 64 61 74 61 20 73 74 72 75 63  zed.  data struc
10b0: 74 75 72 65 20 74 68 61 74 20 73 75 70 70 6f 72  ture that suppor
10c0: 74 73 20 66 61 73 74 20 6d 75 6c 74 69 2d 64 69  ts fast multi-di
10d0: 6d 65 6e 73 69 6f 6e 61 6c 20 72 61 6e 67 65 20  mensional range 
10e0: 71 75 65 72 69 65 73 20 6f 66 74 65 6e 0a 20 20  queries often.  
10f0: 75 73 65 64 20 69 6e 20 67 65 6f 73 70 61 74 69  used in geospati
1100: 61 6c 20 73 79 73 74 65 6d 73 2e 0a 7d 0a 64 6f  al systems..}.do
1110: 63 20 7b 53 65 73 73 69 6f 6e 73 7d 20 7b 73 65  c {Sessions} {se
1120: 73 73 69 6f 6e 69 6e 74 72 6f 2e 68 74 6d 6c 7d  ssionintro.html}
1130: 20 7b 0a 20 20 54 68 65 20 53 65 73 73 69 6f 6e   {.  The Session
1140: 73 20 65 78 74 65 6e 73 69 6f 6e 20 61 6c 6c 6f  s extension allo
1150: 77 73 20 63 68 61 6e 67 65 20 74 6f 20 61 6e 20  ws change to an 
1160: 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65 20  SQLite database 
1170: 74 6f 20 62 65 0a 20 20 63 61 70 74 75 72 65 64  to be.  captured
1180: 20 69 6e 20 61 20 63 6f 6d 70 61 63 74 20 66 69   in a compact fi
1190: 6c 65 20 77 68 69 63 68 20 63 61 6e 20 62 65 20  le which can be 
11a0: 72 65 76 65 72 74 65 64 20 6f 6e 20 74 68 65 20  reverted on the 
11b0: 6f 72 69 67 69 6e 61 6c 0a 20 20 64 61 74 61 62  original.  datab
11c0: 61 73 65 20 28 74 6f 20 69 6d 70 6c 65 6d 65 6e  ase (to implemen
11d0: 74 20 22 75 6e 64 6f 22 29 20 6f 72 20 74 72 61  t "undo") or tra
11e0: 6e 73 66 65 72 72 65 64 20 61 6e 64 20 61 70 70  nsferred and app
11f0: 6c 69 65 64 20 74 6f 20 61 6e 6f 74 68 65 72 0a  lied to another.
1200: 20 20 73 69 6d 69 6c 61 72 20 64 61 74 61 62 61    similar databa
1210: 73 65 2e 0a 7d 0a 64 6f 63 20 7b 52 75 6e 2d 54  se..}.doc {Run-T
1220: 69 6d 65 20 4c 6f 61 64 61 62 6c 65 20 45 78 74  ime Loadable Ext
1230: 65 6e 73 69 6f 6e 73 7d 20 7b 6c 6f 61 64 65 78  ensions} {loadex
1240: 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 67 65  t.html} {.  A ge
1250: 6e 65 72 61 6c 20 6f 76 65 72 76 69 65 77 20 6f  neral overview o
1260: 6e 20 68 6f 77 20 72 75 6e 2d 74 69 6d 65 20 6c  n how run-time l
1270: 6f 61 64 61 62 6c 65 20 65 78 74 65 6e 73 69 6f  oadable extensio
1280: 6e 73 20 77 6f 72 6b 2c 20 68 6f 77 20 74 68 65  ns work, how the
1290: 79 0a 20 20 61 72 65 20 63 6f 6d 70 69 6c 65 64  y.  are compiled
12a0: 2c 20 61 6e 64 20 68 6f 77 20 64 65 76 65 6c 6f  , and how develo
12b0: 70 65 72 73 20 63 61 6e 20 63 72 65 61 74 65 20  pers can create 
12c0: 74 68 65 69 72 20 6f 77 6e 20 72 75 6e 2d 74 69  their own run-ti
12d0: 6d 65 20 6c 6f 61 64 61 62 6c 65 0a 20 20 65 78  me loadable.  ex
12e0: 74 65 6e 73 69 6f 6e 73 20 66 6f 72 20 53 51 4c  tensions for SQL
12f0: 69 74 65 2e 0a 7d 0a 64 6f 63 20 7b 53 51 4c 69  ite..}.doc {SQLi
1300: 74 65 20 41 6e 64 72 6f 69 64 20 42 69 6e 64 69  te Android Bindi
1310: 6e 67 73 7d 20 7b 68 74 74 70 3a 2f 2f 73 71 6c  ngs} {http://sql
1320: 69 74 65 2e 6f 72 67 2f 61 6e 64 72 6f 69 64 2f  ite.org/android/
1330: 7d 20 7b 0a 20 20 49 6e 66 6f 72 6d 61 74 69 6f  } {.  Informatio
1340: 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 64 65 70 6c  n on how to depl
1350: 6f 79 20 79 6f 75 72 20 6f 77 6e 20 70 72 69 76  oy your own priv
1360: 61 74 65 20 63 6f 70 79 20 6f 66 20 53 51 4c 69  ate copy of SQLi
1370: 74 65 20 6f 6e 0a 20 20 41 6e 64 72 6f 69 64 2c  te on.  Android,
1380: 20 62 79 70 61 73 73 69 6e 67 20 74 68 65 20 62   bypassing the b
1390: 75 69 6c 74 2d 69 6e 20 53 51 4c 69 74 65 2c 20  uilt-in SQLite, 
13a0: 62 75 74 20 75 73 69 6e 67 20 74 68 65 20 73 61  but using the sa
13b0: 6d 65 20 4a 61 76 61 0a 20 20 69 6e 74 65 72 66  me Java.  interf
13c0: 61 63 65 2e 0a 7d 0a 64 6f 63 20 7b 44 62 73 74  ace..}.doc {Dbst
13d0: 61 74 20 56 69 72 74 75 61 6c 20 54 61 62 6c 65  at Virtual Table
13e0: 7d 20 7b 64 62 73 74 61 74 2e 68 74 6d 6c 7d 20  } {dbstat.html} 
13f0: 7b 0a 20 20 54 68 65 20 44 42 53 54 41 54 20 76  {.  The DBSTAT v
1400: 69 72 74 75 61 6c 20 74 61 62 6c 65 20 72 65 70  irtual table rep
1410: 6f 72 74 73 20 6f 6e 20 74 68 65 20 73 69 7a 65  orts on the size
1420: 73 20 61 6e 64 20 67 65 6f 6d 65 74 72 69 65 73  s and geometries
1430: 20 6f 66 20 74 61 62 6c 65 73 0a 20 20 73 74 6f   of tables.  sto
1440: 72 69 6e 67 20 63 6f 6e 74 65 6e 74 20 69 6e 20  ring content in 
1450: 61 6e 20 53 51 4c 69 74 65 20 64 61 74 61 62 61  an SQLite databa
1460: 73 65 2c 20 61 6e 64 20 69 73 20 74 68 65 20 62  se, and is the b
1470: 61 73 69 73 20 66 6f 72 20 74 68 65 0a 20 20 5b  asis for the.  [
1480: 73 71 6c 69 74 65 33 5f 61 6e 61 6c 79 7a 65 72  sqlite3_analyzer
1490: 5d 20 75 74 69 6c 69 74 79 20 70 72 6f 67 72 61  ] utility progra
14a0: 6d 2e 0a 7d 0a 64 6f 63 20 7b 43 73 76 20 56 69  m..}.doc {Csv Vi
14b0: 72 74 75 61 6c 20 54 61 62 6c 65 7d 20 7b 63 73  rtual Table} {cs
14c0: 76 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20  v.html} {.  The 
14d0: 43 56 53 20 76 69 72 74 75 61 6c 20 74 61 62 6c  CVS virtual tabl
14e0: 65 20 61 6c 6c 6f 77 73 20 53 51 4c 69 74 65 20  e allows SQLite 
14f0: 74 6f 20 64 69 72 65 63 74 6c 79 20 72 65 61 64  to directly read
1500: 20 61 6e 64 20 71 75 65 72 79 0a 20 20 5b 68 74   and query.  [ht
1510: 74 70 73 3a 2f 2f 77 77 77 2e 69 65 74 66 2e 6f  tps://www.ietf.o
1520: 72 67 2f 72 66 63 2f 72 66 63 34 31 38 30 2e 74  rg/rfc/rfc4180.t
1530: 78 74 7c 52 46 43 20 34 31 38 30 5d 20 66 6f 72  xt|RFC 4180] for
1540: 6d 61 74 74 65 64 20 66 69 6c 65 73 2e 0a 7d 0a  matted files..}.
1550: 64 6f 63 20 7b 43 61 72 72 61 79 7d 20 7b 63 61  doc {Carray} {ca
1560: 72 72 61 79 2e 68 74 6d 6c 7d 20 7b 0a 20 20 43  rray.html} {.  C
1570: 41 52 52 41 59 20 69 73 20 61 20 5b 74 61 62 6c  ARRAY is a [tabl
1580: 65 2d 76 61 6c 75 65 64 20 66 75 6e 63 74 69 6f  e-valued functio
1590: 6e 5d 20 74 68 61 74 20 61 6c 6c 6f 77 73 20 43  n] that allows C
15a0: 2d 6c 61 6e 67 75 61 67 65 20 61 72 72 61 79 73  -language arrays
15b0: 20 74 6f 0a 20 20 62 65 20 75 73 65 64 20 69 6e   to.  be used in
15c0: 20 53 51 4c 20 71 75 65 72 69 65 73 2e 0a 7d 0a   SQL queries..}.
15d0: 64 6f 63 20 7b 53 70 65 6c 6c 66 69 78 31 7d 20  doc {Spellfix1} 
15e0: 7b 73 70 65 6c 6c 66 69 78 31 2e 68 74 6d 6c 7d  {spellfix1.html}
15f0: 20 7b 0a 20 20 54 68 65 20 73 70 65 6c 6c 66 69   {.  The spellfi
1600: 78 31 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20  x1 extension is 
1610: 61 6e 20 65 78 70 65 72 69 6d 65 6e 74 20 69 6e  an experiment in
1620: 20 64 6f 69 6e 67 20 73 70 65 6c 6c 69 6e 67 20   doing spelling 
1630: 63 6f 72 72 65 63 74 69 6f 6e 0a 20 20 66 6f 72  correction.  for
1640: 20 5b 66 75 6c 6c 2d 74 65 78 74 20 73 65 61 72   [full-text sear
1650: 63 68 5d 2e 0a 7d 0a 0a 23 23 23 23 23 23 23 23  ch]..}..########
1660: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1670: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1680: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
1690: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
16a0: 23 23 23 23 23 23 23 0a 68 65 61 64 69 6e 67 20  #######.heading 
16b0: 7b 46 65 61 74 75 72 65 73 7d 20 66 65 61 74 75  {Features} featu
16c0: 72 65 73 20 7b 0a 20 20 50 61 67 65 73 20 64 65  res {.  Pages de
16d0: 73 63 72 69 62 69 6e 67 20 73 70 65 63 69 66 69  scribing specifi
16e0: 63 20 66 65 61 74 75 72 65 73 20 6f 72 20 65 78  c features or ex
16f0: 74 65 6e 73 69 6f 6e 20 6d 6f 64 75 6c 65 73 20  tension modules 
1700: 6f 66 20 53 51 4c 69 74 65 2e 0a 7d 0a 64 6f 63  of SQLite..}.doc
1710: 20 7b 38 2b 33 20 46 69 6c 65 6e 61 6d 65 73 7d   {8+3 Filenames}
1720: 20 7b 73 68 6f 72 74 6e 61 6d 65 73 2e 68 74 6d   {shortnames.htm
1730: 6c 7d 20 7b 0a 20 20 48 6f 77 20 74 6f 20 6d 61  l} {.  How to ma
1740: 6b 65 20 53 51 4c 69 74 65 20 77 6f 72 6b 20 6f  ke SQLite work o
1750: 6e 20 66 69 6c 65 73 79 73 74 65 6d 73 20 74 68  n filesystems th
1760: 61 74 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 20  at only support 
1770: 0a 20 20 38 2b 33 20 66 69 6c 65 6e 61 6d 65 73  .  8+3 filenames
1780: 2e 0a 7d 0a 64 6f 63 20 7b 41 75 74 6f 69 6e 63  ..}.doc {Autoinc
1790: 72 65 6d 65 6e 74 7d 20 7b 61 75 74 6f 69 6e 63  rement} {autoinc
17a0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 64 65 73  .html} {.  A des
17b0: 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20  cription of the 
17c0: 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20 6b 65  AUTOINCREMENT ke
17d0: 79 77 6f 72 64 20 69 6e 20 53 51 4c 69 74 65 2c  yword in SQLite,
17e0: 20 77 68 61 74 20 69 74 20 64 6f 65 73 2c 0a 20   what it does,. 
17f0: 20 77 68 79 20 69 74 20 69 73 20 73 6f 6d 65 74   why it is somet
1800: 69 6d 65 73 20 75 73 65 66 75 6c 2c 20 61 6e 64  imes useful, and
1810: 20 77 68 79 20 69 74 20 73 68 6f 75 6c 64 20 62   why it should b
1820: 65 20 61 76 6f 69 64 65 64 20 69 66 20 6e 6f 74  e avoided if not
1830: 0a 20 20 73 74 72 69 63 74 6c 79 20 6e 65 63 65  .  strictly nece
1840: 73 73 61 72 79 2e 0a 7d 0a 64 6f 63 20 7b 42 61  ssary..}.doc {Ba
1850: 63 6b 75 70 20 41 50 49 7d 20 7b 62 61 63 6b 75  ckup API} {backu
1860: 70 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 65 20  p.html} {.  The 
1870: 5b 73 71 6c 69 74 65 33 5f 62 61 63 6b 75 70 5f  [sqlite3_backup_
1880: 69 6e 69 74 20 7c 20 6f 6e 6c 69 6e 65 2d 62 61  init | online-ba
1890: 63 6b 75 70 20 69 6e 74 65 72 66 61 63 65 5d 20  ckup interface] 
18a0: 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 0a 20  can be used to. 
18b0: 20 63 6f 70 79 20 63 6f 6e 74 65 6e 74 20 66 72   copy content fr
18c0: 6f 6d 20 61 20 64 69 73 6b 20 66 69 6c 65 20 69  om a disk file i
18d0: 6e 74 6f 20 61 6e 20 69 6e 2d 6d 65 6d 6f 72 79  nto an in-memory
18e0: 20 64 61 74 61 62 61 73 65 20 6f 72 20 76 69 63   database or vic
18f0: 65 0a 20 20 76 65 72 73 61 20 61 6e 64 20 69 74  e.  versa and it
1900: 20 63 61 6e 20 6d 61 6b 65 20 61 20 68 6f 74 20   can make a hot 
1910: 62 61 63 6b 75 70 20 6f 66 20 61 20 6c 69 76 65  backup of a live
1920: 20 64 61 74 61 62 61 73 65 2e 20 20 54 68 69 73   database.  This
1930: 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 20 20 6e   application.  n
1940: 6f 74 65 20 67 69 76 65 73 20 65 78 61 6d 70 6c  ote gives exampl
1950: 65 73 20 6f 66 20 68 6f 77 2e 0a 7d 0a 64 6f 63  es of how..}.doc
1960: 20 7b 45 72 72 6f 72 20 61 6e 64 20 57 61 72 6e   {Error and Warn
1970: 69 6e 67 20 4c 6f 67 7d 20 7b 65 72 72 6c 6f 67  ing Log} {errlog
1980: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69 74  .html} {.  SQLit
1990: 65 20 73 75 70 70 6f 72 74 73 20 61 6e 20 22 65  e supports an "e
19a0: 72 72 6f 72 20 61 6e 64 20 77 61 72 6e 69 6e 67  rror and warning
19b0: 20 6c 6f 67 22 20 64 65 73 69 67 6e 20 74 6f 20   log" design to 
19c0: 63 61 70 74 75 72 65 20 69 6e 66 6f 72 6d 61 74  capture informat
19d0: 69 6f 6e 0a 20 20 61 62 6f 75 74 20 73 75 73 70  ion.  about susp
19e0: 69 63 69 6f 75 73 20 61 6e 64 2f 6f 72 20 65 72  icious and/or er
19f0: 72 6f 72 20 65 76 65 6e 74 73 20 64 75 72 69 6e  ror events durin
1a00: 67 20 6f 70 65 72 61 74 69 6f 6e 2e 20 20 45 6d  g operation.  Em
1a10: 62 65 64 64 65 64 20 61 70 70 6c 69 63 61 74 69  bedded applicati
1a20: 6f 6e 73 0a 20 20 61 72 65 20 65 6e 63 6f 75 72  ons.  are encour
1a30: 61 67 65 64 20 74 6f 20 65 6e 61 62 6c 65 20 74  aged to enable t
1a40: 68 65 20 65 72 72 6f 72 20 61 6e 64 20 77 61 72  he error and war
1a50: 6e 69 6e 67 20 6c 6f 67 20 74 6f 20 68 65 6c 70  ning log to help
1a60: 20 77 69 74 68 20 64 65 62 75 67 67 69 6e 67 0a   with debugging.
1a70: 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 70 72    application pr
1a80: 6f 62 6c 65 6d 73 20 74 68 61 74 20 61 72 69 73  oblems that aris
1a90: 65 20 69 6e 20 74 68 65 20 66 69 65 6c 64 2e 20  e in the field. 
1aa0: 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 65   This document e
1ab0: 78 70 6c 61 69 6e 73 20 68 6f 77 0a 20 20 74 6f  xplains how.  to
1ac0: 20 64 6f 20 74 68 61 74 2e 0a 7d 0a 64 6f 63 20   do that..}.doc 
1ad0: 7b 46 6f 72 65 69 67 6e 20 4b 65 79 20 53 75 70  {Foreign Key Sup
1ae0: 70 6f 72 74 7d 20 7b 66 6f 72 65 69 67 6e 6b 65  port} {foreignke
1af0: 79 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69  ys.html} {.  Thi
1b00: 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72  s document descr
1b10: 69 62 65 73 20 74 68 65 20 73 75 70 70 6f 72 74  ibes the support
1b20: 20 66 6f 72 20 66 6f 72 65 69 67 6e 20 6b 65 79   for foreign key
1b30: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 74   constraints int
1b40: 72 6f 64 75 63 65 64 0a 20 20 69 6e 20 76 65 72  roduced.  in ver
1b50: 73 69 6f 6e 20 33 2e 36 2e 31 39 2e 0a 7d 0a 64  sion 3.6.19..}.d
1b60: 6f 63 20 7b 49 6e 64 65 78 65 73 20 4f 6e 20 45  oc {Indexes On E
1b70: 78 70 72 65 73 73 69 6f 6e 73 7d 20 7b 65 78 70  xpressions} {exp
1b80: 72 69 64 78 2e 68 74 6d 6c 7d 20 7b 0a 20 20 4e  ridx.html} {.  N
1b90: 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63  otes on how to c
1ba0: 72 65 61 74 65 20 69 6e 64 65 78 65 73 20 6f 6e  reate indexes on
1bb0: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 73   expressions ins
1bc0: 74 65 61 64 20 6f 66 20 6a 75 73 74 0a 20 20 69  tead of just.  i
1bd0: 6e 64 69 76 69 64 75 61 6c 20 63 6f 6c 75 6d 6e  ndividual column
1be0: 73 2e 0a 7d 0a 64 6f 63 20 7b 49 6e 74 65 72 6e  s..}.doc {Intern
1bf0: 61 6c 20 76 65 72 73 75 73 20 45 78 74 65 72 6e  al versus Extern
1c00: 61 6c 20 42 6c 6f 62 20 53 74 6f 72 61 67 65 7d  al Blob Storage}
1c10: 20 7b 69 6e 74 65 72 6e 2d 76 2d 65 78 74 65 72   {intern-v-exter
1c20: 6e 2d 62 6c 6f 62 2e 68 74 6d 6c 7d 20 7b 0a 20  n-blob.html} {. 
1c30: 20 53 68 6f 75 6c 64 20 79 6f 75 20 73 74 6f 72   Should you stor
1c40: 65 20 6c 61 72 67 65 20 42 4c 4f 42 73 20 64 69  e large BLOBs di
1c50: 72 65 63 74 6c 79 20 69 6e 20 74 68 65 20 64 61  rectly in the da
1c60: 74 61 62 61 73 65 2c 20 6f 72 20 73 74 6f 72 65  tabase, or store
1c70: 20 74 68 65 6d 0a 20 20 69 6e 20 66 69 6c 65 73   them.  in files
1c80: 20 61 6e 64 20 6a 75 73 74 20 72 65 63 6f 72 64   and just record
1c90: 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 20 69 6e   the filename in
1ca0: 20 74 68 65 20 64 61 74 61 62 61 73 65 3f 20 20   the database?  
1cb0: 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 0a 20 20  This document.  
1cc0: 73 65 65 6b 73 20 74 6f 20 73 68 65 64 20 6c 69  seeks to shed li
1cd0: 67 68 74 20 6f 6e 20 74 68 61 74 20 71 75 65 73  ght on that ques
1ce0: 74 69 6f 6e 2e 0a 7d 0a 64 6f 63 20 7b 4c 69 6d  tion..}.doc {Lim
1cf0: 69 74 73 20 49 6e 20 53 51 4c 69 74 65 7d 20 7b  its In SQLite} {
1d00: 6c 69 6d 69 74 73 2e 68 74 6d 6c 7d 20 7b 0a 20  limits.html} {. 
1d10: 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 64   This document d
1d20: 65 73 63 72 69 62 65 73 20 6c 69 6d 69 74 61 74  escribes limitat
1d30: 69 6f 6e 73 20 6f 66 20 53 51 4c 69 74 65 20 28  ions of SQLite (
1d40: 74 68 65 20 6d 61 78 69 6d 75 6d 20 6c 65 6e 67  the maximum leng
1d50: 74 68 20 6f 66 20 61 0a 20 20 73 74 72 69 6e 67  th of a.  string
1d60: 20 6f 72 20 62 6c 6f 62 2c 20 74 68 65 20 6d 61   or blob, the ma
1d70: 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 20 61 20  ximum size of a 
1d80: 64 61 74 61 62 61 73 65 2c 20 74 68 65 20 6d 61  database, the ma
1d90: 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 0a  ximum number of.
1da0: 20 20 74 61 62 6c 65 73 20 69 6e 20 61 20 64 61    tables in a da
1db0: 74 61 62 61 73 65 2c 20 65 74 63 2e 29 20 61 6e  tabase, etc.) an
1dc0: 64 20 68 6f 77 20 74 68 65 73 65 20 6c 69 6d 69  d how these limi
1dd0: 74 73 20 63 61 6e 20 62 65 20 61 6c 74 65 72 65  ts can be altere
1de0: 64 20 61 74 0a 20 20 63 6f 6d 70 69 6c 65 2d 74  d at.  compile-t
1df0: 69 6d 65 20 61 6e 64 20 72 75 6e 2d 74 69 6d 65  ime and run-time
1e00: 2e 0a 7d 0a 64 6f 63 20 7b 4d 65 6d 6f 72 79 2d  ..}.doc {Memory-
1e10: 4d 61 70 70 65 64 20 49 2f 4f 7d 20 7b 6d 6d 61  Mapped I/O} {mma
1e20: 70 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69  p.html} {.  SQLi
1e30: 74 65 20 73 75 70 70 6f 72 74 73 20 6d 65 6d 6f  te supports memo
1e40: 72 79 2d 6d 61 70 70 65 64 20 49 2f 4f 2e 20 20  ry-mapped I/O.  
1e50: 4c 65 61 72 6e 20 68 6f 77 20 74 6f 20 65 6e 61  Learn how to ena
1e60: 62 6c 65 20 6d 65 6d 6f 72 79 2d 6d 61 70 70 65  ble memory-mappe
1e70: 64 0a 20 20 49 2f 4f 20 61 6e 64 20 61 62 6f 75  d.  I/O and abou
1e80: 74 20 74 68 65 20 76 61 72 69 6f 75 73 20 61 64  t the various ad
1e90: 76 61 6e 74 61 67 65 73 20 61 6e 64 20 64 69 73  vantages and dis
1ea0: 61 64 76 61 6e 74 61 67 65 73 20 74 6f 20 75 73  advantages to us
1eb0: 69 6e 67 0a 20 20 6d 65 6d 6f 72 79 2d 6d 61 70  ing.  memory-map
1ec0: 70 65 64 20 49 2f 4f 20 69 6e 20 74 68 69 73 20  ped I/O in this 
1ed0: 64 6f 63 75 6d 65 6e 74 2e 0a 7d 0a 64 6f 63 20  document..}.doc 
1ee0: 7b 4d 75 6c 74 69 2d 74 68 72 65 61 64 65 64 20  {Multi-threaded 
1ef0: 50 72 6f 67 72 61 6d 73 20 61 6e 64 20 53 51 4c  Programs and SQL
1f00: 69 74 65 7d 20 7b 74 68 72 65 61 64 73 61 66 65  ite} {threadsafe
1f10: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69 74  .html} {.  SQLit
1f20: 65 20 69 73 20 73 61 66 65 20 74 6f 20 75 73 65  e is safe to use
1f30: 20 69 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61 64   in multi-thread
1f40: 65 64 20 70 72 6f 67 72 61 6d 73 2e 20 20 54 68  ed programs.  Th
1f50: 69 73 20 64 6f 63 75 6d 65 6e 74 0a 20 20 70 72  is document.  pr
1f60: 6f 76 69 64 65 73 20 74 68 65 20 64 65 74 61 69  ovides the detai
1f70: 6c 73 20 61 6e 64 20 68 69 6e 74 73 20 6f 6e 20  ls and hints on 
1f80: 68 6f 77 20 74 6f 20 6d 61 78 69 6d 69 7a 65 20  how to maximize 
1f90: 70 65 72 66 6f 72 6d 61 6e 63 65 2e 0a 7d 0a 64  performance..}.d
1fa0: 6f 63 20 7b 4e 75 6c 6c 20 48 61 6e 64 6c 69 6e  oc {Null Handlin
1fb0: 67 7d 20 7b 6e 75 6c 6c 73 2e 68 74 6d 6c 7d 20  g} {nulls.html} 
1fc0: 7b 0a 20 20 44 69 66 66 65 72 65 6e 74 20 53 51  {.  Different SQ
1fd0: 4c 20 64 61 74 61 62 61 73 65 20 65 6e 67 69 6e  L database engin
1fe0: 65 73 20 68 61 6e 64 6c 65 20 4e 55 4c 4c 73 20  es handle NULLs 
1ff0: 69 6e 20 64 69 66 66 65 72 65 6e 74 20 77 61 79  in different way
2000: 73 2e 20 20 54 68 65 0a 20 20 53 51 4c 20 73 74  s.  The.  SQL st
2010: 61 6e 64 61 72 64 73 20 61 72 65 20 61 6d 62 69  andards are ambi
2020: 67 75 6f 75 73 2e 20 20 54 68 69 73 20 28 63 69  guous.  This (ci
2030: 72 63 61 20 32 30 30 33 29 20 64 6f 63 75 6d 65  rca 2003) docume
2040: 6e 74 20 64 65 73 63 72 69 62 65 73 0a 20 20 68  nt describes.  h
2050: 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65  ow SQLite handle
2060: 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6d 70 61  s NULLs in compa
2070: 72 69 73 6f 6e 20 77 69 74 68 20 6f 74 68 65 72  rison with other
2080: 20 53 51 4c 20 64 61 74 61 62 61 73 65 20 65 6e   SQL database en
2090: 67 69 6e 65 73 2e 0a 7d 0a 64 6f 63 20 7b 50 61  gines..}.doc {Pa
20a0: 72 74 69 61 6c 20 49 6e 64 65 78 65 73 7d 20 7b  rtial Indexes} {
20b0: 70 61 72 74 69 61 6c 69 6e 64 65 78 2e 68 74 6d  partialindex.htm
20c0: 6c 7d 20 7b 0a 20 20 41 20 70 61 72 74 69 61 6c  l} {.  A partial
20d0: 20 69 6e 64 65 78 20 69 73 20 61 6e 20 69 6e 64   index is an ind
20e0: 65 78 20 74 68 61 74 20 6f 6e 6c 79 20 63 6f 76  ex that only cov
20f0: 65 72 73 20 61 20 73 75 62 73 65 74 20 6f 66 20  ers a subset of 
2100: 74 68 65 20 72 6f 77 73 20 69 6e 0a 20 20 61 20  the rows in.  a 
2110: 74 61 62 6c 65 2e 20 20 4c 65 61 72 6e 20 68 6f  table.  Learn ho
2120: 77 20 74 6f 20 75 73 65 20 70 61 72 74 69 61 6c  w to use partial
2130: 20 69 6e 64 65 78 65 73 20 69 6e 20 53 51 4c 69   indexes in SQLi
2140: 74 65 20 66 72 6f 6d 20 74 68 69 73 20 64 6f 63  te from this doc
2150: 75 6d 65 6e 74 2e 0a 7d 0a 64 6f 63 20 7b 53 68  ument..}.doc {Sh
2160: 61 72 65 64 20 43 61 63 68 65 20 4d 6f 64 65 7d  ared Cache Mode}
2170: 20 7b 73 68 61 72 65 64 63 61 63 68 65 2e 68 74   {sharedcache.ht
2180: 6d 6c 7d 20 7b 0a 20 20 56 65 72 73 69 6f 6e 20  ml} {.  Version 
2190: 33 2e 33 2e 30 20 61 6e 64 20 6c 61 74 65 72 20  3.3.0 and later 
21a0: 73 75 70 70 6f 72 74 73 20 74 68 65 20 61 62 69  supports the abi
21b0: 6c 69 74 79 20 66 6f 72 20 74 77 6f 20 6f 72 20  lity for two or 
21c0: 6d 6f 72 65 0a 20 20 64 61 74 61 62 61 73 65 20  more.  database 
21d0: 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20 73  connections to s
21e0: 68 61 72 65 20 74 68 65 20 73 61 6d 65 20 70 61  hare the same pa
21f0: 67 65 20 61 6e 64 20 73 63 68 65 6d 61 20 63 61  ge and schema ca
2200: 63 68 65 2e 0a 20 20 54 68 69 73 20 66 65 61 74  che..  This feat
2210: 75 72 65 20 69 73 20 75 73 65 66 75 6c 20 66 6f  ure is useful fo
2220: 72 20 63 65 72 74 61 69 6e 20 73 70 65 63 69 61  r certain specia
2230: 6c 69 7a 65 64 20 61 70 70 6c 69 63 61 74 69 6f  lized applicatio
2240: 6e 73 2e 0a 7d 0a 64 6f 63 20 7b 55 6e 6c 6f 63  ns..}.doc {Unloc
2250: 6b 20 4e 6f 74 69 66 79 7d 20 7b 75 6e 6c 6f 63  k Notify} {unloc
2260: 6b 5f 6e 6f 74 69 66 79 2e 68 74 6d 6c 7d 20 7b  k_notify.html} {
2270: 0a 20 20 54 68 65 20 22 75 6e 6c 6f 63 6b 20 6e  .  The "unlock n
2280: 6f 74 69 66 79 22 20 66 65 61 74 75 72 65 20 63  otify" feature c
2290: 61 6e 20 62 65 20 75 73 65 64 20 69 6e 20 63 6f  an be used in co
22a0: 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 0a 20  njunction with. 
22b0: 20 5b 73 68 61 72 65 64 20 63 61 63 68 65 20 6d   [shared cache m
22c0: 6f 64 65 5d 20 74 6f 20 6d 6f 72 65 20 65 66 66  ode] to more eff
22d0: 69 63 69 65 6e 74 6c 79 20 6d 61 6e 61 67 65 20  iciently manage 
22e0: 72 65 73 6f 75 72 63 65 20 63 6f 6e 66 6c 69 63  resource conflic
22f0: 74 20 28 64 61 74 61 62 61 73 65 0a 20 20 74 61  t (database.  ta
2300: 62 6c 65 20 6c 6f 63 6b 73 29 2e 0a 7d 0a 64 6f  ble locks)..}.do
2310: 63 20 7b 55 52 49 20 46 69 6c 65 6e 61 6d 65 73  c {URI Filenames
2320: 7d 20 7b 75 72 69 2e 68 74 6d 6c 7d 20 7b 0a 20  } {uri.html} {. 
2330: 20 54 68 65 20 6e 61 6d 65 73 20 6f 66 20 64 61   The names of da
2340: 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 61 6e  tabase files can
2350: 20 62 65 20 73 70 65 63 69 66 69 65 64 20 75 73   be specified us
2360: 69 6e 67 20 65 69 74 68 65 72 20 61 6e 20 6f 72  ing either an or
2370: 64 69 6e 61 72 79 0a 20 20 66 69 6c 65 6e 61 6d  dinary.  filenam
2380: 65 20 6f 72 20 61 20 55 52 49 2e 20 20 55 73 69  e or a URI.  Usi
2390: 6e 67 20 55 52 49 20 66 69 6c 65 6e 61 6d 65 73  ng URI filenames
23a0: 20 70 72 6f 76 69 64 65 73 20 61 64 64 69 74 69   provides additi
23b0: 6f 6e 61 6c 20 63 61 70 61 62 69 6c 69 74 69 65  onal capabilitie
23c0: 73 2c 0a 20 20 61 73 20 74 68 69 73 20 64 6f 63  s,.  as this doc
23d0: 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65 73 2e  ument describes.
23e0: 0a 7d 0a 64 6f 63 20 7b 57 49 54 48 4f 55 54 20  .}.doc {WITHOUT 
23f0: 52 4f 57 49 44 20 54 61 62 6c 65 73 7d 20 7b 77  ROWID Tables} {w
2400: 69 74 68 6f 75 74 72 6f 77 69 64 2e 68 74 6d 6c  ithoutrowid.html
2410: 7d 20 7b 0a 20 20 54 68 65 20 57 49 54 48 4f 55  } {.  The WITHOU
2420: 54 20 52 4f 57 49 44 20 6f 70 74 69 6d 69 7a 61  T ROWID optimiza
2430: 74 69 6f 6e 20 69 73 20 61 20 6f 70 74 69 6f 6e  tion is a option
2440: 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69   that can someti
2450: 6d 65 73 20 72 65 73 75 6c 74 0a 20 20 69 6e 20  mes result.  in 
2460: 73 6d 61 6c 6c 65 72 20 61 6e 64 20 66 61 73 74  smaller and fast
2470: 65 72 20 64 61 74 61 62 61 73 65 73 2e 0a 7d 0a  er databases..}.
2480: 64 6f 63 20 7b 57 72 69 74 65 2d 41 68 65 61 64  doc {Write-Ahead
2490: 20 4c 6f 67 20 28 57 41 4c 29 20 4d 6f 64 65 7d   Log (WAL) Mode}
24a0: 20 7b 77 61 6c 2e 68 74 6d 6c 7d 20 7b 0a 20 20   {wal.html} {.  
24b0: 54 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74  Transaction cont
24c0: 72 6f 6c 20 75 73 69 6e 67 20 61 20 77 72 69 74  rol using a writ
24d0: 65 2d 61 68 65 61 64 20 6c 6f 67 20 6f 66 66 65  e-ahead log offe
24e0: 72 73 20 6d 6f 72 65 20 63 6f 6e 63 75 72 72 65  rs more concurre
24f0: 6e 63 79 20 61 6e 64 0a 20 20 69 73 20 6f 66 74  ncy and.  is oft
2500: 65 6e 20 66 61 73 74 65 72 20 74 68 61 6e 20 74  en faster than t
2510: 68 65 20 64 65 66 61 75 6c 74 20 72 6f 6c 6c 62  he default rollb
2520: 61 63 6b 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  ack transactions
2530: 2e 20 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74  .  This document
2540: 0a 20 20 65 78 70 6c 61 69 6e 73 20 68 6f 77 20  .  explains how 
2550: 74 6f 20 75 73 65 20 57 41 4c 20 6d 6f 64 65 20  to use WAL mode 
2560: 66 6f 72 20 69 6d 70 72 6f 76 65 64 20 70 65 72  for improved per
2570: 66 6f 72 6d 61 6e 63 65 2e 0a 7d 0a 0a 23 23 23  formance..}..###
2580: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2590: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25a0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25b0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
25c0: 23 23 23 23 23 23 23 23 23 23 23 23 0a 68 65 61  ############.hea
25d0: 64 69 6e 67 20 7b 54 6f 6f 6c 73 7d 20 74 6f 6f  ding {Tools} too
25e0: 6c 73 20 7b 0a 20 20 49 6e 66 6f 72 6d 61 74 69  ls {.  Informati
25f0: 6f 6e 20 61 62 6f 75 74 20 74 6f 6f 6c 73 20 66  on about tools f
2600: 6f 72 20 75 73 69 6e 67 20 61 6e 64 20 61 6e 61  or using and ana
2610: 6c 79 7a 69 6e 67 20 53 51 4c 69 74 65 0a 7d 0a  lyzing SQLite.}.
2620: 64 6f 63 20 7b 43 6f 6d 6d 61 6e 64 2d 4c 69 6e  doc {Command-Lin
2630: 65 20 53 68 65 6c 6c 20 28 73 71 6c 69 74 65 33  e Shell (sqlite3
2640: 2e 65 78 65 29 7d 20 7b 63 6c 69 2e 68 74 6d 6c  .exe)} {cli.html
2650: 7d 20 7b 0a 20 20 4e 6f 74 65 73 20 6f 6e 20 75  } {.  Notes on u
2660: 73 69 6e 67 20 74 68 65 20 22 73 71 6c 69 74 65  sing the "sqlite
2670: 33 2e 65 78 65 22 20 63 6f 6d 6d 61 6e 64 2d 6c  3.exe" command-l
2680: 69 6e 65 20 69 6e 74 65 72 66 61 63 65 20 74 68  ine interface th
2690: 61 74 0a 20 20 63 61 6e 20 62 65 20 75 73 65 64  at.  can be used
26a0: 20 74 6f 20 63 72 65 61 74 65 2c 20 6d 6f 64 69   to create, modi
26b0: 66 79 2c 20 61 6e 64 20 71 75 65 72 79 20 61 72  fy, and query ar
26c0: 62 69 74 72 61 72 79 20 53 51 4c 69 74 65 0a 20  bitrary SQLite. 
26d0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e   database files.
26e0: 0a 7d 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20 44  .}.doc {SQLite D
26f0: 61 74 61 62 61 73 65 20 41 6e 61 6c 79 7a 65 72  atabase Analyzer
2700: 20 28 73 71 6c 69 74 65 33 5f 61 6e 61 6c 79 7a   (sqlite3_analyz
2710: 65 72 2e 65 78 65 29 7d 20 7b 73 71 6c 61 6e 61  er.exe)} {sqlana
2720: 6c 79 7a 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  lyze.html} {.  T
2730: 68 69 73 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20  his stand-alone 
2740: 70 72 6f 67 72 61 6d 20 72 65 61 64 73 20 61 6e  program reads an
2750: 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65   SQLite database
2760: 20 61 6e 64 20 6f 75 74 70 75 74 73 20 61 20 66   and outputs a f
2770: 69 6c 65 0a 20 20 73 68 6f 77 69 6e 67 20 74 68  ile.  showing th
2780: 65 20 73 70 61 63 65 20 75 73 65 64 20 62 79 20  e space used by 
2790: 65 61 63 68 20 74 61 62 6c 65 20 61 6e 64 20 69  each table and i
27a0: 6e 64 65 78 20 61 6e 64 20 6f 74 68 65 72 20 73  ndex and other s
27b0: 74 61 74 69 73 74 69 63 73 2e 0a 20 20 42 75 69  tatistics..  Bui
27c0: 6c 74 20 75 73 69 6e 67 20 74 68 65 20 5b 64 62  lt using the [db
27d0: 73 74 61 74 20 76 69 72 74 75 61 6c 20 74 61 62  stat virtual tab
27e0: 6c 65 5d 2e 0a 7d 0a 64 6f 63 20 7b 52 42 55 7d  le]..}.doc {RBU}
27f0: 20 7b 72 62 75 2e 68 74 6d 6c 7d 20 7b 0a 20 20   {rbu.html} {.  
2800: 54 68 65 20 22 52 65 73 75 6d 61 62 6c 65 20 42  The "Resumable B
2810: 75 6c 6b 20 55 70 64 61 74 65 22 20 75 74 69 6c  ulk Update" util
2820: 69 74 79 20 70 72 6f 67 72 61 6d 20 61 6c 6c 6f  ity program allo
2830: 77 73 20 61 20 62 61 74 63 68 20 6f 66 20 63 68  ws a batch of ch
2840: 61 6e 67 65 73 0a 20 20 74 6f 20 62 65 20 61 70  anges.  to be ap
2850: 70 6c 69 65 64 20 74 6f 20 61 20 72 65 6d 6f 74  plied to a remot
2860: 65 20 64 61 74 61 62 61 73 65 20 72 75 6e 6e 69  e database runni
2870: 6e 67 20 6f 6e 20 65 6d 62 65 64 64 65 64 20 68  ng on embedded h
2880: 61 72 64 77 61 72 65 20 69 6e 20 61 0a 20 20 77  ardware in a.  w
2890: 61 79 20 74 68 61 74 20 69 73 20 72 65 73 75 6d  ay that is resum
28a0: 65 61 62 6c 65 20 61 6e 64 20 64 6f 65 73 20 6e  eable and does n
28b0: 6f 74 20 69 6e 74 65 72 72 75 70 74 20 6f 6e 67  ot interrupt ong
28c0: 6f 69 6e 67 20 6f 70 65 72 61 74 69 6f 6e 2e 0a  oing operation..
28d0: 7d 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20 44 61  }.doc {SQLite Da
28e0: 74 61 62 61 73 65 20 44 69 66 66 20 28 73 71 6c  tabase Diff (sql
28f0: 64 69 66 66 2e 65 78 65 29 7d 20 7b 73 71 6c 64  diff.exe)} {sqld
2900: 69 66 66 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  iff.html} {.  Th
2910: 69 73 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20 70  is stand-alone p
2920: 72 6f 67 72 61 6d 20 63 6f 6d 70 61 72 65 73 20  rogram compares 
2930: 74 77 6f 20 53 51 4c 69 74 65 20 64 61 74 61 62  two SQLite datab
2940: 61 73 65 20 66 69 6c 65 73 20 61 6e 64 0a 20 20  ase files and.  
2950: 6f 75 74 70 75 74 73 20 74 68 65 20 53 51 4c 20  outputs the SQL 
2960: 6e 65 65 64 65 64 20 74 6f 20 63 6f 6e 76 65 72  needed to conver
2970: 74 20 6f 6e 65 20 69 6e 74 6f 20 74 68 65 20 6f  t one into the o
2980: 74 68 65 72 2e 0a 7d 0a 64 6f 63 20 7b 44 61 74  ther..}.doc {Dat
2990: 61 62 61 73 65 20 48 61 73 68 20 28 64 62 68 61  abase Hash (dbha
29a0: 73 68 2e 65 78 65 29 7d 20 7b 64 62 68 61 73 68  sh.exe)} {dbhash
29b0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
29c0: 70 72 6f 67 72 61 6d 20 64 65 6d 6f 6e 73 74 72  program demonstr
29d0: 61 74 65 73 20 68 6f 77 20 74 6f 20 63 6f 6d 70  ates how to comp
29e0: 75 74 65 20 61 20 68 61 73 68 20 6f 76 65 72 20  ute a hash over 
29f0: 74 68 65 20 63 6f 6e 74 65 6e 74 0a 20 20 6f 66  the content.  of
2a00: 20 61 6e 20 53 51 4c 69 74 65 20 64 61 74 61 62   an SQLite datab
2a10: 61 73 65 2e 0a 7d 0a 64 6f 63 20 7b 46 6f 73 73  ase..}.doc {Foss
2a20: 69 6c 7d 20 7b 68 74 74 70 3a 2f 2f 77 77 77 2e  il} {http://www.
2a30: 66 6f 73 73 69 6c 2d 73 63 6d 2e 6f 72 67 2f 7d  fossil-scm.org/}
2a40: 20 7b 0a 20 20 54 68 65 20 46 6f 73 73 69 6c 20   {.  The Fossil 
2a50: 56 65 72 73 69 6f 6e 20 43 6f 6e 74 72 6f 6c 20  Version Control 
2a60: 53 79 73 74 65 6d 20 69 73 20 61 20 64 69 73 74  System is a dist
2a70: 72 69 62 75 74 65 64 20 56 43 53 20 64 65 73 69  ributed VCS desi
2a80: 67 6e 65 64 20 73 70 65 63 69 66 69 63 61 6c 6c  gned specificall
2a90: 79 0a 20 20 74 6f 20 73 75 70 70 6f 72 74 20 53  y.  to support S
2aa0: 51 4c 69 74 65 20 64 65 76 65 6c 6f 70 6d 65 6e  QLite developmen
2ab0: 74 2e 20 20 46 6f 73 73 69 6c 20 75 73 65 73 20  t.  Fossil uses 
2ac0: 53 51 4c 69 74 65 20 61 73 20 66 6f 72 20 73 74  SQLite as for st
2ad0: 6f 72 61 67 65 2e 0a 7d 0a 64 6f 63 20 7b 53 51  orage..}.doc {SQ
2ae0: 4c 69 74 65 20 41 72 63 68 69 76 65 72 20 28 73  Lite Archiver (s
2af0: 71 6c 61 72 2e 65 78 65 29 7d 20 7b 68 74 74 70  qlar.exe)} {http
2b00: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
2b10: 67 2f 73 71 6c 61 72 2f 7d 20 7b 0a 20 20 41 20  g/sqlar/} {.  A 
2b20: 5a 49 50 2d 6c 69 6b 65 20 61 72 63 68 69 76 65  ZIP-like archive
2b30: 20 70 72 6f 67 72 61 6d 20 74 68 61 74 20 75 73   program that us
2b40: 65 73 20 53 51 4c 69 74 65 20 66 6f 72 20 73 74  es SQLite for st
2b50: 6f 72 61 67 65 2e 0a 7d 0a 0a 23 23 23 23 23 23  orage..}..######
2b60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2b70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2b80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2b90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2ba0: 23 23 23 23 23 23 23 23 23 0a 68 65 61 64 69 6e  #########.headin
2bb0: 67 20 7b 41 64 76 6f 63 61 63 79 7d 20 61 64 76  g {Advocacy} adv
2bc0: 6f 63 61 63 79 20 7b 0a 20 20 44 6f 63 75 6d 65  ocacy {.  Docume
2bd0: 6e 74 73 20 74 68 61 74 20 73 74 72 69 76 65 20  nts that strive 
2be0: 74 6f 20 65 6e 63 6f 75 72 61 67 65 20 74 68 65  to encourage the
2bf0: 20 75 73 65 20 6f 66 20 53 51 4c 69 74 65 2e 0a   use of SQLite..
2c00: 7d 0a 64 6f 63 20 7b 53 51 4c 69 74 65 20 41 73  }.doc {SQLite As
2c10: 20 41 6e 20 41 70 70 6c 69 63 61 74 69 6f 6e 20   An Application 
2c20: 46 69 6c 65 20 46 6f 72 6d 61 74 7d 20 7b 61 70  File Format} {ap
2c30: 70 66 69 6c 65 66 6f 72 6d 61 74 2e 68 74 6d 6c  pfileformat.html
2c40: 7d 20 7b 0a 20 20 54 68 69 73 20 61 72 74 69 63  } {.  This artic
2c50: 6c 65 20 61 64 76 6f 63 61 74 65 73 20 75 73 69  le advocates usi
2c60: 6e 67 20 53 51 4c 69 74 65 20 61 73 20 61 6e 20  ng SQLite as an 
2c70: 61 70 70 6c 69 63 61 74 69 6f 6e 20 66 69 6c 65  application file
2c80: 20 66 6f 72 6d 61 74 0a 20 20 69 6e 20 70 6c 61   format.  in pla
2c90: 63 65 20 6f 66 20 58 4d 4c 20 6f 72 20 4a 53 4f  ce of XML or JSO
2ca0: 4e 20 6f 72 20 61 20 22 70 69 6c 65 2d 6f 66 2d  N or a "pile-of-
2cb0: 66 69 6c 65 22 2e 0a 7d 0a 64 6f 63 20 7b 57 65  file"..}.doc {We
2cc0: 6c 6c 20 4b 6e 6f 77 6e 20 55 73 65 72 73 7d 20  ll Known Users} 
2cd0: 7b 66 61 6d 6f 75 73 2e 68 74 6d 6c 7d 20 7b 0a  {famous.html} {.
2ce0: 20 20 54 68 69 73 20 70 61 67 65 20 6c 69 73 74    This page list
2cf0: 73 20 61 20 73 6d 61 6c 6c 20 73 75 62 73 65 74  s a small subset
2d00: 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 74 68 6f   of the many tho
2d10: 75 73 61 6e 64 73 20 6f 66 20 64 65 76 69 63 65  usands of device
2d20: 73 0a 20 20 61 6e 64 20 61 70 70 6c 69 63 61 74  s.  and applicat
2d30: 69 6f 6e 20 70 72 6f 67 72 61 6d 73 20 74 68 61  ion programs tha
2d40: 74 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 53 51  t make use of SQ
2d50: 4c 69 74 65 2e 0a 7d 0a 0a 0a 23 23 23 23 23 23  Lite..}...######
2d60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2d70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2d80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2d90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2da0: 23 23 23 23 23 23 23 23 23 0a 68 65 61 64 69 6e  #########.headin
2db0: 67 20 7b 54 65 63 68 6e 69 63 61 6c 20 61 6e 64  g {Technical and
2dc0: 20 44 65 73 69 67 6e 20 44 6f 63 75 6d 65 6e 74   Design Document
2dd0: 61 74 69 6f 6e 7d 20 74 65 63 68 6e 69 63 61 6c  ation} technical
2de0: 20 7b 0a 20 20 54 68 65 73 65 20 64 6f 63 75 6d   {.  These docum
2df0: 65 6e 74 73 20 61 72 65 20 6f 72 69 65 6e 74 65  ents are oriente
2e00: 64 20 74 6f 77 61 72 64 20 64 65 73 63 72 69 62  d toward describ
2e10: 69 6e 67 20 74 68 65 20 69 6e 74 65 72 6e 61 6c  ing the internal
2e20: 0a 20 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  .  implementatio
2e30: 6e 20 64 65 74 61 69 6c 73 20 61 6e 64 20 6f 70  n details and op
2e40: 65 72 61 74 69 6f 6e 20 6f 66 20 53 51 4c 69 74  eration of SQLit
2e50: 65 2e 20 20 0a 7d 0a 0a 64 6f 63 20 7b 48 6f 77  e.  .}..doc {How
2e60: 20 44 61 74 61 62 61 73 65 20 43 6f 72 72 75 70   Database Corrup
2e70: 74 69 6f 6e 20 43 61 6e 20 4f 63 63 75 72 7d 20  tion Can Occur} 
2e80: 7b 68 6f 77 74 6f 63 6f 72 72 75 70 74 2e 68 74  {howtocorrupt.ht
2e90: 6d 6c 7d 20 7b 0a 20 20 53 51 4c 69 74 65 20 69  ml} {.  SQLite i
2ea0: 73 20 68 69 67 68 6c 79 20 72 65 73 69 73 74 61  s highly resista
2eb0: 6e 74 20 74 6f 20 64 61 74 61 62 61 73 65 20 63  nt to database c
2ec0: 6f 72 72 75 70 74 69 6f 6e 2e 20 20 42 75 74 20  orruption.  But 
2ed0: 61 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 4f  application,.  O
2ee0: 53 2c 20 61 6e 64 20 68 61 72 64 77 61 72 65 20  S, and hardware 
2ef0: 62 75 67 73 20 63 61 6e 20 73 74 69 6c 6c 20 72  bugs can still r
2f00: 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75 70 74  esult in corrupt
2f10: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 2e   database files.
2f20: 0a 20 20 54 68 69 73 20 61 72 74 69 63 6c 65 20  .  This article 
2f30: 64 65 73 63 72 69 62 65 73 20 6d 61 6e 79 20 6f  describes many o
2f40: 66 20 74 68 65 20 77 61 79 73 20 74 68 61 74 20  f the ways that 
2f50: 53 51 4c 69 74 65 20 64 61 74 61 62 61 73 65 20  SQLite database 
2f60: 66 69 6c 65 73 0a 20 20 63 61 6e 20 67 6f 20 63  files.  can go c
2f70: 6f 72 72 75 70 74 2e 0a 7d 0a 0a 64 6f 63 20 7b  orrupt..}..doc {
2f80: 54 65 6d 70 6f 72 61 72 79 20 46 69 6c 65 73 20  Temporary Files 
2f90: 55 73 65 64 20 42 79 20 53 51 4c 69 74 65 7d 20  Used By SQLite} 
2fa0: 7b 74 65 6d 70 66 69 6c 65 73 2e 68 74 6d 6c 7d  {tempfiles.html}
2fb0: 20 7b 0a 20 20 53 51 4c 69 74 65 20 63 61 6e 20   {.  SQLite can 
2fc0: 70 6f 74 65 6e 74 69 61 6c 6c 79 20 75 73 65 20  potentially use 
2fd0: 6d 61 6e 79 20 64 69 66 66 65 72 65 6e 74 20 74  many different t
2fe0: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 77  emporary files w
2ff0: 68 65 6e 0a 20 20 70 72 6f 63 65 73 73 69 6e 67  hen.  processing
3000: 20 63 65 72 74 61 69 6e 20 53 51 4c 20 73 74 61   certain SQL sta
3010: 74 65 6d 65 6e 74 73 2e 20 20 54 68 69 73 20 64  tements.  This d
3020: 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62 65  ocument describe
3030: 73 20 74 68 65 0a 20 20 6d 61 6e 79 20 6b 69 6e  s the.  many kin
3040: 64 73 20 6f 66 20 74 65 6d 70 6f 72 61 72 79 20  ds of temporary 
3050: 66 69 6c 65 73 20 74 68 61 74 20 53 51 4c 69 74  files that SQLit
3060: 65 20 75 73 65 73 20 61 6e 64 20 6f 66 66 65 72  e uses and offer
3070: 73 20 73 75 67 67 65 73 74 69 6f 6e 73 0a 20 20  s suggestions.  
3080: 66 6f 72 20 61 76 6f 69 64 69 6e 67 20 74 68 65  for avoiding the
3090: 6d 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68 65  m on systems whe
30a0: 72 65 20 63 72 65 61 74 69 6e 67 20 61 20 74 65  re creating a te
30b0: 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 69 73 20  mporary file is 
30c0: 61 6e 0a 20 20 65 78 70 65 6e 73 69 76 65 20 6f  an.  expensive o
30d0: 70 65 72 61 74 69 6f 6e 2e 0a 7d 0a 0a 64 6f 63  peration..}..doc
30e0: 20 7b 49 6e 2d 4d 65 6d 6f 72 79 20 44 61 74 61   {In-Memory Data
30f0: 62 61 73 65 73 7d 20 7b 69 6e 6d 65 6d 6f 72 79  bases} {inmemory
3100: 64 62 2e 68 74 6d 6c 7d 20 7b 0a 20 20 53 51 4c  db.html} {.  SQL
3110: 69 74 65 20 6e 6f 72 6d 61 6c 6c 79 20 73 74 6f  ite normally sto
3120: 72 65 73 20 63 6f 6e 74 65 6e 74 20 69 6e 20 61  res content in a
3130: 20 64 69 73 6b 20 66 69 6c 65 2e 20 20 48 6f 77   disk file.  How
3140: 65 76 65 72 2c 20 69 74 20 63 61 6e 20 61 6c 73  ever, it can als
3150: 6f 0a 20 20 62 65 20 75 73 65 64 20 61 73 20 61  o.  be used as a
3160: 6e 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61  n in-memory data
3170: 62 61 73 65 20 65 6e 67 69 6e 65 2e 20 20 54 68  base engine.  Th
3180: 69 73 20 64 6f 63 75 6d 65 6e 74 20 65 78 70 6c  is document expl
3190: 61 69 6e 73 20 68 6f 77 2e 0a 7d 0a 0a 64 6f 63  ains how..}..doc
31a0: 20 7b 48 6f 77 20 53 51 4c 69 74 65 20 49 6d 70   {How SQLite Imp
31b0: 6c 65 6d 65 6e 74 73 20 41 74 6f 6d 69 63 20 43  lements Atomic C
31c0: 6f 6d 6d 69 74 7d 20 7b 61 74 6f 6d 69 63 63 6f  ommit} {atomicco
31d0: 6d 6d 69 74 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41  mmit.html} {.  A
31e0: 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20   description of 
31f0: 74 68 65 20 6c 6f 67 69 63 20 77 69 74 68 69 6e  the logic within
3200: 20 53 51 4c 69 74 65 20 74 68 61 74 20 69 6d 70   SQLite that imp
3210: 6c 65 6d 65 6e 74 73 0a 20 20 74 72 61 6e 73 61  lements.  transa
3220: 63 74 69 6f 6e 73 20 77 69 74 68 20 61 74 6f 6d  ctions with atom
3230: 69 63 20 63 6f 6d 6d 69 74 2c 20 65 76 65 6e 20  ic commit, even 
3240: 69 6e 20 74 68 65 20 66 61 63 65 20 6f 66 20 70  in the face of p
3250: 6f 77 65 72 0a 20 20 66 61 69 6c 75 72 65 73 2e  ower.  failures.
3260: 0a 7d 0a 0a 64 6f 63 20 7b 44 79 6e 61 6d 69 63  .}..doc {Dynamic
3270: 20 4d 65 6d 6f 72 79 20 41 6c 6c 6f 63 61 74 69   Memory Allocati
3280: 6f 6e 20 69 6e 20 53 51 4c 69 74 65 7d 20 7b 6d  on in SQLite} {m
3290: 61 6c 6c 6f 63 2e 68 74 6d 6c 7d 20 7b 0a 20 20  alloc.html} {.  
32a0: 53 51 4c 69 74 65 20 68 61 73 20 61 20 73 6f 70  SQLite has a sop
32b0: 68 69 73 74 69 63 61 74 65 64 20 6d 65 6d 6f 72  histicated memor
32c0: 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 73 75 62  y allocation sub
32d0: 73 79 73 74 65 6d 20 74 68 61 74 20 63 61 6e 20  system that can 
32e0: 62 65 0a 20 20 63 6f 6e 66 69 67 75 72 65 64 20  be.  configured 
32f0: 61 6e 64 20 63 75 73 74 6f 6d 69 7a 65 64 20 74  and customized t
3300: 6f 20 6d 65 65 74 20 6d 65 6d 6f 72 79 20 75 73  o meet memory us
3310: 61 67 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73  age requirements
3320: 20 6f 66 20 74 68 65 0a 20 20 61 70 70 6c 69 63   of the.  applic
3330: 61 74 69 6f 6e 20 61 6e 64 20 74 68 61 74 20 69  ation and that i
3340: 73 20 72 6f 62 75 73 74 20 61 67 61 69 6e 73 74  s robust against
3350: 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 63   out-of-memory c
3360: 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 0a 20 20  onditions and.  
3370: 6c 65 61 6b 2d 66 72 65 65 2e 20 20 54 68 69 73  leak-free.  This
3380: 20 64 6f 63 75 6d 65 6e 74 20 70 72 6f 76 69 64   document provid
3390: 65 73 20 74 68 65 20 64 65 74 61 69 6c 73 2e 0a  es the details..
33a0: 7d 0a 0a 64 6f 63 20 7b 43 75 73 74 6f 6d 69 7a  }..doc {Customiz
33b0: 69 6e 67 20 41 6e 64 20 50 6f 72 74 69 6e 67 20  ing And Porting 
33c0: 53 51 4c 69 74 65 7d 20 7b 63 75 73 74 6f 6d 62  SQLite} {customb
33d0: 75 69 6c 64 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  uild.html} {.  T
33e0: 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 65 78 70  his document exp
33f0: 6c 61 69 6e 73 20 68 6f 77 20 74 6f 20 63 75 73  lains how to cus
3400: 74 6f 6d 69 7a 65 20 74 68 65 20 62 75 69 6c 64  tomize the build
3410: 20 6f 66 20 53 51 4c 69 74 65 20 61 6e 64 0a 20   of SQLite and. 
3420: 20 68 6f 77 20 74 6f 20 70 6f 72 74 20 53 51 4c   how to port SQL
3430: 69 74 65 20 74 6f 20 6e 65 77 20 70 6c 61 74 66  ite to new platf
3440: 6f 72 6d 73 2e 0a 7d 0a 0a 64 6f 63 20 7b 4c 6f  orms..}..doc {Lo
3450: 63 6b 69 6e 67 20 41 6e 64 20 43 6f 6e 63 75 72  cking And Concur
3460: 72 65 6e 63 79 3c 62 72 3e 49 6e 20 53 51 4c 69  rency<br>In SQLi
3470: 74 65 20 56 65 72 73 69 6f 6e 20 33 7d 20 7b 6c  te Version 3} {l
3480: 6f 63 6b 69 6e 67 76 33 2e 68 74 6d 6c 7d 20 7b  ockingv3.html} {
3490: 0a 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e  .  A description
34a0: 20 6f 66 20 68 6f 77 20 74 68 65 20 6e 65 77 20   of how the new 
34b0: 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 69 6e 20  locking code in 
34c0: 76 65 72 73 69 6f 6e 20 33 20 69 6e 63 72 65 61  version 3 increa
34d0: 73 65 73 0a 20 20 63 6f 6e 63 75 72 72 65 6e 63  ses.  concurrenc
34e0: 79 20 61 6e 64 20 64 65 63 72 65 61 73 65 73 20  y and decreases 
34f0: 74 68 65 20 70 72 6f 62 6c 65 6d 20 6f 66 20 77  the problem of w
3500: 72 69 74 65 72 20 73 74 61 72 76 61 74 69 6f 6e  riter starvation
3510: 2e 0a 7d 0a 0a 64 6f 63 20 7b 49 73 6f 6c 61 74  ..}..doc {Isolat
3520: 69 6f 6e 20 49 6e 20 53 51 4c 69 74 65 7d 20 7b  ion In SQLite} {
3530: 69 73 6f 6c 61 74 69 6f 6e 2e 68 74 6d 6c 7d 20  isolation.html} 
3540: 7b 0a 20 20 57 68 65 6e 20 77 65 20 73 61 79 20  {.  When we say 
3550: 74 68 61 74 20 53 51 4c 69 74 65 20 74 72 61 6e  that SQLite tran
3560: 73 61 63 74 69 6f 6e 73 20 61 72 65 20 22 73 65  sactions are "se
3570: 72 69 61 6c 69 7a 61 62 6c 65 22 20 77 68 61 74  rializable" what
3580: 20 65 78 61 63 74 6c 79 0a 20 20 64 6f 65 73 20   exactly.  does 
3590: 74 68 61 74 20 6d 65 61 6e 3f 20 20 48 6f 77 20  that mean?  How 
35a0: 61 6e 64 20 77 68 65 6e 20 61 72 65 20 63 68 61  and when are cha
35b0: 6e 67 65 73 20 6d 61 64 65 20 76 69 73 69 62 6c  nges made visibl
35c0: 65 20 77 69 74 68 69 6e 20 74 68 65 0a 20 20 73  e within the.  s
35d0: 61 6d 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  ame database con
35e0: 6e 65 63 74 69 6f 6e 20 61 6e 64 20 74 6f 20 6f  nection and to o
35f0: 74 68 65 72 20 64 61 74 61 62 61 73 65 20 63 6f  ther database co
3600: 6e 6e 65 63 74 69 6f 6e 73 3f 0a 7d 0a 0a 64 6f  nnections?.}..do
3610: 63 20 7b 4f 76 65 72 76 69 65 77 20 4f 66 20 54  c {Overview Of T
3620: 68 65 20 4f 70 74 69 6d 69 7a 65 72 7d 20 7b 6f  he Optimizer} {o
3630: 70 74 6f 76 65 72 76 69 65 77 2e 68 74 6d 6c 7d  ptoverview.html}
3640: 20 7b 0a 20 20 41 20 71 75 69 63 6b 20 6f 76 65   {.  A quick ove
3650: 72 76 69 65 77 20 6f 66 20 74 68 65 20 76 61 72  rview of the var
3660: 69 6f 75 73 20 71 75 65 72 79 20 6f 70 74 69 6d  ious query optim
3670: 69 7a 61 74 69 6f 6e 73 20 74 68 61 74 20 61 72  izations that ar
3680: 65 0a 20 20 61 74 74 65 6d 70 74 65 64 20 62 79  e.  attempted by
3690: 20 74 68 65 20 53 51 4c 69 74 65 20 63 6f 64 65   the SQLite code
36a0: 20 67 65 6e 65 72 61 74 6f 72 2e 0a 7d 0a 64 6f   generator..}.do
36b0: 63 20 7b 54 68 65 20 4e 65 78 74 2d 47 65 6e 65  c {The Next-Gene
36c0: 72 61 74 69 6f 6e 20 51 75 65 72 79 20 50 6c 61  ration Query Pla
36d0: 6e 6e 65 72 7d 20 7b 71 75 65 72 79 70 6c 61 6e  nner} {queryplan
36e0: 6e 65 72 2d 6e 67 2e 68 74 6d 6c 7d 20 7b 0a 20  ner-ng.html} {. 
36f0: 20 41 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f   Additional info
3700: 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68  rmation about th
3710: 65 20 53 51 4c 69 74 65 20 71 75 65 72 79 20 70  e SQLite query p
3720: 6c 61 6e 6e 65 72 2c 20 61 6e 64 20 69 6e 20 70  lanner, and in p
3730: 61 72 74 69 63 75 6c 61 72 0a 20 20 74 68 65 20  articular.  the 
3740: 72 65 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20  redesign of the 
3750: 71 75 65 72 79 20 70 6c 61 6e 6e 65 72 20 74 68  query planner th
3760: 61 74 20 6f 63 63 75 72 72 65 64 20 66 6f 72 20  at occurred for 
3770: 76 65 72 73 69 6f 6e 20 33 2e 38 2e 30 2e 0a 7d  version 3.8.0..}
3780: 0a 0a 64 6f 63 20 7b 41 72 63 68 69 74 65 63 74  ..doc {Architect
3790: 75 72 65 7d 20 7b 61 72 63 68 2e 68 74 6d 6c 7d  ure} {arch.html}
37a0: 20 7b 0a 20 20 41 6e 20 61 72 63 68 69 74 65 63   {.  An architec
37b0: 74 75 72 61 6c 20 6f 76 65 72 76 69 65 77 20 6f  tural overview o
37c0: 66 20 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62  f the SQLite lib
37d0: 72 61 72 79 2c 20 75 73 65 66 75 6c 20 66 6f 72  rary, useful for
37e0: 20 74 68 6f 73 65 20 77 68 6f 20 77 61 6e 74 0a   those who want.
37f0: 20 20 74 6f 20 68 61 63 6b 20 74 68 65 20 63 6f    to hack the co
3800: 64 65 2e 0a 7d 0a 64 6f 63 20 7b 56 44 42 45 20  de..}.doc {VDBE 
3810: 4f 70 63 6f 64 65 73 7d 20 7b 6f 70 63 6f 64 65  Opcodes} {opcode
3820: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
3830: 64 6f 63 75 6d 65 6e 74 20 69 73 20 61 6e 20 61  document is an a
3840: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e  utomatically gen
3850: 65 72 61 74 65 64 20 64 65 73 63 72 69 70 74 69  erated descripti
3860: 6f 6e 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75  on of the variou
3870: 73 0a 20 20 6f 70 63 6f 64 65 73 20 74 68 61 74  s.  opcodes that
3880: 20 74 68 65 20 56 44 42 45 20 75 6e 64 65 72 73   the VDBE unders
3890: 74 61 6e 64 73 2e 20 20 50 72 6f 67 72 61 6d 6d  tands.  Programm
38a0: 65 72 73 20 63 61 6e 20 75 73 65 20 74 68 69 73  ers can use this
38b0: 20 64 6f 63 75 6d 65 6e 74 20 61 73 0a 20 20 61   document as.  a
38c0: 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20 62 65   reference to be
38d0: 74 74 65 72 20 75 6e 64 65 72 73 74 61 6e 64 20  tter understand 
38e0: 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 45 58  the output of EX
38f0: 50 4c 41 49 4e 20 6c 69 73 74 69 6e 67 73 20 66  PLAIN listings f
3900: 72 6f 6d 0a 20 20 53 51 4c 69 74 65 2e 0a 7d 0a  rom.  SQLite..}.
3910: 64 6f 63 20 7b 56 69 72 74 75 61 6c 20 46 69 6c  doc {Virtual Fil
3920: 65 73 79 73 74 65 6d 7d 20 7b 76 66 73 2e 68 74  esystem} {vfs.ht
3930: 6d 6c 7d 20 7b 0a 20 20 54 68 65 20 22 56 46 53  ml} {.  The "VFS
3940: 22 20 6f 62 6a 65 63 74 20 69 73 20 74 68 65 20  " object is the 
3950: 69 6e 74 65 72 66 61 63 65 20 62 65 74 77 65 65  interface betwee
3960: 6e 20 74 68 65 20 53 51 4c 69 74 65 20 63 6f 72  n the SQLite cor
3970: 65 20 61 6e 64 20 74 68 65 0a 20 20 75 6e 64 65  e and the.  unde
3980: 72 6c 79 69 6e 67 20 6f 70 65 72 61 74 69 6e 67  rlying operating
3990: 20 73 79 73 74 65 6d 2e 20 20 4c 65 61 72 6e 20   system.  Learn 
39a0: 6d 6f 72 65 20 61 62 6f 75 74 20 68 6f 77 20 74  more about how t
39b0: 68 65 20 56 46 53 20 6f 62 6a 65 63 74 0a 20 20  he VFS object.  
39c0: 77 6f 72 6b 73 20 61 6e 64 20 68 6f 77 20 74 6f  works and how to
39d0: 20 63 72 65 61 74 65 20 6e 65 77 20 56 46 53 20   create new VFS 
39e0: 6f 62 6a 65 63 74 73 20 66 72 6f 6d 20 74 68 69  objects from thi
39f0: 73 20 61 72 74 69 63 6c 65 2e 0a 7d 0a 64 6f 63  s article..}.doc
3a00: 20 7b 56 69 72 74 75 61 6c 20 54 61 62 6c 65 73   {Virtual Tables
3a10: 7d 20 7b 76 74 61 62 2e 68 74 6d 6c 7d 20 7b 0a  } {vtab.html} {.
3a20: 20 20 54 68 69 73 20 61 72 74 69 63 6c 65 20 64    This article d
3a30: 65 73 63 72 69 62 65 73 20 74 68 65 20 76 69 72  escribes the vir
3a40: 74 75 61 6c 20 74 61 62 6c 65 20 6d 65 63 68 61  tual table mecha
3a50: 6e 69 73 6d 20 61 6e 64 20 41 50 49 20 69 6e 20  nism and API in 
3a60: 53 51 4c 69 74 65 20 61 6e 64 20 68 6f 77 0a 20  SQLite and how. 
3a70: 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 20   it can be used 
3a80: 74 6f 20 61 64 64 20 6e 65 77 20 63 61 70 61 62  to add new capab
3a90: 69 6c 69 74 69 65 73 20 74 6f 20 74 68 65 20 63  ilities to the c
3aa0: 6f 72 65 20 53 51 4c 69 74 65 20 6c 69 62 72 61  ore SQLite libra
3ab0: 72 79 2e 0a 7d 0a 0a 64 6f 63 20 7b 53 51 4c 69  ry..}..doc {SQLi
3ac0: 74 65 20 46 69 6c 65 20 46 6f 72 6d 61 74 7d 20  te File Format} 
3ad0: 7b 66 69 6c 65 66 6f 72 6d 61 74 32 2e 68 74 6d  {fileformat2.htm
3ae0: 6c 7d 20 7b 0a 20 20 41 20 64 65 73 63 72 69 70  l} {.  A descrip
3af0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 72 6d  tion of the form
3b00: 61 74 20 75 73 65 64 20 66 6f 72 20 53 51 4c 69  at used for SQLi
3b10: 74 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20  te database and 
3b20: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 73 2c 20 61  journal files, a
3b30: 6e 64 0a 20 20 6f 74 68 65 72 20 64 65 74 61 69  nd.  other detai
3b40: 6c 73 20 72 65 71 75 69 72 65 64 20 74 6f 20 63  ls required to c
3b50: 72 65 61 74 65 20 73 6f 66 74 77 61 72 65 20 74  reate software t
3b60: 6f 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 65  o read and write
3b70: 20 53 51 4c 69 74 65 20 0a 20 20 64 61 74 61 62   SQLite .  datab
3b80: 61 73 65 73 20 77 69 74 68 6f 75 74 20 75 73 69  ases without usi
3b90: 6e 67 20 53 51 4c 69 74 65 2e 0a 7d 0a 0a 64 6f  ng SQLite..}..do
3ba0: 63 20 7b 43 6f 6d 70 69 6c 61 74 69 6f 6e 20 4f  c {Compilation O
3bb0: 70 74 69 6f 6e 73 7d 20 7b 63 6f 6d 70 69 6c 65  ptions} {compile
3bc0: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
3bd0: 64 6f 63 75 6d 65 6e 74 20 64 65 73 63 72 69 62  document describ
3be0: 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 20 74  es the compile t
3bf0: 69 6d 65 20 6f 70 74 69 6f 6e 73 20 74 68 61 74  ime options that
3c00: 20 6d 61 79 20 62 65 20 73 65 74 20 74 6f 20 0a   may be set to .
3c10: 20 20 6d 6f 64 69 66 79 20 74 68 65 20 64 65 66    modify the def
3c20: 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20 6f 66  ault behavior of
3c30: 20 74 68 65 20 6c 69 62 72 61 72 79 20 6f 72 20   the library or 
3c40: 6f 6d 69 74 20 6f 70 74 69 6f 6e 61 6c 20 66 65  omit optional fe
3c50: 61 74 75 72 65 73 0a 20 20 69 6e 20 6f 72 64 65  atures.  in orde
3c60: 72 20 74 6f 20 72 65 64 75 63 65 20 62 69 6e 61  r to reduce bina
3c70: 72 79 20 73 69 7a 65 2e 0a 7d 0a 0a 64 6f 63 20  ry size..}..doc 
3c80: 7b 41 6e 64 72 6f 69 64 20 42 69 6e 64 69 6e 67  {Android Binding
3c90: 73 20 66 6f 72 20 53 51 4c 69 74 65 7d 20 7b 68  s for SQLite} {h
3ca0: 74 74 70 73 3a 2f 2f 73 71 6c 69 74 65 2e 6f 72  ttps://sqlite.or
3cb0: 67 2f 61 6e 64 72 6f 69 64 2f 7d 20 7b 0a 20 20  g/android/} {.  
3cc0: 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66  A description of
3cd0: 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20   how to compile 
3ce0: 79 6f 75 72 20 6f 77 6e 20 53 51 4c 69 74 65 20  your own SQLite 
3cf0: 66 6f 72 20 41 6e 64 72 6f 69 64 0a 20 20 28 62  for Android.  (b
3d00: 79 70 61 73 73 69 6e 67 20 74 68 65 20 53 51 4c  ypassing the SQL
3d10: 69 74 65 20 74 68 61 74 20 69 73 20 62 75 69 6c  ite that is buil
3d20: 74 20 69 6e 74 6f 20 41 6e 64 72 6f 69 64 29 20  t into Android) 
3d30: 74 6f 67 65 74 68 65 72 20 77 69 74 68 0a 20 20  together with.  
3d40: 63 6f 64 65 20 61 6e 64 20 6d 61 6b 65 66 69 6c  code and makefil
3d50: 65 73 2e 0a 7d 0a 0a 23 23 23 23 23 23 23 23 23  es..}..#########
3d60: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d70: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d80: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3d90: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
3da0: 23 23 23 23 23 23 0a 68 65 61 64 69 6e 67 20 7b  ######.heading {
3db0: 55 70 67 72 61 64 69 6e 67 20 53 51 4c 69 74 65  Upgrading SQLite
3dc0: 2c 20 42 61 63 6b 77 61 72 64 73 20 43 6f 6d 70  , Backwards Comp
3dd0: 61 74 69 62 69 6c 69 74 79 7d 20 63 6f 6d 70 61  atibility} compa
3de0: 74 0a 0a 64 6f 63 20 7b 4d 6f 76 69 6e 67 20 46  t..doc {Moving F
3df0: 72 6f 6d 20 53 51 4c 69 74 65 20 33 2e 35 20 74  rom SQLite 3.5 t
3e00: 6f 20 33 2e 36 7d 20 7b 33 35 74 6f 33 36 2e 68  o 3.6} {35to36.h
3e10: 74 6d 6c 7d 20 7b 0a 20 20 41 20 64 6f 63 75 6d  tml} {.  A docum
3e20: 65 6e 74 20 64 65 73 63 72 69 62 69 6e 67 20 74  ent describing t
3e30: 68 65 20 64 69 66 66 65 72 65 6e 63 65 73 20 62  he differences b
3e40: 65 74 77 65 65 6e 20 53 51 4c 69 74 65 20 76 65  etween SQLite ve
3e50: 72 73 69 6f 6e 20 33 2e 35 2e 39 0a 20 20 61 6e  rsion 3.5.9.  an
3e60: 64 20 33 2e 36 2e 30 2e 0a 7d 0a 64 6f 63 20 7b  d 3.6.0..}.doc {
3e70: 4d 6f 76 69 6e 67 20 46 72 6f 6d 20 53 51 4c 69  Moving From SQLi
3e80: 74 65 20 33 2e 34 20 74 6f 20 33 2e 35 7d 20 7b  te 3.4 to 3.5} {
3e90: 33 34 74 6f 33 35 2e 68 74 6d 6c 7d 20 7b 0a 20  34to35.html} {. 
3ea0: 20 41 20 64 6f 63 75 6d 65 6e 74 20 64 65 73 63   A document desc
3eb0: 72 69 62 69 6e 67 20 74 68 65 20 64 69 66 66 65  ribing the diffe
3ec0: 72 65 6e 63 65 73 20 62 65 74 77 65 65 6e 20 53  rences between S
3ed0: 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20 33 2e  QLite version 3.
3ee0: 34 2e 32 0a 20 20 61 6e 64 20 33 2e 35 2e 30 2e  4.2.  and 3.5.0.
3ef0: 0a 7d 0a 64 6f 63 20 7b 52 65 6c 65 61 73 65 20  .}.doc {Release 
3f00: 48 69 73 74 6f 72 79 7d 20 7b 63 68 61 6e 67 65  History} {change
3f10: 73 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 63 68  s.html} {.  A ch
3f20: 72 6f 6e 6f 6c 6f 67 79 20 6f 66 20 53 51 4c 69  ronology of SQLi
3f30: 74 65 20 72 65 6c 65 61 73 65 73 20 67 6f 69 6e  te releases goin
3f40: 67 20 62 61 63 6b 20 74 6f 20 76 65 72 73 69 6f  g back to versio
3f50: 6e 20 31 2e 30 2e 30 0a 7d 0a 64 6f 63 20 7b 42  n 1.0.0.}.doc {B
3f60: 61 63 6b 77 61 72 64 73 20 43 6f 6d 70 61 74 69  ackwards Compati
3f70: 62 69 6c 69 74 79 7d 20 7b 66 6f 72 6d 61 74 63  bility} {formatc
3f80: 68 6e 67 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68  hng.html} {.  Th
3f90: 69 73 20 64 6f 63 75 6d 65 6e 74 20 64 65 74 61  is document deta
3fa0: 69 6c 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 69  ils all of the i
3fb0: 6e 63 6f 6d 70 61 74 69 62 6c 65 20 63 68 61 6e  ncompatible chan
3fc0: 67 65 73 20 74 6f 20 74 68 65 20 53 51 4c 69 74  ges to the SQLit
3fd0: 65 0a 20 20 66 69 6c 65 20 66 6f 72 6d 61 74 20  e.  file format 
3fe0: 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72 72  that have occurr
3ff0: 65 64 20 73 69 6e 63 65 20 76 65 72 73 69 6f 6e  ed since version
4000: 20 31 2e 30 2e 30 2e 0a 7d 0a 0a 64 6f 63 20 7b   1.0.0..}..doc {
4010: 50 72 69 76 61 74 65 20 42 72 61 6e 63 68 65 73  Private Branches
4020: 7d 20 7b 70 72 69 76 61 74 65 62 72 61 6e 63 68  } {privatebranch
4030: 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20  .html} {.  This 
4040: 64 6f 63 75 6d 65 6e 74 20 73 75 67 67 65 73 74  document suggest
4050: 73 20 70 72 6f 63 65 64 75 72 65 73 20 66 6f 72  s procedures for
4060: 20 6d 61 69 6e 74 61 69 6e 69 6e 67 20 61 20 70   maintaining a p
4070: 72 69 76 61 74 65 20 62 72 61 6e 63 68 0a 20 20  rivate branch.  
4080: 6f 72 20 66 6f 72 6b 20 6f 66 20 53 51 4c 69 74  or fork of SQLit
4090: 65 20 61 6e 64 20 6b 65 65 70 69 6e 67 20 74 68  e and keeping th
40a0: 61 74 20 62 72 61 6e 63 68 20 6f 72 20 66 6f 72  at branch or for
40b0: 6b 20 69 6e 20 73 79 6e 63 20 77 69 74 68 20 74  k in sync with t
40c0: 68 65 0a 20 20 70 75 62 6c 69 63 20 53 51 4c 69  he.  public SQLi
40d0: 74 65 20 73 6f 75 72 63 65 20 74 72 65 65 2e 0a  te source tree..
40e0: 7d 0a 0a 0a 23 23 23 23 23 23 23 23 23 23 23 23  }...############
40f0: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
4100: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
4110: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
4120: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
4130: 23 23 23 0a 68 65 61 64 69 6e 67 20 7b 4f 62 73  ###.heading {Obs
4140: 6f 6c 65 74 65 20 44 6f 63 75 6d 65 6e 74 73 7d  olete Documents}
4150: 20 6f 62 73 6f 6c 65 74 65 20 7b 0a 20 20 54 68   obsolete {.  Th
4160: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 6f 63 75  e following docu
4170: 6d 65 6e 74 73 20 61 72 65 20 6e 6f 20 6c 6f 6e  ments are no lon
4180: 67 65 72 20 63 75 72 72 65 6e 74 20 61 6e 64 20  ger current and 
4190: 61 72 65 20 72 65 74 61 69 6e 65 64 0a 20 20 66  are retained.  f
41a0: 6f 72 20 68 69 73 74 6f 72 69 63 61 6c 20 72 65  or historical re
41b0: 66 65 72 65 6e 63 65 20 6f 6e 6c 79 2e 0a 20 20  ference only..  
41c0: 54 68 65 73 65 20 64 6f 63 75 6d 65 6e 74 73 20  These documents 
41d0: 67 65 6e 65 72 61 6c 6c 79 20 70 65 72 74 61 69  generally pertai
41e0: 6e 20 74 6f 20 6f 75 74 2d 6f 66 2d 64 61 74 65  n to out-of-date
41f0: 2c 20 6f 62 73 6f 6c 65 74 65 2c 20 61 6e 64 2f  , obsolete, and/
4200: 6f 72 0a 20 20 64 65 70 72 65 63 61 74 65 64 20  or.  deprecated 
4210: 66 65 61 74 75 72 65 73 20 61 6e 64 20 65 78 74  features and ext
4220: 65 6e 73 69 6f 6e 73 2e 0a 7d 0a 64 6f 63 20 7b  ensions..}.doc {
4230: 41 73 79 6e 63 68 72 6f 6e 6f 75 73 20 49 4f 20  Asynchronous IO 
4240: 4d 6f 64 65 7d 20 7b 61 73 79 6e 63 76 66 73 2e  Mode} {asyncvfs.
4250: 68 74 6d 6c 7d 20 7b 0a 20 20 54 68 69 73 20 70  html} {.  This p
4260: 61 67 65 20 64 65 73 63 72 69 62 65 73 20 74 68  age describes th
4270: 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 49  e asynchronous I
4280: 4f 20 65 78 74 65 6e 73 69 6f 6e 20 64 65 76 65  O extension deve
4290: 6c 6f 70 65 64 20 61 6c 6f 6e 67 73 69 64 65 0a  loped alongside.
42a0: 20 20 53 51 4c 69 74 65 2e 20 55 73 69 6e 67 20    SQLite. Using 
42b0: 61 73 79 6e 63 68 72 6f 6e 6f 75 73 20 49 4f 20  asynchronous IO 
42c0: 63 61 6e 20 63 61 75 73 65 20 53 51 4c 69 74 65  can cause SQLite
42d0: 20 74 6f 20 61 70 70 65 61 72 20 6d 6f 72 65 20   to appear more 
42e0: 72 65 73 70 6f 6e 73 69 76 65 0a 20 20 62 79 20  responsive.  by 
42f0: 64 65 6c 65 67 61 74 69 6e 67 20 64 61 74 61 62  delegating datab
4300: 61 73 65 20 77 72 69 74 65 73 20 74 6f 20 61 20  ase writes to a 
4310: 62 61 63 6b 67 72 6f 75 6e 64 20 74 68 72 65 61  background threa
4320: 64 2e 20 20 3c 69 3e 4e 42 3a 20 20 54 68 69 73  d.  <i>NB:  This
4330: 0a 20 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20  .  extension is 
4340: 64 65 70 72 65 63 61 74 65 64 2e 20 20 5b 57 41  deprecated.  [WA
4350: 4c 20 6d 6f 64 65 5d 20 69 73 20 72 65 63 6f 6d  L mode] is recom
4360: 6d 65 6e 64 65 64 20 61 73 20 61 20 72 65 70 6c  mended as a repl
4370: 61 63 65 6d 65 6e 74 2e 3c 2f 69 3e 0a 7d 0a 64  acement.</i>.}.d
4380: 6f 63 20 7b 56 65 72 73 69 6f 6e 20 32 20 43 2f  oc {Version 2 C/
4390: 43 2b 2b 20 41 50 49 7d 20 7b 63 5f 69 6e 74 65  C++ API} {c_inte
43a0: 72 66 61 63 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20  rface.html} {.  
43b0: 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66  A description of
43c0: 20 74 68 65 20 43 2f 43 2b 2b 20 69 6e 74 65 72   the C/C++ inter
43d0: 66 61 63 65 20 62 69 6e 64 69 6e 67 73 20 66 6f  face bindings fo
43e0: 72 20 53 51 4c 69 74 65 20 74 68 72 6f 75 67 68  r SQLite through
43f0: 20 76 65 72 73 69 6f 6e 20 0a 20 20 32 2e 38 0a   version .  2.8.
4400: 7d 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20 32  }.doc {Version 2
4410: 20 44 61 74 61 54 79 70 65 73 20 7d 20 7b 64 61   DataTypes } {da
4420: 74 61 74 79 70 65 73 2e 68 74 6d 6c 7d 20 7b 0a  tatypes.html} {.
4430: 20 20 41 20 64 65 73 63 72 69 70 74 69 6f 6e 20    A description 
4440: 6f 66 20 68 6f 77 20 53 51 4c 69 74 65 20 76 65  of how SQLite ve
4450: 72 73 69 6f 6e 20 32 20 68 61 6e 64 6c 65 73 20  rsion 2 handles 
4460: 53 51 4c 20 64 61 74 61 74 79 70 65 73 2e 0a 20  SQL datatypes.. 
4470: 20 53 68 6f 72 74 20 73 75 6d 6d 61 72 79 3a 20   Short summary: 
4480: 20 45 76 65 72 79 74 68 69 6e 67 20 69 73 20 61   Everything is a
4490: 20 73 74 72 69 6e 67 2e 0a 7d 0a 64 6f 63 20 7b   string..}.doc {
44a0: 56 44 42 45 20 54 75 74 6f 72 69 61 6c 7d 20 7b  VDBE Tutorial} {
44b0: 76 64 62 65 2e 68 74 6d 6c 7d 20 7b 0a 20 20 54  vdbe.html} {.  T
44c0: 68 65 20 56 44 42 45 20 69 73 20 74 68 65 20 73  he VDBE is the s
44d0: 75 62 73 79 73 74 65 6d 20 77 69 74 68 69 6e 20  ubsystem within 
44e0: 53 51 4c 69 74 65 20 74 68 61 74 20 64 6f 65 73  SQLite that does
44f0: 20 74 68 65 20 61 63 74 75 61 6c 20 77 6f 72 6b   the actual work
4500: 20 6f 66 0a 20 20 65 78 65 63 75 74 69 6e 67 20   of.  executing 
4510: 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 20  SQL statements. 
4520: 20 54 68 69 73 20 70 61 67 65 20 64 65 73 63 72   This page descr
4530: 69 62 65 73 20 74 68 65 20 70 72 69 6e 63 69 70  ibes the princip
4540: 6c 65 73 20 6f 66 20 6f 70 65 72 61 74 69 6f 6e  les of operation
4550: 0a 20 20 66 6f 72 20 74 68 65 20 56 44 42 45 20  .  for the VDBE 
4560: 69 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f  in SQLite versio
4570: 6e 20 32 2e 37 2e 20 20 54 68 69 73 20 69 73 20  n 2.7.  This is 
4580: 65 73 73 65 6e 74 69 61 6c 20 72 65 61 64 69 6e  essential readin
4590: 67 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 20 20 77  g for anyone.  w
45a0: 68 6f 20 77 61 6e 74 20 74 6f 20 6d 6f 64 69 66  ho want to modif
45b0: 79 20 74 68 65 20 53 51 4c 69 74 65 20 73 6f 75  y the SQLite sou
45c0: 72 63 65 73 2e 0a 7d 0a 64 6f 63 20 7b 53 51 4c  rces..}.doc {SQL
45d0: 69 74 65 20 56 65 72 73 69 6f 6e 20 33 7d 20 7b  ite Version 3} {
45e0: 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 7d 20 7b  version3.html} {
45f0: 0a 20 20 41 20 73 75 6d 6d 61 72 79 20 6f 66 20  .  A summary of 
4600: 74 68 65 20 63 68 61 6e 67 65 73 20 62 65 74 77  the changes betw
4610: 65 65 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69  een SQLite versi
4620: 6f 6e 20 32 2e 38 20 61 6e 64 20 53 51 4c 69 74  on 2.8 and SQLit
4630: 65 20 76 65 72 73 69 6f 6e 20 33 2e 30 2e 0a 7d  e version 3.0..}
4640: 0a 64 6f 63 20 7b 56 65 72 73 69 6f 6e 20 33 20  .doc {Version 3 
4650: 43 2f 43 2b 2b 20 41 50 49 7d 20 7b 63 61 70 69  C/C++ API} {capi
4660: 33 2e 68 74 6d 6c 7d 20 7b 0a 20 20 41 20 73 75  3.html} {.  A su
4670: 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 41 50 49  mmary of the API
4680: 20 72 65 6c 61 74 65 64 20 63 68 61 6e 67 65 73   related changes
4690: 20 62 65 74 77 65 65 6e 20 53 51 4c 69 74 65 20   between SQLite 
46a0: 76 65 72 73 69 6f 6e 20 32 2e 38 20 61 6e 64 20  version 2.8 and 
46b0: 0a 20 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f  .  SQLite versio
46c0: 6e 20 33 2e 30 2e 20 0a 7d 0a 64 6f 63 20 7b 53  n 3.0. .}.doc {S
46d0: 70 65 65 64 20 43 6f 6d 70 61 72 69 73 6f 6e 7d  peed Comparison}
46e0: 20 7b 73 70 65 65 64 2e 68 74 6d 6c 7d 20 7b 0a   {speed.html} {.
46f0: 20 20 54 68 65 20 73 70 65 65 64 20 6f 66 20 76    The speed of v
4700: 65 72 73 69 6f 6e 20 32 2e 37 2e 36 20 6f 66 20  ersion 2.7.6 of 
4710: 53 51 4c 69 74 65 20 69 73 20 63 6f 6d 70 61 72  SQLite is compar
4720: 65 64 20 61 67 61 69 6e 73 74 20 50 6f 73 74 67  ed against Postg
4730: 72 65 53 51 4c 20 61 6e 64 0a 20 20 4d 79 53 51  reSQL and.  MySQ
4740: 4c 2e 0a 7d 0a                                   L..}.