/ Hex Artifact Content
Login

Artifact 5f09e69c5498cf388b3158978664db090708ed83:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63 72  #.# Run this scr
0010: 69 70 74 20 74 6f 20 67 65 6e 65 72 61 74 65 64  ipt to generated
0020: 20 61 20 63 68 61 6e 67 65 73 2e 68 74 6d 6c 20   a changes.html 
0030: 6f 75 74 70 75 74 20 66 69 6c 65 0a 23 0a 73 6f  output file.#.so
0040: 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a  urce common.tcl.
0050: 68 65 61 64 65 72 20 7b 53 51 4c 69 74 65 20 63  header {SQLite c
0060: 68 61 6e 67 65 73 7d 0a 70 75 74 73 20 7b 0a 3c  hanges}.puts {.<
0070: 70 3e 0a 54 68 69 73 20 70 61 67 65 20 70 72 6f  p>.This page pro
0080: 76 69 64 65 73 20 61 20 68 69 67 68 2d 6c 65 76  vides a high-lev
0090: 65 6c 20 73 75 6d 6d 61 72 79 20 6f 66 20 63 68  el summary of ch
00a0: 61 6e 67 65 73 20 74 6f 20 53 51 4c 69 74 65 2e  anges to SQLite.
00b0: 0a 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c  .For more detail
00c0: 2c 20 72 65 66 65 72 20 74 68 65 20 74 68 65 20  , refer the the 
00d0: 63 68 65 63 6b 69 6e 20 6c 6f 67 73 20 67 65 6e  checkin logs gen
00e0: 65 72 61 74 65 64 20 62 79 0a 43 56 53 20 61 74  erated by.CVS at
00f0: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
0100: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0110: 63 76 73 74 72 61 63 2f 74 69 6d 65 6c 69 6e 65  cvstrac/timeline
0120: 22 3e 0a 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  ">.http://www.sq
0130: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
0140: 2f 74 69 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c  /timeline</a>..<
0150: 2f 70 3e 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72  /p>..<DL>.}...pr
0160: 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64 65  oc chng {date de
0170: 73 63 7d 20 7b 0a 20 20 69 66 20 7b 5b 72 65 67  sc} {.  if {[reg
0180: 65 78 70 20 7b 5c 28 28 5b 30 2d 39 2e 5d 2b 29  exp {\(([0-9.]+)
0190: 5c 29 7d 20 24 64 61 74 65 20 61 6c 6c 20 76 65  \)} $date all ve
01a0: 72 73 5d 7d 20 7b 0a 20 20 20 20 73 65 74 20 6c  rs]} {.    set l
01b0: 61 62 65 6c 20 5b 73 74 72 69 6e 67 20 6d 61 70  abel [string map
01c0: 20 7b 2e 20 5f 7d 20 24 76 65 72 73 5d 0a 20 20   {. _} $vers].  
01d0: 20 20 70 75 74 73 20 22 3c 41 20 4e 41 4d 45 3d    puts "<A NAME=
01e0: 5c 22 76 65 72 73 69 6f 6e 5f 24 6c 61 62 65 6c  \"version_$label
01f0: 5c 22 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20  \">".  }.  puts 
0200: 22 3c 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42  "<DT><B>$date</B
0210: 3e 3c 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22  ></DT>".  puts "
0220: 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63  <DD><P><UL>$desc
0230: 3c 2f 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a  </UL></P></DD>".
0240: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 53 65  }..chng {2005 Se
0250: 70 74 65 6d 62 65 72 20 32 34 20 28 33 2e 32 2e  ptember 24 (3.2.
0260: 37 29 7d 20 7b 0a 3c 6c 69 3e 47 52 4f 55 50 20  7)} {.<li>GROUP 
0270: 42 59 20 6e 6f 77 20 63 6f 6e 73 69 64 65 72 73  BY now considers
0280: 20 4e 55 4c 4c 73 20 74 6f 20 62 65 20 65 71 75   NULLs to be equ
0290: 61 6c 20 61 67 61 69 6e 2c 20 61 73 20 69 74 20  al again, as it 
02a0: 73 68 6f 75 6c 64 0a 3c 2f 6c 69 3e 0a 3c 6c 69  should.</li>.<li
02b0: 3e 4e 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e  >Now compiles on
02c0: 20 53 6f 6c 61 72 69 73 20 61 6e 64 20 4f 70 65   Solaris and Ope
02d0: 6e 42 53 44 20 61 6e 64 20 6f 74 68 65 72 20 55  nBSD and other U
02e0: 6e 69 78 20 76 61 72 69 61 6e 74 73 0a 74 68 61  nix variants.tha
02f0: 74 20 6c 61 63 6b 20 74 68 65 20 66 64 61 74 61  t lack the fdata
0300: 73 79 6e 63 28 29 20 66 75 6e 63 74 69 6f 6e 3c  sync() function<
0310: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d  /li>.<li>Now com
0320: 70 69 6c 65 73 20 6f 6e 20 4d 53 56 43 2b 2b 36  piles on MSVC++6
0330: 20 61 67 61 69 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   again</li>.<li>
0340: 46 69 78 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65  Fix uninitialize
0350: 64 20 76 61 72 69 61 62 6c 65 73 20 63 61 75 73  d variables caus
0360: 69 6e 67 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 73  ing malfunctions
0370: 20 66 6f 72 20 76 61 72 69 6f 75 73 20 6f 62 73   for various obs
0380: 63 75 72 65 0a 71 75 65 72 69 65 73 3c 2f 6c 69  cure.queries</li
0390: 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20  >.<li>Correctly 
03a0: 63 6f 6d 70 75 74 65 20 61 20 4c 45 46 54 20 4f  compute a LEFT O
03b0: 55 54 45 52 20 4a 4f 49 4e 73 20 74 68 61 74 20  UTER JOINs that 
03c0: 69 73 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 6f  is constrained o
03d0: 6e 20 74 68 65 0a 6c 65 66 74 20 74 61 62 6c 65  n the.left table
03e0: 20 6f 6e 6c 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   only</li>.}..ch
03f0: 6e 67 20 7b 32 30 30 35 20 53 65 70 74 65 6d 62  ng {2005 Septemb
0400: 65 72 20 31 37 20 28 33 2e 32 2e 36 29 7d 20 7b  er 17 (3.2.6)} {
0410: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
0420: 68 61 74 20 63 61 6e 20 63 61 75 73 65 20 64 61  hat can cause da
0430: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
0440: 6e 20 69 66 20 61 20 56 41 43 55 55 4d 20 28 6f  n if a VACUUM (o
0450: 72 0a 20 20 20 20 61 75 74 6f 76 61 63 75 75 6d  r.    autovacuum
0460: 29 20 66 61 69 6c 73 20 61 6e 64 20 69 73 20 72  ) fails and is r
0470: 6f 6c 6c 65 64 20 62 61 63 6b 20 6f 6e 20 61 20  olled back on a 
0480: 64 61 74 61 62 61 73 65 20 74 68 61 74 20 69 73  database that is
0490: 0a 20 20 20 20 6c 61 72 67 65 72 20 74 68 61 6e  .    larger than
04a0: 20 31 47 69 42 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c   1GiB</li>.<li>L
04b0: 49 4b 45 20 6f 70 74 69 69 7a 61 74 69 6f 6e 20  IKE optiization 
04c0: 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 63 6f  now works for co
04d0: 6c 75 6d 6e 73 20 77 69 74 68 20 43 4f 4c 4c 41  lumns with COLLA
04e0: 54 45 20 4e 4f 43 41 53 45 3c 2f 6c 69 3e 0a 3c  TE NOCASE</li>.<
04f0: 6c 69 3e 4f 52 44 45 52 20 42 59 20 61 6e 64 20  li>ORDER BY and 
0500: 47 52 4f 55 50 20 42 59 20 6e 6f 77 20 75 73 65  GROUP BY now use
0510: 20 62 6f 75 6e 64 65 64 20 6d 65 6d 6f 72 79 3c   bounded memory<
0520: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
0530: 75 70 70 6f 72 74 20 66 6f 72 20 43 4f 55 4e 54  upport for COUNT
0540: 28 44 49 53 54 49 4e 43 54 20 65 78 70 72 29 3c  (DISTINCT expr)<
0550: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
0560: 74 68 65 20 77 61 79 20 53 55 4d 28 29 20 68 61  the way SUM() ha
0570: 6e 64 6c 65 73 20 4e 55 4c 4c 20 76 61 6c 75 65  ndles NULL value
0580: 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f  s in order to co
0590: 6d 70 6c 79 20 77 69 74 68 0a 20 20 20 20 74 68  mply with.    th
05a0: 65 20 53 51 4c 20 73 74 61 6e 64 61 72 64 3c 2f  e SQL standard</
05b0: 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 66 64 61 74  li>.<li>Use fdat
05c0: 61 73 79 6e 63 28 29 20 69 6e 73 74 65 61 64 20  async() instead 
05d0: 6f 66 20 66 73 79 6e 63 28 29 20 77 68 65 72 65  of fsync() where
05e0: 20 70 6f 73 73 69 62 6c 65 20 69 6e 20 6f 72 64   possible in ord
05f0: 65 72 20 74 6f 20 73 70 65 65 64 0a 20 20 20 20  er to speed.    
0600: 75 70 20 63 6f 6d 6d 69 74 73 20 73 6c 69 67 68  up commits sligh
0610: 74 6c 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65  tly</li>.<li>Use
0620: 20 6f 66 20 74 68 65 20 43 52 4f 53 53 20 6b 65   of the CROSS ke
0630: 79 77 6f 72 64 20 69 6e 20 61 20 6a 6f 69 6e 20  yword in a join 
0640: 74 75 72 6e 73 20 6f 66 66 20 74 68 65 20 74 61  turns off the ta
0650: 62 6c 65 20 72 65 6f 72 64 65 72 69 6e 67 0a 20  ble reordering. 
0660: 20 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c     optimization<
0670: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
0680: 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  he experimental 
0690: 61 6e 64 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64  and undocumented
06a0: 20 45 58 50 4c 41 49 4e 20 51 55 45 52 59 20 50   EXPLAIN QUERY P
06b0: 4c 41 4e 20 63 61 70 61 62 69 6c 69 74 79 3c 2f  LAN capability</
06c0: 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 74 68 65 20  li>.<li>Use the 
06d0: 75 6e 69 63 6f 64 65 20 41 50 49 20 69 6e 20 77  unicode API in w
06e0: 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63  indows</li>.}..c
06f0: 68 6e 67 20 7b 32 30 30 35 20 41 75 67 75 73 74  hng {2005 August
0700: 20 32 37 20 28 33 2e 32 2e 35 29 7d 20 7b 0a 3c   27 (3.2.5)} {.<
0710: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 65 66 66  li>Fix a bug eff
0720: 65 63 74 69 6e 67 20 44 45 4c 45 54 45 20 61 6e  ecting DELETE an
0730: 64 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  d UPDATE stateme
0740: 6e 74 73 20 74 68 61 74 20 63 68 61 6e 67 65 64  nts that changed
0750: 0a 6d 6f 72 65 20 74 68 61 6e 20 34 30 39 36 30  .more than 40960
0760: 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   rows.</li>.<li>
0770: 43 68 61 6e 67 65 20 74 68 65 20 6d 61 6b 65 66  Change the makef
0780: 69 6c 65 20 73 6f 20 74 68 61 74 20 69 74 20 6e  ile so that it n
0790: 6f 20 6c 6f 6e 67 65 72 20 72 65 71 75 69 72 65  o longer require
07a0: 73 20 47 4e 55 6d 61 6b 65 20 65 78 74 65 6e 73  s GNUmake extens
07b0: 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ions</li>.<li>Fi
07c0: 78 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 74  x the --enable-t
07d0: 68 72 65 61 64 73 61 66 65 20 6f 70 74 69 6f 6e  hreadsafe option
07e0: 20 6f 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72   on the configur
07f0: 65 20 73 63 72 69 70 74 3c 2f 6c 69 3e 0a 3c 6c  e script</li>.<l
0800: 69 3e 46 69 78 20 61 20 63 6f 64 65 20 67 65 6e  i>Fix a code gen
0810: 65 72 61 74 6f 72 20 62 75 67 20 74 68 61 74 20  erator bug that 
0820: 6f 63 63 75 72 73 20 77 68 65 6e 20 74 68 65 20  occurs when the 
0830: 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 65 20 6f  left-hand side o
0840: 66 20 61 6e 20 49 4e 0a 6f 70 65 72 61 74 6f 72  f an IN.operator
0850: 20 69 73 20 63 6f 6e 73 74 61 6e 74 20 61 6e 64   is constant and
0860: 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20   the right-hand 
0870: 73 69 64 65 20 69 73 20 61 20 53 45 4c 45 43 54  side is a SELECT
0880: 20 73 74 61 74 65 6d 65 6e 74 3c 2f 6c 69 3e 0a   statement</li>.
0890: 3c 6c 69 3e 54 68 65 20 50 52 41 47 4d 41 20 73  <li>The PRAGMA s
08a0: 79 6e 63 68 72 6f 6e 6f 75 73 3d 6f 66 66 20 73  ynchronous=off s
08b0: 74 61 74 65 6d 65 6e 74 20 6e 6f 77 20 64 69 73  tatement now dis
08c0: 61 62 6c 65 73 20 73 79 6e 63 69 6e 67 20 6f 66  ables syncing of
08d0: 20 74 68 65 0a 6d 61 73 74 65 72 20 6a 6f 75 72   the.master jour
08e0: 6e 61 6c 20 66 69 6c 65 20 69 6e 20 61 64 64 69  nal file in addi
08f0: 74 69 6f 6e 20 74 6f 20 74 68 65 20 6e 6f 72 6d  tion to the norm
0900: 61 6c 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72  al rollback jour
0910: 6e 61 6c 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nals</li>.}..chn
0920: 67 20 7b 32 30 30 35 20 41 75 67 75 73 74 20 32  g {2005 August 2
0930: 34 20 28 33 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69  4 (3.2.4)} {.<li
0940: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 74 72 6f  >Fix a bug intro
0950: 64 75 63 65 64 20 69 6e 20 74 68 65 20 70 72 65  duced in the pre
0960: 76 69 6f 75 73 20 72 65 6c 65 61 73 65 0a 74 68  vious release.th
0970: 61 74 20 63 61 6e 20 63 61 75 73 65 20 61 20 73  at can cause a s
0980: 65 67 66 61 75 6c 74 20 77 68 69 6c 65 20 67 65  egfault while ge
0990: 6e 65 72 61 74 69 6e 67 20 63 6f 64 65 0a 66 6f  nerating code.fo
09a0: 72 20 63 6f 6d 70 6c 65 78 20 57 48 45 52 45 20  r complex WHERE 
09b0: 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  clauses.</li>.<l
09c0: 69 3e 41 6c 6c 6f 77 20 66 6c 6f 61 74 69 6e 67  i>Allow floating
09d0: 20 70 6f 69 6e 74 20 6c 69 74 65 72 61 6c 73 20   point literals 
09e0: 74 6f 20 62 65 67 69 6e 20 6f 72 20 65 6e 64 20  to begin or end 
09f0: 77 69 74 68 20 61 20 64 65 63 69 6d 61 6c 20 70  with a decimal p
0a00: 6f 69 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  oint.</li>.}..ch
0a10: 6e 67 20 7b 32 30 30 35 20 41 75 67 75 73 74 20  ng {2005 August 
0a20: 32 31 20 28 33 2e 32 2e 33 29 7d 20 7b 0a 3c 6c  21 (3.2.3)} {.<l
0a30: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
0a40: 66 6f 72 20 74 68 65 20 43 41 53 54 20 6f 70 65  for the CAST ope
0a50: 72 61 74 6f 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  rator</li>.<li>T
0a60: 63 6c 20 69 6e 74 65 72 66 61 63 65 20 61 6c 6c  cl interface all
0a70: 6f 77 73 20 42 4c 4f 42 20 76 61 6c 75 65 73 20  ows BLOB values 
0a80: 74 6f 20 62 65 20 74 72 61 6e 73 66 65 72 72 65  to be transferre
0a90: 64 20 74 6f 20 75 73 65 72 2d 64 65 66 69 6e 65  d to user-define
0aa0: 64 0a 66 75 6e 63 74 69 6f 6e 73 3c 2f 6c 69 3e  d.functions</li>
0ab0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22  .<li>Added the "
0ac0: 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 6d 65 74  transaction" met
0ad0: 68 6f 64 20 74 6f 20 74 68 65 20 54 63 6c 20 69  hod to the Tcl i
0ae0: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
0af0: 69 3e 41 6c 6c 6f 77 20 74 68 65 20 44 45 46 41  i>Allow the DEFA
0b00: 55 4c 54 20 76 61 6c 75 65 20 6f 66 20 61 20 63  ULT value of a c
0b10: 6f 6c 75 6d 6e 20 74 6f 20 63 61 6c 6c 20 66 75  olumn to call fu
0b20: 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76  nctions that hav
0b30: 65 20 63 6f 6e 73 74 61 6e 74 0a 6f 70 65 72 61  e constant.opera
0b40: 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  nds</li>.<li>Add
0b50: 65 64 20 74 68 65 20 41 4e 41 4c 59 5a 45 20 63  ed the ANALYZE c
0b60: 6f 6d 6d 61 6e 64 20 66 6f 72 20 67 61 74 68 65  ommand for gathe
0b70: 72 69 6e 67 20 73 74 61 74 69 73 74 69 63 73 20  ring statistics 
0b80: 6f 6e 20 69 6e 64 69 63 65 73 20 61 6e 64 0a 75  on indices and.u
0b90: 73 69 6e 67 20 74 68 6f 73 65 20 73 74 61 74 69  sing those stati
0ba0: 73 74 69 63 73 20 77 68 65 6e 20 70 69 63 6b 69  stics when picki
0bb0: 6e 67 20 61 6e 20 69 6e 64 65 78 20 69 6e 20 74  ng an index in t
0bc0: 68 65 20 6f 70 74 69 6d 69 7a 65 72 3c 2f 6c 69  he optimizer</li
0bd0: 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65  >.<li>Remove the
0be0: 20 6c 69 6d 69 74 20 28 66 6f 72 6d 65 72 6c 79   limit (formerly
0bf0: 20 31 30 30 29 20 6f 6e 20 74 68 65 20 6e 75 6d   100) on the num
0c00: 62 65 72 20 6f 66 20 74 65 72 6d 73 20 69 6e 20  ber of terms in 
0c10: 74 68 65 0a 57 48 45 52 45 20 63 6c 61 75 73 65  the.WHERE clause
0c20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 72 69  </li>.<li>The ri
0c30: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66  ght-hand side of
0c40: 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72   the IN operator
0c50: 20 63 61 6e 20 6e 6f 77 20 62 65 20 61 20 6c 69   can now be a li
0c60: 73 74 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e  st of expression
0c70: 73 0a 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73  s.instead of jus
0c80: 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73  t a list of cons
0c90: 74 61 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  tants</li>.<li>R
0ca0: 65 77 6f 72 6b 20 74 68 65 20 6f 70 74 69 6d 69  ework the optimi
0cb0: 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74 20 69  zer so that it i
0cc0: 73 20 61 62 6c 65 20 74 6f 20 6d 61 6b 65 20 62  s able to make b
0cd0: 65 74 74 65 72 20 75 73 65 20 6f 66 20 69 6e 64  etter use of ind
0ce0: 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ices</li>.<li>Th
0cf0: 65 20 6f 72 64 65 72 20 6f 66 20 74 61 62 6c 65  e order of table
0d00: 73 20 69 6e 20 61 20 6a 6f 69 6e 20 69 73 20 61  s in a join is a
0d10: 64 6a 75 73 74 65 64 20 61 75 74 6f 6d 61 74 69  djusted automati
0d20: 63 61 6c 6c 79 20 74 6f 20 6d 61 6b 65 0a 62 65  cally to make.be
0d30: 74 74 65 72 20 75 73 65 20 6f 66 20 69 6e 64 69  tter use of indi
0d40: 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ces</li>.<li>The
0d50: 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 69 73 20   IN operator is 
0d60: 6e 6f 77 20 61 20 63 61 6e 64 69 64 61 74 65 20  now a candidate 
0d70: 66 6f 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  for optimization
0d80: 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c 65 66   even if the lef
0d90: 74 2d 68 61 6e 64 0a 73 69 64 65 20 69 73 20 6e  t-hand.side is n
0da0: 6f 74 20 74 68 65 20 6c 65 66 74 2d 6d 6f 73 74  ot the left-most
0db0: 20 74 65 72 6d 20 6f 66 20 74 68 65 20 69 6e 64   term of the ind
0dc0: 65 78 2e 20 20 4d 75 6c 74 69 70 6c 65 20 49 4e  ex.  Multiple IN
0dd0: 20 6f 70 65 72 61 74 6f 72 73 20 63 61 6e 20 62   operators can b
0de0: 65 0a 75 73 65 64 20 77 69 74 68 20 74 68 65 20  e.used with the 
0df0: 73 61 6d 65 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e  same index.</li>
0e00: 0a 3c 6c 69 3e 57 48 45 52 45 20 63 6c 61 75 73  .<li>WHERE claus
0e10: 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 75 73  e expressions us
0e20: 69 6e 67 20 42 45 54 57 45 45 4e 20 61 6e 64 20  ing BETWEEN and 
0e30: 4f 52 20 61 72 65 20 6e 6f 77 20 63 61 6e 64 69  OR are now candi
0e40: 64 61 74 65 73 0a 66 6f 72 20 6f 70 74 69 6d 69  dates.for optimi
0e50: 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  zation</li>.<li>
0e60: 41 64 64 65 64 20 74 68 65 20 22 63 61 73 65 5f  Added the "case_
0e70: 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65 22 20  sensitive_like" 
0e80: 70 72 61 67 6d 61 20 61 6e 64 20 74 68 65 20 53  pragma and the S
0e90: 51 4c 49 54 45 5f 43 41 53 45 5f 53 45 4e 53 49  QLITE_CASE_SENSI
0ea0: 54 49 56 45 5f 4c 49 4b 45 0a 63 6f 6d 70 69 6c  TIVE_LIKE.compil
0eb0: 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 74 6f  e-time option to
0ec0: 20 73 65 74 20 69 74 73 20 64 65 66 61 75 6c 74   set its default
0ed0: 20 76 61 6c 75 65 20 74 6f 20 22 6f 6e 22 2e 3c   value to "on".<
0ee0: 2f 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 69 6e 64  /li>.<li>Use ind
0ef0: 69 63 65 73 20 74 6f 20 68 65 6c 70 20 77 69 74  ices to help wit
0f00: 68 20 47 4c 4f 42 20 65 78 70 72 65 73 73 69 6f  h GLOB expressio
0f10: 6e 73 20 61 6e 64 20 4c 49 4b 45 20 65 78 70 72  ns and LIKE expr
0f20: 65 73 73 69 6f 6e 73 20 74 6f 6f 0a 77 68 65 6e  essions too.when
0f30: 20 74 68 65 20 63 61 73 65 5f 73 65 6e 73 69 74   the case_sensit
0f40: 69 76 65 5f 6c 69 6b 65 20 70 72 61 67 6d 61 20  ive_like pragma 
0f50: 69 73 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a  is enabled</li>.
0f60: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
0f70: 74 20 66 6f 72 20 67 72 61 76 65 2d 61 63 63 65  t for grave-acce
0f80: 6e 74 20 71 75 6f 74 69 6e 67 20 66 6f 72 20 63  nt quoting for c
0f90: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74  ompatibility wit
0fa0: 68 20 4d 79 53 51 4c 3c 2f 6c 69 3e 0a 3c 6c 69  h MySQL</li>.<li
0fb0: 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63  >Improved test c
0fc0: 6f 76 65 72 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69  overage</li>.<li
0fd0: 3e 44 6f 7a 65 6e 73 20 6f 66 20 6d 69 6e 6f 72  >Dozens of minor
0fe0: 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a   bug fixes</li>.
0ff0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 75  }..chng {2005 Ju
1000: 6e 65 20 31 33 20 28 33 2e 32 2e 32 29 7d 20 7b  ne 13 (3.2.2)} {
1010: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73  .<li>Added the s
1020: 71 6c 69 74 65 33 5f 64 62 5f 68 61 6e 64 6c 65  qlite3_db_handle
1030: 28 29 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  () API</li>.<li>
1040: 41 64 64 65 64 20 74 68 65 20 73 71 6c 69 74 65  Added the sqlite
1050: 33 5f 67 65 74 5f 61 75 74 6f 63 6f 6d 6d 69 74  3_get_autocommit
1060: 28 29 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e  () API</li>.<li>
1070: 41 64 64 65 64 20 61 20 52 45 47 45 58 50 20 6f  Added a REGEXP o
1080: 70 65 72 61 74 6f 72 20 74 6f 20 74 68 65 20 70  perator to the p
1090: 61 72 73 65 72 2e 20 20 54 68 65 72 65 20 69 73  arser.  There is
10a0: 20 6e 6f 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20   no function to 
10b0: 62 61 63 6b 0a 75 70 20 74 68 69 73 20 6f 70 65  back.up this ope
10c0: 72 61 74 6f 72 20 69 6e 20 74 68 65 20 73 74 61  rator in the sta
10d0: 6e 64 61 72 64 20 62 75 69 6c 64 20 62 75 74 20  ndard build but 
10e0: 75 73 65 72 73 20 63 61 6e 20 61 64 64 20 74 68  users can add th
10f0: 65 69 72 20 6f 77 6e 20 75 73 69 6e 67 0a 73 71  eir own using.sq
1100: 6c 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e  lite3_create_fun
1110: 63 74 69 6f 6e 28 29 3c 2f 6c 69 3e 0a 3c 6c 69  ction()</li>.<li
1120: 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65  >Speed improveme
1130: 6e 74 73 20 61 6e 64 20 6c 69 62 72 61 72 79 20  nts and library 
1140: 66 6f 6f 74 70 72 69 6e 74 20 72 65 64 75 63 74  footprint reduct
1150: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ions.</li>.<li>F
1160: 69 78 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e  ix byte alignmen
1170: 74 20 70 72 6f 62 6c 65 6d 73 20 6f 6e 20 36 34  t problems on 64
1180: 2d 62 69 74 20 61 72 63 68 69 74 65 63 74 75 72  -bit architectur
1190: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e  es.</li>.<li>Man
11a0: 79 2c 20 6d 61 6e 79 20 6d 69 6e 6f 72 20 62 75  y, many minor bu
11b0: 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75  g fixes and docu
11c0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
11d0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
11e0: 7b 32 30 30 35 20 4d 61 72 63 68 20 32 39 20 28  {2005 March 29 (
11f0: 33 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.2.1)} {.<li>Fi
1200: 78 20 61 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63  x a memory alloc
1210: 61 74 69 6f 6e 20 65 72 72 6f 72 20 69 6e 20 74  ation error in t
1220: 68 65 20 6e 65 77 20 41 44 44 20 43 4f 4c 55 4d  he new ADD COLUM
1230: 4e 20 63 6f 6d 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  N comment.</li>.
1240: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
1250: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d  n updates</li>.}
1260: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72  ..chng {2005 Mar
1270: 63 68 20 32 31 20 28 33 2e 32 2e 30 29 7d 20 7b  ch 21 (3.2.0)} {
1280: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
1290: 72 74 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42  rt for ALTER TAB
12a0: 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e 2e 3c 2f  LE ADD COLUMN.</
12b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
12c0: 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 22 54  pport for the "T
12d0: 22 20 73 65 70 61 72 61 74 6f 72 20 69 6e 20 49  " separator in I
12e0: 53 4f 2d 38 36 30 31 20 64 61 74 65 2f 74 69 6d  SO-8601 date/tim
12f0: 65 20 73 74 72 69 6e 67 73 2e 3c 2f 6c 69 3e 0a  e strings.</li>.
1300: 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 73 75 70  <li>Improved sup
1310: 70 6f 72 74 20 66 6f 72 20 43 79 67 77 69 6e 2e  port for Cygwin.
1320: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f  </li>.<li>Numero
1330: 75 73 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  us bug fixes and
1340: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75   documentation u
1350: 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pdates.</li>.}..
1360: 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68  chng {2005 March
1370: 20 31 36 20 28 33 2e 31 2e 36 29 7d 20 7b 0a 3c   16 (3.1.6)} {.<
1380: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
1390: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61  t could cause da
13a0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
13b0: 6e 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67  n when inserting
13c0: 0a 20 20 20 20 72 65 63 6f 72 64 20 69 6e 74 6f  .    record into
13d0: 20 74 61 62 6c 65 73 20 77 69 74 68 20 61 72 6f   tables with aro
13e0: 75 6e 64 20 31 32 35 20 63 6f 6c 75 6d 6e 73 2e  und 125 columns.
13f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65  </li>.<li>sqlite
1400: 33 5f 73 74 65 70 28 29 20 69 73 20 6e 6f 77 20  3_step() is now 
1410: 6d 75 63 68 20 6d 6f 72 65 20 6c 69 6b 65 6c 79  much more likely
1420: 20 74 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 62   to invoke the b
1430: 75 73 79 20 68 61 6e 64 6c 65 72 0a 20 20 20 20  usy handler.    
1440: 61 6e 64 20 6c 65 73 73 20 6c 69 6b 65 6c 79 20  and less likely 
1450: 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45  to return SQLITE
1460: 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  _BUSY.</li>.<li>
1470: 46 69 78 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 73  Fix memory leaks
1480: 20 74 68 61 74 20 75 73 65 64 20 74 6f 20 6f 63   that used to oc
1490: 63 75 72 20 61 66 74 65 72 20 61 20 6d 61 6c 6c  cur after a mall
14a0: 6f 63 28 29 20 66 61 69 6c 75 72 65 2e 3c 2f 6c  oc() failure.</l
14b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
14c0: 20 4d 61 72 63 68 20 31 31 20 28 33 2e 31 2e 35   March 11 (3.1.5
14d0: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 69 6f 63  )} {.<li>The ioc
14e0: 74 6c 20 6f 6e 20 4f 53 2d 58 20 74 6f 20 63 6f  tl on OS-X to co
14f0: 6e 74 72 6f 6c 20 73 79 6e 63 69 6e 67 20 74 6f  ntrol syncing to
1500: 20 64 69 73 6b 20 69 73 20 46 5f 46 55 4c 4c 46   disk is F_FULLF
1510: 53 59 4e 43 2c 0a 20 20 20 20 6e 6f 74 20 46 5f  SYNC,.    not F_
1520: 46 55 4c 4c 53 59 4e 43 2e 20 20 54 68 65 20 70  FULLSYNC.  The p
1530: 72 65 76 69 6f 75 73 20 72 65 6c 65 61 73 65 20  revious release 
1540: 68 61 64 20 69 74 20 77 72 6f 6e 67 2e 3c 2f 6c  had it wrong.</l
1550: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
1560: 20 4d 61 72 63 68 20 31 30 20 28 33 2e 31 2e 34   March 10 (3.1.4
1570: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
1580: 75 67 20 69 6e 20 61 75 74 6f 76 61 63 75 75 6d  ug in autovacuum
1590: 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73   that could caus
15a0: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
15b0: 70 74 69 6f 6e 20 69 66 0a 61 20 43 52 45 41 54  ption if.a CREAT
15c0: 45 20 55 4e 49 51 55 45 20 49 4e 44 45 58 20 66  E UNIQUE INDEX f
15d0: 61 69 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20  ails because of 
15e0: 61 20 63 6f 6e 73 74 72 61 69 6e 74 20 76 69 6f  a constraint vio
15f0: 6c 61 74 69 6f 6e 2e 0a 54 68 69 73 20 70 72 6f  lation..This pro
1600: 62 6c 65 6d 20 6f 6e 6c 79 20 6f 63 63 75 72 73  blem only occurs
1610: 20 69 66 20 74 68 65 20 6e 65 77 20 61 75 74 6f   if the new auto
1620: 76 61 63 75 75 6d 20 66 65 61 74 75 72 65 20 69  vacuum feature i
1630: 6e 74 72 6f 64 75 63 65 64 20 69 6e 0a 76 65 72  ntroduced in.ver
1640: 73 69 6f 6e 20 33 2e 31 20 69 73 20 74 75 72 6e  sion 3.1 is turn
1650: 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ed on.</li>.<li>
1660: 54 68 65 20 46 5f 46 55 4c 4c 53 59 4e 43 20 69  The F_FULLSYNC i
1670: 6f 63 74 6c 20 28 63 75 72 72 65 6e 74 6c 79 20  octl (currently 
1680: 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f  only supported o
1690: 6e 20 4f 53 2d 58 29 20 69 73 20 64 69 73 61 62  n OS-X) is disab
16a0: 6c 65 64 0a 69 66 20 74 68 65 20 73 79 6e 63 68  led.if the synch
16b0: 72 6f 6e 6f 75 73 20 70 72 61 67 6d 61 20 69 73  ronous pragma is
16c0: 20 73 65 74 20 74 6f 20 73 6f 6d 65 74 68 69 6e   set to somethin
16d0: 67 20 6f 74 68 65 72 20 74 68 61 6e 20 22 66 75  g other than "fu
16e0: 6c 6c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ll".</li>.<li>Ad
16f0: 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 66 6f 72  d additional for
1700: 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69  ward compatibili
1710: 74 79 20 74 6f 20 74 68 65 20 66 75 74 75 72 65  ty to the future
1720: 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74   version 3.2 dat
1730: 61 62 61 73 65 20 0a 66 69 6c 65 20 66 6f 72 6d  abase .file form
1740: 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  at.</li>.<li>Fix
1750: 20 61 20 62 75 67 20 69 6e 20 57 48 45 52 45 20   a bug in WHERE 
1760: 63 6c 61 75 73 65 73 20 6f 66 20 74 68 65 20 66  clauses of the f
1770: 6f 72 6d 20 28 72 6f 77 69 64 3c 27 32 27 29 3c  orm (rowid<'2')<
1780: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 53 51 4c  /li>.<li>New SQL
1790: 49 54 45 5f 4f 4d 49 54 5f 2e 2e 2e 20 63 6f 6d  ITE_OMIT_... com
17a0: 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e  pile-time option
17b0: 73 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69  s added</li>.<li
17c0: 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68 65 20  >Updates to the 
17d0: 6d 61 6e 20 70 61 67 65 3c 2f 6c 69 3e 0a 3c 6c  man page</li>.<l
17e0: 69 3e 52 65 6d 6f 76 65 20 74 68 65 20 75 73 65  i>Remove the use
17f0: 20 6f 66 20 73 74 72 63 61 73 65 63 6d 70 28 29   of strcasecmp()
1800: 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 3c   from the shell<
1810: 2f 6c 69 3e 0a 3c 6c 69 3e 57 69 6e 64 6f 77 73  /li>.<li>Windows
1820: 20 44 4c 4c 20 65 78 70 6f 72 74 73 20 73 79 6d   DLL exports sym
1830: 62 6f 6c 73 20 54 63 6c 73 71 6c 69 74 65 5f 49  bols Tclsqlite_I
1840: 6e 69 74 20 61 6e 64 20 53 71 6c 69 74 65 5f 49  nit and Sqlite_I
1850: 6e 69 74 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  nit</li>.}..chng
1860: 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20   {2005 February 
1870: 31 39 20 28 33 2e 31 2e 33 29 7d 20 7b 0a 3c 6c  19 (3.1.3)} {.<l
1880: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
1890: 77 69 74 68 20 56 41 43 55 55 4d 20 6f 6e 20 64  with VACUUM on d
18a0: 61 74 61 62 61 73 65 73 20 66 72 6f 6d 20 77 68  atabases from wh
18b0: 69 63 68 20 74 61 62 6c 65 73 20 63 6f 6e 74 61  ich tables conta
18c0: 69 6e 69 6e 67 0a 41 55 54 4f 49 4e 43 52 45 4d  ining.AUTOINCREM
18d0: 45 4e 54 20 68 61 76 65 20 62 65 65 6e 20 64 72  ENT have been dr
18e0: 6f 70 70 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  opped.</li>.<li>
18f0: 41 64 64 20 66 6f 72 77 61 72 64 20 63 6f 6d 70  Add forward comp
1900: 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65  atibility to the
1910: 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20   future version 
1920: 33 2e 32 20 64 61 74 61 62 61 73 65 20 66 69 6c  3.2 database fil
1930: 65 0a 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c  e.format.</li>.<
1940: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
1950: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a   updates</li>.}.
1960: 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72  .chng {2005 Febr
1970: 75 61 72 79 20 31 35 20 28 33 2e 31 2e 32 29 7d  uary 15 (3.1.2)}
1980: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
1990: 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74   that can lead t
19a0: 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  o database corru
19b0: 70 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61  ption if there a
19c0: 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e  re two.open conn
19d0: 65 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73  ections to the s
19e0: 61 6d 65 20 64 61 74 61 62 61 73 65 20 61 6e 64  ame database and
19f0: 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20   one connection 
1a00: 64 6f 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e  does a VACUUM.an
1a10: 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b  d the second mak
1a20: 65 73 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74  es some change t
1a30: 6f 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c  o the database.<
1a40: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22  /li>.<li>Allow "
1a50: 3f 22 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e  ?" parameters in
1a60: 20 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73   the LIMIT claus
1a70: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  e.</li>.<li>Fix 
1a80: 56 41 43 55 55 4d 20 73 6f 20 74 68 61 74 20 69  VACUUM so that i
1a90: 74 20 77 6f 72 6b 73 20 77 69 74 68 20 41 55 54  t works with AUT
1aa0: 4f 49 4e 43 52 45 4d 45 4e 54 2e 3c 2f 6c 69 3e  OINCREMENT.</li>
1ab0: 0a 3c 6c 69 3e 46 69 78 20 61 20 72 61 63 65 20  .<li>Fix a race 
1ac0: 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 41 55 54  condition in AUT
1ad0: 4f 56 41 43 55 55 4d 20 74 68 61 74 20 63 61 6e  OVACUUM that can
1ae0: 20 6c 65 61 64 20 74 6f 20 63 6f 72 72 75 70 74   lead to corrupt
1af0: 20 64 61 74 61 62 61 73 65 73 3c 2f 6c 69 3e 0a   databases</li>.
1b00: 3c 6c 69 3e 41 64 64 20 61 20 6e 75 6d 65 72 69  <li>Add a numeri
1b10: 63 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  c version number
1b20: 20 74 6f 20 74 68 65 20 73 71 6c 69 74 65 33 2e   to the sqlite3.
1b30: 68 20 69 6e 63 6c 75 64 65 20 66 69 6c 65 2e 3c  h include file.<
1b40: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
1b50: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61  inor bug fixes a
1b60: 6e 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 65  nd performance e
1b70: 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69  nhancements.</li
1b80: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
1b90: 46 65 62 72 75 61 72 79 20 31 35 20 28 32 2e 38  February 15 (2.8
1ba0: 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .16)} {.<li>Fix 
1bb0: 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 6c  a bug that can l
1bc0: 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20  ead to database 
1bd0: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 74 68  corruption if th
1be0: 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70 65 6e  ere are two.open
1bf0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74 6f 20   connections to 
1c00: 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61 73  the same databas
1c10: 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e 65 63  e and one connec
1c20: 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41 43 55  tion does a VACU
1c30: 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63 6f 6e  UM.and the secon
1c40: 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63 68 61  d makes some cha
1c50: 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74 61 62  nge to the datab
1c60: 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  ase.</li>.<li>Co
1c70: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 71  rrectly handle q
1c80: 75 6f 74 65 64 20 6e 61 6d 65 73 20 69 6e 20 43  uoted names in C
1c90: 52 45 41 54 45 20 49 4e 44 45 58 20 73 74 61 74  REATE INDEX stat
1ca0: 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ements.</li>.<li
1cb0: 3e 46 69 78 20 61 20 6e 61 6d 69 6e 67 20 63 6f  >Fix a naming co
1cc0: 6e 66 6c 69 63 74 20 62 65 74 77 65 65 6e 20 73  nflict between s
1cd0: 71 6c 69 74 65 2e 68 20 61 6e 64 20 73 71 6c 69  qlite.h and sqli
1ce0: 74 65 33 2e 68 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  te3.h.</li>.<li>
1cf0: 41 76 6f 69 64 20 65 78 63 65 73 73 20 68 65 61  Avoid excess hea
1d00: 70 20 75 73 61 67 65 20 77 68 65 6e 20 63 6f 70  p usage when cop
1d10: 79 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73  ying expressions
1d20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
1d30: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
1d40: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1d50: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 20  2005 February 1 
1d60: 28 33 2e 31 2e 31 20 42 45 54 41 29 7d 20 7b 0a  (3.1.1 BETA)} {.
1d70: 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 20 63 61  <li>Automatic ca
1d80: 63 68 69 6e 67 20 6f 66 20 70 72 65 70 61 72 65  ching of prepare
1d90: 64 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20  d statements in 
1da0: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
1db0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 54 54 41 43  e</li>.<li>ATTAC
1dc0: 48 20 61 6e 64 20 44 45 54 41 43 48 20 61 73 20  H and DETACH as 
1dd0: 77 65 6c 6c 20 61 73 20 73 6f 6d 65 20 6f 74 68  well as some oth
1de0: 65 72 20 6f 70 65 72 61 74 69 6f 6e 73 20 63 61  er operations ca
1df0: 75 73 65 20 65 78 69 73 74 69 6e 67 0a 20 20 20  use existing.   
1e00: 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d   prepared statem
1e10: 65 6e 74 73 20 74 6f 20 65 78 70 69 72 65 2e 3c  ents to expire.<
1e20: 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 69 6f  /li>.<li>Numerio
1e30: 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  us minor bug fix
1e40: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
1e50: 7b 32 30 30 35 20 4a 61 6e 75 61 72 79 20 32 31  {2005 January 21
1e60: 20 28 33 2e 31 2e 30 20 41 4c 50 48 41 29 7d 20   (3.1.0 ALPHA)} 
1e70: 7b 0a 3c 6c 69 3e 41 75 74 6f 76 61 63 75 75 6d  {.<li>Autovacuum
1e80: 20 73 75 70 70 6f 72 74 20 61 64 64 65 64 3c 2f   support added</
1e90: 6c 69 3e 0a 3c 6c 69 3e 43 55 52 52 45 4e 54 5f  li>.<li>CURRENT_
1ea0: 54 49 4d 45 2c 20 43 55 52 52 45 4e 54 5f 44 41  TIME, CURRENT_DA
1eb0: 54 45 2c 20 61 6e 64 20 43 55 52 52 45 4e 54 5f  TE, and CURRENT_
1ec0: 54 49 4d 45 53 54 41 4d 50 20 61 64 64 65 64 3c  TIMESTAMP added<
1ed0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
1ee0: 20 66 6f 72 20 74 68 65 20 45 58 49 53 54 53 20   for the EXISTS 
1ef0: 63 6c 61 75 73 65 20 61 64 64 65 64 2e 3c 2f 6c  clause added.</l
1f00: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
1f10: 6f 72 20 63 6f 72 72 65 6c 61 74 65 64 20 73 75  or correlated su
1f20: 62 71 75 65 72 69 65 73 20 61 64 64 65 64 2e 3c  bqueries added.<
1f30: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
1f40: 68 65 20 45 53 43 41 50 45 20 63 6c 61 75 73 65  he ESCAPE clause
1f50: 20 6f 6e 20 74 68 65 20 4c 49 4b 45 20 6f 70 65   on the LIKE ope
1f60: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
1f70: 53 75 70 70 6f 72 74 20 66 6f 72 20 41 4c 54 45  Support for ALTE
1f80: 52 20 54 41 42 4c 45 20 2e 2e 2e 20 52 45 4e 41  R TABLE ... RENA
1f90: 4d 45 20 54 41 42 4c 45 20 2e 2e 2e 20 61 64 64  ME TABLE ... add
1fa0: 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 55 54 4f  ed</li>.<li>AUTO
1fb0: 49 4e 43 52 45 4d 45 4e 54 20 6b 65 79 77 6f 72  INCREMENT keywor
1fc0: 64 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 49  d supported on I
1fd0: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
1fe0: 45 59 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  EY</li>.<li>Many
1ff0: 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 20 6d 61   SQLITE_OMIT_ ma
2000: 63 72 6f 73 20 69 6e 73 65 72 74 73 20 74 6f 20  cros inserts to 
2010: 6f 6d 69 74 20 66 65 61 74 75 72 65 73 20 61 74  omit features at
2020: 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20   compile-time.  
2030: 20 20 61 6e 64 20 72 65 64 75 63 65 20 74 68 65    and reduce the
2040: 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69   library footpri
2050: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  nt.</li>.<li>The
2060: 20 52 45 49 4e 44 45 58 20 63 6f 6d 6d 61 6e 64   REINDEX command
2070: 20 77 61 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e   was added.</li>
2080: 0a 3c 6c 69 3e 54 68 65 20 65 6e 67 69 6e 65 20  .<li>The engine 
2090: 6e 6f 20 6c 6f 6e 67 65 72 20 63 6f 6e 73 75 6c  no longer consul
20a0: 74 73 20 74 68 65 20 6d 61 69 6e 20 74 61 62 6c  ts the main tabl
20b0: 65 20 69 66 20 69 74 20 63 61 6e 20 67 65 74 0a  e if it can get.
20c0: 20 20 20 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f      all the info
20d0: 72 6d 61 74 69 6f 6e 20 69 74 20 6e 65 65 64 73  rmation it needs
20e0: 20 66 72 6f 6d 20 61 6e 20 69 6e 64 65 78 2e 3c   from an index.<
20f0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6e 75  /li>.<li>Many nu
2100: 69 73 61 6e 63 65 20 62 75 67 73 20 66 69 78 65  isance bugs fixe
2110: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
2120: 7b 32 30 30 34 20 4f 63 74 6f 62 65 72 20 31 31  {2004 October 11
2130: 20 28 33 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (3.0.8)} {.<li>
2140: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
2150: 44 45 46 45 52 52 45 44 2c 20 49 4d 4d 45 44 49  DEFERRED, IMMEDI
2160: 41 54 45 2c 20 61 6e 64 20 45 58 43 4c 55 53 49  ATE, and EXCLUSI
2170: 56 45 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e  VE transactions.
2180: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
2190: 6e 65 77 20 75 73 65 72 2d 64 65 66 69 6e 65 64  new user-defined
21a0: 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 62 65   functions to be
21b0: 20 63 72 65 61 74 65 64 20 77 68 65 6e 20 74 68   created when th
21c0: 65 72 65 20 61 72 65 0a 61 6c 72 65 61 64 79 20  ere are.already 
21d0: 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 72 65 63  one or more prec
21e0: 6f 6d 70 69 6c 65 64 20 53 51 4c 20 73 74 61 74  ompiled SQL stat
21f0: 65 6d 65 6e 74 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e  ements.<li>.<li>
2200: 46 69 78 20 70 6f 72 74 61 62 69 6c 69 74 79 20  Fix portability 
2210: 70 72 6f 62 6c 65 6d 73 20 66 6f 72 20 4d 69 6e  problems for Min
2220: 67 77 2f 4d 53 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c  gw/MSYS.</li>.<l
2230: 69 3e 46 69 78 20 61 20 62 79 74 65 20 61 6c 69  i>Fix a byte ali
2240: 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d 20 6f  gnment problem o
2250: 6e 20 36 34 2d 62 69 74 20 53 70 61 72 63 20 6d  n 64-bit Sparc m
2260: 61 63 68 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  achines.</li>.<l
2270: 69 3e 46 69 78 20 74 68 65 20 22 2e 69 6d 70 6f  i>Fix the ".impo
2280: 72 74 22 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 74  rt" command of t
2290: 68 65 20 73 68 65 6c 6c 20 73 6f 20 74 68 61 74  he shell so that
22a0: 20 69 74 20 69 67 6e 6f 72 65 73 20 5c 72 0a 63   it ignores \r.c
22b0: 68 61 72 61 63 74 65 72 73 20 61 74 20 74 68 65  haracters at the
22c0: 20 65 6e 64 20 6f 66 20 6c 69 6e 65 73 2e 3c 2f   end of lines.</
22d0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 63 73 76  li>.<li>The "csv
22e0: 22 20 6d 6f 64 65 20 6f 70 74 69 6f 6e 20 69 6e  " mode option in
22f0: 20 74 68 65 20 73 68 65 6c 6c 20 70 75 74 73 20   the shell puts 
2300: 73 74 72 69 6e 67 73 20 69 6e 73 69 64 65 20 64  strings inside d
2310: 6f 75 62 6c 65 2d 71 75 6f 74 65 73 2e 3c 2f 6c  ouble-quotes.</l
2320: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73  i>.<li>Fix typos
2330: 20 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f   in documentatio
2340: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6e 76  n.</li>.<li>Conv
2350: 65 72 74 20 61 72 72 61 79 20 63 6f 6e 73 74 61  ert array consta
2360: 6e 74 73 20 69 6e 20 74 68 65 20 63 6f 64 65 20  nts in the code 
2370: 74 6f 20 68 61 76 65 20 74 79 70 65 20 22 63 6f  to have type "co
2380: 6e 73 74 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e  nst".</li>.<li>N
2390: 75 6d 65 72 6f 75 73 20 63 6f 64 65 20 6f 70 74  umerous code opt
23a0: 69 6d 69 7a 61 74 69 6f 6e 73 2c 20 73 70 65 63  imizations, spec
23b0: 69 61 6c 6c 79 20 6f 70 74 69 6d 69 7a 61 74 69  ially optimizati
23c0: 6f 6e 73 20 64 65 73 69 67 6e 65 64 20 74 6f 0a  ons designed to.
23d0: 6d 61 6b 65 20 74 68 65 20 63 6f 64 65 20 66 6f  make the code fo
23e0: 6f 74 70 72 69 6e 74 20 73 6d 61 6c 6c 65 72 2e  otprint smaller.
23f0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2400: 30 30 34 20 53 65 70 74 65 6d 62 65 72 20 31 38  004 September 18
2410: 20 28 33 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (3.0.7)} {.<li>
2420: 54 68 65 20 42 54 72 65 65 20 6d 6f 64 75 6c 65  The BTree module
2430: 20 61 6c 6c 6f 63 61 74 65 73 20 6c 61 72 67 65   allocates large
2440: 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 6d   buffers using m
2450: 61 6c 6c 6f 63 28 29 20 69 6e 73 74 65 61 64 20  alloc() instead 
2460: 6f 66 0a 20 20 20 20 6f 66 66 20 6f 66 20 74 68  of.    off of th
2470: 65 20 73 74 61 63 6b 2c 20 69 6e 20 6f 72 64 65  e stack, in orde
2480: 72 20 74 6f 20 70 6c 61 79 20 62 65 74 74 65 72  r to play better
2490: 20 6f 6e 20 6d 61 63 68 69 6e 65 73 20 77 69 74   on machines wit
24a0: 68 20 6c 69 6d 69 74 65 64 0a 20 20 20 20 73 74  h limited.    st
24b0: 61 63 6b 20 73 70 61 63 65 2e 3c 2f 6c 69 3e 0a  ack space.</li>.
24c0: 3c 6c 69 3e 46 69 78 65 64 20 6e 61 6d 69 6e 67  <li>Fixed naming
24d0: 20 63 6f 6e 66 6c 69 63 74 73 20 73 6f 20 74 68   conflicts so th
24e0: 61 74 20 76 65 72 73 69 6f 6e 73 20 32 2e 38 20  at versions 2.8 
24f0: 61 6e 64 20 33 2e 30 20 63 61 6e 20 62 65 0a 20  and 3.0 can be. 
2500: 20 20 20 6c 69 6e 6b 65 64 20 61 6e 64 20 75 73     linked and us
2510: 65 64 20 74 6f 67 65 74 68 65 72 20 69 6e 20 74  ed together in t
2520: 68 65 20 73 61 6d 65 20 41 4e 53 49 2d 43 20 73  he same ANSI-C s
2530: 6f 75 72 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e  ource file.</li>
2540: 0a 3c 6c 69 3e 4e 65 77 20 69 6e 74 65 72 66 61  .<li>New interfa
2550: 63 65 3a 20 73 71 6c 69 74 65 33 5f 62 69 6e 64  ce: sqlite3_bind
2560: 5f 70 61 72 61 6d 65 74 65 72 5f 69 6e 64 65 78  _parameter_index
2570: 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ()</li>.<li>Add 
2580: 73 75 70 70 6f 72 74 20 66 6f 72 20 77 69 6c 64  support for wild
2590: 63 61 72 64 20 70 61 72 61 6d 65 74 65 72 73 20  card parameters 
25a0: 6f 66 20 74 68 65 20 66 6f 72 6d 3a 20 22 3f 6e  of the form: "?n
25b0: 6e 6e 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  nn"</li>.<li>Fix
25c0: 20 70 72 6f 62 6c 65 6d 73 20 66 6f 75 6e 64 20   problems found 
25d0: 6f 6e 20 36 34 2d 62 69 74 20 73 79 73 74 65 6d  on 64-bit system
25e0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  s.</li>.<li>Remo
25f0: 76 65 64 20 65 6e 63 6f 64 65 2e 63 20 66 69 6c  ved encode.c fil
2600: 65 20 28 63 6f 6e 74 61 69 6e 69 6e 67 20 75 6e  e (containing un
2610: 75 73 65 64 20 72 6f 75 74 69 6e 65 73 29 20 66  used routines) f
2620: 72 6f 6d 20 74 68 65 20 0a 20 20 20 20 76 65 72  rom the .    ver
2630: 73 69 6f 6e 20 33 2e 30 20 73 6f 75 72 63 65 20  sion 3.0 source 
2640: 74 72 65 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  tree.</li>.<li>T
2650: 68 65 20 73 71 6c 69 74 65 33 5f 74 72 61 63 65  he sqlite3_trace
2660: 28 29 20 63 61 6c 6c 62 61 63 6b 73 20 6f 63 63  () callbacks occ
2670: 75 72 20 62 65 66 6f 72 65 20 65 61 63 68 20 73  ur before each s
2680: 74 61 74 65 6d 65 6e 74 0a 20 20 20 20 69 73 20  tatement.    is 
2690: 65 78 65 63 75 74 65 64 2c 20 6e 6f 74 20 77 68  executed, not wh
26a0: 65 6e 20 74 68 65 20 73 74 61 74 65 6d 65 6e 74  en the statement
26b0: 20 69 73 20 63 6f 6d 70 69 6c 65 64 2e 3c 2f 6c   is compiled.</l
26c0: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20  i>.<li>Makefile 
26d0: 75 70 64 61 74 65 73 20 61 6e 64 20 6d 69 73 63  updates and misc
26e0: 65 6c 6c 61 6e 65 6f 75 73 20 62 75 67 20 66 69  ellaneous bug fi
26f0: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
2700: 67 20 7b 32 30 30 34 20 53 65 70 74 65 6d 62 65  g {2004 Septembe
2710: 72 20 30 32 20 28 33 2e 30 2e 36 20 62 65 74 61  r 02 (3.0.6 beta
2720: 29 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20  )} {.<li>Better 
2730: 64 65 74 65 63 74 69 6f 6e 20 61 6e 64 20 68 61  detection and ha
2740: 6e 64 6c 69 6e 67 20 6f 66 20 63 6f 72 72 75 70  ndling of corrup
2750: 74 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  t database files
2760: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73  .</li>.<li>The s
2770: 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20 69 6e  qlite3_step() in
2780: 74 65 72 66 61 63 65 20 72 65 74 75 72 6e 73 20  terface returns 
2790: 53 51 4c 49 54 45 5f 42 55 53 59 20 69 66 20 69  SQLITE_BUSY if i
27a0: 74 20 69 73 20 75 6e 61 62 6c 65 0a 20 20 20 20  t is unable.    
27b0: 74 6f 20 63 6f 6d 6d 69 74 20 61 20 63 68 61 6e  to commit a chan
27c0: 67 65 20 62 65 63 61 75 73 65 20 6f 66 20 61 20  ge because of a 
27d0: 6c 6f 63 6b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  lock</li>.<li>Co
27e0: 6d 62 69 6e 65 20 74 68 65 20 69 6d 70 6c 65 6d  mbine the implem
27f0: 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 4b  entations of LIK
2800: 45 20 61 6e 64 20 47 4c 4f 42 20 69 6e 74 6f 20  E and GLOB into 
2810: 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 70 61 74  a single.    pat
2820: 74 65 72 6e 2d 6d 61 74 63 68 69 6e 67 20 73 75  tern-matching su
2830: 62 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c  broutine.</li>.<
2840: 6c 69 3e 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73  li>Miscellaneous
2850: 20 63 6f 64 65 20 73 69 7a 65 20 6f 70 74 69 6d   code size optim
2860: 69 7a 61 74 69 6f 6e 73 20 61 6e 64 20 62 75 67  izations and bug
2870: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fixes</li>.}..c
2880: 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73 74  hng {2004 August
2890: 20 32 39 20 28 33 2e 30 2e 35 20 62 65 74 61 29   29 (3.0.5 beta)
28a0: 7d 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  } {.<li>Support 
28b0: 66 6f 72 20 22 3a 41 41 41 22 20 73 74 79 6c 65  for ":AAA" style
28c0: 20 62 69 6e 64 20 70 61 72 61 6d 65 74 65 72 20   bind parameter 
28d0: 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  names.</li>.<li>
28e0: 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 73 71  Added the new sq
28f0: 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d  lite3_bind_param
2900: 65 74 65 72 5f 6e 61 6d 65 28 29 20 69 6e 74 65  eter_name() inte
2910: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
2920: 53 75 70 70 6f 72 74 20 66 6f 72 20 54 43 4c 20  Support for TCL 
2930: 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 20 65  variable names e
2940: 6d 62 65 64 64 65 64 20 69 6e 20 53 51 4c 20 73  mbedded in SQL s
2950: 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  tatements in the
2960: 0a 20 20 20 20 54 43 4c 20 62 69 6e 64 69 6e 67  .    TCL binding
2970: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  s.</li>.<li>The 
2980: 54 43 4c 20 62 69 6e 64 69 6e 67 73 20 74 72 61  TCL bindings tra
2990: 6e 73 66 65 72 20 64 61 74 61 20 77 69 74 68 6f  nsfer data witho
29a0: 75 74 20 6e 65 63 65 73 73 61 72 69 6c 79 20 64  ut necessarily d
29b0: 6f 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 69 6f  oing a conversio
29c0: 6e 0a 20 20 20 20 74 6f 20 61 20 73 74 72 69 6e  n.    to a strin
29d0: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  g.</li>.<li>The 
29e0: 64 61 74 61 62 61 73 65 20 66 6f 72 20 54 45 4d  database for TEM
29f0: 50 20 74 61 62 6c 65 73 20 69 73 20 6e 6f 74 20  P tables is not 
2a00: 63 72 65 61 74 65 64 20 75 6e 74 69 6c 20 69 74  created until it
2a10: 20 69 73 20 6e 65 65 64 65 64 2e 3c 2f 6c 69 3e   is needed.</li>
2a20: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
2a30: 6c 69 74 79 20 74 6f 20 73 70 65 63 69 66 79 20  lity to specify 
2a40: 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74  an alternative t
2a50: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 64 69  emporary file di
2a60: 72 65 63 74 6f 72 79 0a 20 20 20 20 75 73 69 6e  rectory.    usin
2a70: 67 20 74 68 65 20 22 73 71 6c 69 74 65 5f 74 65  g the "sqlite_te
2a80: 6d 70 5f 64 69 72 65 63 74 6f 72 79 22 20 67 6c  mp_directory" gl
2a90: 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 3c 2f  obal variable.</
2aa0: 6c 69 3e 0a 3c 6c 69 3e 41 20 63 6f 6d 70 69 6c  li>.<li>A compil
2ab0: 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 28 53  e-time option (S
2ac0: 51 4c 49 54 45 5f 42 55 53 59 5f 52 45 53 45 52  QLITE_BUSY_RESER
2ad0: 56 45 44 5f 4c 4f 43 4b 29 20 63 61 75 73 65 73  VED_LOCK) causes
2ae0: 20 74 68 65 20 62 75 73 79 0a 20 20 20 20 68 61   the busy.    ha
2af0: 6e 64 6c 65 72 20 74 6f 20 62 65 20 63 61 6c 6c  ndler to be call
2b00: 65 64 20 77 68 65 6e 20 74 68 65 72 65 20 69 73  ed when there is
2b10: 20 63 6f 6e 74 65 6e 74 69 6f 6e 20 66 6f 72 20   contention for 
2b20: 61 20 52 45 53 45 52 56 45 44 20 6c 6f 63 6b 2e  a RESERVED lock.
2b30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75  </li>.<li>Variou
2b40: 73 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20  s bug fixes and 
2b50: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 3c 2f 6c  optimizations</l
2b60: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
2b70: 20 41 75 67 75 73 74 20 38 20 28 33 2e 30 2e 34   August 8 (3.0.4
2b80: 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 43 52   beta)} {.<li>CR
2b90: 45 41 54 45 20 54 41 42 4c 45 20 61 6e 64 20 44  EATE TABLE and D
2ba0: 52 4f 50 20 54 41 42 4c 45 20 6e 6f 77 20 77 6f  ROP TABLE now wo
2bb0: 72 6b 20 63 6f 72 72 65 63 74 6c 79 20 61 73 20  rk correctly as 
2bc0: 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65  prepared stateme
2bd0: 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  nts.</li>.<li>Fi
2be0: 78 20 61 20 62 75 67 20 69 6e 20 56 41 43 55 55  x a bug in VACUU
2bf0: 4d 20 61 6e 64 20 55 4e 49 51 55 45 20 69 6e 64  M and UNIQUE ind
2c00: 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ices.</li>.<li>A
2c10: 64 64 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22  dd the ".import"
2c20: 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20   command to the 
2c30: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73 68 65  command-line she
2c40: 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ll.</li>.<li>Fix
2c50: 20 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c   a bug that coul
2c60: 64 20 63 61 75 73 65 20 69 6e 64 65 78 20 63 6f  d cause index co
2c70: 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 61 6e  rruption when an
2c80: 20 61 74 74 65 6d 70 74 20 74 6f 0a 20 20 20 20   attempt to.    
2c90: 64 65 6c 65 74 65 20 72 6f 77 73 20 6f 66 20 61  delete rows of a
2ca0: 20 74 61 62 6c 65 20 69 73 20 62 6c 6f 63 6b 65   table is blocke
2cb0: 64 20 62 79 20 61 20 70 65 6e 64 69 6e 67 20 71  d by a pending q
2cc0: 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c  uery.</li>.<li>L
2cd0: 69 62 72 61 72 79 20 73 69 7a 65 20 6f 70 74 69  ibrary size opti
2ce0: 6d 69 7a 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  mizations.</li>.
2cf0: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
2d00: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
2d10: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
2d20: 6c 79 20 32 32 20 28 32 2e 38 2e 31 35 29 7d 20  ly 22 (2.8.15)} 
2d30: 7b 0a 3c 6c 69 3e 54 68 69 73 20 69 73 20 61 20  {.<li>This is a 
2d40: 6d 61 69 6e 74 65 6e 61 6e 63 65 20 72 65 6c 65  maintenance rele
2d50: 61 73 65 20 6f 6e 6c 79 2e 20 20 56 61 72 69 6f  ase only.  Vario
2d60: 75 73 20 6d 69 6e 6f 72 20 62 75 67 73 20 68 61  us minor bugs ha
2d70: 76 65 20 62 65 65 6e 0a 66 69 78 65 64 20 61 6e  ve been.fixed an
2d80: 64 20 73 6f 6d 65 20 70 6f 72 74 61 62 69 6c 69  d some portabili
2d90: 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  ty enhancements 
2da0: 61 72 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a  are added.</li>.
2db0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
2dc0: 6c 79 20 32 32 20 28 33 2e 30 2e 33 20 62 65 74  ly 22 (3.0.3 bet
2dd0: 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 73 65  a)} {.<li>The se
2de0: 63 6f 6e 64 20 62 65 74 61 20 72 65 6c 65 61 73  cond beta releas
2df0: 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e 30  e for SQLite 3.0
2e00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73  .</li>.<li>Add s
2e10: 75 70 70 6f 72 74 20 66 6f 72 20 22 50 52 41 47  upport for "PRAG
2e20: 4d 41 20 70 61 67 65 5f 73 69 7a 65 22 20 74 6f  MA page_size" to
2e30: 20 61 64 6a 75 73 74 20 74 68 65 20 70 61 67 65   adjust the page
2e40: 20 73 69 7a 65 20 6f 66 0a 74 68 65 20 64 61 74   size of.the dat
2e50: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  abase.</li>.<li>
2e60: 56 61 72 69 6f 75 73 20 62 75 67 20 66 69 78 65  Various bug fixe
2e70: 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74  s and documentat
2e80: 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69  ion updates.</li
2e90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
2ea0: 4a 75 6e 65 20 33 30 20 28 33 2e 30 2e 32 20 62  June 30 (3.0.2 b
2eb0: 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  eta)} {.<li>The 
2ec0: 66 69 72 73 74 20 62 65 74 61 20 72 65 6c 65 61  first beta relea
2ed0: 73 65 20 66 6f 72 20 53 51 4c 69 74 65 20 33 2e  se for SQLite 3.
2ee0: 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  0.</li>.}..chng 
2ef0: 7b 32 30 30 34 20 4a 75 6e 65 20 32 32 20 28 33  {2004 June 22 (3
2f00: 2e 30 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c  .0.1 alpha)} {.<
2f10: 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22  li><font color="
2f20: 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a  red"><b>.    ***
2f30: 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65 20 2d   Alpha Release -
2f40: 20 52 65 73 65 61 72 63 68 20 41 6e 64 20 54 65   Research And Te
2f50: 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a  sting Use Only *
2f60: 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c  **</b></font>.<l
2f70: 69 3e 4c 6f 74 73 20 6f 66 20 62 75 67 20 66 69  i>Lots of bug fi
2f80: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
2f90: 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 31 38 20  g {2004 June 18 
2fa0: 28 33 2e 30 2e 30 20 61 6c 70 68 61 29 7d 20 7b  (3.0.0 alpha)} {
2fb0: 0a 3c 6c 69 3e 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .<li><font color
2fc0: 3d 22 72 65 64 22 3e 3c 62 3e 0a 20 20 20 20 2a  ="red"><b>.    *
2fd0: 2a 2a 20 41 6c 70 68 61 20 52 65 6c 65 61 73 65  ** Alpha Release
2fe0: 20 2d 20 52 65 73 65 61 72 63 68 20 41 6e 64 20   - Research And 
2ff0: 54 65 73 74 69 6e 67 20 55 73 65 20 4f 6e 6c 79  Testing Use Only
3000: 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a   ***</b></font>.
3010: 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20  <li>Support for 
3020: 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61  internationaliza
3030: 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 55  tion including U
3040: 54 46 2d 38 2c 20 55 54 46 2d 31 36 2c 20 61 6e  TF-8, UTF-16, an
3050: 64 0a 20 20 20 20 75 73 65 72 20 64 65 66 69 6e  d.    user defin
3060: 65 64 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71  ed collating seq
3070: 75 65 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  uences.</li>.<li
3080: 3e 4e 65 77 20 66 69 6c 65 20 66 6f 72 6d 61 74  >New file format
3090: 20 74 68 61 74 20 69 73 20 32 35 25 20 74 6f 20   that is 25% to 
30a0: 33 35 25 20 73 6d 61 6c 6c 65 72 20 66 6f 72 20  35% smaller for 
30b0: 74 79 70 69 63 61 6c 20 75 73 65 2e 3c 2f 6c 69  typical use.</li
30c0: 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 63  >.<li>Improved c
30d0: 6f 6e 63 75 72 72 65 6e 63 79 2e 3c 2f 6c 69 3e  oncurrency.</li>
30e0: 0a 3c 6c 69 3e 41 74 6f 6d 69 63 20 63 6f 6d 6d  .<li>Atomic comm
30f0: 69 74 73 20 66 6f 72 20 41 54 54 41 43 48 65 64  its for ATTACHed
3100: 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e   databases.</li>
3110: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 63 72 75 66  .<li>Remove cruf
3120: 74 20 66 72 6f 6d 20 74 68 65 20 41 50 49 73 2e  t from the APIs.
3130: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 4c 4f 42 20 73  </li>.<li>BLOB s
3140: 75 70 70 6f 72 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  upport.</li>.<li
3150: 3e 36 34 2d 62 69 74 20 72 6f 77 69 64 73 2e 3c  >64-bit rowids.<
3160: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66  /li>.<li><a href
3170: 3d 22 76 65 72 73 69 6f 6e 33 2e 68 74 6d 6c 22  ="version3.html"
3180: 3e 4d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f  >More informatio
3190: 6e 3c 2f 61 3e 2e 0a 7d 0a 0a 63 68 6e 67 20 7b  n</a>..}..chng {
31a0: 32 30 30 34 20 4a 75 6e 65 20 39 20 28 32 2e 38  2004 June 9 (2.8
31b0: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .14)} {.<li>Fix 
31c0: 74 68 65 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61  the min() and ma
31d0: 78 28 29 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f  x() optimizer so
31e0: 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77   that it works w
31f0: 68 65 6e 20 74 68 65 20 46 52 4f 4d 0a 20 20 20  hen the FROM.   
3200: 20 63 6c 61 75 73 65 20 63 6f 6e 73 69 73 74 73   clause consists
3210: 20 6f 66 20 61 20 73 75 62 71 75 65 72 79 2e 3c   of a subquery.<
3220: 2f 6c 69 3e 0a 3c 6c 69 3e 49 67 6e 6f 72 65 20  /li>.<li>Ignore 
3230: 65 78 74 72 61 20 77 68 69 74 65 73 70 61 63 65  extra whitespace
3240: 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6f   at the end of o
3250: 66 20 22 2e 22 20 63 6f 6d 6d 61 6e 64 73 20 69  f "." commands i
3260: 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  n the shell.</li
3270: 3e 0a 3c 6c 69 3e 42 75 6e 64 6c 65 20 73 71 6c  >.<li>Bundle sql
3280: 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72  ite_encode_binar
3290: 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 64  y() and sqlite_d
32a0: 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 77  ecode_binary() w
32b0: 69 74 68 20 74 68 65 20 0a 20 20 20 20 6c 69 62  ith the .    lib
32c0: 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  rary.</li>.<li>T
32d0: 68 65 20 54 45 4d 50 5f 53 54 4f 52 45 20 61 6e  he TEMP_STORE an
32e0: 64 20 44 45 46 41 55 4c 54 5f 54 45 4d 50 5f 53  d DEFAULT_TEMP_S
32f0: 54 4f 52 45 20 70 72 61 67 6d 61 73 20 6e 6f 77  TORE pragmas now
3300: 20 77 6f 72 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   work.</li>.<li>
3310: 43 6f 64 65 20 63 68 61 6e 67 65 73 20 74 6f 20  Code changes to 
3320: 63 6f 6d 70 69 6c 65 20 63 6c 65 61 6e 6c 79 20  compile cleanly 
3330: 75 73 69 6e 67 20 4f 70 65 6e 57 61 74 63 6f 6d  using OpenWatcom
3340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 56  .</li>.<li>Fix V
3350: 44 42 45 20 73 74 61 63 6b 20 6f 76 65 72 66 6c  DBE stack overfl
3360: 6f 77 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68  ow problems with
3370: 20 49 4e 53 54 45 41 44 20 4f 46 20 74 72 69 67   INSTEAD OF trig
3380: 67 65 72 73 20 61 6e 64 0a 20 20 20 20 4e 55 4c  gers and.    NUL
3390: 4c 73 20 69 6e 20 49 4e 20 6f 70 65 72 61 74 6f  Ls in IN operato
33a0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
33b0: 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69   the global vari
33c0: 61 62 6c 65 20 73 71 6c 69 74 65 5f 74 65 6d 70  able sqlite_temp
33d0: 5f 64 69 72 65 63 74 6f 72 79 20 77 68 69 63 68  _directory which
33e0: 20 69 66 20 73 65 74 20 64 65 66 69 6e 65 73 20   if set defines 
33f0: 74 68 65 0a 20 20 20 20 64 69 72 65 63 74 6f 72  the.    director
3400: 79 20 69 6e 20 77 68 69 63 68 20 74 65 6d 70 6f  y in which tempo
3410: 72 61 72 79 20 66 69 6c 65 73 20 61 72 65 20 73  rary files are s
3420: 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tored.</li>.<li>
3430: 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74  sqlite_interrupt
3440: 28 29 20 70 6c 61 79 73 20 77 65 6c 6c 20 77 69  () plays well wi
3450: 74 68 20 56 41 43 55 55 4d 2e 3c 2f 6c 69 3e 0a  th VACUUM.</li>.
3460: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
3470: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
3480: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4d 61  }..chng {2004 Ma
3490: 72 63 68 20 38 20 28 32 2e 38 2e 31 33 29 7d 20  rch 8 (2.8.13)} 
34a0: 7b 0a 3c 6c 69 3e 52 65 66 61 63 74 6f 72 20 70  {.<li>Refactor p
34b0: 61 72 74 73 20 6f 66 20 74 68 65 20 63 6f 64 65  arts of the code
34c0: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61 6b   in order to mak
34d0: 65 20 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70  e the code footp
34e0: 72 69 6e 74 0a 20 20 20 20 73 6d 61 6c 6c 65 72  rint.    smaller
34f0: 2e 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 6e  .  The code is n
3500: 6f 77 20 61 6c 73 6f 20 61 20 6c 69 74 74 6c 65  ow also a little
3510: 20 62 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69   bit faster.</li
3520: 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 65 78 65  >.<li>sqlite_exe
3530: 63 28 29 20 69 73 20 6e 6f 77 20 69 6d 70 6c 65  c() is now imple
3540: 6d 65 6e 74 65 64 20 61 73 20 61 20 77 72 61 70  mented as a wrap
3550: 70 65 72 20 61 72 6f 75 6e 64 20 73 71 6c 69 74  per around sqlit
3560: 65 5f 63 6f 6d 70 69 6c 65 28 29 0a 20 20 20 20  e_compile().    
3570: 61 6e 64 20 73 71 6c 69 74 65 5f 73 74 65 70 28  and sqlite_step(
3580: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  ).</li>.<li>The 
3590: 62 75 69 6c 74 2d 69 6e 20 6d 69 6e 28 29 20 61  built-in min() a
35a0: 6e 64 20 6d 61 78 28 29 20 66 75 6e 63 74 69 6f  nd max() functio
35b0: 6e 73 20 6e 6f 77 20 68 6f 6e 6f 72 20 74 68 65  ns now honor the
35c0: 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77   difference betw
35d0: 65 65 6e 0a 20 20 20 20 4e 55 4d 45 52 49 43 20  een.    NUMERIC 
35e0: 61 6e 64 20 54 45 58 54 20 64 61 74 61 74 79 70  and TEXT datatyp
35f0: 65 73 2e 20 20 46 6f 72 6d 65 72 6c 79 2c 20 6d  es.  Formerly, m
3600: 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 61  in() and max() a
3610: 6c 77 61 79 73 20 61 73 73 75 6d 65 64 0a 20 20  lways assumed.  
3620: 20 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74    their argument
3630: 73 20 77 65 72 65 20 6f 66 20 74 79 70 65 20 4e  s were of type N
3640: 55 4d 45 52 49 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  UMERIC.</li>.<li
3650: 3e 4e 65 77 20 48 48 3a 4d 4d 3a 53 53 20 6d 6f  >New HH:MM:SS mo
3660: 64 69 66 69 65 72 20 74 6f 20 74 68 65 20 62 75  difier to the bu
3670: 69 6c 74 2d 69 6e 20 64 61 74 65 2f 74 69 6d 65  ilt-in date/time
3680: 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e   functions.</li>
3690: 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74 61  .<li>Experimenta
36a0: 6c 20 73 71 6c 69 74 65 5f 6c 61 73 74 5f 73 74  l sqlite_last_st
36b0: 61 74 65 6d 65 6e 74 5f 63 68 61 6e 67 65 73 28  atement_changes(
36c0: 29 20 41 50 49 20 61 64 64 65 64 2e 20 20 46 69  ) API added.  Fi
36d0: 78 65 64 20 74 68 65 0a 20 20 20 20 74 68 65 20  xed the.    the 
36e0: 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77 69  last_insert_rowi
36f0: 64 28 29 20 66 75 6e 63 74 69 6f 6e 20 73 6f 20  d() function so 
3700: 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 63 6f  that it works co
3710: 72 72 65 63 74 6c 79 20 77 69 74 68 0a 20 20 20  rrectly with.   
3720: 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a   triggers.</li>.
3730: 3c 6c 69 3e 41 64 64 20 66 75 6e 63 74 69 6f 6e  <li>Add function
3740: 73 20 70 72 6f 74 6f 74 79 70 65 73 20 66 6f 72  s prototypes for
3750: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 65 6e   the database en
3760: 63 72 79 70 74 69 6f 6e 20 41 50 49 2e 3c 2f 6c  cryption API.</l
3770: 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76 65 72  i>.<li>Fix sever
3780: 61 6c 20 6e 75 69 73 61 6e 63 65 20 62 75 67 73  al nuisance bugs
3790: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
37a0: 32 30 30 34 20 46 65 62 72 75 61 72 79 20 38 20  2004 February 8 
37b0: 28 32 2e 38 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e  (2.8.12)} {.<li>
37c0: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77  Fix a bug that w
37d0: 69 6c 6c 20 6d 69 67 68 74 20 63 6f 72 72 75 70  ill might corrup
37e0: 74 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6a  t the rollback j
37f0: 6f 75 72 6e 61 6c 20 69 66 20 61 20 70 6f 77 65  ournal if a powe
3800: 72 20 66 61 69 6c 75 72 65 0a 20 20 20 20 6f 72  r failure.    or
3810: 20 65 78 74 65 72 6e 61 6c 20 70 72 6f 67 72 61   external progra
3820: 6d 20 68 61 6c 74 20 6f 63 63 75 72 73 20 69 6e  m halt occurs in
3830: 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 61   the middle of a
3840: 20 43 4f 4d 4d 49 54 2e 20 20 54 68 65 20 63 6f   COMMIT.  The co
3850: 72 72 75 70 74 0a 20 20 20 20 6a 6f 75 72 6e 61  rrupt.    journa
3860: 6c 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61  l can lead to da
3870: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
3880: 6e 20 77 68 65 6e 20 69 74 20 69 73 20 72 6f 6c  n when it is rol
3890: 6c 65 64 20 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c  led back.</li>.<
38a0: 6c 69 3e 52 65 64 75 63 65 20 74 68 65 20 73 69  li>Reduce the si
38b0: 7a 65 20 61 6e 64 20 69 6e 63 72 65 61 73 65 20  ze and increase 
38c0: 74 68 65 20 73 70 65 65 64 20 6f 66 20 76 61 72  the speed of var
38d0: 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2c 20 65 73  ious modules, es
38e0: 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 74 68 65  pecially.    the
38f0: 20 76 69 72 74 75 61 6c 20 6d 61 63 68 69 6e 65   virtual machine
3900: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
3910: 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49   "&lt;expr&gt; I
3920: 4e 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22  N &lt;table&gt;"
3930: 20 61 73 20 61 20 73 68 6f 72 74 68 61 6e 64 20   as a shorthand 
3940: 66 6f 72 0a 20 20 20 20 22 26 6c 74 3b 65 78 70  for.    "&lt;exp
3950: 72 26 67 74 3b 20 49 4e 20 28 53 45 4c 45 43 54  r&gt; IN (SELECT
3960: 20 2a 20 46 52 4f 4d 20 26 6c 74 3b 74 61 62 6c   * FROM &lt;tabl
3970: 65 26 67 74 3b 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e&gt;".</li>.<li
3980: 3e 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 74  >Optimizations t
3990: 6f 20 74 68 65 20 73 71 6c 69 74 65 5f 6d 70 72  o the sqlite_mpr
39a0: 69 6e 74 66 28 29 20 72 6f 75 74 69 6e 65 2e 3c  intf() routine.<
39b0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75  /li>.<li>Make su
39c0: 72 65 20 74 68 65 20 4d 49 4e 28 29 20 61 6e 64  re the MIN() and
39d0: 20 4d 41 58 28 29 20 6f 70 74 69 6d 69 7a 61 74   MAX() optimizat
39e0: 69 6f 6e 73 20 77 6f 72 6b 20 77 69 74 68 69 6e  ions work within
39f0: 20 73 75 62 71 75 65 72 69 65 73 2e 3c 2f 6c 69   subqueries.</li
3a00: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
3a10: 4a 61 6e 75 61 72 79 20 31 34 20 28 32 2e 38 2e  January 14 (2.8.
3a20: 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  11)} {.<li>Fix a
3a30: 20 62 75 67 20 69 6e 20 68 6f 77 20 74 68 65 20   bug in how the 
3a40: 49 4e 20 6f 70 65 72 61 74 6f 72 20 68 61 6e 64  IN operator hand
3a50: 6c 65 73 20 4e 55 4c 4c 73 20 69 6e 20 73 75 62  les NULLs in sub
3a60: 71 75 65 72 69 65 73 2e 20 20 54 68 65 20 62 75  queries.  The bu
3a70: 67 0a 20 20 20 20 77 61 73 20 69 6e 74 72 6f 64  g.    was introd
3a80: 75 63 65 64 20 62 79 20 74 68 65 20 70 72 65 76  uced by the prev
3a90: 69 6f 75 73 20 72 65 6c 65 61 73 65 2e 3c 2f 6c  ious release.</l
3aa0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
3ab0: 20 4a 61 6e 75 61 72 79 20 31 33 20 28 32 2e 38   January 13 (2.8
3ac0: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .10)} {.<li>Fix 
3ad0: 61 20 70 6f 74 65 6e 74 69 61 6c 20 64 61 74 61  a potential data
3ae0: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
3af0: 70 72 6f 62 6c 65 6d 20 6f 6e 20 55 6e 69 78 20  problem on Unix 
3b00: 63 61 75 73 65 64 20 62 79 20 74 68 65 20 66 61  caused by the fa
3b10: 63 74 0a 20 20 20 20 74 68 61 74 20 61 6c 6c 20  ct.    that all 
3b20: 70 6f 73 69 78 20 61 64 76 69 73 6f 72 79 20 6c  posix advisory l
3b30: 6f 63 6b 73 20 61 72 65 20 63 6c 65 61 72 65 64  ocks are cleared
3b40: 20 77 68 65 6e 65 76 65 72 20 79 6f 75 20 63 6c   whenever you cl
3b50: 6f 73 65 28 29 20 61 20 66 69 6c 65 2e 0a 20 20  ose() a file..  
3b60: 20 20 54 68 65 20 77 6f 72 6b 20 61 72 6f 75 6e    The work aroun
3b70: 64 20 69 74 20 74 6f 20 65 6d 62 61 72 67 6f 20  d it to embargo 
3b80: 61 6c 6c 20 63 6c 6f 73 65 28 29 20 63 61 6c 6c  all close() call
3b90: 73 20 77 68 69 6c 65 20 6c 6f 63 6b 73 20 61 72  s while locks ar
3ba0: 65 20 0a 20 20 20 20 6f 75 74 73 74 61 6e 64 69  e .    outstandi
3bb0: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ng.</li>.<li>Per
3bc0: 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65  formance enhance
3bd0: 6d 65 6e 74 73 20 6f 6e 20 73 6f 6d 65 20 63 6f  ments on some co
3be0: 72 6e 65 72 20 63 61 73 65 73 20 6f 66 20 43 4f  rner cases of CO
3bf0: 55 4e 54 28 2a 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69  UNT(*).</li>.<li
3c00: 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69  >Make sure the i
3c10: 6e 2d 6d 65 6d 6f 72 79 20 62 61 63 6b 65 6e 64  n-memory backend
3c20: 20 72 65 73 70 6f 6e 73 65 20 73 61 6e 65 6c 79   response sanely
3c30: 20 69 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69   if malloc() fai
3c40: 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ls.</li>.<li>All
3c50: 6f 77 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29  ow sqlite_exec()
3c60: 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 66 72   to be called fr
3c70: 6f 6d 20 77 69 74 68 69 6e 20 75 73 65 72 2d 64  om within user-d
3c80: 65 66 69 6e 65 64 20 53 51 4c 0a 20 20 20 20 66  efined SQL.    f
3c90: 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  unctions.</li>.<
3ca0: 6c 69 3e 49 6d 70 72 6f 76 65 64 20 61 63 63 75  li>Improved accu
3cb0: 72 61 63 79 20 6f 66 20 66 6c 6f 61 74 69 6e 67  racy of floating
3cc0: 2d 70 6f 69 6e 74 20 63 6f 6e 76 65 72 73 69 6f  -point conversio
3cd0: 6e 73 20 75 73 69 6e 67 20 22 6c 6f 6e 67 20 64  ns using "long d
3ce0: 6f 75 62 6c 65 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ouble".</li>.<li
3cf0: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
3d00: 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 64  e experimental d
3d10: 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f  ate/time functio
3d20: 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ns.</li>.}..chng
3d30: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 35   {2004 January 5
3d40: 20 28 32 2e 38 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.9)} {.<li>
3d50: 46 69 78 20 61 20 33 32 2d 62 69 74 20 69 6e 74  Fix a 32-bit int
3d60: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 70 72  eger overflow pr
3d70: 6f 62 6c 65 6d 20 74 68 61 74 20 63 6f 75 6c 64  oblem that could
3d80: 20 72 65 73 75 6c 74 20 69 6e 20 63 6f 72 72 75   result in corru
3d90: 70 74 0a 20 20 20 20 69 6e 64 69 63 65 73 20 69  pt.    indices i
3da0: 6e 20 61 20 64 61 74 61 62 61 73 65 20 69 66 20  n a database if 
3db0: 6c 61 72 67 65 20 6e 65 67 61 74 69 76 65 20 6e  large negative n
3dc0: 75 6d 62 65 72 73 20 28 6c 65 73 73 20 74 68 61  umbers (less tha
3dd0: 6e 20 2d 32 31 34 37 34 38 33 36 34 38 29 0a 20  n -2147483648). 
3de0: 20 20 20 77 65 72 65 20 69 6e 73 65 72 74 65 64     were inserted
3df0: 20 69 6e 74 6f 20 61 20 69 6e 64 65 78 65 64 20   into a indexed 
3e00: 6e 75 6d 65 72 69 63 20 63 6f 6c 75 6d 6e 2e 3c  numeric column.<
3e10: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6c  /li>.<li>Fix a l
3e20: 6f 63 6b 69 6e 67 20 70 72 6f 62 6c 65 6d 20 6f  ocking problem o
3e30: 6e 20 6d 75 6c 74 69 2d 74 68 72 65 61 64 65 64  n multi-threaded
3e40: 20 4c 69 6e 75 78 20 69 6d 70 6c 65 6d 65 6e 74   Linux implement
3e50: 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ations.</li>.<li
3e60: 3e 41 6c 77 61 79 73 20 75 73 65 20 22 2e 22 20  >Always use "." 
3e70: 69 6e 73 74 65 61 64 20 6f 66 20 22 2c 22 20 61  instead of "," a
3e80: 73 20 74 68 65 20 64 65 63 69 6d 61 6c 20 70 6f  s the decimal po
3e90: 69 6e 74 20 65 76 65 6e 20 69 66 20 74 68 65 20  int even if the 
3ea0: 6c 6f 63 61 6c 65 0a 20 20 20 20 72 65 71 75 65  locale.    reque
3eb0: 73 74 73 20 22 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c  sts ",".</li>.<l
3ec0: 69 3e 41 64 64 65 64 20 55 54 43 20 74 6f 20 6c  i>Added UTC to l
3ed0: 6f 63 61 6c 74 69 6d 65 20 63 6f 6e 76 65 72 73  ocaltime convers
3ee0: 69 6f 6e 73 20 74 6f 20 74 68 65 20 65 78 70 65  ions to the expe
3ef0: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
3f00: 6d 65 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73  me.    functions
3f10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
3f20: 69 78 65 73 20 74 6f 20 64 61 74 65 2f 74 69 6d  ixes to date/tim
3f30: 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  e functions.</li
3f40: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
3f50: 44 65 63 65 6d 62 65 72 20 31 37 20 28 32 2e 38  December 17 (2.8
3f60: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .8)} {.<li>Fix a
3f70: 20 63 72 69 74 69 63 61 6c 20 62 75 67 20 69 6e   critical bug in
3f80: 74 72 6f 64 75 63 65 64 20 69 6e 74 6f 20 32 2e  troduced into 2.
3f90: 38 2e 30 20 77 68 69 63 68 20 63 6f 75 6c 64 20  8.0 which could 
3fa0: 63 61 75 73 65 0a 20 20 20 20 64 61 74 61 62 61  cause.    databa
3fb0: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 2e 3c 2f  se corruption.</
3fc0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
3fd0: 6f 62 6c 65 6d 20 77 69 74 68 20 33 2d 77 61 79  oblem with 3-way
3fe0: 20 6a 6f 69 6e 73 20 74 68 61 74 20 64 6f 20 6e   joins that do n
3ff0: 6f 74 20 75 73 65 20 69 6e 64 69 63 65 73 3c 2f  ot use indices</
4000: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 43 55  li>.<li>The VACU
4010: 55 4d 20 63 6f 6d 6d 61 6e 64 20 6e 6f 77 20 77  UM command now w
4020: 6f 72 6b 73 20 77 69 74 68 20 74 68 65 20 6e 6f  orks with the no
4030: 6e 2d 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f  n-callback API</
4040: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 6d  li>.<li>Improvem
4050: 65 6e 74 73 20 74 6f 20 74 68 65 20 22 50 52 41  ents to the "PRA
4060: 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68  GMA integrity_ch
4070: 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 3c 2f 6c 69  eck" command</li
4080: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
4090: 44 65 63 65 6d 62 65 72 20 34 20 28 32 2e 38 2e  December 4 (2.8.
40a0: 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  7)} {.<li>Added 
40b0: 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  experimental sql
40c0: 69 74 65 5f 62 69 6e 64 28 29 20 61 6e 64 20 73  ite_bind() and s
40d0: 71 6c 69 74 65 5f 72 65 73 65 74 28 29 20 41 50  qlite_reset() AP
40e0: 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20  Is.</li>.<li>If 
40f0: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20  the name of the 
4100: 64 61 74 61 62 61 73 65 20 69 73 20 61 6e 20 65  database is an e
4110: 6d 70 74 79 20 73 74 72 69 6e 67 2c 20 6f 70 65  mpty string, ope
4120: 6e 20 61 20 6e 65 77 20 64 61 74 61 62 61 73 65  n a new database
4130: 0a 20 20 20 20 69 6e 20 61 20 74 65 6d 70 6f 72  .    in a tempor
4140: 61 72 79 20 66 69 6c 65 20 74 68 61 74 20 69 73  ary file that is
4150: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64   automatically d
4160: 65 6c 65 74 65 64 20 77 68 65 6e 20 74 68 65 20  eleted when the 
4170: 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 73 20  database.    is 
4180: 63 6c 6f 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  closed.</li>.<li
4190: 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68  >Performance enh
41a0: 61 6e 63 65 6d 65 6e 74 73 20 69 6e 20 74 68 65  ancements in the
41b0: 20 6c 65 6d 6f 6e 2d 67 65 6e 65 72 61 74 65 64   lemon-generated
41c0: 20 70 61 72 73 65 72 3c 2f 6c 69 3e 0a 3c 6c 69   parser</li>.<li
41d0: 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61  >Experimental da
41e0: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
41f0: 73 20 72 65 76 69 73 65 64 2e 3c 2f 6c 69 3e 0a  s revised.</li>.
4200: 3c 6c 69 3e 44 69 73 61 6c 6c 6f 77 20 74 65 6d  <li>Disallow tem
4210: 70 6f 72 61 72 79 20 69 6e 64 69 63 65 73 20 6f  porary indices o
4220: 6e 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c  n permanent tabl
4230: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  es.</li>.<li>Doc
4240: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
4250: 65 73 20 61 6e 64 20 74 79 70 6f 20 66 69 78 65  es and typo fixe
4260: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
4270: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
4280: 6c 69 74 65 5f 70 72 6f 67 72 65 73 73 5f 68 61  lite_progress_ha
4290: 6e 64 6c 65 72 28 29 20 63 61 6c 6c 62 61 63 6b  ndler() callback
42a0: 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65   API</li>.<li>Re
42b0: 6d 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f  moved support fo
42c0: 72 20 74 68 65 20 4f 72 61 63 6c 65 38 20 6f 75  r the Oracle8 ou
42d0: 74 65 72 20 6a 6f 69 6e 20 73 79 6e 74 61 78 2e  ter join syntax.
42e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
42f0: 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70  GLOB and LIKE op
4300: 65 72 61 74 6f 72 73 20 74 6f 20 77 6f 72 6b 20  erators to work 
4310: 61 73 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c  as functions.</l
4320: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
4330: 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  or documentation
4340: 20 61 6e 64 20 6d 61 6b 65 66 69 6c 65 20 63 68   and makefile ch
4350: 61 6e 67 65 73 20 61 6e 64 20 62 75 67 20 66 69  anges and bug fi
4360: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
4370: 67 20 7b 32 30 30 33 20 41 75 67 75 73 74 20 32  g {2003 August 2
4380: 31 20 28 32 2e 38 2e 36 29 7d 20 7b 0a 3c 6c 69  1 (2.8.6)} {.<li
4390: 3e 4d 6f 76 65 64 20 74 68 65 20 43 56 53 20 72  >Moved the CVS r
43a0: 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 77 77 77  epository to www
43b0: 2e 73 71 6c 69 74 65 2e 6f 72 67 3c 2f 6c 69 3e  .sqlite.org</li>
43c0: 0a 3c 6c 69 3e 55 70 64 61 74 65 20 74 68 65 20  .<li>Update the 
43d0: 4e 55 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f  NULL-handling do
43e0: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69  cumentation.</li
43f0: 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65 6e 74  >.<li>Experiment
4400: 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e  al date/time fun
4410: 63 74 69 6f 6e 73 20 61 64 64 65 64 2e 3c 2f 6c  ctions added.</l
4420: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
4430: 63 6f 72 72 65 63 74 6c 79 20 65 76 61 6c 75 61  correctly evalua
4440: 74 65 20 61 20 76 69 65 77 20 6f 66 20 61 20 76  te a view of a v
4450: 69 65 77 20 77 69 74 68 6f 75 74 20 73 65 67 66  iew without segf
4460: 61 75 6c 74 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c  aulting.</li>.<l
4470: 69 3e 42 75 67 20 66 69 78 3a 20 70 72 65 76 65  i>Bug fix: preve
4480: 6e 74 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  nt database corr
4490: 75 70 74 69 6f 6e 20 69 66 20 79 6f 75 20 64 72  uption if you dr
44a0: 6f 70 70 65 64 20 61 0a 20 20 20 20 74 72 69 67  opped a.    trig
44b0: 67 65 72 20 74 68 61 74 20 68 61 64 20 74 68 65  ger that had the
44c0: 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20 61 20   same name as a 
44d0: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
44e0: 42 75 67 20 66 69 78 3a 20 61 6c 6c 6f 77 20 61  Bug fix: allow a
44f0: 20 56 41 43 55 55 4d 20 28 77 69 74 68 6f 75 74   VACUUM (without
4500: 20 73 65 67 66 61 75 6c 74 69 6e 67 29 20 6f 6e   segfaulting) on
4510: 20 61 6e 20 65 6d 70 74 79 0a 20 20 20 20 64 61   an empty.    da
4520: 74 61 62 61 73 65 20 61 66 74 65 72 20 73 65 74  tabase after set
4530: 74 69 6e 67 20 74 68 65 20 45 4d 50 54 59 5f 52  ting the EMPTY_R
4540: 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20  ESULT_CALLBACKS 
4550: 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69  pragma.</li>.<li
4560: 3e 42 75 67 20 66 69 78 3a 20 69 66 20 61 6e 20  >Bug fix: if an 
4570: 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 77 69  integer value wi
4580: 6c 6c 20 6e 6f 74 20 66 69 74 20 69 6e 20 61 20  ll not fit in a 
4590: 33 32 2d 62 69 74 20 69 6e 74 2c 20 73 74 6f 72  32-bit int, stor
45a0: 65 20 69 74 20 69 6e 0a 20 20 20 20 61 20 64 6f  e it in.    a do
45b0: 75 62 6c 65 20 69 6e 73 74 65 61 64 2e 3c 2f 6c  uble instead.</l
45c0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
45d0: 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 6a 6f  Make sure the jo
45e0: 75 72 6e 61 6c 20 66 69 6c 65 20 64 69 72 65 63  urnal file direc
45f0: 74 6f 72 79 20 65 6e 74 72 79 20 69 73 20 63 6f  tory entry is co
4600: 6d 6d 69 74 74 65 64 20 74 6f 20 64 69 73 6b 0a  mmitted to disk.
4610: 20 20 20 20 62 65 66 6f 72 65 20 77 72 69 74 69      before writi
4620: 6e 67 20 74 68 65 20 64 61 74 61 62 61 73 65 20  ng the database 
4630: 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  file.</li>.}..ch
4640: 6e 67 20 7b 32 30 30 33 20 4a 75 6c 79 20 32 32  ng {2003 July 22
4650: 20 28 32 2e 38 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.5)} {.<li>
4660: 4d 61 6b 65 20 4c 49 4d 49 54 20 77 6f 72 6b 20  Make LIMIT work 
4670: 6f 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45  on a compound SE
4680: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c  LECT statement.<
4690: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4d 49 54 20 30  /li>.<li>LIMIT 0
46a0: 20 6e 6f 77 20 73 68 6f 77 73 20 6e 6f 20 72 6f   now shows no ro
46b0: 77 73 2e 20 20 55 73 65 20 4c 49 4d 49 54 20 2d  ws.  Use LIMIT -
46c0: 31 20 74 6f 20 73 65 65 20 61 6c 6c 20 72 6f 77  1 to see all row
46d0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  s.</li>.<li>Corr
46e0: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 63 6f 6d  ectly handle com
46f0: 70 61 72 69 73 6f 6e 73 20 62 65 74 77 65 65 6e  parisons between
4700: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
4710: 41 52 59 20 4b 45 59 20 61 6e 64 0a 20 20 20 20  ARY KEY and.    
4720: 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  a floating point
4730: 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   number.</li>.<l
4740: 69 3e 46 69 78 20 73 65 76 65 72 61 6c 20 69 6d  i>Fix several im
4750: 70 6f 72 74 61 6e 74 20 62 75 67 73 20 69 6e 20  portant bugs in 
4760: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
4770: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
4780: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  ds.</li>.<li>Upd
4790: 61 74 65 64 20 74 68 65 20 3c 61 20 68 72 65 66  ated the <a href
47a0: 3d 22 6e 75 6c 6c 73 2e 68 74 6d 6c 22 3e 4e 55  ="nulls.html">NU
47b0: 4c 4c 2d 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75  LL-handling docu
47c0: 6d 65 6e 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a  ment</a>.</li> .
47d0: 3c 6c 69 3e 41 6c 6c 6f 77 20 4e 55 4c 4c 20 61  <li>Allow NULL a
47e0: 72 67 75 6d 65 6e 74 73 20 69 6e 20 73 71 6c 69  rguments in sqli
47f0: 74 65 5f 63 6f 6d 70 69 6c 65 28 29 20 61 6e 64  te_compile() and
4800: 20 73 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c   sqlite_step().<
4810: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69  /li>.<li>Many mi
4820: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  nor bug fixes</l
4830: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
4840: 20 4a 75 6e 65 20 32 39 20 28 32 2e 38 2e 34 29   June 29 (2.8.4)
4850: 7d 20 7b 0a 3c 6c 69 3e 45 6e 68 61 6e 63 65 64  } {.<li>Enhanced
4860: 20 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74   the "PRAGMA int
4870: 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f  egrity_check" co
4880: 6d 6d 61 6e 64 20 74 6f 20 76 65 72 69 66 79 20  mmand to verify 
4890: 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  indices.</li>.<l
48a0: 69 3e 41 64 64 65 64 20 61 75 74 68 6f 72 69 7a  i>Added authoriz
48b0: 61 74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20  ation hooks for 
48c0: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 61  the new ATTACH a
48d0: 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d 61 6e  nd DETACH comman
48e0: 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e  ds.</li>.<li>Man
48f0: 79 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  y documentation 
4900: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
4910: 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20  >Many minor bug 
4920: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
4930: 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 34 20  ng {2003 June 4 
4940: 28 32 2e 38 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.8.3)} {.<li>F
4950: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61  ix a problem tha
4960: 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74  t will corrupt t
4970: 68 65 20 69 6e 64 69 63 65 73 20 6f 6e 20 61 20  he indices on a 
4980: 74 61 62 6c 65 20 69 66 20 79 6f 75 0a 20 20 20  table if you.   
4990: 20 64 6f 20 61 6e 20 49 4e 53 45 52 54 20 4f 52   do an INSERT OR
49a0: 20 52 45 50 4c 41 43 45 20 6f 72 20 61 6e 20 55   REPLACE or an U
49b0: 50 44 41 54 45 20 4f 52 20 52 45 50 4c 41 43 45  PDATE OR REPLACE
49c0: 20 6f 6e 20 61 20 74 61 62 6c 65 20 74 68 61 74   on a table that
49d0: 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 6e  .    contains an
49e0: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59   INTEGER PRIMARY
49f0: 20 4b 45 59 20 70 6c 75 73 20 6f 6e 65 20 6f 72   KEY plus one or
4a00: 20 6d 6f 72 65 20 69 6e 64 69 63 65 73 2e 3c 2f   more indices.</
4a10: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
4a20: 67 20 69 6e 20 77 69 6e 64 6f 77 73 20 6c 6f 63  g in windows loc
4a30: 6b 69 6e 67 20 63 6f 64 65 20 73 6f 20 74 68 61  king code so tha
4a40: 74 20 6c 6f 63 6b 73 20 77 6f 72 6b 20 63 6f 72  t locks work cor
4a50: 72 65 63 74 6c 79 0a 20 20 20 20 77 68 65 6e 20  rectly.    when 
4a60: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 61  simultaneously a
4a70: 63 63 65 73 73 65 64 20 62 79 20 57 69 6e 39 35  ccessed by Win95
4a80: 20 61 6e 64 20 57 69 6e 4e 54 20 73 79 73 74 65   and WinNT syste
4a90: 6d 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ms.</li>.<li>Add
4aa0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 66 6f 72   the ability for
4ab0: 20 49 4e 53 45 52 54 20 61 6e 64 20 55 50 44 41   INSERT and UPDA
4ac0: 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f  TE statements to
4ad0: 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20   refer to the.  
4ae0: 20 20 22 72 6f 77 69 64 22 20 28 6f 72 20 22 5f    "rowid" (or "_
4af0: 72 6f 77 69 64 5f 22 20 6f 72 20 22 6f 69 64 22  rowid_" or "oid"
4b00: 29 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a  ) columns.</li>.
4b10: 3c 6c 69 3e 4f 74 68 65 72 20 69 6d 70 6f 72 74  <li>Other import
4b20: 61 6e 74 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  ant bug fixes</l
4b30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
4b40: 20 4d 61 79 20 31 37 20 28 32 2e 38 2e 32 29 7d   May 17 (2.8.2)}
4b50: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f   {.<li>Fix a pro
4b60: 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63  blem that will c
4b70: 6f 72 72 75 70 74 20 74 68 65 20 64 61 74 61 62  orrupt the datab
4b80: 61 73 65 20 66 69 6c 65 20 69 66 20 79 6f 75 20  ase file if you 
4b90: 64 72 6f 70 20 61 0a 20 20 20 20 74 61 62 6c 65  drop a.    table
4ba0: 20 66 72 6f 6d 20 74 68 65 20 6d 61 69 6e 20 64   from the main d
4bb0: 61 74 61 62 61 73 65 20 74 68 61 74 20 68 61 73  atabase that has
4bc0: 20 61 20 54 45 4d 50 20 69 6e 64 65 78 2e 3c 2f   a TEMP index.</
4bd0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4be0: 33 20 4d 61 79 20 31 36 20 28 32 2e 38 2e 31 29  3 May 16 (2.8.1)
4bf0: 7d 20 7b 0a 3c 6c 69 3e 52 65 61 63 74 69 76 61  } {.<li>Reactiva
4c00: 74 65 64 20 74 68 65 20 56 41 43 55 55 4d 20 63  ted the VACUUM c
4c10: 6f 6d 6d 61 6e 64 20 74 68 61 74 20 72 65 63 6c  ommand that recl
4c20: 61 69 6d 73 20 75 6e 75 73 65 64 20 64 69 73 6b  aims unused disk
4c30: 20 73 70 61 63 65 20 69 6e 20 0a 20 20 20 20 61   space in .    a
4c40: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c   database file.<
4c50: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
4c60: 68 65 20 41 54 54 41 43 48 20 61 6e 64 20 44 45  he ATTACH and DE
4c70: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 20 74 6f  TACH commands to
4c80: 20 61 6c 6c 6f 77 20 69 6e 74 65 72 61 63 74 69   allow interacti
4c90: 6e 67 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65  ng with multiple
4ca0: 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 66 69  .    database fi
4cb0: 6c 65 73 20 61 74 20 74 68 65 20 73 61 6d 65 20  les at the same 
4cc0: 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  time.</li>.<li>A
4cd0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
4ce0: 20 54 45 4d 50 20 74 72 69 67 67 65 72 73 20 61   TEMP triggers a
4cf0: 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e  nd indices.</li>
4d00: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
4d10: 72 74 20 66 6f 72 20 69 6e 2d 6d 65 6d 6f 72 79  rt for in-memory
4d20: 20 64 61 74 61 62 61 73 65 73 2e 3c 2f 6c 69 3e   databases.</li>
4d30: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 74 68 65  .<li>Removed the
4d40: 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71   experimental sq
4d50: 6c 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69  lite_open_aux_fi
4d60: 6c 65 28 29 2e 20 20 49 74 73 20 66 75 6e 63 74  le().  Its funct
4d70: 69 6f 6e 20 69 73 0a 20 20 20 20 73 75 62 73 75  ion is.    subsu
4d80: 6d 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 41  med in the new A
4d90: 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  TTACH command.</
4da0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 63  li>.<li>The prec
4db0: 65 64 65 6e 63 65 20 6f 72 64 65 72 20 66 6f 72  edence order for
4dc0: 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61   ON CONFLICT cla
4dd0: 75 73 65 73 20 77 61 73 20 63 68 61 6e 67 65 64  uses was changed
4de0: 20 73 6f 20 74 68 61 74 0a 20 20 20 20 4f 4e 20   so that.    ON 
4df0: 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73  CONFLICT clauses
4e00: 20 6f 6e 20 42 45 47 49 4e 20 73 74 61 74 65 6d   on BEGIN statem
4e10: 65 6e 74 73 20 68 61 76 65 20 61 20 68 69 67 68  ents have a high
4e20: 65 72 20 70 72 65 63 65 64 65 6e 63 65 20 74 68  er precedence th
4e30: 61 6e 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49  an.    ON CONFLI
4e40: 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 63 6f  CT clauses on co
4e50: 6e 73 74 72 61 69 6e 74 73 2e 0a 3c 6c 69 3e 4d  nstraints..<li>M
4e60: 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67 20 66 69  any, many bug fi
4e70: 78 65 73 20 61 6e 64 20 63 6f 6d 70 61 74 69 62  xes and compatib
4e80: 69 6c 69 74 79 20 65 6e 68 61 6e 63 65 6d 65 6e  ility enhancemen
4e90: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
4ea0: 20 7b 32 30 30 33 20 46 65 62 20 31 36 20 28 32   {2003 Feb 16 (2
4eb0: 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64  .8.0)} {.<li>Mod
4ec0: 69 66 69 65 64 20 74 68 65 20 6a 6f 75 72 6e 61  ified the journa
4ed0: 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 6f  l file format to
4ee0: 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 72 65   make it more re
4ef0: 73 69 73 74 61 6e 74 20 74 6f 20 63 6f 72 72 75  sistant to corru
4f00: 70 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 63  ption.    that c
4f10: 61 6e 20 6f 63 63 75 72 20 61 66 74 65 72 20 61  an occur after a
4f20: 6e 20 4f 53 20 63 72 61 73 68 20 6f 72 20 70 6f  n OS crash or po
4f30: 77 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69  wer failure.</li
4f40: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e 65  >.<li>Added a ne
4f50: 77 20 43 2f 43 2b 2b 20 41 50 49 20 74 68 61 74  w C/C++ API that
4f60: 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 63 61   does not use ca
4f70: 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65 74 75 72  llback for retur
4f80: 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e 0a  ning data.</li>.
4f90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 61  }..chng {2003 Ja
4fa0: 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b 0a  n 25 (2.7.6)} {.
4fb0: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
4fc0: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20 54  improvements.  T
4fd0: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
4fe0: 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e 3c 2f  w much faster.</
4ff0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
5000: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74 5f  e <b>sqlite_set_
5010: 61 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62 3e  authorizer()</b>
5020: 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64 6f   API.  Formal do
5030: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73 0a  cumentation has.
5040: 20 20 20 20 6e 6f 74 20 62 65 65 6e 20 77 72 69      not been wri
5050: 74 74 65 6e 20 2d 20 73 65 65 20 74 68 65 20 73  tten - see the s
5060: 6f 75 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d 65  ource code comme
5070: 6e 74 73 20 66 6f 72 20 69 6e 73 74 72 75 63 74  nts for instruct
5080: 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77 20  ions on.    how 
5090: 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63  to use this func
50a0: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  tion.</li>.<li>F
50b0: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
50c0: 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20 74 68  GLOB operator th
50d0: 61 74 20 77 61 73 20 70 72 65 76 65 6e 74 69 6e  at was preventin
50e0: 67 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69 6e  g it from workin
50f0: 67 0a 20 20 20 20 77 69 74 68 20 75 70 70 65 72  g.    with upper
5100: 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e 3c 2f  -case letters.</
5110: 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20  li>.<li>Various 
5120: 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 2e  minor bug fixes.
5130: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5140: 30 30 32 20 44 65 63 20 32 37 20 28 32 2e 37 2e  002 Dec 27 (2.7.
5150: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e  5)} {.<li>Fix an
5160: 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76   uninitialized v
5170: 61 72 69 61 62 6c 65 20 69 6e 20 70 61 67 65 72  ariable in pager
5180: 2e 63 20 77 68 69 63 68 20 63 6f 75 6c 64 20 28  .c which could (
5190: 77 69 74 68 20 61 20 70 72 6f 62 61 62 69 6c 69  with a probabili
51a0: 74 79 0a 20 20 20 20 6f 66 20 61 62 6f 75 74 20  ty.    of about 
51b0: 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29 20  1 in 4 billion) 
51c0: 72 65 73 75 6c 74 20 69 6e 20 61 20 63 6f 72 72  result in a corr
51d0: 75 70 74 65 64 20 64 61 74 61 62 61 73 65 2e 3c  upted database.<
51e0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
51f0: 30 32 20 44 65 63 20 31 37 20 28 32 2e 37 2e 34  02 Dec 17 (2.7.4
5200: 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61 73  )} {.<li>Databas
5210: 65 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77 20  e files can now 
5220: 67 72 6f 77 20 74 6f 20 62 65 20 75 70 20 74 6f  grow to be up to
5230: 20 32 5e 34 31 20 62 79 74 65 73 2e 20 20 54 68   2^41 bytes.  Th
5240: 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20 20  e old limit.    
5250: 77 61 73 20 32 5e 33 31 20 62 79 74 65 73 2e 3c  was 2^31 bytes.<
5260: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74  /li>.<li>The opt
5270: 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77 20  imizer will now 
5280: 73 63 61 6e 20 74 61 62 6c 65 73 20 69 6e 20 74  scan tables in t
5290: 68 65 20 72 65 76 65 72 73 65 20 69 66 20 64 6f  he reverse if do
52a0: 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20 20  ing so will.    
52b0: 73 61 74 69 73 66 79 20 61 6e 20 4f 52 44 45 52  satisfy an ORDER
52c0: 20 42 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c 61   BY ... DESC cla
52d0: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  use.</li>.<li>Th
52e0: 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65 20  e full pathname 
52f0: 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20  of the database 
5300: 66 69 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d 65  file is now reme
5310: 6d 62 65 72 65 64 20 65 76 65 6e 20 69 66 0a 20  mbered even if. 
5320: 20 20 20 61 20 72 65 6c 61 74 69 76 65 20 70 61     a relative pa
5330: 74 68 20 69 73 20 70 61 73 73 65 64 20 69 6e 74  th is passed int
5340: 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 2e  o sqlite_open().
5350: 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a 20    This allows . 
5360: 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 74     the library t
5370: 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72 61  o continue opera
5380: 74 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 20 61  ting correctly a
5390: 66 74 65 72 20 61 20 63 68 64 69 72 28 29 2e 3c  fter a chdir().<
53a0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69  /li>.<li>Speed i
53b0: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20 74  mprovements in t
53c0: 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c  he VDBE.</li>.<l
53d0: 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c 65  i>Lots of little
53e0: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
53f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4f  .}..chng {2002 O
5400: 63 74 20 33 30 20 28 32 2e 37 2e 33 29 7d 20 7b  ct 30 (2.7.3)} {
5410: 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f 6d  .<li>Various com
5420: 70 69 6c 65 72 20 63 6f 6d 70 61 74 69 62 69 6c  piler compatibil
5430: 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  ity fixes.</li>.
5440: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
5450: 20 74 68 65 20 22 65 78 70 72 20 49 4e 20 28 29   the "expr IN ()
5460: 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e  " operator.</li>
5470: 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c 75  .<li>Accept colu
5480: 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61 72 65  mn names in pare
5490: 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ntheses.</li>.<l
54a0: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
54b0: 77 69 74 68 20 73 74 72 69 6e 67 20 6d 65 6d 6f  with string memo
54c0: 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69 6e  ry management in
54d0: 20 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a 3c   the VDBE</li>.<
54e0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
54f0: 74 68 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f 22  the "table_info"
5500: 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c   pragma"</li>.<l
5510: 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71 6c  i>Export the sql
5520: 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79 70  ite_function_typ
5530: 65 28 29 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  e() API function
5540: 20 69 6e 20 74 68 65 20 57 69 6e 64 6f 77 73 20   in the Windows 
5550: 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  DLL</li>.<li>Fix
5560: 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69 6f   locking behavio
5570: 72 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 3c  r under windows<
5580: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
5590: 75 67 20 69 6e 20 4c 45 46 54 20 4f 55 54 45 52  ug in LEFT OUTER
55a0: 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68   JOIN</li>.}..ch
55b0: 6e 67 20 7b 32 30 30 32 20 53 65 70 20 32 35 20  ng {2002 Sep 25 
55c0: 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 50  (2.7.2)} {.<li>P
55d0: 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20 66  revent journal f
55e0: 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f 6e  ile overflows on
55f0: 20 68 75 67 65 20 74 72 61 6e 73 61 63 74 69 6f   huge transactio
5600: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ns.</li>.<li>Fix
5610: 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 74   a memory leak t
5620: 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65  hat occurred whe
5630: 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 20  n sqlite_open() 
5640: 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  failed.</li>.<li
5650: 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45 52  >Honor the ORDER
5660: 20 42 59 20 61 6e 64 20 4c 49 4d 49 54 20 63 6c   BY and LIMIT cl
5670: 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54  ause of a SELECT
5680: 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20   even if the.   
5690: 20 72 65 73 75 6c 74 20 73 65 74 20 69 73 20 75   result set is u
56a0: 73 65 64 20 66 6f 72 20 61 6e 20 49 4e 53 45 52  sed for an INSER
56b0: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  T.</li>.<li>Do n
56c0: 6f 74 20 70 75 74 20 77 72 69 74 65 20 6c 6f 63  ot put write loc
56d0: 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c 65 20 75  ks on the file u
56e0: 73 65 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d 50  sed to hold TEMP
56f0: 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c   tables.</li>.<l
5700: 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e 74  i>Added document
5710: 61 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20  ation on SELECT 
5720: 44 49 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20  DISTINCT and on 
5730: 68 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c  how SQLite handl
5740: 65 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c  es NULLs.</li>.<
5750: 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d  li>Fix a problem
5760: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
5770: 67 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e  g poor performan
5780: 63 65 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f  ce when many tho
5790: 75 73 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51  usands.    of SQ
57a0: 4c 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72  L statements wer
57b0: 65 20 65 78 65 63 75 74 65 64 20 62 79 20 61 20  e executed by a 
57c0: 73 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78  single sqlite_ex
57d0: 65 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a  ec() call.</li>.
57e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75  }..chng {2002 Au
57f0: 67 20 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a  g 31 (2.7.1)} {.
5800: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
5810: 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f   the ORDER BY lo
5820: 67 69 63 20 74 68 61 74 20 77 61 73 20 69 6e 74  gic that was int
5830: 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69  roduced in versi
5840: 6f 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c  on 2.7.0</li>.<l
5850: 69 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e  i>C-style commen
5860: 74 73 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70  ts are now accep
5870: 74 65 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e  ted by the token
5880: 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  izer.</li>.<li>I
5890: 4e 53 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74  NSERT runs a lit
58a0: 74 6c 65 20 66 61 73 74 65 72 20 77 68 65 6e 20  tle faster when 
58b0: 74 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 20  the source is a 
58c0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
58d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
58e0: 32 30 30 32 20 41 75 67 20 32 35 20 28 32 2e 37  2002 Aug 25 (2.7
58f0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .0)} {.<li>Make 
5900: 61 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65  a distinction be
5910: 74 77 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e  tween numeric an
5920: 64 20 74 65 78 74 20 76 61 6c 75 65 73 20 77 68  d text values wh
5930: 65 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20  en sorting..    
5940: 54 65 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74  Text values sort
5950: 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65   according to me
5960: 6d 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63  mcmp().  Numeric
5970: 20 76 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a   values sort in.
5980: 20 20 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65      numeric orde
5990: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  r.</li>.<li>Allo
59a0: 77 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c  w multiple simul
59b0: 74 61 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20  taneous readers 
59c0: 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79  under windows by
59d0: 20 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20   simulating.    
59e0: 74 68 65 20 72 65 61 64 65 72 2f 77 72 69 74 65  the reader/write
59f0: 72 73 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72  rs locks that ar
5a00: 65 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57  e missing from W
5a10: 69 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e  in95/98/ME.</li>
5a20: 0a 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73  .<li>An error is
5a30: 20 6e 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68   now returned wh
5a40: 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61  en trying to sta
5a50: 72 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e  rt a transaction
5a60: 20 69 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20   if.    another 
5a70: 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61  transaction is a
5a80: 6c 72 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f  lready active.</
5a90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5aa0: 32 20 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29  2 Aug 12 (2.6.3)
5ab0: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  } {.<li>Add the 
5ac0: 61 62 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20  ability to read 
5ad0: 62 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69  both little-endi
5ae0: 61 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61  an and big-endia
5af0: 6e 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20  n databases..   
5b00: 20 53 6f 20 64 61 74 61 62 61 73 65 20 63 72 65   So database cre
5b10: 61 74 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53  ated under SunOS
5b20: 20 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62   or MacOSX can b
5b30: 65 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 74  e read and writt
5b40: 65 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e  en.    under Lin
5b50: 75 78 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e  ux or Windows an
5b60: 64 20 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c  d vice versa.</l
5b70: 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74  i>.<li>Convert t
5b80: 6f 20 74 68 65 20 6e 65 77 20 77 65 62 73 69 74  o the new websit
5b90: 65 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  e: http://www.sq
5ba0: 6c 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c  lite.org/</li>.<
5bb0: 6c 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63  li>Allow transac
5bc0: 74 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69  tions to span Li
5bd0: 6e 75 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e  nux Threads</li>
5be0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20  .<li>Bug fix in 
5bf0: 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f  the processing o
5c00: 66 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63  f the ORDER BY c
5c10: 6c 61 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20  lause for GROUP 
5c20: 42 59 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a  BY queries</li>.
5c30: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
5c40: 79 20 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a  y 30 (2.6.2)} {.
5c50: 3c 6c 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72  <li>Text files r
5c60: 65 61 64 20 62 79 20 74 68 65 20 43 4f 50 59 20  ead by the COPY 
5c70: 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20  command can now 
5c80: 68 61 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e  have line termin
5c90: 61 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c  ators.    of LF,
5ca0: 20 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f    CRLF, or CR.</
5cb0: 6c 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42  li>.<li>SQLITE_B
5cc0: 55 53 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63  USY is handled c
5cd0: 6f 72 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f  orrectly if enco
5ce0: 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 64  untered during d
5cf0: 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74  atabase.    init
5d00: 69 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  ialization.</li>
5d10: 0a 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41  .<li>Fix to UPDA
5d20: 54 45 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54  TE triggers on T
5d30: 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  EMP tables.</li>
5d40: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
5d50: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
5d60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
5d70: 6c 79 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b  ly 19 (2.6.1)} {
5d80: 0a 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73  .<li>Include a s
5d90: 74 61 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20  tatic string in 
5da0: 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74  the library that
5db0: 20 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65   responds to the
5dc0: 20 52 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22   RCS.    "ident"
5dd0: 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69   command and whi
5de0: 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20  ch contains the 
5df0: 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20  library version 
5e00: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
5e10: 3e 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f  >Fix an assertio
5e20: 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f  n failure that o
5e30: 63 63 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c  ccurred when del
5e40: 65 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f  eting all rows o
5e50: 66 0a 20 20 20 20 61 20 74 61 62 6c 65 20 77 69  f.    a table wi
5e60: 74 68 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68  th the "count_ch
5e70: 61 6e 67 65 73 22 20 70 72 61 67 6d 61 20 74 75  anges" pragma tu
5e80: 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  rned on.</li>.<l
5e90: 69 3e 42 65 74 74 65 72 20 65 72 72 6f 72 20 72  i>Better error r
5ea0: 65 70 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72  eporting when pr
5eb0: 6f 62 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72  oblems occur dur
5ec0: 69 6e 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69  ing the automati
5ed0: 63 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32  c.    2.5.6 to 2
5ee0: 2e 36 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f  .6.0 database fo
5ef0: 72 6d 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c  rmat upgrade.</l
5f00: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
5f10: 20 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d   Jly 17 (2.6.0)}
5f20: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68   {.<li>Change th
5f30: 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69  e format of indi
5f40: 63 65 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61  ces to correct a
5f50: 20 64 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65   design flaw the
5f60: 20 6f 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20   originated.    
5f70: 77 69 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31  with version 2.1
5f80: 2e 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .0.  <font color
5f90: 3d 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20  ="red">*** This 
5fa0: 69 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62  is an incompatib
5fb0: 6c 65 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d  le.    file form
5fc0: 61 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66  at change ***</f
5fd0: 6f 6e 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69  ont>  When versi
5fe0: 6f 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65  on 2.6.0 or late
5ff0: 72 20 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62  r of the.    lib
6000: 72 61 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f  rary attempts to
6010: 20 6f 70 65 6e 20 61 20 64 61 74 61 62 61 73 65   open a database
6020: 20 66 69 6c 65 20 63 72 65 61 74 65 64 20 62 79   file created by
6030: 20 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f   version 2.5.6 o
6040: 72 0a 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69  r.    earlier, i
6050: 74 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63  t will automatic
6060: 61 6c 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72  ally and irrever
6070: 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68  sibly convert th
6080: 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20  e file format.. 
6090: 20 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75     <b>Make backu
60a0: 70 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65  p copies of olde
60b0: 72 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  r database files
60c0: 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20   before opening 
60d0: 74 68 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65  them with.    ve
60e0: 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74  rsion 2.6.0 of t
60f0: 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a  he library.</b>.
6100: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
6110: 67 20 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32  g {2002 Jly 7 (2
6120: 2e 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .5.6)} {.<li>Fix
6130: 20 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77   more problems w
6140: 69 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45  ith rollback.  E
6150: 6e 68 61 6e 63 65 20 74 68 65 20 74 65 73 74 20  nhance the test 
6160: 73 75 69 74 65 20 74 6f 20 65 78 65 72 63 69 73  suite to exercis
6170: 65 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61  e.    the rollba
6180: 63 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69  ck logic extensi
6190: 76 65 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  vely in order to
61a0: 20 70 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74   prevent any fut
61b0: 75 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20  ure problems..  
61c0: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
61d0: 7b 32 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35  {2002 Jly 6 (2.5
61e0: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .5)} {.<li>Fix a
61f0: 20 62 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64   bug which could
6200: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
6210: 63 6f 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e  corruption durin
6220: 67 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20  g a rollback..  
6230: 20 20 54 68 69 73 20 62 75 67 73 20 77 61 73 20    This bugs was 
6240: 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65  introduced in ve
6250: 72 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74  rsion 2.4.0 by t
6260: 68 65 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20  he freelist.    
6270: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20  optimization of 
6280: 63 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c  checking [410].<
6290: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
62a0: 75 67 20 69 6e 20 61 67 67 72 65 67 61 74 65 20  ug in aggregate 
62b0: 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49  functions for VI
62c0: 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  EWs.</li>.<li>Ot
62d0: 68 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65  her minor change
62e0: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
62f0: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
6300: 20 7b 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e   {2002 Jly 1 (2.
6310: 35 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65  5.4)} {.<li>Make
6320: 20 74 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72   the "AS" keywor
6330: 64 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e  d optional again
6340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64  .</li>.<li>The d
6350: 61 74 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d  atatype of colum
6360: 6e 73 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e  ns now appear in
6370: 20 74 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e   the 4th argumen
6380: 74 20 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c  t to the.    cal
6390: 6c 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lback.</li>.<li>
63a0: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
63b0: 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c  ite_open_aux_fil
63c0: 65 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f  e()</b> API, tho
63d0: 75 67 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a  ugh it is still.
63e0: 20 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63      mostly undoc
63f0: 75 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65  umented and unte
6400: 73 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sted.</li>.<li>A
6410: 64 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20  dded additional 
6420: 74 65 73 74 20 63 61 73 65 73 20 61 6e 64 20 66  test cases and f
6430: 69 78 65 64 20 61 20 66 65 77 20 62 75 67 73 20  ixed a few bugs 
6440: 74 68 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74  that those.    t
6450: 65 73 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e  est cases found.
6460: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6470: 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e  002 Jun 24 (2.5.
6480: 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  3)} {.<li>Bug fi
6490: 78 3a 20 20 44 61 74 61 62 61 73 65 20 63 6f 72  x:  Database cor
64a0: 72 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75  ruption can occu
64b0: 72 20 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74  r due to the opt
64c0: 69 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68  imization.    th
64d0: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
64e0: 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34  d in version 2.4
64f0: 2e 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31  .0 (check-in [41
6500: 30 5d 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65  0]).  The proble
6510: 6d 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77  m.    should now
6520: 20 62 65 20 66 69 78 65 64 2e 20 20 54 68 65 20   be fixed.  The 
6530: 75 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20  use of versions 
6540: 32 2e 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e  2.4.0 through 2.
6550: 35 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72  5.2 is.    not r
6560: 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e  ecommended.</li>
6570: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
6580: 75 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b  un 24 (2.5.2)} {
6590: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e  .<li>Added the n
65a0: 65 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d  ew <b>SQLITE_TEM
65b0: 50 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62  P_MASTER</b> tab
65c0: 6c 65 20 77 68 69 63 68 20 72 65 63 6f 72 64 73  le which records
65d0: 20 74 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20   the schema.    
65e0: 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61  for temporary ta
65f0: 62 6c 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65  bles in the same
6600: 20 77 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c   way that <b>SQL
6610: 49 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64  ITE_MASTER</b> d
6620: 6f 65 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73  oes for.    pers
6630: 69 73 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f  istent tables.</
6640: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e  li>.<li>Added an
6650: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f   optimization to
6660: 20 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a   UNION ALL</li>.
6670: 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20  <li>Fixed a bug 
6680: 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e  in the processin
6690: 67 20 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20  g of LEFT OUTER 
66a0: 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  JOIN</li>.<li>Th
66b0: 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e  e LIMIT clause n
66c0: 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73  ow works on subs
66d0: 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  elects</li>.<li>
66e0: 4f 52 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f  ORDER BY works o
66f0: 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69  n subselects</li
6700: 3e 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61  >.<li>There is a
6710: 20 6e 65 77 20 54 79 70 65 4f 66 28 29 20 66 75   new TypeOf() fu
6720: 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64  nction used to d
6730: 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65  etermine if an e
6740: 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73  xpression.    is
6750: 20 6e 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74   numeric or text
6760: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69  .</li>.<li>Autoi
6770: 6e 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72  ncrement now wor
6780: 6b 73 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72  ks for INSERT fr
6790: 6f 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  om a SELECT.</li
67a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
67b0: 4a 75 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20  Jun 19 (2.5.1)} 
67c0: 7b 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20  {.<li>The query 
67d0: 6f 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74  optimizer now at
67e0: 74 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d  tempts to implem
67f0: 65 6e 74 20 74 68 65 20 4f 52 44 45 52 20 42 59  ent the ORDER BY
6800: 20 63 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e   clause.    usin
6810: 67 20 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72  g an index.  Sor
6820: 74 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73  ting is still us
6830: 65 64 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62  ed if not suitab
6840: 6c 65 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20  le index is.    
6850: 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  available.</li>.
6860: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
6870: 6e 20 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a  n 17 (2.5.0)} {.
6880: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
6890: 74 20 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65  t for row trigge
68a0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
68b0: 65 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69  ed SQL-92 compli
68c0: 61 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ant handling of 
68d0: 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NULLs.</li>.<li>
68e0: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
68f0: 74 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20  the full SQL-92 
6900: 6a 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20  join syntax and 
6910: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73  LEFT OUTER JOINs
6920: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c  .</li>.<li>Doubl
6930: 65 2d 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73  e-quoted strings
6940: 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20   interpreted as 
6950: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74  column names not
6960: 20 74 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c   text literals.<
6970: 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28  /li>.<li>Parse (
6980: 62 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65  but do not imple
6990: 6d 65 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65  ment) foreign ke
69a0: 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ys.</li>.<li>Per
69b0: 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65  formance improve
69c0: 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 70 61 72  ments in the par
69d0: 73 65 72 2c 20 70 61 67 65 72 2c 20 61 6e 64 20  ser, pager, and 
69e0: 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f 64  WHERE clause cod
69f0: 65 0a 20 20 20 20 67 65 6e 65 72 61 74 6f 72 2e  e.    generator.
6a00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
6a10: 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20  he LIMIT clause 
6a20: 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65 72 69  work on subqueri
6a30: 65 73 2e 20 20 28 4f 52 44 45 52 20 42 59 20 73  es.  (ORDER BY s
6a40: 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20  till does not.  
6a50: 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e 29    work, though.)
6a60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
6a70: 74 68 65 20 22 25 51 22 20 65 78 70 61 6e 73 69  the "%Q" expansi
6a80: 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f 70  on to sqlite_*_p
6a90: 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  rintf().</li>.<l
6aa0: 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 6f 20  i>Bug fixes too 
6ab0: 6e 75 6d 65 72 6f 75 73 20 74 6f 20 6d 65 6e 74  numerous to ment
6ac0: 69 6f 6e 20 28 73 65 65 20 74 68 65 20 63 68 61  ion (see the cha
6ad0: 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d  nge log).</li>.}
6ae0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
6af0: 20 30 39 20 28 32 2e 34 2e 31 32 29 7d 20 7b 0a   09 (2.4.12)} {.
6b00: 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69 63 20  <li>Added logic 
6b10: 74 6f 20 64 65 74 65 63 74 20 77 68 65 6e 20 74  to detect when t
6b20: 68 65 20 6c 69 62 72 61 72 79 20 41 50 49 20 72  he library API r
6b30: 6f 75 74 69 6e 65 73 20 61 72 65 20 63 61 6c 6c  outines are call
6b40: 65 64 20 6f 75 74 0a 20 20 20 20 6f 66 20 73 65  ed out.    of se
6b50: 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  quence.</li>.}..
6b60: 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30  chng {2002 May 0
6b70: 38 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a 3c 6c  8 (2.4.11)} {.<l
6b80: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c 75 6d  i>Bug fix: Colum
6b90: 6e 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 72  n names in the r
6ba0: 65 73 75 6c 74 20 73 65 74 20 77 65 72 65 20 6e  esult set were n
6bb0: 6f 74 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74  ot being generat
6bc0: 65 64 0a 20 20 20 20 63 6f 72 72 65 63 74 6c 79  ed.    correctly
6bd0: 20 66 6f 72 20 73 6f 6d 65 20 28 72 61 74 68 65   for some (rathe
6be0: 72 20 63 6f 6d 70 6c 65 78 29 20 56 49 45 57 73  r complex) VIEWs
6bf0: 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20 63 61  .  This could ca
6c00: 75 73 65 20 61 0a 20 20 20 20 73 65 67 66 61 75  use a.    segfau
6c10: 6c 74 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e  lt under certain
6c20: 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 2e 3c   circumstances.<
6c30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6c40: 30 32 20 4d 61 79 20 30 32 20 28 32 2e 34 2e 31  02 May 02 (2.4.1
6c50: 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  0)} {.<li>Bug fi
6c60: 78 3a 20 47 65 6e 65 72 61 74 65 20 63 6f 72 72  x: Generate corr
6c70: 65 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61 64 65  ect column heade
6c80: 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75  rs when a compou
6c90: 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65  nd SELECT is use
6ca0: 64 0a 20 20 20 20 61 73 20 61 20 73 75 62 71 75  d.    as a subqu
6cb0: 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ery.</li>.<li>Ad
6cc0: 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 5f 65  ded the sqlite_e
6cd0: 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61  ncode_binary() a
6ce0: 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65  nd sqlite_decode
6cf0: 5f 62 69 6e 61 72 79 28 29 20 66 75 6e 63 74 69  _binary() functi
6d00: 6f 6e 73 20 74 6f 0a 20 20 20 20 74 68 65 20 73  ons to.    the s
6d10: 6f 75 72 63 65 20 74 72 65 65 2e 20 20 42 75 74  ource tree.  But
6d20: 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 79 65   they are not ye
6d30: 74 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68  t linked into th
6d40: 65 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69 3e 0a  e library.</li>.
6d50: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
6d60: 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a  n updates.</li>.
6d70: 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73  <li>Export the s
6d80: 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 20  qlite_changes() 
6d90: 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20 77 69  function from wi
6da0: 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c 69 3e  ndows DLLs.</li>
6db0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 44 6f  .<li>Bug fix: Do
6dc0: 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74 68 65   not attempt the
6dd0: 20 73 75 62 71 75 65 72 79 20 66 6c 61 74 74 65   subquery flatte
6de0: 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74 69 6f  ning optimizatio
6df0: 6e 20 6f 6e 20 71 75 65 72 69 65 73 0a 20 20 20  n on queries.   
6e00: 20 74 68 61 74 20 6c 61 63 6b 20 61 20 46 52 4f   that lack a FRO
6e10: 4d 20 63 6c 61 75 73 65 2e 20 20 54 6f 20 64 6f  M clause.  To do
6e20: 20 73 6f 20 63 61 75 73 65 73 20 61 20 73 65 67   so causes a seg
6e30: 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fault.</li>.}..c
6e40: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 31  hng {2002 Apr 21
6e50: 20 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.9)} {.<li>
6e60: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77  Fix a bug that w
6e70: 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 20 70  as causing the p
6e80: 72 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e 61 72  recompiled binar
6e90: 79 20 6f 66 20 53 51 4c 49 54 45 2e 45 58 45 20  y of SQLITE.EXE 
6ea0: 74 6f 0a 20 20 20 20 72 65 70 6f 72 74 20 22 6f  to.    report "o
6eb0: 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20 75 6e  ut of memory" un
6ec0: 64 65 72 20 57 69 6e 64 6f 77 73 20 39 38 2e 3c  der Windows 98.<
6ed0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6ee0: 30 32 20 41 70 72 20 32 30 20 28 32 2e 34 2e 38  02 Apr 20 (2.4.8
6ef0: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75  )} {.<li>Make su
6f00: 72 65 20 56 49 45 57 73 20 61 72 65 20 63 72 65  re VIEWs are cre
6f10: 61 74 65 64 20 61 66 74 65 72 20 74 68 65 69 72  ated after their
6f20: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 54   corresponding T
6f30: 41 42 4c 45 73 20 69 6e 20 74 68 65 0a 20 20 20  ABLEs in the.   
6f40: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 3c   output of the <
6f50: 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f 6d 6d  b>.dump</b> comm
6f60: 61 6e 64 20 69 6e 20 74 68 65 20 73 68 65 6c 6c  and in the shell
6f70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64  .</li>.<li>Speed
6f80: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a 20 44   improvements: D
6f90: 6f 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68 72 6f  o not do synchro
6fa0: 6e 6f 75 73 20 75 70 64 61 74 65 73 20 6f 6e 20  nous updates on 
6fb0: 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69  TEMP tables.</li
6fc0: 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70 72 6f  >.<li>Many impro
6fd0: 76 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e 68 61  vements and enha
6fe0: 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20  ncements to the 
6ff0: 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  shell.</li>.<li>
7000: 4d 61 6b 65 20 74 68 65 20 47 4c 4f 42 20 61 6e  Make the GLOB an
7010: 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73  d LIKE operators
7020: 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20   functions that 
7030: 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64 64 65  can be overridde
7040: 6e 0a 20 20 20 20 62 79 20 61 20 70 72 6f 67 72  n.    by a progr
7050: 61 6d 6d 65 72 2e 20 20 54 68 69 73 20 61 6c 6c  ammer.  This all
7060: 6f 77 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65  ows, for example
7070: 2c 20 74 68 65 20 4c 49 4b 45 20 6f 70 65 72 61  , the LIKE opera
7080: 74 6f 72 20 74 6f 0a 20 20 20 20 62 65 20 63 68  tor to.    be ch
7090: 61 6e 67 65 64 20 74 6f 20 62 65 20 63 61 73 65  anged to be case
70a0: 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c 69 3e   sensitive.</li>
70b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
70c0: 70 72 20 30 36 20 28 32 2e 34 2e 37 29 7d 20 7b  pr 06 (2.4.7)} {
70d0: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
70e0: 6c 69 74 79 20 74 6f 20 70 75 74 20 54 41 42 4c  lity to put TABL
70f0: 45 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d  E.* in the colum
7100: 6e 20 6c 69 73 74 20 6f 66 20 61 0a 20 20 20 20  n list of a.    
7110: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
7120: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 6d 69  .</li>.<li>Permi
7130: 74 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  t SELECT stateme
7140: 6e 74 73 20 77 69 74 68 6f 75 74 20 61 20 46 52  nts without a FR
7150: 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a  OM clause.</li>.
7160: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
7170: 3e 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77  >last_insert_row
7180: 69 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66 75 6e  id()</b> SQL fun
7190: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ction.</li>.<li>
71a0: 44 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72 6f 77  Do not count row
71b0: 73 20 77 68 65 72 65 20 74 68 65 20 49 47 4e 4f  s where the IGNO
71c0: 52 45 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f  RE conflict reso
71d0: 6c 75 74 69 6f 6e 20 6f 63 63 75 72 73 20 69 6e  lution occurs in
71e0: 0a 20 20 20 20 74 68 65 20 72 6f 77 20 63 6f 75  .    the row cou
71f0: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  nt.</li>.<li>Mak
7200: 65 20 73 75 72 65 20 66 75 6e 63 74 69 6f 6e 73  e sure functions
7210: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20   expressions in 
7220: 74 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73  the VALUES claus
7230: 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a 20  e of an INSERT. 
7240: 20 20 20 61 72 65 20 63 6f 72 72 65 63 74 2e 3c     are correct.<
7250: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
7260: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68 61  he <b>sqlite_cha
7270: 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50 49 20 66  nges()</b> API f
7280: 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72  unction to retur
7290: 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20  n the number.   
72a0: 20 6f 66 20 72 6f 77 20 74 68 61 74 20 63 68 61   of row that cha
72b0: 6e 67 65 64 20 69 6e 20 74 68 65 20 6d 6f 73 74  nged in the most
72c0: 20 72 65 63 65 6e 74 20 6f 70 65 72 61 74 69 6f   recent operatio
72d0: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
72e0: 7b 32 30 30 32 20 41 70 72 20 30 32 20 28 32 2e  {2002 Apr 02 (2.
72f0: 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  4.6)} {.<li>Bug 
7300: 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68  fix: Correctly h
7310: 61 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e 20 74  andle terms in t
7320: 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20  he WHERE clause 
7330: 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a 20  of a join that. 
7340: 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69     do not contai
7350: 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f  n a comparison o
7360: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a  perator.</li>.}.
7370: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
7380: 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c 6c  01 (2.4.5)} {.<l
7390: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72 65  i>Bug fix: Corre
73a0: 63 74 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e 63  ctly handle func
73b0: 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70 65 61  tions that appea
73c0: 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63  r in the WHERE c
73d0: 6c 61 75 73 65 0a 20 20 20 20 6f 66 20 61 20 6a  lause.    of a j
73e0: 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68  oin.</li>.<li>Wh
73f0: 65 6e 20 74 68 65 20 50 52 41 47 4d 41 20 76 64  en the PRAGMA vd
7400: 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20 73  be_trace=ON is s
7410: 65 74 2c 20 63 6f 72 72 65 63 74 6c 79 20 70 72  et, correctly pr
7420: 69 6e 74 20 74 68 65 20 50 33 20 6f 70 65 72 61  int the P3 opera
7430: 6e 64 0a 20 20 20 20 76 61 6c 75 65 20 77 68 65  nd.    value whe
7440: 6e 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 65  n it is a pointe
7450: 72 20 74 6f 20 61 20 73 74 72 75 63 74 75 72 65  r to a structure
7460: 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 70   rather than a p
7470: 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 61 20  ointer to.    a 
7480: 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  string.</li>.<li
7490: 3e 57 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 20  >When inserting 
74a0: 61 6e 20 65 78 70 6c 69 63 69 74 20 4e 55 4c 4c  an explicit NULL
74b0: 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45 52   into an INTEGER
74c0: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 6f   PRIMARY KEY, co
74d0: 6e 76 65 72 74 0a 20 20 20 20 74 68 65 20 4e 55  nvert.    the NU
74e0: 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20  LL value into a 
74f0: 75 6e 69 71 75 65 20 6b 65 79 20 61 75 74 6f 6d  unique key autom
7500: 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d  atically.</li>.}
7510: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
7520: 20 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a 3c   24 (2.4.4)} {.<
7530: 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22 20  li>Allow "VIEW" 
7540: 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20 6e  to be a column n
7550: 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ame</li>.<li>Add
7560: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
7570: 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20  ASE expressions 
7580: 28 70 61 74 63 68 20 66 72 6f 6d 20 44 61 6e 20  (patch from Dan 
7590: 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c 6c  Kennedy)</li>.<l
75a0: 69 3e 41 64 64 65 64 20 52 50 4d 53 20 74 6f 20  i>Added RPMS to 
75b0: 74 68 65 20 64 65 6c 69 76 65 72 79 20 28 70 61  the delivery (pa
75c0: 74 63 68 65 73 20 66 72 6f 6d 20 44 6f 75 67 20  tches from Doug 
75d0: 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  Henry)</li>.<li>
75e0: 46 69 78 20 74 79 70 6f 73 20 69 6e 20 74 68 65  Fix typos in the
75f0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f   documentation</
7600: 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65 72  li>.<li>Cut over
7610: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d   configuration m
7620: 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61 20 6e  anagement to a n
7630: 65 77 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72  ew CVS repositor
7640: 79 20 77 69 74 68 0a 20 20 20 20 69 74 73 20 6f  y with.    its o
7650: 77 6e 20 43 56 53 54 72 61 63 20 62 75 67 20 74  wn CVSTrac bug t
7660: 72 61 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e 3c  racking system.<
7670: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7680: 30 32 20 4d 61 72 20 32 32 20 28 32 2e 34 2e 33  02 Mar 22 (2.4.3
7690: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
76a0: 75 67 20 69 6e 20 53 45 4c 45 43 54 20 74 68 61  ug in SELECT tha
76b0: 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61 20  t occurs when a 
76c0: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
76d0: 69 73 20 75 73 65 64 20 61 73 20 61 0a 20 20 20  is used as a.   
76e0: 20 73 75 62 71 75 65 72 79 20 69 6e 20 74 68 65   subquery in the
76f0: 20 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45 43   FROM of a SELEC
7700: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  T.</li>.<li>The 
7710: 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61  <b>sqlite_get_ta
7720: 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69  ble()</b> functi
7730: 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73 20 61  on now returns a
7740: 6e 20 65 72 72 6f 72 20 69 66 20 79 6f 75 0a 20  n error if you. 
7750: 20 20 20 67 69 76 65 20 69 74 20 74 77 6f 20 6f     give it two o
7760: 72 20 6d 6f 72 65 20 53 45 4c 45 43 54 73 20 74  r more SELECTs t
7770: 68 61 74 20 72 65 74 75 72 6e 20 64 69 66 66 65  hat return diffe
7780: 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20  rent numbers of 
7790: 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a  columns.</li>.}.
77a0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
77b0: 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c  14 (2.4.2)} {.<l
77c0: 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61  i>Bug fix: Fix a
77d0: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
77e0: 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65  ure that occurre
77f0: 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73  d when ROWID was
7800: 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e   a column.    in
7810: 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d   a SELECT statem
7820: 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f  ent on a view.</
7830: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
7840: 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61   Fix an uninitia
7850: 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69  lized variable i
7860: 6e 20 74 68 65 20 56 44 42 45 20 74 68 61 74 20  n the VDBE that 
7870: 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20  would could an. 
7880: 20 20 20 61 73 73 65 72 74 20 66 61 69 6c 75 72     assert failur
7890: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  e.</li>.<li>Make
78a0: 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72   the os.h header
78b0: 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73   file more robus
78c0: 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77  t in detecting w
78d0: 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20  hen the compile 
78e0: 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f  is.    for windo
78f0: 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69  ws and when it i
7900: 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e  s for unix.</li>
7910: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
7920: 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b  ar 13 (2.4.1)} {
7930: 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e  .<li>Using an un
7940: 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79 20 69  named subquery i
7950: 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  n a FROM clause 
7960: 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73 65  would cause a se
7970: 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  gfault.</li>.<li
7980: 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20  >The parser now 
7990: 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e  insists on seein
79a0: 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72  g a semicolon or
79b0: 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75   the end of inpu
79c0: 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65  t before.    exe
79d0: 63 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65  cuting a stateme
79e0: 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73  nt.  This avoids
79f0: 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64   an accidental d
7a00: 69 73 61 73 74 65 72 20 69 66 20 74 68 65 0a 20  isaster if the. 
7a10: 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64     WHERE keyword
7a20: 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69   is misspelled i
7a30: 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44  n an UPDATE or D
7a40: 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e  ELETE statement.
7a50: 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b  </li>.}...chng {
7a60: 32 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34  2002 Mar 10 (2.4
7a70: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
7a80: 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  e the name of th
7a90: 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50  e sanity_check P
7aa0: 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65  RAGMA to <b>inte
7ab0: 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a  grity_check</b>.
7ac0: 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20      and make it 
7ad0: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c  available in all
7ae0: 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a   compiles.</li>.
7af0: 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29  <li>SELECT min()
7b00: 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20   or max() of an 
7b10: 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77  indexed column w
7b20: 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20  ith no WHERE or 
7b30: 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61  GROUP BY.    cla
7b40: 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61  use is handled a
7b50: 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65  s a special case
7b60: 20 77 68 69 63 68 20 61 76 6f 69 64 73 20 61 20   which avoids a 
7b70: 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73  complete table s
7b80: 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75  can.</li>.<li>Au
7b90: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
7ba0: 72 61 74 65 64 20 52 4f 57 49 44 73 20 61 72 65  rated ROWIDs are
7bb0: 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e   now sequential.
7bc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
7bd0: 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61   allow dot-comma
7be0: 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61  nds of the comma
7bf0: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f  nd-line shell to
7c00: 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20   occur in the.  
7c10: 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65    middle of a re
7c20: 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c  al SQL command.<
7c30: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63  /li>.<li>Modific
7c40: 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c  ations to the "l
7c50: 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e  emon" parser gen
7c60: 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74  erator so that t
7c70: 68 65 20 70 61 72 73 65 72 20 74 61 62 6c 65 73  he parser tables
7c80: 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d 65 73  .    are 4 times
7c90: 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c   smaller.</li>.<
7ca0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
7cb0: 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65   for user-define
7cc0: 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c  d functions impl
7cd0: 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c  emented in C.</l
7ce0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
7cf0: 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e  port for new fun
7d00: 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65  ctions: <b>coale
7d10: 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f  sce()</b>, <b>lo
7d20: 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c  wer()</b>,.    <
7d30: 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61  b>upper()</b>, a
7d40: 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f  nd <b>random()</
7d50: 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  b>.<li>Added sup
7d60: 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c  port for VIEWs.<
7d70: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
7d80: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
7d90: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72  tening optimizer
7da0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
7db0: 69 65 64 20 74 68 65 20 42 2d 54 72 65 65 20 61  ied the B-Tree a
7dc0: 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73  nd Pager modules
7dd0: 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61   so that disk pa
7de0: 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a  ges that do not.
7df0: 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c      contain real
7e00: 20 64 61 74 61 20 28 66 72 65 65 20 70 61 67 65   data (free page
7e10: 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e  s) are not journ
7e20: 61 6c 65 64 20 61 6e 64 20 61 72 65 20 6e 6f 74  aled and are not
7e30: 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66 72 6f  .    written fro
7e40: 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74 6f  m memory back to
7e50: 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e 20 74   the disk when t
7e60: 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54 68 69  hey change.  Thi
7e70: 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20 20  s does not .    
7e80: 69 6d 70 61 63 74 20 64 61 74 61 62 61 73 65 20  impact database 
7e90: 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e 63 65  integrity, since
7ea0: 20 74 68 65 0a 20 20 20 20 70 61 67 65 73 20 63   the.    pages c
7eb0: 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20 64  ontain no real d
7ec0: 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f 65 73  ata, but it does
7ed0: 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e 53 45   make large INSE
7ee0: 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20  RT operations.  
7ef0: 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69 6d 65    about 2.5 time
7f00: 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c 61 72  s faster and lar
7f10: 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f 75 74  ge DELETEs about
7f20: 20 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 2e   5 times faster.
7f30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20 74  </li>.<li>Made t
7f40: 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20 70 72  he CACHE_SIZE pr
7f50: 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e 74 3c  agma persistent<
7f60: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
7f70: 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20 70  he SYNCHRONOUS p
7f80: 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ragma</li>.<li>F
7f90: 69 78 65 64 20 61 20 62 75 67 20 74 68 61 74 20  ixed a bug that 
7fa0: 77 61 73 20 63 61 75 73 69 6e 67 20 75 70 64 61  was causing upda
7fb0: 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e 73 69  tes to fail insi
7fc0: 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f  de of transactio
7fd0: 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68 65 20  ns when.    the 
7fe0: 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e  database contain
7ff0: 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74  ed a temporary t
8000: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
8010: 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 38 20  ng {2002 Feb 18 
8020: 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.3.3)} {.<li>A
8030: 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65 72 73  llow identifiers
8040: 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20 69 6e   to be quoted in
8050: 20 73 71 75 61 72 65 20 62 72 61 63 6b 65 74 73   square brackets
8060: 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c  , for compatibil
8070: 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d 53 2d  ity.    with MS-
8080: 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  Access.</li>.<li
8090: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
80a0: 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73 20 69  or sub-queries i
80b0: 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75 73  n the FROM claus
80c0: 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f  e of a SELECT.</
80d0: 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66  li>.<li>More eff
80e0: 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e 74  icient implement
80f0: 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65 46  ation of sqliteF
8100: 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e 64 65  ileExists() unde
8110: 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20 28  r Windows..    (
8120: 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c 2f  by Joel Luscy)</
8130: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c 55  li>.<li>The VALU
8140: 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20  ES clause of an 
8150: 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77 20 63  INSERT can now c
8160: 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73 69 6f  ontain expressio
8170: 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20  ns, including.  
8180: 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43 54 20    scalar SELECT 
8190: 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  clauses.</li>.<l
81a0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
81b0: 66 6f 72 20 43 52 45 41 54 45 20 54 41 42 4c 45  for CREATE TABLE
81c0: 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e 0a   AS SELECT</li>.
81d0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 72 65  <li>Bug fix: Cre
81e0: 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70 70 69  ating and droppi
81f0: 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c 20 77  ng a table all w
8200: 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a 20  ithin a single. 
8210: 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77     transaction w
8220: 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e 3c  as not working.<
8230: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8240: 30 32 20 46 65 62 20 31 34 20 28 32 2e 33 2e 32  02 Feb 14 (2.3.2
8250: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
8260: 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e 20 69  : There was an i
8270: 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72 74 28  ncorrect assert(
8280: 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20 20 54  ) in pager.c.  T
8290: 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77 61 73  he real code was
82a0: 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65 63 74  .    all correct
82b0: 20 28 61 73 20 66 61 72 20 61 73 20 69 73 20 6b   (as far as is k
82c0: 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79 74 68  nown) so everyth
82d0: 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b 20  ing should work 
82e0: 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20 63 6f  OK if you.    co
82f0: 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45  mpile with -DNDE
8300: 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61 73 73  BUG=1.  When ass
8310: 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64 69 73  erts are not dis
8320: 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20 20 20  abled, there.   
8330: 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61 75 6c   could be a faul
8340: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
8350: 7b 32 30 30 32 20 46 65 62 20 31 33 20 28 32 2e  {2002 Feb 13 (2.
8360: 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  3.1)} {.<li>Bug 
8370: 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f  fix: An assertio
8380: 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66  n was failing if
8390: 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63 6f   "PRAGMA full_co
83a0: 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22 20  lumn_names=ON;" 
83b0: 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e 64 20  was.    set and 
83c0: 79 6f 75 20 64 69 64 20 61 20 71 75 65 72 79 20  you did a query 
83d0: 74 68 61 74 20 75 73 65 64 20 61 20 72 6f 77 69  that used a rowi
83e0: 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20 20 0a  d, like this:  .
83f0: 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f 77 69      "SELECT rowi
8400: 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e 3c  d, * FROM ...".<
8410: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8420: 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e 30  02 Jan 30 (2.3.0
8430: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73  )} {.<li>Fix a s
8440: 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20 74 68  erious bug in th
8450: 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e 64  e INSERT command
8460: 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73 69   which was causi
8470: 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a 20 20  ng data to go.  
8480: 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e 67    into the wrong
8490: 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65 20   columns if the 
84a0: 64 61 74 61 20 73 6f 75 72 63 65 20 77 61 73 20  data source was 
84b0: 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74 68 65  a SELECT and the
84c0: 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c 61 75   INSERT.    clau
84d0: 73 65 73 20 73 70 65 63 69 66 69 65 64 20 69 74  ses specified it
84e0: 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f 6d  s columns in som
84f0: 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20 74 68  e order other th
8500: 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e 3c  an the default.<
8510: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
8520: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72 65  he ability to re
8530: 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e 74  solve constraint
8540: 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20 77 61   conflicts is wa
8550: 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a 20 20  ys other than.  
8560: 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64 20 72    an abort and r
8570: 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20 74 68  ollback.  See th
8580: 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20  e documentation 
8590: 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46 4c  on the "ON CONFL
85a0: 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73 65 20  ICT".    clause 
85b0: 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c 69  for details.</li
85c0: 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79 20  >.<li>Temporary 
85d0: 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20 61 75  files are now au
85e0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65  tomatically dele
85f0: 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61  ted by the opera
8600: 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20 20  ting system.    
8610: 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54 68  when closed.  Th
8620: 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65 20  ere are no more 
8630: 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72 61  dangling tempora
8640: 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20 70 72  ry files on a pr
8650: 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73 68 2e  ogram.    crash.
8660: 20 20 28 49 66 20 74 68 65 20 4f 53 20 63 72 61    (If the OS cra
8670: 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c 20  shes, fsck will 
8680: 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20  delete the file 
8690: 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a 20 20  after reboot .  
86a0: 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20 20 49    under Unix.  I
86b0: 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68 61   do not know wha
86c0: 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65 72 20  t happens under 
86d0: 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a 3c  Windows.)</li>.<
86e0: 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e 73  li>NOT NULL cons
86f0: 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f 6e 6f  traints are hono
8700: 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  red.</li>.<li>Th
8710: 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 70  e COPY command p
8720: 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f 6c  uts NULLs in col
8730: 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74 61 20  umns whose data 
8740: 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c  is '\N'.</li>.<l
8750: 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20 63 6f  i>In the COPY co
8760: 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73 68  mmand, backslash
8770: 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64   can now be used
8780: 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e 65 77   to escape a new
8790: 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  line.</li>.<li>A
87a0: 64 64 65 64 20 74 68 65 20 53 41 4e 49 54 59 5f  dded the SANITY_
87b0: 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f 6c  CHECK pragma.</l
87c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
87d0: 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35 29 7d   Jan 28 (2.2.5)}
87e0: 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e 74   {.<li>Important
87f0: 20 62 75 67 20 66 69 78 3a 20 74 68 65 20 49 4e   bug fix: the IN
8800: 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20 6e 6f   operator was no
8810: 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65 69 74  t working if eit
8820: 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65 66 74  her the.    left
8830: 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74 2d 68  -hand or right-h
8840: 61 6e 64 20 73 69 64 65 20 77 61 73 20 64 65 72  and side was der
8850: 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e 54  ived from an INT
8860: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
8870: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
8880: 74 20 65 73 63 61 70 65 20 74 68 65 20 62 61 63  t escape the bac
8890: 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61 72 61  kslash '\' chara
88a0: 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75 74 70  cter in the outp
88b0: 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3c 62  ut of the.    <b
88c0: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d 6d  >sqlite</b> comm
88d0: 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73 73 20  and-line access 
88e0: 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a  program.</li>.}.
88f0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
8900: 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c  22 (2.2.4)} {.<l
8910: 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74  i>The label to t
8920: 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41  he right of an A
8930: 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20  S in the column 
8940: 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54  list of a SELECT
8950: 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20   can now.    be 
8960: 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20  used as part of 
8970: 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e  an expression in
8980: 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45   the WHERE, ORDE
8990: 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20  R BY, GROUP BY, 
89a0: 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e  and/or.    HAVIN
89b0: 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  G clauses.</li>.
89c0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
89d0: 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74   the <b>-separat
89e0: 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c  or</b> command-l
89f0: 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ine option to th
8a00: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a  e <b>sqlite</b>.
8a10: 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69      command.</li
8a20: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  >.<li>Fix a prob
8a30: 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73 6f 72  lem with the sor
8a40: 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63 6f 6d  t order when com
8a50: 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63 61 73  paring upper-cas
8a60: 65 20 73 74 72 69 6e 67 73 20 61 67 61 69 6e 73  e strings agains
8a70: 74 0a 20 20 20 20 63 68 61 72 61 63 74 65 72 73  t.    characters
8a80: 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 27 5a   greater than 'Z
8a90: 27 20 62 75 74 20 6c 65 73 73 20 74 68 61 6e 20  ' but less than 
8aa0: 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  'a'.</li>.<li>Re
8ab0: 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 69 66  port an error if
8ac0: 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f 72 20   an ORDER BY or 
8ad0: 47 52 4f 55 50 20 42 59 20 65 78 70 72 65 73 73  GROUP BY express
8ae0: 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74 2e  ion is constant.
8af0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8b00: 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e 32 2e  002 Jan 16 (2.2.
8b10: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77 61  3)} {.<li>Fix wa
8b20: 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20 69  rning messages i
8b30: 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50 61  n VC++ 7.0.  (Pa
8b40: 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f 6c  tches from nicol
8b50: 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c  as352001)</li>.<
8b60: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62 72  li>Make the libr
8b70: 61 72 79 20 74 68 72 65 61 64 2d 73 61 66 65 2e  ary thread-safe.
8b80: 20 20 28 54 68 65 20 63 6f 64 65 20 69 73 20 74    (The code is t
8b90: 68 65 72 65 20 61 6e 64 20 61 70 70 65 61 72 73  here and appears
8ba0: 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75 74   to work.    but
8bb0: 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 74   has not been st
8bc0: 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c  ressed.)</li>.<l
8bd0: 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77 20  i>Added the new 
8be0: 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f 69  <b>sqlite_last_i
8bf0: 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62  nsert_rowid()</b
8c00: 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e 3c  > API function.<
8c10: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8c20: 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e 32  02 Jan 13 (2.2.2
8c30: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
8c40: 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77  : An assertion w
8c50: 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65 6e 20  as failing when 
8c60: 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c  a temporary tabl
8c70: 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65 78 0a  e with an index.
8c80: 20 20 20 20 68 61 64 20 74 68 65 20 73 61 6d 65      had the same
8c90: 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72 6d 61   name as a perma
8ca0: 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65 61 74  nent table creat
8cb0: 65 64 20 62 79 20 61 20 73 65 70 61 72 61 74 65  ed by a separate
8cc0: 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c   process.</li>.<
8cd0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70 64 61  li>Bug fix: Upda
8ce0: 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20 63 6f  tes to tables co
8cf0: 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54 45  ntaining an INTE
8d00: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
8d10: 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64 65 78  and an.    index
8d20: 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69   could fail.</li
8d30: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
8d40: 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20 7b  Jan 9 (2.2.1)} {
8d50: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e  .<li>Bug fix: An
8d60: 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65 6c 65   attempt to dele
8d70: 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f 77 20  te a single row 
8d80: 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74 68 20  of a table with 
8d90: 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c 61 75  a WHERE.    clau
8da0: 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78 22 20  se of "ROWID=x" 
8db0: 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f 77  when no such row
8dc0: 69 64 20 65 78 69 73 74 73 20 77 61 73 20 63 61  id exists was ca
8dd0: 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e 3c  using an error.<
8de0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8df0: 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61 20 4e  : Passing in a N
8e00: 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64 20 70  ULL as the 3rd p
8e10: 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e 73  arameter to <b>s
8e20: 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e  qlite_open()</b>
8e30: 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65 74  .    would somet
8e40: 69 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f 72  imes cause a cor
8e50: 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  edump.</li>.<li>
8e60: 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20 54 41  Bug fix: DROP TA
8e70: 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20  BLE followed by 
8e80: 61 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 77  a CREATE TABLE w
8e90: 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d  ith the same nam
8ea0: 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68 69 6e  e all.    within
8eb0: 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61   a single transa
8ec0: 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73 69 6e  ction was causin
8ed0: 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c  g a coredump.</l
8ee0: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20  i>.<li>Makefile 
8ef0: 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41 2e 20  updates from A. 
8f00: 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a  Rottmann</li>.}.
8f10: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
8f20: 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c  22 (2.2.0)} {.<l
8f30: 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79 70  i>Columns of typ
8f40: 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  e INTEGER PRIMAR
8f50: 59 20 4b 45 59 20 61 72 65 20 61 63 74 75 61 6c  Y KEY are actual
8f60: 6c 79 20 75 73 65 64 20 61 73 20 74 68 65 20 70  ly used as the p
8f70: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 20 69  rimary.    key i
8f80: 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d 54  n underlying B-T
8f90: 72 65 65 20 72 65 70 72 65 73 65 6e 74 61 74 69  ree representati
8fa0: 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c 65 2e  on of the table.
8fb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72 61  </li>.<li>Severa
8fc0: 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72 65 6c  l obscure, unrel
8fd0: 61 74 65 64 20 62 75 67 73 20 77 65 72 65 20 66  ated bugs were f
8fe0: 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64 20 77  ound and fixed w
8ff0: 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65 6d  hile .    implem
9000: 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65 67 65  ented the intege
9010: 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20 63 68  r primary key ch
9020: 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72 65 76  ange of the prev
9030: 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69  ious bullet.</li
9040: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
9050: 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63 69  ability to speci
9060: 66 79 20 22 2a 22 20 61 73 20 70 61 72 74 20 6f  fy "*" as part o
9070: 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c 75 6d  f a larger colum
9080: 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20 74 68  n list in.    th
9090: 65 20 72 65 73 75 6c 74 20 73 65 63 74 69 6f 6e  e result section
90a0: 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73 74 61   of a SELECT sta
90b0: 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78 61  tement.  For exa
90c0: 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e  mple:.    <nobr>
90d0: 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77 69 64  "<b>SELECT rowid
90e0: 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31 3b  , * FROM table1;
90f0: 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c  </b>"</nobr>.</l
9100: 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20 74  i>.<li>Updates t
9110: 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 64  o comments and d
9120: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c  ocumentation.</l
9130: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
9140: 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37 29 7d   Dec 14 (2.1.7)}
9150: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
9160: 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20 54 45   in <b>CREATE TE
9170: 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f 62  MPORARY TABLE</b
9180: 3e 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  > which was caus
9190: 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61 62 6c  ing the.    tabl
91a0: 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c 6c  e to be initiall
91b0: 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20 74  y allocated in t
91c0: 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65  he main database
91d0: 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a 20 20   file instead.  
91e0: 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65 70 61    of in the sepa
91f0: 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20 66  rate temporary f
9200: 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67 20 63  ile.  This bug c
9210: 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65 20 6c  ould cause the l
9220: 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 73 75  ibrary.    to su
9230: 66 66 65 72 20 61 6e 20 61 73 73 65 72 74 69 6f  ffer an assertio
9240: 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20 69 74  n failure and it
9250: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22 70 61   could cause "pa
9260: 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74 68 65  ge leaks" in the
9270: 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61  .    main databa
9280: 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78  se file..<li>Fix
9290: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 62 2d   a bug in the b-
92a0: 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 20 74  tree subsystem t
92b0: 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74 69  hat could someti
92c0: 6d 65 73 20 63 61 75 73 65 20 74 68 65 20 66 69  mes cause the fi
92d0: 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66 20 61  rst.    row of a
92e0: 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72 65 70   table to be rep
92f0: 65 61 74 65 64 20 64 75 72 69 6e 67 20 61 20 64  eated during a d
9300: 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f 6c  atabase scan.</l
9310: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
9320: 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36 29 7d   Dec 14 (2.1.6)}
9330: 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6c   {.<li>Fix the l
9340: 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73 6d  ocking mechanism
9350: 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20 70 72   yet again to pr
9360: 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71 6c  event.    <b>sql
9370: 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 66  ite_exec()</b> f
9380: 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20 53 51  rom returning SQ
9390: 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20  LITE_PROTOCOL.  
93a0: 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e    unnecessarily.
93b0: 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65 20    This time the 
93c0: 62 75 67 20 77 61 73 20 61 20 72 61 63 65 20 63  bug was a race c
93d0: 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20 20  ondition in.    
93e0: 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65  the locking code
93f0: 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65 20 65  .  This change e
9400: 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f 53 49  ffects both POSI
9410: 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 75 73  X and Windows us
9420: 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ers.</li>.}..chn
9430: 67 20 7b 32 30 30 31 20 44 65 63 20 36 20 28 32  g {2001 Dec 6 (2
9440: 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.5)} {.<li>Fix
9450: 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70 72 6f   for another pro
9460: 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65 64 20  blem (unrelated 
9470: 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78 65 64  to the one fixed
9480: 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20 20   in 2.1.4) .    
9490: 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73 20 63  that sometimes c
94a0: 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f  auses <b>sqlite_
94b0: 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72 65  exec()</b> to re
94c0: 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54  turn SQLITE_PROT
94d0: 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73  OCOL.    unneces
94e0: 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69  sarily.  This ti
94f0: 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 0a 20  me the bug was. 
9500: 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49 58 20     in the POSIX 
9510: 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e 64  locking code and
9520: 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66 65   should not effe
9530: 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65 72 73  ct windows users
9540: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9550: 32 30 30 31 20 44 65 63 20 34 20 28 32 2e 31 2e  2001 Dec 4 (2.1.
9560: 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69  4)} {.<li>Someti
9570: 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78  mes <b>sqlite_ex
9580: 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20 72  ec()</b> would r
9590: 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f  eturn SQLITE_PRO
95a0: 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20 20  TOCOL when it.  
95b0: 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65    should have re
95c0: 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f 42 55  turned SQLITE_BU
95d0: 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  SY.</li>.<li>The
95e0: 20 66 69 78 20 74 6f 20 74 68 65 20 70 72 65 76   fix to the prev
95f0: 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76 65 72  ious bug uncover
9600: 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20 77 68  ed a deadlock wh
9610: 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20 20 20  ich was also.   
9620: 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69   fixed.</li>.<li
9630: 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79  >Add the ability
9640: 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67 6c 65   to put a single
9650: 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65   .command in the
9660: 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74   second argument
9670: 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71 6c 69  .    of the sqli
9680: 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c  te shell</li>.<l
9690: 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68 65  i>Updates to the
96a0: 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e   FAQ</li>.}..chn
96b0: 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33 20 28  g {2001 Nov 23 (
96c0: 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.3)} {.<li>Fi
96d0: 78 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f  x the behavior o
96e0: 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65  f comparison ope
96f0: 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65 78 3a  rators .    (ex:
9700: 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22   "<b>&lt</b>", "
9710: 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e  <b>==</b>", etc.
9720: 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20 74 68  ).    so that th
9730: 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e  ey are consisten
9740: 74 20 77 69 74 68 20 74 68 65 20 6f 72 64 65 72  t with the order
9750: 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61   of entries in a
9760: 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c  n index.</li>.<l
9770: 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64 6c 69  i>Correct handli
9780: 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73 20 69  ng of integers i
9790: 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f 6e  n SQL expression
97a0: 73 20 74 68 61 74 20 61 72 65 20 6c 61 72 67 65  s that are large
97b0: 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61 74 20  r than.    what 
97c0: 63 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e 74  can be represent
97d0: 65 64 20 62 79 20 74 68 65 20 6d 61 63 68 69 6e  ed by the machin
97e0: 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a  e integer.</li>.
97f0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
9800: 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b 0a  v 22 (2.1.2)} {.
9810: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 73  <li>Changes to s
9820: 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20 61 72  upport 64-bit ar
9830: 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69  chitectures.</li
9840: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
9850: 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70  in the locking p
9860: 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  rotocol.</li>.<l
9870: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
9880: 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79 29 20   could (rarely) 
9890: 63 61 75 73 65 20 74 68 65 20 64 61 74 61 62 61  cause the databa
98a0: 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20 20  se to become .  
98b0: 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61 66 74    unreadable aft
98c0: 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c 45 20  er a DROP TABLE 
98d0: 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74 69 6f  due to corruptio
98e0: 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54 45 5f  n to the SQLITE_
98f0: 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62 6c 65  MASTER.    table
9900: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
9910: 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20 74 68  e the code so th
9920: 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e 31  at version 2.1.1
9930: 20 64 61 74 61 62 61 73 65 73 20 74 68 61 74 20   databases that 
9940: 77 65 72 65 20 72 65 6e 64 65 72 65 64 20 0a 20  were rendered . 
9950: 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 62 79     unreadable by
9960: 20 74 68 65 20 61 62 6f 76 65 20 62 75 67 20 63   the above bug c
9970: 61 6e 20 62 65 20 72 65 61 64 20 62 79 20 74 68  an be read by th
9980: 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20  is version of.  
9990: 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 65 76    the library ev
99a0: 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 53 51  en though the SQ
99b0: 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62 6c  LITE_MASTER tabl
99c0: 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79 29 0a  e is (slightly).
99d0: 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e 3c 2f      corrupted.</
99e0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
99f0: 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31 29  1 Nov 13 (2.1.1)
9a00: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
9a10: 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62 69 74   Sometimes arbit
9a20: 72 61 72 79 20 73 74 72 69 6e 67 73 20 77 65 72  rary strings wer
9a30: 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20  e passed to the 
9a40: 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e  callback.    fun
9a50: 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61  ction when the a
9a60: 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61  ctual value of a
9a70: 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c   column was NULL
9a80: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9a90: 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31  2001 Nov 12 (2.1
9aa0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
9ab0: 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  e the format of 
9ac0: 64 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20  data records so 
9ad0: 74 68 61 74 20 72 65 63 6f 72 64 73 20 75 70 20  that records up 
9ae0: 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a  to 16MB in size.
9af0: 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65      can be store
9b00: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  d.</li>.<li>Chan
9b10: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
9b20: 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f   indices to allo
9b30: 77 20 66 6f 72 20 62 65 74 74 65 72 20 71 75 65  w for better que
9b40: 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e  ry optimization.
9b50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d  </li>.<li>Implem
9b60: 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e  ent the "LIMIT .
9b70: 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63  .. OFFSET ..." c
9b80: 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20  lause on SELECT 
9b90: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
9ba0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
9bb0: 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a  ov 3 (2.0.8)} {.
9bc0: 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65  <li>Made selecte
9bd0: 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20  d parameters in 
9be0: 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62  API functions <b
9bf0: 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73  >const</b>. This
9c00: 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66   should.    be f
9c10: 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63  ully backwards c
9c20: 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a  ompatible.</li>.
9c30: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
9c40: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
9c50: 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20  li>Simplify the 
9c60: 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44  design of the VD
9c70: 42 45 20 62 79 20 72 65 73 74 72 69 63 74 69 6e  BE by restrictin
9c80: 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  g the number of 
9c90: 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20  sorters.    and 
9ca0: 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20  lists to 1..    
9cb0: 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20  In practice, no 
9cc0: 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f  more than one so
9cd0: 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73  rter and one lis
9ce0: 74 20 77 61 73 20 65 76 65 72 20 75 73 65 64 20  t was ever used 
9cf0: 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69  anyhow..    </li
9d00: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9d10: 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20  Oct 21 (2.0.7)} 
9d20: 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20  {.<li>Any UTF-8 
9d30: 63 68 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f  character or ISO
9d40: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 20 63  8859 character c
9d50: 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 70 61  an be used as pa
9d60: 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65  rt of.    an ide
9d70: 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  ntifier.</li>.<l
9d80: 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43  i>Patches from C
9d90: 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20  hristian Werner 
9da0: 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20  to improve ODBC 
9db0: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e  compatibility an
9dc0: 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62  d to.    fix a b
9dd0: 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28  ug in the round(
9de0: 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  ) function.</li>
9df0: 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d  .<li>Plug some m
9e00: 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74  emory leaks that
9e10: 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66   use to occur if
9e20: 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64   malloc() failed
9e30: 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20 62 65  ..    We have be
9e40: 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20  en and continue 
9e50: 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61  to be memory lea
9e60: 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61  k free as long a
9e70: 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77  s.    malloc() w
9e80: 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  orks.</li>.<li>C
9e90: 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74  hanges to some t
9ea0: 65 73 74 20 73 63 72 69 70 74 73 20 73 6f 20 74  est scripts so t
9eb0: 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e  hat they work on
9ec0: 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20   Windows in.    
9ed0: 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78  addition to Unix
9ee0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9ef0: 32 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30  2001 Oct 19 (2.0
9f00: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .6)} {.<li>Added
9f10: 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c   the EMPTY_RESUL
9f20: 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67  T_CALLBACKS prag
9f30: 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  ma</li>.<li>Supp
9f40: 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e  ort for UTF-8 an
9f50: 64 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63  d ISO8859 charac
9f60: 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61  ters in column a
9f70: 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c  nd table names.<
9f80: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
9f90: 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63  : Compute correc
9fa0: 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69  t table names wi
9fb0: 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55  th the FULL_COLU
9fc0: 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a  MN_NAMES pragma.
9fd0: 20 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e      is turned on
9fe0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9ff0: 32 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30  2001 Oct 14 (2.0
a000: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .5)} {.<li>Added
a010: 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47   the COUNT_CHANG
a020: 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  ES pragma.</li>.
a030: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
a040: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
a050: 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68  AMES pragma to h
a060: 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43  elp out the ODBC
a070: 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   driver.</li>.<l
a080: 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45  i>Bug fix: "SELE
a090: 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73  CT count(*)" was
a0a0: 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20   returning NULL 
a0b0: 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73  for empty tables
a0c0: 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74  ..    Now it ret
a0d0: 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  urns 0.</li>.}..
a0e0: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
a0f0: 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69  3 (2.0.4)} {.<li
a100: 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 6f 62 73  >Bug fix: an obs
a110: 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76  cure and relativ
a120: 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67  ely harmless bug
a130: 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65   was causing one
a140: 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73 74   of.    the test
a150: 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67  s to fail when g
a160: 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  cc optimizations
a170: 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20   are turned on. 
a180: 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20   This release.  
a190: 20 20 66 69 78 65 73 20 74 68 65 20 70 72 6f 62    fixes the prob
a1a0: 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  lem.</li>.}..chn
a1b0: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28  g {2001 Oct 13 (
a1c0: 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.0.3)} {.<li>Bu
a1d0: 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71  g fix: the <b>sq
a1e0: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
a1f0: 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  t()</b> function
a200: 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30   was delaying 10
a210: 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f  00.    times too
a220: 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69   long before fai
a230: 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ling.</li>.<li>B
a240: 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72  ug fix: an asser
a250: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
a260: 20 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c   if the disk hol
a270: 64 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73  ding the databas
a280: 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d  e.    file becam
a290: 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65  e full or stoppe
a2a0: 64 20 61 63 63 65 70 74 69 6e 67 20 77 72 69 74  d accepting writ
a2b0: 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65  es for some othe
a2c0: 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65  r reason..    Ne
a2d0: 77 20 74 65 73 74 73 20 77 65 72 65 20 61 64 64  w tests were add
a2e0: 65 64 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d  ed to detect sim
a2f0: 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e  ilar problems in
a300: 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69   the future.</li
a310: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20  >.<li>Added new 
a320: 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61  operators: <b>&a
a330: 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65  mp;</b> (bitwise
a340: 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f  -and).    <b>|</
a350: 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c  b> (bitwise-or),
a360: 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d   <b>~</b> (ones-
a370: 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20  complement),.   
a380: 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e   <b>&lt;&lt;</b>
a390: 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c   (shift left), <
a3a0: 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28  b>&gt;&gt;</b> (
a3b0: 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c  shift right).</l
a3c0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
a3d0: 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72   functions: <b>r
a3e0: 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c  ound()</b> and <
a3f0: 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69  b>abs()</b>.</li
a400: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a410: 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b  Oct 9 (2.0.2)} {
a420: 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67  .<li>Fix two bug
a430: 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  s in the locking
a440: 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65   protocol.  (One
a450: 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65   was masking the
a460: 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c   other.)</li>.<l
a470: 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75  i>Removed some u
a480: 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20  nused "#include 
a490: 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74  <unistd.h>" that
a4a0: 20 77 65 72 65 20 63 61 75 73 69 6e 67 20 70 72   were causing pr
a4b0: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56  oblems.    for V
a4c0: 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  C++.</li>.<li>Fi
a4d0: 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c  xed <b>sqlite.h<
a4e0: 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69  /b> so that it i
a4f0: 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b  s usable from C+
a500: 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  +</li>.<li>Added
a510: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
a520: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20  _NAMES pragma.  
a530: 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22  When set to "ON"
a540: 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20  , the names of. 
a550: 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72     columns are r
a560: 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20  eported back as 
a570: 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73  TABLE.COLUMN ins
a580: 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c  tead of just COL
a590: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
a5a0: 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e  ded the TABLE_IN
a5b0: 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49  FO() and INDEX_I
a5c0: 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f  NFO() pragmas to
a5d0: 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68   help support th
a5e0: 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72  e.    ODBC inter
a5f0: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  face.</li>.<li>A
a600: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
a610: 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65   TEMPORARY table
a620: 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f  s and indices.</
a630: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
a640: 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d  1 Oct 2 (2.0.1)}
a650: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f   {.<li>Remove so
a660: 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d  me C++ style com
a670: 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65  ments from btree
a680: 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20 77 69  .c so that it wi
a690: 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75  ll compile.    u
a6a0: 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f  sing compilers o
a6b0: 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f  ther than gcc.</
a6c0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75  li>.<li>The ".du
a6d0: 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  mp" output from 
a6e0: 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e  the shell does n
a6f0: 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65  ot work if there
a700: 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20   are embedded.  
a710: 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68    newlines anywh
a720: 65 72 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e  ere in the data.
a730: 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64    This is an old
a740: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
a750: 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72  rried.    forwar
a760: 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31  d from version 1
a770: 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20  .0.  To fix it, 
a780: 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70  the ".dump" outp
a790: 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20  ut no longer.   
a7a0: 20 75 73 65 73 20 74 68 65 20 43 4f 50 59 20 63   uses the COPY c
a7b0: 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74  ommand.  It inst
a7c0: 65 61 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e  ead generates IN
a7d0: 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e  SERT statements.
a7e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64  </li>.<li>Extend
a7f0: 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20   the expression 
a800: 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72  syntax to suppor
a810: 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c  t "expr NOT NULL
a820: 22 20 28 77 69 74 68 20 61 0a 20 20 20 20 73 70  " (with a.    sp
a830: 61 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20  ace between the 
a840: 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e  "NOT" and the "N
a850: 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f  ULL") in additio
a860: 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55  n to "expr NOTNU
a870: 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f  LL".    (with no
a880: 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a   space).</li>.}.
a890: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
a8a0: 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c  28 (2.0.0)} {.<l
a8b0: 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  i>Automatically 
a8c0: 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66  build binaries f
a8d0: 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e  or Linux and Win
a8e0: 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68 65  dows and put the
a8f0: 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62  m on.    the web
a900: 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  site.</li>.}..ch
a910: 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38 20  ng {2001 Sep 28 
a920: 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b  (2.0-alpha-4)} {
a930: 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65  .<li>Incorporate
a940: 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65   makefile patche
a950: 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61  s form A. Rottma
a960: 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f  nn to use LIBTOO
a970: 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  L</li>.}..chng {
a980: 32 30 30 31 20 53 65 70 20 32 37 20 28 32 2e 30  2001 Sep 27 (2.0
a990: 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69  -alpha-3)} {.<li
a9a0: 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f  >SQLite now hono
a9b0: 72 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65  rs the UNIQUE ke
a9c0: 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20  yword in CREATE 
a9d0: 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50  UNIQUE INDEX.  P
a9e0: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20  rimary.    keys 
a9f0: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20  are required to 
aa00: 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a  be unique.</li>.
aa10: 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20  <li>File format 
aa20: 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20  changed back to 
aa30: 77 68 61 74 20 69 74 20 77 61 73 20 66 6f 72 20  what it was for 
aa40: 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69  alpha-1</li>.<li
aa50: 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f  >Fixes to the ro
aa60: 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69  llback and locki
aa70: 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e  ng behavior</li>
aa80: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
aa90: 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61  ep 20 (2.0-alpha
aaa0: 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69  -2)} {.<li>Initi
aab0: 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65  al release of ve
aac0: 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20  rsion 2.0.  The 
aad0: 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67  idea of renaming
aae0: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
aaf0: 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20   to "SQLus" was 
ab00: 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76  abandoned in fav
ab10: 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68  or of keeping th
ab20: 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20  e "SQLite" name 
ab30: 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20  and.    bumping 
ab40: 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f  the major versio
ab50: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
ab60: 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64  li>The pager and
ab70: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
ab80: 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68  s added back. Th
ab90: 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f  ey are now the o
aba0: 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c  nly.    availabl
abb0: 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a  e backend.</li>.
abc0: 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62 73  <li>The Dbbe abs
abd0: 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65  traction and the
abe0: 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79   GDBM and memory
abf0: 20 64 72 69 76 65 72 73 20 77 65 72 65 20 72 65   drivers were re
ac00: 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  moved.</li>.<li>
ac10: 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c  Copyright on all
ac20: 20 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61   code was discla
ac30: 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61  imed.  The libra
ac40: 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65  ry is now in the
ac50: 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61  .    public doma
ac60: 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  in.</li>.}..chng
ac70: 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31   {2001 Jul 23 (1
ac80: 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61  .0.32)} {.<li>Pa
ac90: 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75  ger and btree su
aca0: 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64  bsystems removed
acb0: 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65  .  These will be
acc0: 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f   used in a follo
acd0: 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72  w-on.    SQL ser
ace0: 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65  ver library name
acf0: 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a  d "SQLus".</li>.
ad00: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
ad10: 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65  ity to use quote
ad20: 64 20 73 74 72 69 6e 67 73 20 61 73 20 74 61 62  d strings as tab
ad30: 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61  le and column na
ad40: 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65  mes in.    expre
ad50: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ssions.</li>.}..
ad60: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31  chng {2001 Apr 1
ad70: 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c  4 (1.0.31)} {.<l
ad80: 69 3e 50 61 67 65 72 20 73 75 62 73 79 73 74 65  i>Pager subsyste
ad90: 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20  m added but not 
ada0: 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c  yet used.</li>.<
adb0: 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68  li>More robust h
adc0: 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f  andling of out-o
add0: 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e  f-memory errors.
ade0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65  </li>.<li>New te
adf0: 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65  sts added to the
ae00: 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69   test suite.</li
ae10: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
ae20: 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20  Apr 6 (1.0.30)} 
ae30: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65  {.<li>Remove the
ae40: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64   <b>sqlite_encod
ae50: 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69  ing</b> TCL vari
ae60: 61 62 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e  able that was in
ae70: 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20  troduced.    in 
ae80: 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 65 72  the previous ver
ae90: 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sion.</li>.<li>A
aea0: 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65  dd options <b>-e
aeb0: 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20  ncoding</b> and 
aec0: 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66  <b>-tcl-uses-utf
aed0: 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20  </b> to the.    
aee0: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43  <b>sqlite</b> TC
aef0: 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  L command.</li>.
af00: 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f  <li>Add tests to
af10: 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20   make sure that 
af20: 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f  tclsqlite was co
af30: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c  mpiled using Tcl
af40: 20 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65   header.    file
af50: 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20  s and libraries 
af60: 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e  that match.</li>
af70: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
af80: 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b  pr 5 (1.0.29)} {
af90: 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79  .<li>The library
afa0: 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74   now assumes dat
afb0: 61 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 55  a is stored as U
afc0: 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e  TF-8 if the --en
afd0: 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70  able-utf8.    op
afe0: 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f  tion is given to
aff0: 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65   configure.  The
b000: 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f   default behavio
b010: 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20  r is to assume. 
b020: 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73     iso8859-x, as
b030: 20 69 74 20 68 61 73 20 61 6c 77 61 79 73 20 64   it has always d
b040: 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20  one.  This only 
b050: 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e  makes a differen
b060: 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20  ce for.    LIKE 
b070: 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f  and GLOB operato
b080: 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54  rs and the LENGT
b090: 48 20 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e  H and SUBSTR fun
b0a0: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
b0b0: 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20  >If the library 
b0c0: 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65  is not configure
b0d0: 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  d for UTF-8 and 
b0e0: 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a  the Tcl library.
b0f0: 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68      is one of th
b100: 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61  e newer ones tha
b110: 74 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74  t uses UTF-8 int
b120: 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65  ernally,.    the
b130: 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66  n a conversion f
b140: 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f  rom UTF-8 to iso
b150: 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63  8859 and.    bac
b160: 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20  k again is done 
b170: 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20 69  inside the TCL i
b180: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
b190: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
b1a0: 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c   4 (1.0.28)} {.<
b1b0: 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64  li>Added limited
b1c0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61   support for tra
b1d0: 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74  nsactions.  At t
b1e0: 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73  his point, trans
b1f0: 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c  actions.    will
b200: 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e   do table lockin
b210: 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61  g on the GDBM ba
b220: 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73  ckend.  There is
b230: 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74   no support (yet
b240: 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61  ).    for rollba
b250: 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d  ck or atomic com
b260: 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mit.</li>.<li>Ad
b270: 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75  ded special colu
b280: 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20  mn names ROWID, 
b290: 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f  OID, and _ROWID_
b2a0: 20 74 68 61 74 20 72 65 66 65 72 20 74 6f 20 74   that refer to t
b2b0: 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61  he.    unique ra
b2c0: 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79  ndom integer key
b2d0: 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68   associated with
b2e0: 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76   every row of ev
b2f0: 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ery table.</li>.
b300: 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74  <li>Additional t
b310: 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68  ests added to th
b320: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69  e regression sui
b330: 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20  te to cover the 
b340: 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65  new ROWID.    fe
b350: 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 54 43  ature and the TC
b360: 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75 67 73  L interface bugs
b370: 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77   mentioned below
b380: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
b390: 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e  es to the "lemon
b3a0: 22 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74  " parser generat
b3b0: 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f  or to help it wo
b3c0: 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20  rk better when. 
b3d0: 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e     compiled usin
b3e0: 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  g MSVC.</li>.<li
b3f0: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
b400: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20  e TCL interface 
b410: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c  identified by Ol
b420: 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69  eg Oleinick.</li
b430: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
b440: 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d  Mar 20 (1.0.27)}
b450: 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e   {.<li>When doin
b460: 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44  g DELETE and UPD
b470: 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79  ATE, the library
b480: 20 75 73 65 64 20 74 6f 20 77 72 69 74 65 20 74   used to write t
b490: 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75  he record.    nu
b4a0: 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73  mbers of records
b4b0: 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f   to be deleted o
b4c0: 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61  r updated into a
b4d0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e   temporary file.
b4e0: 0a 20 20 20 20 54 68 69 73 20 69 73 20 63 68 61  .    This is cha
b4f0: 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74 68 65  nged so that the
b500: 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20   record numbers 
b510: 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f  are held in memo
b520: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
b530: 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20   DELETE command 
b540: 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20  without a WHILE 
b550: 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f  clause just remo
b560: 76 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65  ves the database
b570: 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20  .    files from 
b580: 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72  the disk, rather
b590: 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f   than going thro
b5a0: 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67  ugh and deleting
b5b0: 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72   record.    by r
b5c0: 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ecord.</li>.}..c
b5d0: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30  hng {2001 Mar 20
b5e0: 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69   (1.0.26)} {.<li
b5f0: 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67 20 66  >A serious bug f
b600: 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e  ixed on Windows.
b610: 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20    Windows users 
b620: 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a  should upgrade..
b630: 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f      No impact to
b640: 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   Unix.</li>.}..c
b650: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35  hng {2001 Mar 15
b660: 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69   (1.0.25)} {.<li
b670: 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73 74  >Modify the test
b680: 20 73 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e   scripts to iden
b690: 74 69 66 79 20 74 65 73 74 73 20 74 68 61 74 20  tify tests that 
b6a0: 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d  depend on system
b6b0: 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72  .    load and pr
b6c0: 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e  ocessor speed an
b6d0: 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68  d.    to warn th
b6e0: 65 20 75 73 65 72 20 74 68 61 74 20 61 20 66 61  e user that a fa
b6f0: 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20  ilure of one of 
b700: 74 68 6f 73 65 20 28 72 61 72 65 29 20 74 65 73  those (rare) tes
b710: 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20  ts does.    not 
b720: 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e  necessarily mean
b730: 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   the library is 
b740: 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20  malfunctioning. 
b750: 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20   No changes to. 
b760: 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c     code..    </l
b770: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
b780: 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29   Mar 14 (1.0.24)
b790: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
b7a0: 67 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  g which was caus
b7b0: 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44 41  ing.    the UPDA
b7c0: 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61  TE command to fa
b7d0: 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68  il on systems wh
b7e0: 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20  ere "malloc(0)" 
b7f0: 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c  returns.    NULL
b800: 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64  .  The problem d
b810: 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57  oes not appear W
b820: 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f  indows, Linux, o
b830: 72 20 48 50 55 58 20 62 75 74 20 64 6f 65 73 20  r HPUX but does 
b840: 0a 20 20 20 20 63 61 75 73 65 20 74 68 65 20 6c  .    cause the l
b850: 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f  ibrary to fail o
b860: 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e  n QNX..    </li>
b870: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
b880: 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20  eb 19 (1.0.23)} 
b890: 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74  {.<li>An unrelat
b8a0: 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62  ed (and minor) b
b8b0: 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72  ug from Mark Mur
b8c0: 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54  anwski fixed.  T
b8d0: 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20  he algorithm.   
b8e0: 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75   for figuring ou
b8f0: 74 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74  t where to put t
b900: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66  emporary files f
b910: 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64  or a "memory:" d
b920: 61 74 61 62 61 73 65 0a 20 20 20 20 77 61 73 20  atabase.    was 
b930: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74  not working quit
b940: 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c  e right..    </l
b950: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
b960: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29   Feb 19 (1.0.22)
b970: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76  } {.<li>The prev
b980: 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74  ious fix was not
b990: 20 71 75 69 74 65 20 72 69 67 68 74 2e 20 20 54   quite right.  T
b9a0: 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f  his one seems to
b9b0: 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20   work better..  
b9c0: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
b9d0: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
b9e0: 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.21)} {.<li>The
b9f0: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
ba00: 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e  t was not workin
ba10: 67 20 77 68 65 6e 20 74 68 65 20 57 48 45 52 45  g when the WHERE
ba20: 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65   clause containe
ba30: 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73  d.    some terms
ba40: 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73   that could be s
ba50: 61 74 69 73 66 69 65 64 20 75 73 69 6e 67 20 69  atisfied using i
ba60: 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72  ndices and other
ba70: 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20   terms that.    
ba80: 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65  could not.  Fixe
ba90: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
baa0: 7b 32 30 30 31 20 46 65 62 20 31 31 20 28 31 2e  {2001 Feb 11 (1.
bab0: 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72  0.20)} {.<li>Mer
bac0: 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63  ge development c
bad0: 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20  hanges into the 
bae0: 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74  main trunk.  Fut
baf0: 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a  ure work toward.
bb00: 20 20 20 20 75 73 69 6e 67 20 61 20 42 54 72 65      using a BTre
bb10: 65 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65  e file structure
bb20: 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61   will use a sepa
bb30: 72 61 74 65 20 43 56 53 20 73 6f 75 72 63 65 20  rate CVS source 
bb40: 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20  tree.  This.    
bb50: 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f  CVS tree will co
bb60: 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72  ntinue to suppor
bb70: 74 20 74 68 65 20 47 44 42 4d 20 76 65 72 73 69  t the GDBM versi
bb80: 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c  on of SQLite onl
bb90: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
bba0: 7b 32 30 30 31 20 46 65 62 20 36 20 28 31 2e 30  {2001 Feb 6 (1.0
bbb0: 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .19)} {.<li>Fix 
bbc0: 61 20 73 74 72 61 6e 67 65 20 28 62 75 74 20 76  a strange (but v
bbd0: 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61 74  alid) C declarat
bbe0: 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61 75  ion that was cau
bbf0: 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20  sing problems.  
bc00: 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c    for QNX.  No l
bc10: 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c  ogical changes.<
bc20: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
bc30: 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38  01 Jan 4 (1.0.18
bc40: 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74  )} {.<li>Print t
bc50: 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c  he offending SQL
bc60: 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20   statement when 
bc70: 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e  an error occurs.
bc80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
bc90: 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20   require commas 
bca0: 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69  between constrai
bcb0: 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20 54 41  nts in CREATE TA
bcc0: 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  BLE statements.<
bcd0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
bce0: 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f  he "-echo" optio
bcf0: 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c  n to the shell.<
bd00: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
bd10: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c   to comments.</l
bd20: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
bd30: 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29   Dec 10 (1.0.17)
bd40: 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20  } {.<li>Rewrote 
bd50: 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65  <b>sqlite_comple
bd60: 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65  te()</b> to make
bd70: 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e   it faster.</li>
bd80: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b  .<li>Minor tweak
bd90: 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20  s to other code 
bda0: 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61  to make it run a
bdb0: 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c   little faster.<
bdc0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
bdd0: 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e  ew tests for <b>
bde0: 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28  sqlite_complete(
bdf0: 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65  )</b> and for me
be00: 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e  mory leaks.</li>
be10: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
be20: 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b  ec 4 (1.0.16)} {
be30: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
be40: 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73  on updates.  Mos
be50: 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79  tly fixing of ty
be60: 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67  pos and spelling
be70: 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a   errors.</li>.}.
be80: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
be90: 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c  23 (1.0.15)} {.<
bea0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
beb0: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
bec0: 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68  i>Some sanity ch
bed0: 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20  ecking code was 
bee0: 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65  removed from the
bef0: 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76   inner loop of v
bf00: 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c  dbe.c.    to hel
bf10: 70 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f  p the library to
bf20: 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
bf30: 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20  ster.  The code 
bf40: 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f  is only.    remo
bf50: 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69  ved if you compi
bf60: 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47  le with -DNDEBUG
bf70: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
bf80: 32 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30  2000 Oct 19 (1.0
bf90: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .14)} {.<li>Adde
bfa0: 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61  d a "memory:" ba
bfb0: 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68 61  ckend driver tha
bfc0: 74 20 73 74 6f 72 65 73 20 69 74 73 20 64 61 74  t stores its dat
bfd0: 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20  abase in an.    
bfe0: 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74  in-memory hash t
bff0: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
c000: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20  ng {2000 Oct 18 
c010: 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.13)} {.<li>
c020: 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44  Break out the GD
c030: 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61  BM driver into a
c040: 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 69   separate file i
c050: 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20  n anticipation. 
c060: 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20     to added new 
c070: 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  drivers.</li>.<l
c080: 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65  i>Allow the name
c090: 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 74   of a database t
c0a0: 6f 20 62 65 20 70 72 65 66 69 78 65 64 20 62 79  o be prefixed by
c0b0: 20 74 68 65 20 64 72 69 76 65 72 20 74 79 70 65   the driver type
c0c0: 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74  ..    For now, t
c0d0: 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74  he only driver t
c0e0: 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c  ype is "gdbm:".<
c0f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
c100: 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31  00 Oct 16 (1.0.1
c110: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20  2)} {.<li>Fixed 
c120: 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72  an off-by-one er
c130: 72 6f 72 20 74 68 61 74 20 77 61 73 20 63 61 75  ror that was cau
c140: 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20  sing a coredump 
c150: 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71 27  in .    the '%q'
c160: 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76   format directiv
c170: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
c180: 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70   <b>sqlite_..._p
c190: 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74  rintf()</b> rout
c1a0: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ines.</li>.<li>A
c1b0: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
c1c0: 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f  te_interrupt()</
c1d0: 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
c1e0: 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68  i>.<li>In the sh
c1f0: 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69  ell, <b>sqlite_i
c200: 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69  nterrupt()</b> i
c210: 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74  s invoked when t
c220: 68 65 0a 20 20 20 20 75 73 65 72 20 70 72 65 73  he.    user pres
c230: 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c  ses Control-C</l
c240: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d  i>.<li>Fixed som
c250: 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72  e instances wher
c260: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  e <b>sqlite_exec
c270: 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72  ()</b> was.    r
c280: 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f  eturning the wro
c290: 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f  ng error code.</
c2a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c2b0: 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30  0 Oct 11 (1.0.10
c2c0: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  )} {.<li>Added n
c2d0: 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63  otes on how to c
c2e0: 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f  ompile for Windo
c2f0: 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c  ws95/98.</li>.<l
c300: 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20  i>Removed a few 
c310: 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 77  variables that w
c320: 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73  ere not being us
c330: 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d  ed.  Etc.</li>.}
c340: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
c350: 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c   8 (1.0.9)} {.<l
c360: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
c370: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
c380: 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65  ()</b> interface
c390: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
c3a0: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
c3b0: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
c3c0: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
c3d0: 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65  use the new inte
c3e0: 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69  rface .    routi
c3f0: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  nes.</li>.<li>Mo
c400: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
c410: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
c420: 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20  rogram to print 
c430: 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20  the schema for. 
c440: 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20     the built-in 
c450: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
c460: 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74  ble, if explicit
c470: 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c  ly requested.</l
c480: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
c490: 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d   Sep 30 (1.0.8)}
c4a0: 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69   {.<li>Begin wri
c4b0: 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69  ting documentati
c4c0: 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e  on on the TCL in
c4d0: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
c4e0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
c4f0: 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64  29 (Not Released
c500: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
c510: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74  he <b>sqlite_get
c520: 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49  _table()</b> API
c530: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
c540: 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  d the documentat
c550: 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74  ion for due to t
c560: 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e  he above change.
c570: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
c580: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
c590: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61  </b> shell to ma
c5a0: 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65  ke use of the ne
c5b0: 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74  w.    sqlite_get
c5c0: 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20  _table() API in 
c5d0: 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61  order to print a
c5e0: 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a   list of tables.
c5f0: 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20      in multiple 
c600: 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72  columns, similar
c610: 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22   to the way "ls"
c620: 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65   prints filename
c630: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
c640: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
c650: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20  te</b> shell to 
c660: 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f  print a semicolo
c670: 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64  n at the.    end
c680: 20 6f 66 20 65 61 63 68 20 43 52 45 41 54 45 20   of each CREATE 
c690: 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65  statement in the
c6a0: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 22   output of the "
c6b0: 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64  .schema" command
c6c0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c6d0: 32 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74  2000 Sep 21 (Not
c6e0: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
c6f0: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c  i>Change the tcl
c700: 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65  sqlite "eval" me
c710: 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61  thod to return a
c720: 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73   list of results
c730: 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62   if.    no callb
c740: 61 63 6b 20 73 63 72 69 70 74 20 69 73 20 73 70  ack script is sp
c750: 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  ecified.</li>.<l
c760: 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69  i>Change tclsqli
c770: 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20  te.c to use the 
c780: 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63  Tcl_Obj interfac
c790: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  e</li>.<li>Add t
c7a0: 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68  clsqlite.c to th
c7b0: 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69  e libsqlite.a li
c7c0: 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  brary</li>.}..ch
c7d0: 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31 33 20  ng {2000 Sep 13 
c7e0: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d  (Version 1.0.5)}
c7f0: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74   {.<li>Changed t
c800: 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20  he print format 
c810: 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  for floating poi
c820: 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22  nt values from "
c830: 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a  %g" to "%.15g"..
c840: 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68      </li>.<li>Ch
c850: 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72  anged the compar
c860: 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f  ison function so
c870: 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e   that numbers in
c880: 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74   exponential not
c890: 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31  ation.    (ex: 1
c8a0: 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69  .234e+05) sort i
c8b0: 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65  n numerical orde
c8c0: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
c8d0: 7b 32 30 30 30 20 41 75 67 20 32 38 20 28 56 65  {2000 Aug 28 (Ve
c8e0: 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a  rsion 1.0.4)} {.
c8f0: 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69  <li>Added functi
c900: 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c  ons <b>length()<
c910: 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74  /b> and <b>subst
c920: 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  r()</b>.</li>.<l
c930: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
c940: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
c950: 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
c960: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a  hat was causing.
c970: 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77      a coredump w
c980: 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d  hen the output m
c990: 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22  ode was "column"
c9a0: 20 61 6e 64 20 74 68 65 20 66 69 72 73 74 20 72   and the first r
c9b0: 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63  ow.    of data c
c9c0: 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e  ontained a NULL.
c9d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c9e0: 30 30 30 20 41 75 67 20 32 32 20 28 56 65 72 73  000 Aug 22 (Vers
c9f0: 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c  ion 1.0.3)} {.<l
ca00: 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20  i>In the sqlite 
ca10: 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65  shell, print the
ca20: 20 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65   "Database opene
ca30: 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73  d READ ONLY" mes
ca40: 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65  sage.    to stde
ca50: 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74  rr instead of st
ca60: 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  dout.</li>.<li>I
ca70: 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  n the sqlite she
ca80: 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68  ll, now print th
ca90: 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  e version number
caa0: 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72   on initial star
cab0: 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tup.</li>.<li>Ad
cac0: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
cad0: 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74  version[]</b> st
cae0: 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f  ring constant to
caf0: 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69   the library</li
cb00: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
cb10: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
cb20: 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65  Bug fix: incorre
cb30: 63 74 20 56 44 42 45 20 63 6f 64 65 20 77 61 73  ct VDBE code was
cb40: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
cb50: 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69   for the followi
cb60: 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61  ng.    circumsta
cb70: 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20  nce: a query on 
cb80: 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65  an indexed table
cb90: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48   containing a WH
cba0: 45 52 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a  ERE clause with.
cbb0: 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74      an IN operat
cbc0: 6f 72 20 74 68 61 74 20 68 61 64 20 61 20 73 75  or that had a su
cbd0: 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69  bquery on its ri
cbe0: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f  ght-hand side.</
cbf0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
cc00: 30 20 41 75 67 20 31 38 20 28 56 65 72 73 69 6f  0 Aug 18 (Versio
cc10: 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.1)} {.<li>
cc20: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
cc30: 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70   configure scrip
cc40: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f  t.</li>.<li>Mino
cc50: 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74  r revisions to t
cc60: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
cc70: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
cc80: 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31  ug 17 (Version 1
cc90: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
cca0: 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  e the <b>sqlite<
ccb0: 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74  /b> program so t
ccc0: 68 61 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a  hat it can read.
ccd0: 20 20 20 20 64 61 74 61 62 61 73 65 73 20 66 6f      databases fo
cce0: 72 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73  r which it lacks
ccf0: 20 77 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f   write permissio
cd00: 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a  n.  (It used to.
cd10: 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61      refuse all a
cd20: 63 63 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c  ccess if it coul
cd30: 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c  d not write.)</l
cd40: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
cd50: 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72   Aug 9} {.<li>Tr
cd60: 65 61 74 20 63 61 72 72 69 61 67 65 20 72 65 74  eat carriage ret
cd70: 75 72 6e 73 20 61 73 20 77 68 69 74 65 20 73 70  urns as white sp
cd80: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
cd90: 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b  g {2000 Aug 8} {
cda0: 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65  .<li>Added patte
cdb0: 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74  rn matching to t
cdc0: 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d  he ".table" comm
cdd0: 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69  and in the "sqli
cde0: 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c  te".command shel
cdf0: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
ce00: 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c  {2000 Aug 4} {.<
ce10: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
ce20: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
ce30: 69 3e 41 64 64 65 64 20 22 62 75 73 79 22 20 61  i>Added "busy" a
ce40: 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74  nd "timeout" met
ce50: 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20  hods to the Tcl 
ce60: 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d  interface</li>.}
ce70: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
ce80: 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66   3} {.<li>File f
ce90: 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75  ormat version nu
cea0: 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67 20 73  mber was being s
ceb0: 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f  tored in sqlite_
cec0: 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d  master.tcl.    m
ced0: 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54  ultiple times. T
cee0: 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73  his was harmless
cef0: 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72  , but unnecessar
cf00: 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78  y. It is now fix
cf10: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
cf20: 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a   {2000 Aug 2} {.
cf30: 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72  <li>The file for
cf40: 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20  mat for indices 
cf50: 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67  was changed slig
cf60: 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  htly in order to
cf70: 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64   work.    around
cf80: 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79   an inefficiency
cf90: 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69   that can someti
cfa0: 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68  mes come up with
cfb0: 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74   GDBM when.    t
cfc0: 68 65 72 65 20 61 72 65 20 6c 61 72 67 65 20 69  here are large i
cfd0: 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61  ndices having ma
cfe0: 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74 68 20  ny entries with 
cff0: 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20  the same key..  
d000: 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72    <font color="r
d010: 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69  ed">** Incompati
d020: 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66  ble Change **</f
d030: 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ont></li>.}..chn
d040: 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b  g {2000 Aug 1} {
d050: 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27  .<li>The parser'
d060: 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72  s stack was over
d070: 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72  flowing on a ver
d080: 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74  y long UPDATE st
d090: 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69  atement..    Thi
d0a0: 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c  s is now fixed.<
d0b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d0c0: 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c  00 July 31} {.<l
d0d0: 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20  i>Finish the <a 
d0e0: 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22  href="vdbe.html"
d0f0: 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f  >VDBE tutorial</
d100: 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  a>.</li>.<li>Add
d110: 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ed documentation
d120: 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f   on compiling to
d130: 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e   WindowsNT.</li>
d140: 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69  .<li>Fix a confi
d150: 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d  guration program
d160: 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c   for WindowsNT.<
d170: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63  /li>.<li>Fix a c
d180: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f  onfiguration pro
d190: 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f  blem for HPUX.</
d1a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d1b0: 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69  0 July 29} {.<li
d1c0: 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f  >Better labels o
d1d0: 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f  n column names o
d1e0: 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c  f the result.</l
d1f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d200: 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e   July 28} {.<li>
d210: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
d220: 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72  ite_busy_handler
d230: 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20  ()</b> .    and 
d240: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74  <b>sqlite_busy_t
d250: 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74  imeout()</b> int
d260: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
d270: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
d280: 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20  23} {.<li>Begin 
d290: 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68  writing the <a h
d2a0: 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e  ref="vdbe.html">
d2b0: 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61  VDBE tutorial</a
d2c0: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
d2d0: 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b  {2000 June 21} {
d2e0: 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f  .<li>Clean up co
d2f0: 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61  mments and varia
d300: 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e  ble names.  Chan
d310: 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61  ges to documenta
d320: 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e  tion..    No fun
d330: 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20  ctional changes 
d340: 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69  to the code.</li
d350: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
d360: 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43  June 19} {.<li>C
d370: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55  olumn names in U
d380: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73  PDATE statements
d390: 20 77 65 72 65 20 63 61 73 65 20 73 65 6e 73 69   were case sensi
d3a0: 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d  tive..    This m
d3b0: 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62  istake has now b
d3c0: 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  een fixed.</li>.
d3d0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
d3e0: 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ne 16} {.<li>Add
d3f0: 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61  ed the concatena
d400: 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74  te string operat
d410: 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a  or (||)</li>.}..
d420: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
d430: 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  12} {.<li>Added 
d440: 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74  the fcnt() funct
d450: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69  ion to the SQL i
d460: 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54 68 65  nterpreter.  The
d470: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
d480: 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 65  .    returns the
d490: 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62   number of datab
d4a0: 61 73 65 20 22 46 65 74 63 68 22 20 6f 70 65 72  ase "Fetch" oper
d4b0: 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65  ations that have
d4c0: 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54   occurred..    T
d4d0: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20  his function is 
d4e0: 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65  designed for use
d4f0: 20 69 6e 20 74 65 73 74 20 73 63 72 69 70 74 73   in test scripts
d500: 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a   to verify that.
d510: 20 20 20 20 71 75 65 72 69 65 73 20 61 72 65 20      queries are 
d520: 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70  efficient and ap
d530: 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69  propriately opti
d540: 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68  mized.  Fcnt() h
d550: 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20  as no other.    
d560: 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20  useful purpose, 
d570: 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77  as far as I know
d580: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
d590: 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65   a bunch more te
d5a0: 73 74 73 20 74 68 61 74 20 74 61 6b 65 20 61 64  sts that take ad
d5b0: 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e  vantage of the n
d5c0: 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  ew fcnt() functi
d5d0: 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20  on..    The new 
d5e0: 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e  tests did not un
d5f0: 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72  cover any new pr
d600: 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  oblems.</li>.}..
d610: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
d620: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  8} {.<li>Added l
d630: 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20  ots of new test 
d640: 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  cases</li>.<li>F
d650: 69 78 20 61 20 66 65 77 20 62 75 67 73 20 64 69  ix a few bugs di
d660: 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61  scovered while a
d670: 64 64 69 6e 67 20 74 65 73 74 20 63 61 73 65 73  dding test cases
d680: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20  </li>.<li>Begin 
d690: 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e  adding lots of n
d6a0: 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ew documentation
d6b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d6c0: 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c  000 June 6} {.<l
d6d0: 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64  i>Added compound
d6e0: 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72   select operator
d6f0: 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c  s: <B>UNION</b>,
d700: 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42   <b>UNION ALL</B
d710: 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c  >,.<b>INTERSECT<
d720: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45  /b>, and <b>EXCE
d730: 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  PT</b></li>.<li>
d740: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
d750: 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45  r using <b>(SELE
d760: 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68  CT ...)</b> with
d770: 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f  in expressions</
d780: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
d790: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c  pport for <b>IN<
d7a0: 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45  /b> and <b>BETWE
d7b0: 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73  EN</b> operators
d7c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
d7d0: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47  support for <b>G
d7e0: 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20  ROUP BY</b> and 
d7f0: 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c  <b>HAVING</b></l
d800: 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75  i>.<li>NULL valu
d810: 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72  es are now repor
d820: 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ted to the callb
d830: 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f  ack as a NULL po
d840: 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65 72  inter.    rather
d850: 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73   than an empty s
d860: 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tring.</li>.}..c
d870: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33  hng {2000 June 3
d880: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
d890: 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c  pport for defaul
d8a0: 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75  t values on colu
d8b0: 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c  mns of a table.<
d8c0: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
d8d0: 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e  d test coverage.
d8e0: 20 20 46 69 78 65 64 20 61 20 66 65 77 20 6f 62    Fixed a few ob
d8f0: 73 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64  scure bugs found
d900: 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64   by the.improved
d910: 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   tests.</li>.}..
d920: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
d930: 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74  2} {.<li>All dat
d940: 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62  abase files to b
d950: 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e  e modified by an
d960: 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20   UPDATE, INSERT 
d970: 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e  or DELETE are .n
d980: 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65  ow locked before
d990: 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65   any changes are
d9a0: 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c   made to any fil
d9b0: 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73  es.  .This makes
d9c0: 20 69 74 20 73 61 66 65 20 28 49 20 74 68 69 6e   it safe (I thin
d9d0: 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65  k) to access.the
d9e0: 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73   same database s
d9f0: 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72  imultaneously fr
da00: 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63  om multiple proc
da10: 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  esses.</li>.<li>
da20: 54 68 65 20 63 6f 64 65 20 61 70 70 65 61 72 73  The code appears
da30: 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72   stable so we ar
da40: 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74  e now calling it
da50: 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a   "beta".</li>.}.
da60: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
da70: 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72   1} {.<li>Better
da80: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c   support for fil
da90: 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61  e locking so tha
daa0: 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72  t two or more pr
dab0: 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72  ocesses .(or thr
dac0: 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73  eads).can access
dad0: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
dae0: 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c  se simultaneousl
daf0: 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65  y.  More work ne
db00: 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65  eded in.this are
db10: 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a  a, though.</li>.
db20: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
db30: 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  y 31} {.<li>Adde
db40: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67  d support for ag
db50: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
db60: 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28  s (Ex: <b>COUNT(
db70: 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e  *)</b>, <b>MIN(.
db80: 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20  ..)</b>).to the 
db90: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
dba0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
dbb0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e   support for <B>
dbc0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
dbd0: 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a  ...</B></li>.}..
dbe0: 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33  chng {2000 May 3
dbf0: 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  0} {.<li>Added t
dc00: 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f  he <b>LIKE</b> o
dc10: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  perator.</li>.<l
dc20: 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f  i>Added a <b>GLO
dc30: 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20  B</b> operator: 
dc40: 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49  similar to <B>LI
dc50: 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75  KE</B> .but it u
dc60: 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67  ses Unix shell g
dc70: 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64  lobbing wildcard
dc80: 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65  s instead of the
dc90: 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69   '%' .and '_' wi
dca0: 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c  ldcards of SQL.<
dcb0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
dcc0: 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63  he <B>COPY</b> c
dcd0: 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64  ommand patterned
dce0: 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d   after .<a href=
dcf0: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74  "http://www.post
dd00: 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73  gresql.org/">Pos
dd10: 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74  tgreSQL</a> so t
dd20: 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e  hat SQLite.can n
dd30: 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75 74 70  ow read the outp
dd40: 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f  ut of the <b>pg_
dd50: 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73  dump</b> databas
dd60: 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f  e dump utility.o
dd70: 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c  f PostgreSQL.</l
dd80: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c  i>.<li>Added a <
dd90: 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d  B>VACUUM</B> com
dda0: 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74 20 63  mand that that c
ddb0: 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62  alls the .<b>gdb
ddc0: 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f  m_reorganize()</
ddd0: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74  b> function on t
dde0: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61  he underlying da
ddf0: 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c  tabase.files.</l
de00: 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c  i>.<li>And many,
de10: 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e   many bug fixes.
de20: 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ..</li>.}..chng 
de30: 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a  {2000 May 29} {.
de40: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c  <li>Initial Publ
de50: 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c  ic Release of Al
de60: 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a  pha code</li>.}.
de70: 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a  .puts {.</DL>.}.
de80: 66 6f 6f 74 65 72 20 7b 24 49 64 3a 7d 0a        footer {$Id:}.