/ Hex Artifact Content
Login

Artifact eacd99bcc3132d6e6b74a51422d415cc0bf7bfdf:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 54 43 4c  #.# Run this TCL
0010: 20 73 63 72 69 70 74 20 74 6f 20 67 65 6e 65 72   script to gener
0020: 61 74 65 20 48 54 4d 4c 20 66 6f 72 20 74 68 65  ate HTML for the
0030: 20 69 6e 64 65 78 2e 68 74 6d 6c 20 66 69 6c 65   index.html file
0040: 2e 0a 23 0a 73 65 74 20 72 63 73 69 64 20 7b 24  ..#.set rcsid {$
0050: 49 64 3a 20 69 6e 64 65 78 2e 74 63 6c 2c 76 20  Id: index.tcl,v 
0060: 31 2e 35 34 20 32 30 30 32 2f 30 32 2f 31 38 20  1.54 2002/02/18 
0070: 31 38 3a 33 30 3a 33 33 20 64 72 68 20 45 78 70  18:30:33 drh Exp
0080: 20 24 7d 0a 0a 70 75 74 73 20 7b 3c 68 74 6d 6c   $}..puts {<html
0090: 3e 0a 3c 68 65 61 64 3e 3c 74 69 74 6c 65 3e 53  >.<head><title>S
00a0: 51 4c 69 74 65 3a 20 41 6e 20 53 51 4c 20 44 61  QLite: An SQL Da
00b0: 74 61 62 61 73 65 20 45 6e 67 69 6e 65 20 49 6e  tabase Engine In
00c0: 20 41 20 43 20 4c 69 62 72 61 72 79 3c 2f 74 69   A C Library</ti
00d0: 74 6c 65 3e 3c 2f 68 65 61 64 3e 0a 3c 62 6f 64  tle></head>.<bod
00e0: 79 20 62 67 63 6f 6c 6f 72 3d 77 68 69 74 65 3e  y bgcolor=white>
00f0: 0a 3c 68 31 20 61 6c 69 67 6e 3d 63 65 6e 74 65  .<h1 align=cente
0100: 72 3e 53 51 4c 69 74 65 3a 20 41 6e 20 53 51 4c  r>SQLite: An SQL
0110: 20 44 61 74 61 62 61 73 65 20 45 6e 67 69 6e 65   Database Engine
0120: 20 49 6e 20 41 20 43 20 4c 69 62 72 61 72 79 3c   In A C Library<
0130: 2f 68 31 3e 0a 3c 70 20 61 6c 69 67 6e 3d 63 65  /h1>.<p align=ce
0140: 6e 74 65 72 3e 7d 0a 70 75 74 73 20 22 54 68 69  nter>}.puts "Thi
0150: 73 20 70 61 67 65 20 77 61 73 20 6c 61 73 74 20  s page was last 
0160: 6d 6f 64 69 66 69 65 64 20 6f 6e 20 5b 6c 72 61  modified on [lra
0170: 6e 67 65 20 24 72 63 73 69 64 20 33 20 34 5d 20  nge $rcsid 3 4] 
0180: 55 54 43 3c 62 72 3e 22 0a 73 65 74 20 76 65 72  UTC<br>".set ver
0190: 73 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 76 20  s [lindex $argv 
01a0: 30 5d 0a 70 75 74 73 20 22 54 68 65 20 6c 61 74  0].puts "The lat
01b0: 65 73 74 20 53 51 4c 69 74 65 20 76 65 72 73 69  est SQLite versi
01c0: 6f 6e 20 69 73 20 3c 62 3e 24 76 65 72 73 3c 2f  on is <b>$vers</
01d0: 62 3e 22 0a 70 75 74 73 20 22 20 63 72 65 61 74  b>".puts " creat
01e0: 65 64 20 6f 6e 20 5b 65 78 65 63 20 63 61 74 20  ed on [exec cat 
01f0: 6c 61 73 74 5f 63 68 61 6e 67 65 5d 20 55 54 43  last_change] UTC
0200: 22 0a 70 75 74 73 20 7b 3c 2f 70 3e 7d 0a 0a 70  ".puts {</p>}..p
0210: 75 74 73 20 7b 3c 68 32 3e 49 6e 74 72 6f 64 75  uts {<h2>Introdu
0220: 63 74 69 6f 6e 3c 2f 68 32 3e 0a 0a 3c 70 3e 53  ction</h2>..<p>S
0230: 51 4c 69 74 65 20 69 73 20 61 20 43 20 6c 69 62  QLite is a C lib
0240: 72 61 72 79 20 74 68 61 74 20 69 6d 70 6c 65 6d  rary that implem
0250: 65 6e 74 73 20 61 6e 20 65 6d 62 65 64 64 61 62  ents an embeddab
0260: 6c 65 20 53 51 4c 20 64 61 74 61 62 61 73 65 20  le SQL database 
0270: 65 6e 67 69 6e 65 2e 0a 50 72 6f 67 72 61 6d 73  engine..Programs
0280: 20 74 68 61 74 20 6c 69 6e 6b 20 77 69 74 68 20   that link with 
0290: 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62 72 61  the SQLite libra
02a0: 72 79 20 63 61 6e 20 68 61 76 65 20 53 51 4c 20  ry can have SQL 
02b0: 64 61 74 61 62 61 73 65 0a 61 63 63 65 73 73 20  database.access 
02c0: 77 69 74 68 6f 75 74 20 72 75 6e 6e 69 6e 67 20  without running 
02d0: 61 20 73 65 70 61 72 61 74 65 20 52 44 42 4d 53  a separate RDBMS
02e0: 20 70 72 6f 63 65 73 73 2e 0a 54 68 65 20 64 69   process..The di
02f0: 73 74 72 69 62 75 74 69 6f 6e 20 63 6f 6d 65 73  stribution comes
0300: 20 77 69 74 68 20 61 20 73 74 61 6e 64 61 6c 6f   with a standalo
0310: 6e 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 0a  ne command-line.
0320: 61 63 63 65 73 73 20 70 72 6f 67 72 61 6d 20 28  access program (
0330: 3c 61 20 68 72 65 66 3d 22 73 71 6c 69 74 65 2e  <a href="sqlite.
0340: 68 74 6d 6c 22 3e 73 71 6c 69 74 65 3c 2f 61 3e  html">sqlite</a>
0350: 29 20 74 68 61 74 20 63 61 6e 0a 62 65 20 75 73  ) that can.be us
0360: 65 64 20 74 6f 20 61 64 6d 69 6e 69 73 74 65 72  ed to administer
0370: 20 61 6e 20 53 51 4c 69 74 65 20 64 61 74 61 62   an SQLite datab
0380: 61 73 65 20 61 6e 64 20 77 68 69 63 68 20 73 65  ase and which se
0390: 72 76 65 73 20 61 73 0a 61 6e 20 65 78 61 6d 70  rves as.an examp
03a0: 6c 65 20 6f 66 20 68 6f 77 20 74 6f 20 75 73 65  le of how to use
03b0: 20 74 68 65 20 53 51 4c 69 74 65 20 6c 69 62 72   the SQLite libr
03c0: 61 72 79 2e 3c 2f 70 3e 0a 0a 3c 70 3e 53 51 4c  ary.</p>..<p>SQL
03d0: 69 74 65 20 69 73 20 3c 62 3e 6e 6f 74 3c 2f 62  ite is <b>not</b
03e0: 3e 20 61 20 63 6c 69 65 6e 74 20 6c 69 62 72 61  > a client libra
03f0: 72 79 20 75 73 65 64 20 74 6f 20 63 6f 6e 6e 65  ry used to conne
0400: 63 74 20 74 6f 20 61 0a 62 69 67 20 64 61 74 61  ct to a.big data
0410: 62 61 73 65 20 73 65 72 76 65 72 2e 20 20 53 51  base server.  SQ
0420: 4c 69 74 65 20 3c 62 3e 69 73 3c 2f 62 3e 20 74  Lite <b>is</b> t
0430: 68 65 20 73 65 72 76 65 72 2e 20 20 54 68 65 20  he server.  The 
0440: 53 51 4c 69 74 65 0a 6c 69 62 72 61 72 79 20 72  SQLite.library r
0450: 65 61 64 73 20 61 6e 64 20 77 72 69 74 65 73 20  eads and writes 
0460: 64 69 72 65 63 74 6c 79 20 74 6f 20 61 6e 64 20  directly to and 
0470: 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73  from the databas
0480: 65 20 66 69 6c 65 73 0a 6f 6e 20 64 69 73 6b 2e  e files.on disk.
0490: 3c 2f 70 3e 7d 0a 0a 70 75 74 73 20 7b 3c 74 61  </p>}..puts {<ta
04a0: 62 6c 65 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  ble align="right
04b0: 22 68 73 70 61 63 65 3d 22 31 30 22 3e 0a 3c 74  "hspace="10">.<t
04c0: 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e  r><td align="cen
04d0: 74 65 72 22 20 62 67 63 6f 6c 6f 72 3d 22 23 38  ter" bgcolor="#8
04e0: 65 65 35 65 65 22 3e 0a 3c 74 61 62 6c 65 20 62  ee5ee">.<table b
04f0: 6f 72 64 65 72 3d 22 32 22 3e 3c 74 72 3e 3c 74  order="2"><tr><t
0500: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
0510: 3e 0a 3c 61 20 68 72 65 66 3d 22 64 6f 77 6e 6c  >.<a href="downl
0520: 6f 61 64 2e 68 74 6d 6c 22 3e 3c 62 69 67 3e 3c  oad.html"><big><
0530: 62 3e 44 6f 77 6e 6c 6f 61 64 3c 62 72 3e 53 51  b>Download<br>SQ
0540: 4c 69 74 65 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c  Lite.</td></tr><
0550: 2f 74 61 62 6c 65 3e 0a 3c 2f 74 64 3e 3c 2f 74  /table>.</td></t
0560: 72 3e 0a 3c 2f 74 61 62 6c 65 3e 7d 0a 0a 70 75  r>.</table>}..pu
0570: 74 73 20 7b 3c 68 32 3e 46 65 61 74 75 72 65 73  ts {<h2>Features
0580: 3c 2f 68 32 3e 0a 0a 3c 70 3e 3c 75 6c 3e 0a 3c  </h2>..<p><ul>.<
0590: 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 73 20 61 20  li>Implements a 
05a0: 6c 61 72 67 65 20 73 75 62 73 65 74 20 6f 66 20  large subset of 
05b0: 53 51 4c 39 32 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  SQL92.</li>.<li>
05c0: 41 20 63 6f 6d 70 6c 65 74 65 20 64 61 74 61 62  A complete datab
05d0: 61 73 65 20 28 77 69 74 68 20 6d 75 6c 74 69 70  ase (with multip
05e0: 6c 65 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e  le tables and in
05f0: 64 69 63 65 73 29 20 69 73 0a 20 20 20 20 73 74  dices) is.    st
0600: 6f 72 65 64 20 69 6e 20 61 20 73 69 6e 67 6c 65  ored in a single
0610: 20 64 69 73 6b 20 66 69 6c 65 2e 3c 2f 6c 69 3e   disk file.</li>
0620: 0a 3c 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d  .<li>Atomic comm
0630: 69 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 20  it and rollback 
0640: 70 72 6f 74 65 63 74 20 64 61 74 61 20 69 6e 74  protect data int
0650: 65 67 72 69 74 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69  egrity.</li>.<li
0660: 3e 53 6d 61 6c 6c 20 6d 65 6d 6f 72 79 20 66 6f  >Small memory fo
0670: 6f 74 70 72 69 6e 74 3a 20 6c 65 73 73 20 74 68  otprint: less th
0680: 61 6e 20 32 30 4b 20 6c 69 6e 65 73 20 6f 66 20  an 20K lines of 
0690: 43 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  C code.</li>.<li
06a0: 3e 3c 61 20 68 72 65 66 3d 22 73 70 65 65 64 2e  ><a href="speed.
06b0: 68 74 6d 6c 22 3e 46 6f 75 72 20 74 69 6d 65 73  html">Four times
06c0: 20 66 61 73 74 65 72 3c 2f 61 3e 20 74 68 61 6e   faster</a> than
06d0: 20 50 6f 73 74 67 72 65 53 51 4c 2e 0a 20 20 20   PostgreSQL..   
06e0: 20 54 77 69 63 65 20 61 73 20 66 61 73 74 20 61   Twice as fast a
06f0: 73 20 53 51 4c 69 74 65 20 31 2e 30 2e 3c 2f 6c  s SQLite 1.0.</l
0700: 69 3e 0a 3c 6c 69 3e 56 65 72 79 20 73 69 6d 70  i>.<li>Very simp
0710: 6c 65 20 0a 3c 61 20 68 72 65 66 3d 22 63 5f 69  le .<a href="c_i
0720: 6e 74 65 72 66 61 63 65 2e 68 74 6d 6c 22 3e 43  nterface.html">C
0730: 2f 43 2b 2b 20 69 6e 74 65 72 66 61 63 65 3c 2f  /C++ interface</
0740: 61 3e 20 72 65 71 75 69 72 65 73 20 74 68 65 20  a> requires the 
0750: 75 73 65 20 6f 66 20 6f 6e 6c 79 0a 74 68 72 65  use of only.thre
0760: 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20  e functions and 
0770: 6f 6e 65 20 6f 70 61 71 75 65 20 73 74 72 75 63  one opaque struc
0780: 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c  ture.</li>.<li><
0790: 61 20 68 72 65 66 3d 22 74 63 6c 73 71 6c 69 74  a href="tclsqlit
07a0: 65 2e 68 74 6d 6c 22 3e 54 43 4c 20 62 69 6e 64  e.html">TCL bind
07b0: 69 6e 67 73 3c 2f 61 3e 20 69 6e 63 6c 75 64 65  ings</a> include
07c0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20 54 43  d.</li>.<li>A TC
07d0: 4c 2d 62 61 73 65 64 20 74 65 73 74 20 73 75 69  L-based test sui
07e0: 74 65 20 70 72 6f 76 69 64 65 73 20 6e 65 61 72  te provides near
07f0: 20 31 30 30 25 20 63 6f 64 65 20 63 6f 76 65 72   100% code cover
0800: 61 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65  age.</li>.<li>Se
0810: 6c 66 2d 63 6f 6e 74 61 69 6e 65 64 3a 20 6e 6f  lf-contained: no
0820: 20 65 78 74 65 72 6e 61 6c 20 64 65 70 65 6e 64   external depend
0830: 65 6e 63 69 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  encies.</li>.<li
0840: 3e 42 75 69 6c 74 20 61 6e 64 20 74 65 73 74 65  >Built and teste
0850: 64 20 75 6e 64 65 72 20 4c 69 6e 75 78 20 61 6e  d under Linux an
0860: 64 20 57 69 6e 32 4b 2e 3c 2f 6c 69 3e 0a 3c 6c  d Win2K.</li>.<l
0870: 69 3e 53 6f 75 72 63 65 73 20 61 72 65 20 75 6e  i>Sources are un
0880: 63 6f 70 79 72 69 67 68 74 65 64 2e 20 20 55 73  copyrighted.  Us
0890: 65 20 66 6f 72 20 61 6e 79 20 70 75 72 70 6f 73  e for any purpos
08a0: 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 2f  e.</li>.</ul>.</
08b0: 70 3e 0a 7d 0a 0a 70 75 74 73 20 7b 3c 68 32 3e  p>.}..puts {<h2>
08c0: 43 75 72 72 65 6e 74 20 53 74 61 74 75 73 3c 2f  Current Status</
08d0: 68 32 3e 0a 0a 3c 70 3e 41 20 3c 61 20 68 72 65  h2>..<p>A <a hre
08e0: 66 3d 22 63 68 61 6e 67 65 73 2e 68 74 6d 6c 22  f="changes.html"
08f0: 3e 63 68 61 6e 67 65 20 68 69 73 74 6f 72 79 3c  >change history<
0900: 2f 61 3e 20 69 73 20 61 76 61 69 6c 61 62 6c 65  /a> is available
0910: 20 6f 6e 6c 69 6e 65 2e 0a 54 68 65 20 6c 61 74   online..The lat
0920: 65 73 74 20 73 6f 75 72 63 65 20 63 6f 64 65 20  est source code 
0930: 69 73 0a 3c 61 20 68 72 65 66 3d 22 64 6f 77 6e  is.<a href="down
0940: 6c 6f 61 64 2e 68 74 6d 6c 22 3e 61 76 61 69 6c  load.html">avail
0950: 61 62 6c 65 20 66 6f 72 20 64 6f 77 6e 6c 6f 61  able for downloa
0960: 64 3c 2f 61 3e 2e 0a 46 6f 72 20 61 20 6c 69 73  d</a>..For a lis
0970: 74 20 6f 66 20 72 65 63 65 6e 74 6c 79 20 64 69  t of recently di
0980: 73 63 6f 76 65 72 65 64 20 62 75 67 73 2c 20 72  scovered bugs, r
0990: 65 66 65 72 20 74 6f 20 74 68 65 20 63 68 61 6e  efer to the chan
09a0: 67 65 20 68 69 73 74 6f 72 79 2e 0a 3c 2f 70 3e  ge history..</p>
09b0: 0a 0a 3c 70 3e 0a 57 68 65 6e 65 76 65 72 20 65  ..<p>.Whenever e
09c0: 69 74 68 65 72 20 6f 66 20 74 68 65 20 66 69 72  ither of the fir
09d0: 73 74 20 74 77 6f 20 64 69 67 69 74 73 20 69 6e  st two digits in
09e0: 20 74 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d   the version num
09f0: 62 65 72 0a 66 6f 72 20 53 51 4c 69 74 65 20 63  ber.for SQLite c
0a00: 68 61 6e 67 65 2c 20 69 74 20 6d 65 61 6e 73 20  hange, it means 
0a10: 74 68 61 74 20 74 68 65 20 75 6e 64 65 72 6c 79  that the underly
0a20: 69 6e 67 20 66 69 6c 65 20 66 6f 72 6d 61 74 0a  ing file format.
0a30: 68 61 73 20 63 68 61 6e 67 65 64 2e 20 20 53 65  has changed.  Se
0a40: 65 20 3c 61 20 68 72 65 66 3d 22 66 6f 72 6d 61  e <a href="forma
0a50: 74 63 68 6e 67 2e 68 74 6d 6c 22 3e 66 6f 72 6d  tchng.html">form
0a60: 61 74 63 68 6e 67 2e 68 74 6d 6c 3c 2f 61 3e 0a  atchng.html</a>.
0a70: 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 69  for additional i
0a80: 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 3c 2f 70 3e  nformation..</p>
0a90: 0a 0a 3c 68 32 3e 44 6f 63 75 6d 65 6e 74 61 74  ..<h2>Documentat
0aa0: 69 6f 6e 3c 2f 68 32 3e 0a 0a 3c 70 3e 54 68 65  ion</h2>..<p>The
0ab0: 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 6f 63 75 6d   following docum
0ac0: 65 6e 74 61 74 69 6f 6e 20 69 73 20 63 75 72 72  entation is curr
0ad0: 65 6e 74 6c 79 20 61 76 61 69 6c 61 62 6c 65 3a  ently available:
0ae0: 3c 2f 70 3e 0a 0a 3c 70 3e 3c 75 6c 3e 0a 3c 6c  </p>..<p><ul>.<l
0af0: 69 3e 3c 61 20 68 72 65 66 3d 22 66 61 71 2e 68  i><a href="faq.h
0b00: 74 6d 6c 22 3e 46 72 65 71 75 65 6e 74 6c 79 20  tml">Frequently 
0b10: 41 73 6b 65 64 20 51 75 65 73 74 69 6f 6e 73 3c  Asked Questions<
0b20: 2f 61 3e 20 61 72 65 20 61 76 61 69 6c 61 62 6c  /a> are availabl
0b30: 65 20 6f 6e 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c  e online.</li>.<
0b40: 6c 69 3e 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f  li>Information o
0b50: 6e 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 73  n the <a href="s
0b60: 71 6c 69 74 65 2e 68 74 6d 6c 22 3e 73 71 6c 69  qlite.html">sqli
0b70: 74 65 3c 2f 61 3e 0a 20 20 20 20 63 6f 6d 6d 61  te</a>.    comma
0b80: 6e 64 2d 6c 69 6e 65 20 75 74 69 6c 69 74 79 2e  nd-line utility.
0b90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 61  </li>.<li>The <a
0ba0: 20 68 72 65 66 3d 22 6c 61 6e 67 2e 68 74 6d 6c   href="lang.html
0bb0: 22 3e 53 51 4c 20 4c 61 6e 67 75 61 67 65 3c 2f  ">SQL Language</
0bc0: 61 3e 20 73 75 62 73 65 74 20 75 6e 64 65 72 73  a> subset unders
0bd0: 74 6f 6f 64 20 62 79 20 53 51 4c 69 74 65 2e 3c  tood by SQLite.<
0be0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 61 20  /li>.<li>The <a 
0bf0: 68 72 65 66 3d 22 63 5f 69 6e 74 65 72 66 61 63  href="c_interfac
0c00: 65 2e 68 74 6d 6c 22 3e 43 2f 43 2b 2b 20 49 6e  e.html">C/C++ In
0c10: 74 65 72 66 61 63 65 3c 2f 61 3e 2e 3c 2f 6c 69  terface</a>.</li
0c20: 3e 0a 3c 6c 69 3e 54 68 65 20 3c 61 20 68 72 65  >.<li>The <a hre
0c30: 66 3d 22 74 63 6c 73 71 6c 69 74 65 2e 68 74 6d  f="tclsqlite.htm
0c40: 6c 22 3e 54 63 6c 20 42 69 6e 64 69 6e 67 3c 2f  l">Tcl Binding</
0c50: 61 3e 20 74 6f 20 53 51 4c 69 74 65 2e 3c 2f 6c  a> to SQLite.</l
0c60: 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 61 20 68 72  i>.<li>The <a hr
0c70: 65 66 3d 22 61 72 63 68 2e 68 74 6d 6c 22 3e 41  ef="arch.html">A
0c80: 72 63 68 69 74 65 63 74 75 72 65 20 6f 66 20 74  rchitecture of t
0c90: 68 65 20 53 51 4c 69 74 65 20 4c 69 62 72 61 72  he SQLite Librar
0ca0: 79 3c 2f 61 3e 20 64 65 73 63 72 69 62 65 73 0a  y</a> describes.
0cb0: 20 20 20 20 68 6f 77 20 74 68 65 20 6c 69 62 72      how the libr
0cc0: 61 72 79 20 69 73 20 70 75 74 20 74 6f 67 65 74  ary is put toget
0cd0: 68 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 20  her.</li>.<li>A 
0ce0: 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74  description of t
0cf0: 68 65 20 3c 61 20 68 72 65 66 3d 22 6f 70 63 6f  he <a href="opco
0d00: 64 65 2e 68 74 6d 6c 22 3e 76 69 72 74 75 61 6c  de.html">virtual
0d10: 20 6d 61 63 68 69 6e 65 3c 2f 61 3e 20 74 68 61   machine</a> tha
0d20: 74 0a 20 20 20 20 53 51 4c 69 74 65 20 75 73 65  t.    SQLite use
0d30: 73 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20  s to access the 
0d40: 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c  database.</li>.<
0d50: 2f 75 6c 3e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 54 68  /ul>.</p>..<p>Th
0d60: 65 20 53 51 4c 69 74 65 20 73 6f 75 72 63 65 20  e SQLite source 
0d70: 63 6f 64 65 20 69 73 20 33 35 25 20 63 6f 6d 6d  code is 35% comm
0d80: 65 6e 74 2e 20 20 54 68 65 73 65 20 63 6f 6d 6d  ent.  These comm
0d90: 65 6e 74 73 20 61 72 65 0a 61 6e 6f 74 68 65 72  ents are.another
0da0: 20 69 6d 70 6f 72 74 61 6e 74 20 73 6f 75 72 63   important sourc
0db0: 65 20 6f 66 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  e of information
0dc0: 2e 20 3c 2f 70 3e 0a 0a 7d 0a 0a 70 75 74 73 20  . </p>..}..puts 
0dd0: 7b 0a 3c 74 61 62 6c 65 20 61 6c 69 67 6e 3d 22  {.<table align="
0de0: 72 69 67 68 74 22 3e 0a 3c 74 72 3e 3c 74 64 20  right">.<tr><td 
0df0: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a  align="center">.
0e00: 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f  <a href="http://
0e10: 77 77 77 2e 79 61 68 6f 6f 67 72 6f 75 70 73 2e  www.yahoogroups.
0e20: 63 6f 6d 2f 73 75 62 73 63 72 69 62 65 2f 73 71  com/subscribe/sq
0e30: 6c 69 74 65 22 3e 0a 3c 69 6d 67 20 73 72 63 3d  lite">.<img src=
0e40: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 65 67 72 6f  "http://www.egro
0e50: 75 70 73 2e 63 6f 6d 2f 69 6d 67 2f 75 69 2f 6a  ups.com/img/ui/j
0e60: 6f 69 6e 2e 67 69 66 22 20 62 6f 72 64 65 72 3d  oin.gif" border=
0e70: 30 20 2f 3e 3c 62 72 20 2f 3e 0a 43 6c 69 63 6b  0 /><br />.Click
0e80: 20 74 6f 20 73 75 62 73 63 72 69 62 65 20 74 6f   to subscribe to
0e90: 20 73 71 6c 69 74 65 3c 2f 61 3e 0a 3c 2f 74 64   sqlite</a>.</td
0ea0: 3e 3c 2f 74 72 3e 0a 3c 2f 74 61 62 6c 65 3e 0a  ></tr>.</table>.
0eb0: 3c 61 20 6e 61 6d 65 3d 22 6d 61 69 6c 69 6e 67  <a name="mailing
0ec0: 6c 69 73 74 22 20 2f 3e 0a 3c 68 32 3e 4d 61 69  list" />.<h2>Mai
0ed0: 6c 69 6e 67 20 4c 69 73 74 3c 2f 68 32 3e 0a 3c  ling List</h2>.<
0ee0: 70 3e 41 20 6d 61 69 6c 69 6e 67 20 6c 69 73 74  p>A mailing list
0ef0: 20 68 61 73 20 62 65 65 6e 20 73 65 74 20 75 70   has been set up
0f00: 20 6f 6e 20 79 61 68 6f 6f 47 72 6f 75 70 73 20   on yahooGroups 
0f10: 66 6f 72 20 64 69 73 63 75 73 73 69 6f 6e 20 6f  for discussion o
0f20: 66 0a 53 51 4c 69 74 65 20 64 65 73 69 67 6e 20  f.SQLite design 
0f30: 69 73 73 75 65 73 20 6f 72 20 66 6f 72 20 61 73  issues or for as
0f40: 6b 69 6e 67 20 71 75 65 73 74 69 6f 6e 73 20 61  king questions a
0f50: 62 6f 75 74 20 53 51 4c 69 74 65 2e 3c 2f 70 3e  bout SQLite.</p>
0f60: 0a 7d 0a 0a 70 75 74 73 20 7b 3c 68 32 3e 50 72  .}..puts {<h2>Pr
0f70: 6f 66 65 73 73 69 6f 6e 61 6c 20 53 75 70 70 6f  ofessional Suppo
0f80: 72 74 20 61 6e 64 20 43 75 73 74 6f 6d 20 4d 6f  rt and Custom Mo
0f90: 64 69 66 69 63 61 74 69 6f 6e 73 3c 2f 68 32 3e  difications</h2>
0fa0: 7d 0a 0a 70 75 74 73 20 7b 0a 3c 70 3e 0a 49 66  }..puts {.<p>.If
0fb0: 20 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20   you would like 
0fc0: 70 72 6f 66 65 73 73 69 6f 6e 61 6c 20 73 75 70  professional sup
0fd0: 70 6f 72 74 20 66 6f 72 20 53 51 4c 69 74 65 0a  port for SQLite.
0fe0: 6f 72 20 69 66 20 79 6f 75 20 77 61 6e 74 20 63  or if you want c
0ff0: 75 73 74 6f 6d 20 6d 6f 64 69 66 69 63 61 74 69  ustom modificati
1000: 6f 6e 73 20 74 6f 20 53 51 4c 69 74 65 20 70 72  ons to SQLite pr
1010: 65 66 6f 72 6d 65 64 20 62 79 20 74 68 65 0a 6f  eformed by the.o
1020: 72 69 67 69 6e 61 6c 20 61 75 74 68 6f 72 2c 20  riginal author, 
1030: 74 68 65 73 65 20 73 65 72 76 69 63 65 73 20 61  these services a
1040: 72 65 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72  re available for
1050: 20 61 20 6d 6f 64 65 73 74 20 66 65 65 2e 0a 46   a modest fee..F
1060: 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e  or additional in
1070: 66 6f 72 6d 61 74 69 6f 6e 20 63 6f 6e 74 61 63  formation contac
1080: 74 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75  t:</p>..<blockqu
1090: 6f 74 65 3e 0a 44 2e 20 52 69 63 68 61 72 64 20  ote>.D. Richard 
10a0: 48 69 70 70 20 3c 62 72 20 2f 3e 0a 48 77 61 63  Hipp <br />.Hwac
10b0: 69 20 2d 20 41 70 70 6c 69 65 64 20 53 6f 66 74  i - Applied Soft
10c0: 77 61 72 65 20 52 65 73 65 61 72 63 68 20 3c 62  ware Research <b
10d0: 72 20 2f 3e 0a 37 30 34 2e 39 34 38 2e 34 35 36  r />.704.948.456
10e0: 35 20 3c 62 72 20 2f 3e 0a 3c 61 20 68 72 65 66  5 <br />.<a href
10f0: 3d 22 6d 61 69 6c 74 6f 3a 64 72 68 40 68 77 61  ="mailto:drh@hwa
1100: 63 69 2e 63 6f 6d 22 3e 64 72 68 40 68 77 61 63  ci.com">drh@hwac
1110: 69 2e 63 6f 6d 3c 2f 61 3e 0a 3c 2f 62 6c 6f 63  i.com</a>.</bloc
1120: 6b 71 75 6f 74 65 3e 0a 7d 0a 0a 70 75 74 73 20  kquote>.}..puts 
1130: 7b 3c 68 32 3e 42 75 69 6c 64 69 6e 67 20 46 72  {<h2>Building Fr
1140: 6f 6d 20 53 6f 75 72 63 65 3c 2f 68 32 3e 7d 0a  om Source</h2>}.
1150: 0a 70 75 74 73 20 7b 0a 3c 70 3e 54 6f 20 62 75  .puts {.<p>To bu
1160: 69 6c 64 20 73 71 6c 69 74 65 20 75 6e 64 65 72  ild sqlite under
1170: 20 55 6e 69 78 2c 20 6a 75 73 74 20 75 6e 77 72   Unix, just unwr
1180: 61 70 20 74 68 65 20 74 61 72 62 61 6c 6c 2c 20  ap the tarball, 
1190: 63 72 65 61 74 65 20 61 20 73 65 70 61 72 61 74  create a separat
11a0: 65 0a 62 75 69 6c 64 20 64 69 72 65 63 74 6f 72  e.build director
11b0: 79 2c 20 72 75 6e 20 63 6f 6e 66 69 67 75 72 65  y, run configure
11c0: 20 66 72 6f 6d 20 74 68 65 20 62 75 69 6c 64 20   from the build 
11d0: 64 69 72 65 63 74 6f 72 79 20 61 6e 64 20 74 68  directory and th
11e0: 65 6e 0a 74 79 70 65 20 22 6d 61 6b 65 22 2e 20  en.type "make". 
11f0: 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 3c 2f 70   For example:</p
1200: 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 3c  >..<blockquote><
1210: 70 72 65 3e 0a 24 20 74 61 72 20 78 7a 66 20 73  pre>.$ tar xzf s
1220: 71 6c 69 74 65 2e 74 61 72 2e 67 7a 20 20 20 20  qlite.tar.gz    
1230: 20 20 3c 69 3e 20 55 6e 70 61 63 6b 73 20 69 6e    <i> Unpacks in
1240: 74 6f 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d  to directory nam
1250: 65 64 20 22 73 71 6c 69 74 65 22 20 3c 2f 69 3e  ed "sqlite" </i>
1260: 0a 24 20 6d 6b 64 69 72 20 62 6c 64 20 20 20 20  .$ mkdir bld    
1270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 69                <i
1280: 3e 20 43 72 65 61 74 65 20 61 20 73 65 70 61 72  > Create a separ
1290: 61 74 65 20 62 75 69 6c 64 20 64 69 72 65 63 74  ate build direct
12a0: 6f 72 79 20 3c 2f 69 3e 0a 24 20 63 64 20 62 6c  ory </i>.$ cd bl
12b0: 64 0a 24 20 2e 2e 2f 73 71 6c 69 74 65 2f 63 6f  d.$ ../sqlite/co
12c0: 6e 66 69 67 75 72 65 0a 24 20 6d 61 6b 65 20 20  nfigure.$ make  
12d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12e0: 20 20 20 20 20 3c 69 3e 20 42 75 69 6c 64 73 20       <i> Builds 
12f0: 22 73 71 6c 69 74 65 22 20 61 6e 64 20 22 6c 69  "sqlite" and "li
1300: 62 73 71 6c 69 74 65 2e 61 22 20 3c 2f 69 3e 0a  bsqlite.a" </i>.
1310: 24 20 6d 61 6b 65 20 74 65 73 74 20 20 20 20 20  $ make test     
1320: 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 69 3e               <i>
1330: 20 4f 70 74 69 6f 6e 61 6c 3a 20 72 75 6e 20 72   Optional: run r
1340: 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20  egression tests 
1350: 3c 2f 69 3e 0a 3c 2f 70 72 65 3e 3c 2f 62 6c 6f  </i>.</pre></blo
1360: 63 6b 71 75 6f 74 65 3e 0a 7d 0a 0a 70 75 74 73  ckquote>.}..puts
1370: 20 7b 3c 68 32 3e 52 65 6c 61 74 65 64 20 53 69   {<h2>Related Si
1380: 74 65 73 3c 2f 68 32 3e 0a 0a 3c 75 6c 3e 0a 0a  tes</h2>..<ul>..
1390: 3c 6c 69 3e 3c 70 3e 41 6e 20 4f 44 42 43 20 64  <li><p>An ODBC d
13a0: 72 69 76 65 72 20 66 6f 72 20 53 51 4c 69 74 65  river for SQLite
13b0: 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74   can be found at
13c0: 0a 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d  .       <a href=
13d0: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 63 68 2d 77  "http://www.ch-w
13e0: 65 72 6e 65 72 2e 64 65 2f 73 71 6c 69 74 65 6f  erner.de/sqliteo
13f0: 64 62 63 2f 22 3e 0a 20 20 20 20 20 20 20 68 74  dbc/">.       ht
1400: 74 70 3a 2f 2f 77 77 77 2e 63 68 2d 77 65 72 6e  tp://www.ch-wern
1410: 65 72 2e 64 65 2f 73 71 6c 69 74 65 6f 64 62 63  er.de/sqliteodbc
1420: 2f 3c 2f 61 3e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a  /</a>.</p></li>.
1430: 0a 3c 6c 69 3e 3c 70 3e 48 65 72 65 20 69 73 20  .<li><p>Here is 
1440: 61 20 67 6f 6f 64 20 3c 61 20 68 72 65 66 3d 22  a good <a href="
1450: 68 74 74 70 3a 2f 2f 77 33 2e 6f 6e 65 2e 6e 65  http://w3.one.ne
1460: 74 2f 7e 6a 68 6f 66 66 6d 61 6e 2f 73 71 6c 74  t/~jhoffman/sqlt
1470: 75 74 2e 68 74 6d 22 3e 0a 20 20 20 20 20 20 20  ut.htm">.       
1480: 74 75 74 6f 72 69 61 6c 20 6f 6e 20 53 51 4c 3c  tutorial on SQL<
1490: 2f 61 3e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c  /a>.</p></li>..<
14a0: 6c 69 3e 3c 70 3e 3c 61 20 68 72 65 66 3d 22 68  li><p><a href="h
14b0: 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72  ttp://www.postgr
14c0: 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74 67  esql.org/">Postg
14d0: 72 65 53 51 4c 3c 2f 61 3e 20 69 73 20 61 0a 20  reSQL</a> is a. 
14e0: 20 20 20 20 20 20 66 75 6c 6c 2d 62 6c 6f 77 6e        full-blown
14f0: 20 53 51 4c 20 52 44 42 4d 53 20 74 68 61 74 20   SQL RDBMS that 
1500: 69 73 20 61 6c 73 6f 20 6f 70 65 6e 20 73 6f 75  is also open sou
1510: 72 63 65 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c  rce.</p></li>..<
1520: 6c 69 3e 3c 70 3e 3c 61 20 68 72 65 66 3d 22 68  li><p><a href="h
1530: 74 74 70 3a 2f 2f 77 77 77 2e 63 68 6f 72 64 61  ttp://www.chorda
1540: 74 65 2e 63 6f 6d 2f 67 61 64 66 6c 79 2e 68 74  te.com/gadfly.ht
1550: 6d 6c 22 3e 47 61 64 66 6c 79 3c 2f 61 3e 20 69  ml">Gadfly</a> i
1560: 73 20 61 6e 6f 74 68 65 72 0a 20 20 20 20 20 20  s another.      
1570: 20 53 51 4c 20 6c 69 62 72 61 72 79 2c 20 73 69   SQL library, si
1580: 6d 69 6c 61 72 20 74 6f 20 53 51 4c 69 74 65 2c  milar to SQLite,
1590: 20 65 78 63 65 70 74 20 74 68 61 74 20 47 61 64   except that Gad
15a0: 66 6c 79 20 69 73 20 77 72 69 74 74 65 6e 0a 20  fly is written. 
15b0: 20 20 20 20 20 20 69 6e 20 50 79 74 68 6f 6e 2e        in Python.
15c0: 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 7d  </p></li>.</ul>}
15d0: 0a 0a 70 75 74 73 20 7b 0a 3c 70 3e 3c 68 72 20  ..puts {.<p><hr 
15e0: 2f 3e 3c 2f 70 3e 0a 3c 70 3e 0a 3c 61 20 68 72  /></p>.<p>.<a hr
15f0: 65 66 3d 22 2e 2e 2f 69 6e 64 65 78 2e 68 74 6d  ef="../index.htm
1600: 6c 22 3e 3c 69 6d 67 20 73 72 63 3d 22 2f 67 6f  l"><img src="/go
1610: 62 61 63 6b 2e 6a 70 67 22 20 62 6f 72 64 65 72  back.jpg" border
1620: 3d 30 20 2f 3e 0a 4d 6f 72 65 20 4f 70 65 6e 20  =0 />.More Open 
1630: 53 6f 75 72 63 65 20 53 6f 66 74 77 61 72 65 3c  Source Software<
1640: 2f 61 3e 20 66 72 6f 6d 20 48 77 61 63 69 2e 0a  /a> from Hwaci..
1650: 3c 2f 70 3e 0a 0a 3c 2f 62 6f 64 79 3e 3c 2f 68  </p>..</body></h
1660: 74 6d 6c 3e 7d 0a                                tml>}.