/ Hex Artifact Content
Login

Artifact 5ec59d711b2c669fa630e3fbfecfed4facb24fc4:


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 44 65  }..chng {2005 De
0250: 63 65 6d 62 65 72 20 31 39 20 28 33 2e 32 2e 38  cember 19 (3.2.8
0260: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  )} {.<li>Fix an 
0270: 6f 62 73 63 75 72 65 20 62 75 67 20 74 68 61 74  obscure bug that
0280: 20 63 61 6e 20 63 61 75 73 65 20 64 61 74 61 62   can cause datab
0290: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 75  ase corruption u
02a0: 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c 6f 77 69  nder the.followi
02b0: 6e 67 20 75 6e 75 73 75 61 6c 20 63 69 72 63 75  ng unusual circu
02c0: 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c 61 72 67  mstances: A larg
02d0: 65 20 49 4e 53 45 52 54 20 6f 72 20 55 50 44 41  e INSERT or UPDA
02e0: 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77 68 69  TE statement whi
02f0: 63 68 20 0a 69 73 20 70 61 72 74 20 6f 66 20 61  ch .is part of a
0300: 6e 20 65 76 65 6e 20 6c 61 72 67 65 72 20 74 72  n even larger tr
0310: 61 6e 73 61 63 74 69 6f 6e 20 66 61 69 6c 73 20  ansaction fails 
0320: 64 75 65 20 74 6f 20 61 20 75 6e 69 71 75 65 6e  due to a uniquen
0330: 65 73 73 20 63 6f 6e 74 72 61 69 6e 74 0a 62 75  ess contraint.bu
0340: 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67  t the containing
0350: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6d   transaction com
0360: 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  mits.</li>.}..ch
0370: 6e 67 20 7b 32 30 30 35 20 53 65 70 74 65 6d 62  ng {2005 Septemb
0380: 65 72 20 32 34 20 28 33 2e 32 2e 37 29 7d 20 7b  er 24 (3.2.7)} {
0390: 0a 3c 6c 69 3e 47 52 4f 55 50 20 42 59 20 6e 6f  .<li>GROUP BY no
03a0: 77 20 63 6f 6e 73 69 64 65 72 73 20 4e 55 4c 4c  w considers NULL
03b0: 73 20 74 6f 20 62 65 20 65 71 75 61 6c 20 61 67  s to be equal ag
03c0: 61 69 6e 2c 20 61 73 20 69 74 20 73 68 6f 75 6c  ain, as it shoul
03d0: 64 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20  d.</li>.<li>Now 
03e0: 63 6f 6d 70 69 6c 65 73 20 6f 6e 20 53 6f 6c 61  compiles on Sola
03f0: 72 69 73 20 61 6e 64 20 4f 70 65 6e 42 53 44 20  ris and OpenBSD 
0400: 61 6e 64 20 6f 74 68 65 72 20 55 6e 69 78 20 76  and other Unix v
0410: 61 72 69 61 6e 74 73 0a 74 68 61 74 20 6c 61 63  ariants.that lac
0420: 6b 20 74 68 65 20 66 64 61 74 61 73 79 6e 63 28  k the fdatasync(
0430: 29 20 66 75 6e 63 74 69 6f 6e 3c 2f 6c 69 3e 0a  ) function</li>.
0440: 3c 6c 69 3e 4e 6f 77 20 63 6f 6d 70 69 6c 65 73  <li>Now compiles
0450: 20 6f 6e 20 4d 53 56 43 2b 2b 36 20 61 67 61 69   on MSVC++6 agai
0460: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 75  n</li>.<li>Fix u
0470: 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72  ninitialized var
0480: 69 61 62 6c 65 73 20 63 61 75 73 69 6e 67 20 6d  iables causing m
0490: 61 6c 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20  alfunctions for 
04a0: 76 61 72 69 6f 75 73 20 6f 62 73 63 75 72 65 0a  various obscure.
04b0: 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  queries</li>.<li
04c0: 3e 43 6f 72 72 65 63 74 6c 79 20 63 6f 6d 70 75  >Correctly compu
04d0: 74 65 20 61 20 4c 45 46 54 20 4f 55 54 45 52 20  te a LEFT OUTER 
04e0: 4a 4f 49 4e 73 20 74 68 61 74 20 69 73 20 63 6f  JOINs that is co
04f0: 6e 73 74 72 61 69 6e 65 64 20 6f 6e 20 74 68 65  nstrained on the
0500: 0a 6c 65 66 74 20 74 61 62 6c 65 20 6f 6e 6c 79  .left table only
0510: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0520: 30 30 35 20 53 65 70 74 65 6d 62 65 72 20 31 37  005 September 17
0530: 20 28 33 2e 32 2e 36 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.6)} {.<li>
0540: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63  Fix a bug that c
0550: 61 6e 20 63 61 75 73 65 20 64 61 74 61 62 61 73  an cause databas
0560: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
0570: 61 20 56 41 43 55 55 4d 20 28 6f 72 0a 20 20 20  a VACUUM (or.   
0580: 20 61 75 74 6f 76 61 63 75 75 6d 29 20 66 61 69   autovacuum) fai
0590: 6c 73 20 61 6e 64 20 69 73 20 72 6f 6c 6c 65 64  ls and is rolled
05a0: 20 62 61 63 6b 20 6f 6e 20 61 20 64 61 74 61 62   back on a datab
05b0: 61 73 65 20 74 68 61 74 20 69 73 0a 20 20 20 20  ase that is.    
05c0: 6c 61 72 67 65 72 20 74 68 61 6e 20 31 47 69 42  larger than 1GiB
05d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 49 4b 45 20 6f  </li>.<li>LIKE o
05e0: 70 74 69 69 7a 61 74 69 6f 6e 20 6e 6f 77 20 77  ptiization now w
05f0: 6f 72 6b 73 20 66 6f 72 20 63 6f 6c 75 6d 6e 73  orks for columns
0600: 20 77 69 74 68 20 43 4f 4c 4c 41 54 45 20 4e 4f   with COLLATE NO
0610: 43 41 53 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52  CASE</li>.<li>OR
0620: 44 45 52 20 42 59 20 61 6e 64 20 47 52 4f 55 50  DER BY and GROUP
0630: 20 42 59 20 6e 6f 77 20 75 73 65 20 62 6f 75 6e   BY now use boun
0640: 64 65 64 20 6d 65 6d 6f 72 79 3c 2f 6c 69 3e 0a  ded memory</li>.
0650: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
0660: 74 20 66 6f 72 20 43 4f 55 4e 54 28 44 49 53 54  t for COUNT(DIST
0670: 49 4e 43 54 20 65 78 70 72 29 3c 2f 6c 69 3e 0a  INCT expr)</li>.
0680: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 77  <li>Change the w
0690: 61 79 20 53 55 4d 28 29 20 68 61 6e 64 6c 65 73  ay SUM() handles
06a0: 20 4e 55 4c 4c 20 76 61 6c 75 65 73 20 69 6e 20   NULL values in 
06b0: 6f 72 64 65 72 20 74 6f 20 63 6f 6d 70 6c 79 20  order to comply 
06c0: 77 69 74 68 0a 20 20 20 20 74 68 65 20 53 51 4c  with.    the SQL
06d0: 20 73 74 61 6e 64 61 72 64 3c 2f 6c 69 3e 0a 3c   standard</li>.<
06e0: 6c 69 3e 55 73 65 20 66 64 61 74 61 73 79 6e 63  li>Use fdatasync
06f0: 28 29 20 69 6e 73 74 65 61 64 20 6f 66 20 66 73  () instead of fs
0700: 79 6e 63 28 29 20 77 68 65 72 65 20 70 6f 73 73  ync() where poss
0710: 69 62 6c 65 20 69 6e 20 6f 72 64 65 72 20 74 6f  ible in order to
0720: 20 73 70 65 65 64 0a 20 20 20 20 75 70 20 63 6f   speed.    up co
0730: 6d 6d 69 74 73 20 73 6c 69 67 68 74 6c 79 3c 2f  mmits slightly</
0740: 6c 69 3e 0a 3c 6c 69 3e 55 73 65 20 6f 66 20 74  li>.<li>Use of t
0750: 68 65 20 43 52 4f 53 53 20 6b 65 79 77 6f 72 64  he CROSS keyword
0760: 20 69 6e 20 61 20 6a 6f 69 6e 20 74 75 72 6e 73   in a join turns
0770: 20 6f 66 66 20 74 68 65 20 74 61 62 6c 65 20 72   off the table r
0780: 65 6f 72 64 65 72 69 6e 67 0a 20 20 20 20 6f 70  eordering.    op
0790: 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a  timization</li>.
07a0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 65 78  <li>Added the ex
07b0: 70 65 72 69 6d 65 6e 74 61 6c 20 61 6e 64 20 75  perimental and u
07c0: 6e 64 6f 63 75 6d 65 6e 74 65 64 20 45 58 50 4c  ndocumented EXPL
07d0: 41 49 4e 20 51 55 45 52 59 20 50 4c 41 4e 20 63  AIN QUERY PLAN c
07e0: 61 70 61 62 69 6c 69 74 79 3c 2f 6c 69 3e 0a 3c  apability</li>.<
07f0: 6c 69 3e 55 73 65 20 74 68 65 20 75 6e 69 63 6f  li>Use the unico
0800: 64 65 20 41 50 49 20 69 6e 20 77 69 6e 64 6f 77  de API in window
0810: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
0820: 32 30 30 35 20 41 75 67 75 73 74 20 32 37 20 28  2005 August 27 (
0830: 33 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.2.5)} {.<li>Fi
0840: 78 20 61 20 62 75 67 20 65 66 66 65 63 74 69 6e  x a bug effectin
0850: 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44  g DELETE and UPD
0860: 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74  ATE statements t
0870: 68 61 74 20 63 68 61 6e 67 65 64 0a 6d 6f 72 65  hat changed.more
0880: 20 74 68 61 6e 20 34 30 39 36 30 20 72 6f 77 73   than 40960 rows
0890: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
08a0: 65 20 74 68 65 20 6d 61 6b 65 66 69 6c 65 20 73  e the makefile s
08b0: 6f 20 74 68 61 74 20 69 74 20 6e 6f 20 6c 6f 6e  o that it no lon
08c0: 67 65 72 20 72 65 71 75 69 72 65 73 20 47 4e 55  ger requires GNU
08d0: 6d 61 6b 65 20 65 78 74 65 6e 73 69 6f 6e 73 3c  make extensions<
08e0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65  /li>.<li>Fix the
08f0: 20 2d 2d 65 6e 61 62 6c 65 2d 74 68 72 65 61 64   --enable-thread
0900: 73 61 66 65 20 6f 70 74 69 6f 6e 20 6f 6e 20 74  safe option on t
0910: 68 65 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72  he configure scr
0920: 69 70 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ipt</li>.<li>Fix
0930: 20 61 20 63 6f 64 65 20 67 65 6e 65 72 61 74 6f   a code generato
0940: 72 20 62 75 67 20 74 68 61 74 20 6f 63 63 75 72  r bug that occur
0950: 73 20 77 68 65 6e 20 74 68 65 20 6c 65 66 74 2d  s when the left-
0960: 68 61 6e 64 20 73 69 64 65 20 6f 66 20 61 6e 20  hand side of an 
0970: 49 4e 0a 6f 70 65 72 61 74 6f 72 20 69 73 20 63  IN.operator is c
0980: 6f 6e 73 74 61 6e 74 20 61 6e 64 20 74 68 65 20  onstant and the 
0990: 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20  right-hand side 
09a0: 69 73 20 61 20 53 45 4c 45 43 54 20 73 74 61 74  is a SELECT stat
09b0: 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ement</li>.<li>T
09c0: 68 65 20 50 52 41 47 4d 41 20 73 79 6e 63 68 72  he PRAGMA synchr
09d0: 6f 6e 6f 75 73 3d 6f 66 66 20 73 74 61 74 65 6d  onous=off statem
09e0: 65 6e 74 20 6e 6f 77 20 64 69 73 61 62 6c 65 73  ent now disables
09f0: 20 73 79 6e 63 69 6e 67 20 6f 66 20 74 68 65 0a   syncing of the.
0a00: 6d 61 73 74 65 72 20 6a 6f 75 72 6e 61 6c 20 66  master journal f
0a10: 69 6c 65 20 69 6e 20 61 64 64 69 74 69 6f 6e 20  ile in addition 
0a20: 74 6f 20 74 68 65 20 6e 6f 72 6d 61 6c 20 72 6f  to the normal ro
0a30: 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 73 3c  llback journals<
0a40: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0a50: 30 35 20 41 75 67 75 73 74 20 32 34 20 28 33 2e  05 August 24 (3.
0a60: 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.4)} {.<li>Fix 
0a70: 61 20 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64  a bug introduced
0a80: 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73   in the previous
0a90: 20 72 65 6c 65 61 73 65 0a 74 68 61 74 20 63 61   release.that ca
0aa0: 6e 20 63 61 75 73 65 20 61 20 73 65 67 66 61 75  n cause a segfau
0ab0: 6c 74 20 77 68 69 6c 65 20 67 65 6e 65 72 61 74  lt while generat
0ac0: 69 6e 67 20 63 6f 64 65 0a 66 6f 72 20 63 6f 6d  ing code.for com
0ad0: 70 6c 65 78 20 57 48 45 52 45 20 63 6c 61 75 73  plex WHERE claus
0ae0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  es.</li>.<li>All
0af0: 6f 77 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e  ow floating poin
0b00: 74 20 6c 69 74 65 72 61 6c 73 20 74 6f 20 62 65  t literals to be
0b10: 67 69 6e 20 6f 72 20 65 6e 64 20 77 69 74 68 20  gin or end with 
0b20: 61 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 2e  a decimal point.
0b30: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0b40: 30 30 35 20 41 75 67 75 73 74 20 32 31 20 28 33  005 August 21 (3
0b50: 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .2.3)} {.<li>Add
0b60: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74  ed support for t
0b70: 68 65 20 43 41 53 54 20 6f 70 65 72 61 74 6f 72  he CAST operator
0b80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 63 6c 20 69 6e  </li>.<li>Tcl in
0b90: 74 65 72 66 61 63 65 20 61 6c 6c 6f 77 73 20 42  terface allows B
0ba0: 4c 4f 42 20 76 61 6c 75 65 73 20 74 6f 20 62 65  LOB values to be
0bb0: 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20   transferred to 
0bc0: 75 73 65 72 2d 64 65 66 69 6e 65 64 0a 66 75 6e  user-defined.fun
0bd0: 63 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ctions</li>.<li>
0be0: 41 64 64 65 64 20 74 68 65 20 22 74 72 61 6e 73  Added the "trans
0bf0: 61 63 74 69 6f 6e 22 20 6d 65 74 68 6f 64 20 74  action" method t
0c00: 6f 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66  o the Tcl interf
0c10: 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  ace</li>.<li>All
0c20: 6f 77 20 74 68 65 20 44 45 46 41 55 4c 54 20 76  ow the DEFAULT v
0c30: 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e  alue of a column
0c40: 20 74 6f 20 63 61 6c 6c 20 66 75 6e 63 74 69 6f   to call functio
0c50: 6e 73 20 74 68 61 74 20 68 61 76 65 20 63 6f 6e  ns that have con
0c60: 73 74 61 6e 74 0a 6f 70 65 72 61 6e 64 73 3c 2f  stant.operands</
0c70: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
0c80: 65 20 41 4e 41 4c 59 5a 45 20 63 6f 6d 6d 61 6e  e ANALYZE comman
0c90: 64 20 66 6f 72 20 67 61 74 68 65 72 69 6e 67 20  d for gathering 
0ca0: 73 74 61 74 69 73 74 69 63 73 20 6f 6e 20 69 6e  statistics on in
0cb0: 64 69 63 65 73 20 61 6e 64 0a 75 73 69 6e 67 20  dices and.using 
0cc0: 74 68 6f 73 65 20 73 74 61 74 69 73 74 69 63 73  those statistics
0cd0: 20 77 68 65 6e 20 70 69 63 6b 69 6e 67 20 61 6e   when picking an
0ce0: 20 69 6e 64 65 78 20 69 6e 20 74 68 65 20 6f 70   index in the op
0cf0: 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c 69  timizer</li>.<li
0d00: 3e 52 65 6d 6f 76 65 20 74 68 65 20 6c 69 6d 69  >Remove the limi
0d10: 74 20 28 66 6f 72 6d 65 72 6c 79 20 31 30 30 29  t (formerly 100)
0d20: 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f   on the number o
0d30: 66 20 74 65 72 6d 73 20 69 6e 20 74 68 65 0a 57  f terms in the.W
0d40: 48 45 52 45 20 63 6c 61 75 73 65 3c 2f 6c 69 3e  HERE clause</li>
0d50: 0a 3c 6c 69 3e 54 68 65 20 72 69 67 68 74 2d 68  .<li>The right-h
0d60: 61 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65 20  and side of the 
0d70: 49 4e 20 6f 70 65 72 61 74 6f 72 20 63 61 6e 20  IN operator can 
0d80: 6e 6f 77 20 62 65 20 61 20 6c 69 73 74 20 6f 66  now be a list of
0d90: 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 69 6e 73   expressions.ins
0da0: 74 65 61 64 20 6f 66 20 6a 75 73 74 20 61 20 6c  tead of just a l
0db0: 69 73 74 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73  ist of constants
0dc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 77 6f 72 6b  </li>.<li>Rework
0dd0: 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 73   the optimizer s
0de0: 6f 20 74 68 61 74 20 69 74 20 69 73 20 61 62 6c  o that it is abl
0df0: 65 20 74 6f 20 6d 61 6b 65 20 62 65 74 74 65 72  e to make better
0e00: 20 75 73 65 20 6f 66 20 69 6e 64 69 63 65 73 3c   use of indices<
0e10: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 72 64  /li>.<li>The ord
0e20: 65 72 20 6f 66 20 74 61 62 6c 65 73 20 69 6e 20  er of tables in 
0e30: 61 20 6a 6f 69 6e 20 69 73 20 61 64 6a 75 73 74  a join is adjust
0e40: 65 64 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79  ed automatically
0e50: 20 74 6f 20 6d 61 6b 65 0a 62 65 74 74 65 72 20   to make.better 
0e60: 75 73 65 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f  use of indices</
0e70: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 49 4e 20 6f  li>.<li>The IN o
0e80: 70 65 72 61 74 6f 72 20 69 73 20 6e 6f 77 20 61  perator is now a
0e90: 20 63 61 6e 64 69 64 61 74 65 20 66 6f 72 20 6f   candidate for o
0ea0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 65 76 65 6e  ptimization even
0eb0: 20 69 66 20 74 68 65 20 6c 65 66 74 2d 68 61 6e   if the left-han
0ec0: 64 0a 73 69 64 65 20 69 73 20 6e 6f 74 20 74 68  d.side is not th
0ed0: 65 20 6c 65 66 74 2d 6d 6f 73 74 20 74 65 72 6d  e left-most term
0ee0: 20 6f 66 20 74 68 65 20 69 6e 64 65 78 2e 20 20   of the index.  
0ef0: 4d 75 6c 74 69 70 6c 65 20 49 4e 20 6f 70 65 72  Multiple IN oper
0f00: 61 74 6f 72 73 20 63 61 6e 20 62 65 0a 75 73 65  ators can be.use
0f10: 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20  d with the same 
0f20: 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  index.</li>.<li>
0f30: 57 48 45 52 45 20 63 6c 61 75 73 65 20 65 78 70  WHERE clause exp
0f40: 72 65 73 73 69 6f 6e 73 20 75 73 69 6e 67 20 42  ressions using B
0f50: 45 54 57 45 45 4e 20 61 6e 64 20 4f 52 20 61 72  ETWEEN and OR ar
0f60: 65 20 6e 6f 77 20 63 61 6e 64 69 64 61 74 65 73  e now candidates
0f70: 0a 66 6f 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f  .for optimizatio
0f80: 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  n</li>.<li>Added
0f90: 20 74 68 65 20 22 63 61 73 65 5f 73 65 6e 73 69   the "case_sensi
0fa0: 74 69 76 65 5f 6c 69 6b 65 22 20 70 72 61 67 6d  tive_like" pragm
0fb0: 61 20 61 6e 64 20 74 68 65 20 53 51 4c 49 54 45  a and the SQLITE
0fc0: 5f 43 41 53 45 5f 53 45 4e 53 49 54 49 56 45 5f  _CASE_SENSITIVE_
0fd0: 4c 49 4b 45 0a 63 6f 6d 70 69 6c 65 2d 74 69 6d  LIKE.compile-tim
0fe0: 65 20 6f 70 74 69 6f 6e 20 74 6f 20 73 65 74 20  e option to set 
0ff0: 69 74 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75  its default valu
1000: 65 20 74 6f 20 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a  e to "on".</li>.
1010: 3c 6c 69 3e 55 73 65 20 69 6e 64 69 63 65 73 20  <li>Use indices 
1020: 74 6f 20 68 65 6c 70 20 77 69 74 68 20 47 4c 4f  to help with GLO
1030: 42 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 6e  B expressions an
1040: 64 20 4c 49 4b 45 20 65 78 70 72 65 73 73 69 6f  d LIKE expressio
1050: 6e 73 20 74 6f 6f 0a 77 68 65 6e 20 74 68 65 20  ns too.when the 
1060: 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c  case_sensitive_l
1070: 69 6b 65 20 70 72 61 67 6d 61 20 69 73 20 65 6e  ike pragma is en
1080: 61 62 6c 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  abled</li>.<li>A
1090: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
10a0: 20 67 72 61 76 65 2d 61 63 63 65 6e 74 20 71 75   grave-accent qu
10b0: 6f 74 69 6e 67 20 66 6f 72 20 63 6f 6d 70 61 74  oting for compat
10c0: 69 62 69 6c 69 74 79 20 77 69 74 68 20 4d 79 53  ibility with MyS
10d0: 51 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  QL</li>.<li>Impr
10e0: 6f 76 65 64 20 74 65 73 74 20 63 6f 76 65 72 61  oved test covera
10f0: 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 7a 65  ge</li>.<li>Doze
1100: 6e 73 20 6f 66 20 6d 69 6e 6f 72 20 62 75 67 20  ns of minor bug 
1110: 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fixes</li>.}..ch
1120: 6e 67 20 7b 32 30 30 35 20 4a 75 6e 65 20 31 33  ng {2005 June 13
1130: 20 28 33 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.2)} {.<li>
1140: 41 64 64 65 64 20 74 68 65 20 73 71 6c 69 74 65  Added the sqlite
1150: 33 5f 64 62 5f 68 61 6e 64 6c 65 28 29 20 41 50  3_db_handle() AP
1160: 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  I</li>.<li>Added
1170: 20 74 68 65 20 73 71 6c 69 74 65 33 5f 67 65 74   the sqlite3_get
1180: 5f 61 75 74 6f 63 6f 6d 6d 69 74 28 29 20 41 50  _autocommit() AP
1190: 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  I</li>.<li>Added
11a0: 20 61 20 52 45 47 45 58 50 20 6f 70 65 72 61 74   a REGEXP operat
11b0: 6f 72 20 74 6f 20 74 68 65 20 70 61 72 73 65 72  or to the parser
11c0: 2e 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 66  .  There is no f
11d0: 75 6e 63 74 69 6f 6e 20 74 6f 20 62 61 63 6b 0a  unction to back.
11e0: 75 70 20 74 68 69 73 20 6f 70 65 72 61 74 6f 72  up this operator
11f0: 20 69 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64   in the standard
1200: 20 62 75 69 6c 64 20 62 75 74 20 75 73 65 72 73   build but users
1210: 20 63 61 6e 20 61 64 64 20 74 68 65 69 72 20 6f   can add their o
1220: 77 6e 20 75 73 69 6e 67 0a 73 71 6c 69 74 65 33  wn using.sqlite3
1230: 5f 63 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e  _create_function
1240: 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65  ()</li>.<li>Spee
1250: 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61  d improvements a
1260: 6e 64 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70  nd library footp
1270: 72 69 6e 74 20 72 65 64 75 63 74 69 6f 6e 73 2e  rint reductions.
1280: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 62 79  </li>.<li>Fix by
1290: 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f  te alignment pro
12a0: 62 6c 65 6d 73 20 6f 6e 20 36 34 2d 62 69 74 20  blems on 64-bit 
12b0: 61 72 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f  architectures.</
12c0: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61  li>.<li>Many, ma
12d0: 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  ny minor bug fix
12e0: 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61  es and documenta
12f0: 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c  tion updates.</l
1300: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
1310: 20 4d 61 72 63 68 20 32 39 20 28 33 2e 32 2e 31   March 29 (3.2.1
1320: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 6d  )} {.<li>Fix a m
1330: 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e  emory allocation
1340: 20 65 72 72 6f 72 20 69 6e 20 74 68 65 20 6e 65   error in the ne
1350: 77 20 41 44 44 20 43 4f 4c 55 4d 4e 20 63 6f 6d  w ADD COLUMN com
1360: 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  ment.</li>.<li>D
1370: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
1380: 61 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ates</li>.}..chn
1390: 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 32 31  g {2005 March 21
13a0: 20 28 33 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (3.2.0)} {.<li>
13b0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
13c0: 72 20 41 4c 54 45 52 20 54 41 42 4c 45 20 41 44  r ALTER TABLE AD
13d0: 44 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c  D COLUMN.</li>.<
13e0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
13f0: 20 66 6f 72 20 74 68 65 20 22 54 22 20 73 65 70   for the "T" sep
1400: 61 72 61 74 6f 72 20 69 6e 20 49 53 4f 2d 38 36  arator in ISO-86
1410: 30 31 20 64 61 74 65 2f 74 69 6d 65 20 73 74 72  01 date/time str
1420: 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  ings.</li>.<li>I
1430: 6d 70 72 6f 76 65 64 20 73 75 70 70 6f 72 74 20  mproved support 
1440: 66 6f 72 20 43 79 67 77 69 6e 2e 3c 2f 6c 69 3e  for Cygwin.</li>
1450: 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 62 75  .<li>Numerous bu
1460: 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75  g fixes and docu
1470: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
1480: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
1490: 7b 32 30 30 35 20 4d 61 72 63 68 20 31 36 20 28  {2005 March 16 (
14a0: 33 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.1.6)} {.<li>Fi
14b0: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 6f 75  x a bug that cou
14c0: 6c 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73  ld cause databas
14d0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65  e corruption whe
14e0: 6e 20 69 6e 73 65 72 74 69 6e 67 0a 20 20 20 20  n inserting.    
14f0: 72 65 63 6f 72 64 20 69 6e 74 6f 20 74 61 62 6c  record into tabl
1500: 65 73 20 77 69 74 68 20 61 72 6f 75 6e 64 20 31  es with around 1
1510: 32 35 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e  25 columns.</li>
1520: 0a 3c 6c 69 3e 73 71 6c 69 74 65 33 5f 73 74 65  .<li>sqlite3_ste
1530: 70 28 29 20 69 73 20 6e 6f 77 20 6d 75 63 68 20  p() is now much 
1540: 6d 6f 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 69  more likely to i
1550: 6e 76 6f 6b 65 20 74 68 65 20 62 75 73 79 20 68  nvoke the busy h
1560: 61 6e 64 6c 65 72 0a 20 20 20 20 61 6e 64 20 6c  andler.    and l
1570: 65 73 73 20 6c 69 6b 65 6c 79 20 74 6f 20 72 65  ess likely to re
1580: 74 75 72 6e 20 53 51 4c 49 54 45 5f 42 55 53 59  turn SQLITE_BUSY
1590: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6d  .</li>.<li>Fix m
15a0: 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74  emory leaks that
15b0: 20 75 73 65 64 20 74 6f 20 6f 63 63 75 72 20 61   used to occur a
15c0: 66 74 65 72 20 61 20 6d 61 6c 6c 6f 63 28 29 20  fter a malloc() 
15d0: 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a  failure.</li>.}.
15e0: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63  .chng {2005 Marc
15f0: 68 20 31 31 20 28 33 2e 31 2e 35 29 7d 20 7b 0a  h 11 (3.1.5)} {.
1600: 3c 6c 69 3e 54 68 65 20 69 6f 63 74 6c 20 6f 6e  <li>The ioctl on
1610: 20 4f 53 2d 58 20 74 6f 20 63 6f 6e 74 72 6f 6c   OS-X to control
1620: 20 73 79 6e 63 69 6e 67 20 74 6f 20 64 69 73 6b   syncing to disk
1630: 20 69 73 20 46 5f 46 55 4c 4c 46 53 59 4e 43 2c   is F_FULLFSYNC,
1640: 0a 20 20 20 20 6e 6f 74 20 46 5f 46 55 4c 4c 53  .    not F_FULLS
1650: 59 4e 43 2e 20 20 54 68 65 20 70 72 65 76 69 6f  YNC.  The previo
1660: 75 73 20 72 65 6c 65 61 73 65 20 68 61 64 20 69  us release had i
1670: 74 20 77 72 6f 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a  t wrong.</li>.}.
1680: 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63  .chng {2005 Marc
1690: 68 20 31 30 20 28 33 2e 31 2e 34 29 7d 20 7b 0a  h 10 (3.1.4)} {.
16a0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
16b0: 20 61 75 74 6f 76 61 63 75 75 6d 20 74 68 61 74   autovacuum that
16c0: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74   could cause dat
16d0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
16e0: 20 69 66 0a 61 20 43 52 45 41 54 45 20 55 4e 49   if.a CREATE UNI
16f0: 51 55 45 20 49 4e 44 45 58 20 66 61 69 6c 73 20  QUE INDEX fails 
1700: 62 65 63 61 75 73 65 20 6f 66 20 61 20 63 6f 6e  because of a con
1710: 73 74 72 61 69 6e 74 20 76 69 6f 6c 61 74 69 6f  straint violatio
1720: 6e 2e 0a 54 68 69 73 20 70 72 6f 62 6c 65 6d 20  n..This problem 
1730: 6f 6e 6c 79 20 6f 63 63 75 72 73 20 69 66 20 74  only occurs if t
1740: 68 65 20 6e 65 77 20 61 75 74 6f 76 61 63 75 75  he new autovacuu
1750: 6d 20 66 65 61 74 75 72 65 20 69 6e 74 72 6f 64  m feature introd
1760: 75 63 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20  uced in.version 
1770: 33 2e 31 20 69 73 20 74 75 72 6e 65 64 20 6f 6e  3.1 is turned on
1780: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 46  .</li>.<li>The F
1790: 5f 46 55 4c 4c 53 59 4e 43 20 69 6f 63 74 6c 20  _FULLSYNC ioctl 
17a0: 28 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20  (currently only 
17b0: 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 4f 53 2d  supported on OS-
17c0: 58 29 20 69 73 20 64 69 73 61 62 6c 65 64 0a 69  X) is disabled.i
17d0: 66 20 74 68 65 20 73 79 6e 63 68 72 6f 6e 6f 75  f the synchronou
17e0: 73 20 70 72 61 67 6d 61 20 69 73 20 73 65 74 20  s pragma is set 
17f0: 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68  to something oth
1800: 65 72 20 74 68 61 6e 20 22 66 75 6c 6c 22 2e 3c  er than "full".<
1810: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 64 64  /li>.<li>Add add
1820: 69 74 69 6f 6e 61 6c 20 66 6f 72 77 61 72 64 20  itional forward 
1830: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 74 6f  compatibility to
1840: 20 74 68 65 20 66 75 74 75 72 65 20 76 65 72 73   the future vers
1850: 69 6f 6e 20 33 2e 32 20 64 61 74 61 62 61 73 65  ion 3.2 database
1860: 20 0a 66 69 6c 65 20 66 6f 72 6d 61 74 2e 3c 2f   .file format.</
1870: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
1880: 67 20 69 6e 20 57 48 45 52 45 20 63 6c 61 75 73  g in WHERE claus
1890: 65 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28  es of the form (
18a0: 72 6f 77 69 64 3c 27 32 27 29 3c 2f 6c 69 3e 0a  rowid<'2')</li>.
18b0: 3c 6c 69 3e 4e 65 77 20 53 51 4c 49 54 45 5f 4f  <li>New SQLITE_O
18c0: 4d 49 54 5f 2e 2e 2e 20 63 6f 6d 70 69 6c 65 2d  MIT_... compile-
18d0: 74 69 6d 65 20 6f 70 74 69 6f 6e 73 20 61 64 64  time options add
18e0: 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  ed</li>.<li>Upda
18f0: 74 65 73 20 74 6f 20 74 68 65 20 6d 61 6e 20 70  tes to the man p
1900: 61 67 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  age</li>.<li>Rem
1910: 6f 76 65 20 74 68 65 20 75 73 65 20 6f 66 20 73  ove the use of s
1920: 74 72 63 61 73 65 63 6d 70 28 29 20 66 72 6f 6d  trcasecmp() from
1930: 20 74 68 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a   the shell</li>.
1940: 3c 6c 69 3e 57 69 6e 64 6f 77 73 20 44 4c 4c 20  <li>Windows DLL 
1950: 65 78 70 6f 72 74 73 20 73 79 6d 62 6f 6c 73 20  exports symbols 
1960: 54 63 6c 73 71 6c 69 74 65 5f 49 6e 69 74 20 61  Tclsqlite_Init a
1970: 6e 64 20 53 71 6c 69 74 65 5f 49 6e 69 74 3c 2f  nd Sqlite_Init</
1980: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1990: 35 20 46 65 62 72 75 61 72 79 20 31 39 20 28 33  5 February 19 (3
19a0: 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .1.3)} {.<li>Fix
19b0: 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20   a problem with 
19c0: 56 41 43 55 55 4d 20 6f 6e 20 64 61 74 61 62 61  VACUUM on databa
19d0: 73 65 73 20 66 72 6f 6d 20 77 68 69 63 68 20 74  ses from which t
19e0: 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67  ables containing
19f0: 0a 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20 68  .AUTOINCREMENT h
1a00: 61 76 65 20 62 65 65 6e 20 64 72 6f 70 70 65 64  ave been dropped
1a10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66  .</li>.<li>Add f
1a20: 6f 72 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69  orward compatibi
1a30: 6c 69 74 79 20 74 6f 20 74 68 65 20 66 75 74 75  lity to the futu
1a40: 72 65 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64  re version 3.2 d
1a50: 61 74 61 62 61 73 65 20 66 69 6c 65 0a 66 6f 72  atabase file.for
1a60: 6d 61 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  mat.</li>.<li>Do
1a70: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
1a80: 74 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  tes</li>.}..chng
1a90: 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20   {2005 February 
1aa0: 31 35 20 28 33 2e 31 2e 32 29 7d 20 7b 0a 3c 6c  15 (3.1.2)} {.<l
1ab0: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
1ac0: 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74   can lead to dat
1ad0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
1ae0: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 74 77   if there are tw
1af0: 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f  o.open connectio
1b00: 6e 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64  ns to the same d
1b10: 61 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20  atabase and one 
1b20: 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20  connection does 
1b30: 61 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65  a VACUUM.and the
1b40: 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f   second makes so
1b50: 6d 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65  me change to the
1b60: 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a   database.</li>.
1b70: 3c 6c 69 3e 41 6c 6c 6f 77 20 22 3f 22 20 70 61  <li>Allow "?" pa
1b80: 72 61 6d 65 74 65 72 73 20 69 6e 20 74 68 65 20  rameters in the 
1b90: 4c 49 4d 49 54 20 63 6c 61 75 73 65 2e 3c 2f 6c  LIMIT clause.</l
1ba0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 56 41 43 55 55  i>.<li>Fix VACUU
1bb0: 4d 20 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72  M so that it wor
1bc0: 6b 73 20 77 69 74 68 20 41 55 54 4f 49 4e 43 52  ks with AUTOINCR
1bd0: 45 4d 45 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  EMENT.</li>.<li>
1be0: 46 69 78 20 61 20 72 61 63 65 20 63 6f 6e 64 69  Fix a race condi
1bf0: 74 69 6f 6e 20 69 6e 20 41 55 54 4f 56 41 43 55  tion in AUTOVACU
1c00: 55 4d 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64  UM that can lead
1c10: 20 74 6f 20 63 6f 72 72 75 70 74 20 64 61 74 61   to corrupt data
1c20: 62 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  bases</li>.<li>A
1c30: 64 64 20 61 20 6e 75 6d 65 72 69 63 20 76 65 72  dd a numeric ver
1c40: 73 69 6f 6e 20 6e 75 6d 62 65 72 20 74 6f 20 74  sion number to t
1c50: 68 65 20 73 71 6c 69 74 65 33 2e 68 20 69 6e 63  he sqlite3.h inc
1c60: 6c 75 64 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a  lude file.</li>.
1c70: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
1c80: 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 70 65  bug fixes and pe
1c90: 72 66 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63  rformance enhanc
1ca0: 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ements.</li>.}..
1cb0: 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75  chng {2005 Febru
1cc0: 61 72 79 20 31 35 20 28 32 2e 38 2e 31 36 29 7d  ary 15 (2.8.16)}
1cd0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
1ce0: 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74   that can lead t
1cf0: 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  o database corru
1d00: 70 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61  ption if there a
1d10: 72 65 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e  re two.open conn
1d20: 65 63 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73  ections to the s
1d30: 61 6d 65 20 64 61 74 61 62 61 73 65 20 61 6e 64  ame database and
1d40: 20 6f 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20   one connection 
1d50: 64 6f 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e  does a VACUUM.an
1d60: 64 20 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b  d the second mak
1d70: 65 73 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74  es some change t
1d80: 6f 20 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c  o the database.<
1d90: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74  /li>.<li>Correct
1da0: 6c 79 20 68 61 6e 64 6c 65 20 71 75 6f 74 65 64  ly handle quoted
1db0: 20 6e 61 6d 65 73 20 69 6e 20 43 52 45 41 54 45   names in CREATE
1dc0: 20 49 4e 44 45 58 20 73 74 61 74 65 6d 65 6e 74   INDEX statement
1dd0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
1de0: 61 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63  a naming conflic
1df0: 74 20 62 65 74 77 65 65 6e 20 73 71 6c 69 74 65  t between sqlite
1e00: 2e 68 20 61 6e 64 20 73 71 6c 69 74 65 33 2e 68  .h and sqlite3.h
1e10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 76 6f 69 64  .</li>.<li>Avoid
1e20: 20 65 78 63 65 73 73 20 68 65 61 70 20 75 73 61   excess heap usa
1e30: 67 65 20 77 68 65 6e 20 63 6f 70 79 69 6e 67 20  ge when copying 
1e40: 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69  expressions.</li
1e50: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
1e60: 72 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  r bug fixes.</li
1e70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
1e80: 46 65 62 72 75 61 72 79 20 31 20 28 33 2e 31 2e  February 1 (3.1.
1e90: 31 20 42 45 54 41 29 7d 20 7b 0a 3c 6c 69 3e 41  1 BETA)} {.<li>A
1ea0: 75 74 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67  utomatic caching
1eb0: 20 6f 66 20 70 72 65 70 61 72 65 64 20 73 74 61   of prepared sta
1ec0: 74 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 54  tements in the T
1ed0: 43 4c 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  CL interface</li
1ee0: 3e 0a 3c 6c 69 3e 41 54 54 41 43 48 20 61 6e 64  >.<li>ATTACH and
1ef0: 20 44 45 54 41 43 48 20 61 73 20 77 65 6c 6c 20   DETACH as well 
1f00: 61 73 20 73 6f 6d 65 20 6f 74 68 65 72 20 6f 70  as some other op
1f10: 65 72 61 74 69 6f 6e 73 20 63 61 75 73 65 20 65  erations cause e
1f20: 78 69 73 74 69 6e 67 0a 20 20 20 20 70 72 65 70  xisting.    prep
1f30: 61 72 65 64 20 73 74 61 74 65 6d 65 6e 74 73 20  ared statements 
1f40: 74 6f 20 65 78 70 69 72 65 2e 3c 2f 6c 69 3e 0a  to expire.</li>.
1f50: 3c 6c 69 3e 4e 75 6d 65 72 69 6f 75 73 20 6d 69  <li>Numerious mi
1f60: 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  nor bug fixes</l
1f70: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
1f80: 20 4a 61 6e 75 61 72 79 20 32 31 20 28 33 2e 31   January 21 (3.1
1f90: 2e 30 20 41 4c 50 48 41 29 7d 20 7b 0a 3c 6c 69  .0 ALPHA)} {.<li
1fa0: 3e 41 75 74 6f 76 61 63 75 75 6d 20 73 75 70 70  >Autovacuum supp
1fb0: 6f 72 74 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c  ort added</li>.<
1fc0: 6c 69 3e 43 55 52 52 45 4e 54 5f 54 49 4d 45 2c  li>CURRENT_TIME,
1fd0: 20 43 55 52 52 45 4e 54 5f 44 41 54 45 2c 20 61   CURRENT_DATE, a
1fe0: 6e 64 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 53  nd CURRENT_TIMES
1ff0: 54 41 4d 50 20 61 64 64 65 64 3c 2f 6c 69 3e 0a  TAMP added</li>.
2000: 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20  <li>Support for 
2010: 74 68 65 20 45 58 49 53 54 53 20 63 6c 61 75 73  the EXISTS claus
2020: 65 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  e added.</li>.<l
2030: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 63 6f  i>Support for co
2040: 72 72 65 6c 61 74 65 64 20 73 75 62 71 75 65 72  rrelated subquer
2050: 69 65 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a  ies added.</li>.
2060: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45 53  <li>Added the ES
2070: 43 41 50 45 20 63 6c 61 75 73 65 20 6f 6e 20 74  CAPE clause on t
2080: 68 65 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72  he LIKE operator
2090: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f  .</li>.<li>Suppo
20a0: 72 74 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42  rt for ALTER TAB
20b0: 4c 45 20 2e 2e 2e 20 52 45 4e 41 4d 45 20 54 41  LE ... RENAME TA
20c0: 42 4c 45 20 2e 2e 2e 20 61 64 64 65 64 3c 2f 6c  BLE ... added</l
20d0: 69 3e 0a 3c 6c 69 3e 41 55 54 4f 49 4e 43 52 45  i>.<li>AUTOINCRE
20e0: 4d 45 4e 54 20 6b 65 79 77 6f 72 64 20 73 75 70  MENT keyword sup
20f0: 70 6f 72 74 65 64 20 6f 6e 20 49 4e 54 45 47 45  ported on INTEGE
2100: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 3c 2f 6c  R PRIMARY KEY</l
2110: 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 53 51 4c 49  i>.<li>Many SQLI
2120: 54 45 5f 4f 4d 49 54 5f 20 6d 61 63 72 6f 73 20  TE_OMIT_ macros 
2130: 69 6e 73 65 72 74 73 20 74 6f 20 6f 6d 69 74 20  inserts to omit 
2140: 66 65 61 74 75 72 65 73 20 61 74 20 63 6f 6d 70  features at comp
2150: 69 6c 65 2d 74 69 6d 65 0a 20 20 20 20 61 6e 64  ile-time.    and
2160: 20 72 65 64 75 63 65 20 74 68 65 20 6c 69 62 72   reduce the libr
2170: 61 72 79 20 66 6f 6f 74 70 72 69 6e 74 2e 3c 2f  ary footprint.</
2180: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 52 45 49 4e  li>.<li>The REIN
2190: 44 45 58 20 63 6f 6d 6d 61 6e 64 20 77 61 73 20  DEX command was 
21a0: 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  added.</li>.<li>
21b0: 54 68 65 20 65 6e 67 69 6e 65 20 6e 6f 20 6c 6f  The engine no lo
21c0: 6e 67 65 72 20 63 6f 6e 73 75 6c 74 73 20 74 68  nger consults th
21d0: 65 20 6d 61 69 6e 20 74 61 62 6c 65 20 69 66 20  e main table if 
21e0: 69 74 20 63 61 6e 20 67 65 74 0a 20 20 20 20 61  it can get.    a
21f0: 6c 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69  ll the informati
2200: 6f 6e 20 69 74 20 6e 65 65 64 73 20 66 72 6f 6d  on it needs from
2210: 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a   an index.</li>.
2220: 3c 6c 69 3e 4d 61 6e 79 20 6e 75 69 73 61 6e 63  <li>Many nuisanc
2230: 65 20 62 75 67 73 20 66 69 78 65 64 2e 3c 2f 6c  e bugs fixed.</l
2240: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
2250: 20 4f 63 74 6f 62 65 72 20 31 31 20 28 33 2e 30   October 11 (3.0
2260: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 73  .8)} {.<li>Add s
2270: 75 70 70 6f 72 74 20 66 6f 72 20 44 45 46 45 52  upport for DEFER
2280: 52 45 44 2c 20 49 4d 4d 45 44 49 41 54 45 2c 20  RED, IMMEDIATE, 
2290: 61 6e 64 20 45 58 43 4c 55 53 49 56 45 20 74 72  and EXCLUSIVE tr
22a0: 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e  ansactions.</li>
22b0: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6e 65 77 20 75  .<li>Allow new u
22c0: 73 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63  ser-defined func
22d0: 74 69 6f 6e 73 20 74 6f 20 62 65 20 63 72 65 61  tions to be crea
22e0: 74 65 64 20 77 68 65 6e 20 74 68 65 72 65 20 61  ted when there a
22f0: 72 65 0a 61 6c 72 65 61 64 79 20 6f 6e 65 20 6f  re.already one o
2300: 72 20 6d 6f 72 65 20 70 72 65 63 6f 6d 70 69 6c  r more precompil
2310: 65 64 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74  ed SQL statement
2320: 73 2e 3c 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70  s.<li>.<li>Fix p
2330: 6f 72 74 61 62 69 6c 69 74 79 20 70 72 6f 62 6c  ortability probl
2340: 65 6d 73 20 66 6f 72 20 4d 69 6e 67 77 2f 4d 53  ems for Mingw/MS
2350: 59 53 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  YS.</li>.<li>Fix
2360: 20 61 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e   a byte alignmen
2370: 74 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d  t problem on 64-
2380: 62 69 74 20 53 70 61 72 63 20 6d 61 63 68 69 6e  bit Sparc machin
2390: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
23a0: 20 74 68 65 20 22 2e 69 6d 70 6f 72 74 22 20 63   the ".import" c
23b0: 6f 6d 6d 61 6e 64 20 6f 66 20 74 68 65 20 73 68  ommand of the sh
23c0: 65 6c 6c 20 73 6f 20 74 68 61 74 20 69 74 20 69  ell so that it i
23d0: 67 6e 6f 72 65 73 20 5c 72 0a 63 68 61 72 61 63  gnores \r.charac
23e0: 74 65 72 73 20 61 74 20 74 68 65 20 65 6e 64 20  ters at the end 
23f0: 6f 66 20 6c 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c  of lines.</li>.<
2400: 6c 69 3e 54 68 65 20 22 63 73 76 22 20 6d 6f 64  li>The "csv" mod
2410: 65 20 6f 70 74 69 6f 6e 20 69 6e 20 74 68 65 20  e option in the 
2420: 73 68 65 6c 6c 20 70 75 74 73 20 73 74 72 69 6e  shell puts strin
2430: 67 73 20 69 6e 73 69 64 65 20 64 6f 75 62 6c 65  gs inside double
2440: 2d 71 75 6f 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  -quotes.</li>.<l
2450: 69 3e 46 69 78 20 74 79 70 6f 73 20 69 6e 20 64  i>Fix typos in d
2460: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c  ocumentation.</l
2470: 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61  i>.<li>Convert a
2480: 72 72 61 79 20 63 6f 6e 73 74 61 6e 74 73 20 69  rray constants i
2490: 6e 20 74 68 65 20 63 6f 64 65 20 74 6f 20 68 61  n the code to ha
24a0: 76 65 20 74 79 70 65 20 22 63 6f 6e 73 74 22 2e  ve type "const".
24b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f  </li>.<li>Numero
24c0: 75 73 20 63 6f 64 65 20 6f 70 74 69 6d 69 7a 61  us code optimiza
24d0: 74 69 6f 6e 73 2c 20 73 70 65 63 69 61 6c 6c 79  tions, specially
24e0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 64   optimizations d
24f0: 65 73 69 67 6e 65 64 20 74 6f 0a 6d 61 6b 65 20  esigned to.make 
2500: 74 68 65 20 63 6f 64 65 20 66 6f 6f 74 70 72 69  the code footpri
2510: 6e 74 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e  nt smaller.</li>
2520: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53  .}..chng {2004 S
2530: 65 70 74 65 6d 62 65 72 20 31 38 20 28 33 2e 30  eptember 18 (3.0
2540: 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 42  .7)} {.<li>The B
2550: 54 72 65 65 20 6d 6f 64 75 6c 65 20 61 6c 6c 6f  Tree module allo
2560: 63 61 74 65 73 20 6c 61 72 67 65 20 62 75 66 66  cates large buff
2570: 65 72 73 20 75 73 69 6e 67 20 6d 61 6c 6c 6f 63  ers using malloc
2580: 28 29 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20  () instead of.  
2590: 20 20 6f 66 66 20 6f 66 20 74 68 65 20 73 74 61    off of the sta
25a0: 63 6b 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ck, in order to 
25b0: 70 6c 61 79 20 62 65 74 74 65 72 20 6f 6e 20 6d  play better on m
25c0: 61 63 68 69 6e 65 73 20 77 69 74 68 20 6c 69 6d  achines with lim
25d0: 69 74 65 64 0a 20 20 20 20 73 74 61 63 6b 20 73  ited.    stack s
25e0: 70 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  pace.</li>.<li>F
25f0: 69 78 65 64 20 6e 61 6d 69 6e 67 20 63 6f 6e 66  ixed naming conf
2600: 6c 69 63 74 73 20 73 6f 20 74 68 61 74 20 76 65  licts so that ve
2610: 72 73 69 6f 6e 73 20 32 2e 38 20 61 6e 64 20 33  rsions 2.8 and 3
2620: 2e 30 20 63 61 6e 20 62 65 0a 20 20 20 20 6c 69  .0 can be.    li
2630: 6e 6b 65 64 20 61 6e 64 20 75 73 65 64 20 74 6f  nked and used to
2640: 67 65 74 68 65 72 20 69 6e 20 74 68 65 20 73 61  gether in the sa
2650: 6d 65 20 41 4e 53 49 2d 43 20 73 6f 75 72 63 65  me ANSI-C source
2660: 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   file.</li>.<li>
2670: 4e 65 77 20 69 6e 74 65 72 66 61 63 65 3a 20 73  New interface: s
2680: 71 6c 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61  qlite3_bind_para
2690: 6d 65 74 65 72 5f 69 6e 64 65 78 28 29 3c 2f 6c  meter_index()</l
26a0: 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f  i>.<li>Add suppo
26b0: 72 74 20 66 6f 72 20 77 69 6c 64 63 61 72 64 20  rt for wildcard 
26c0: 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 74 68  parameters of th
26d0: 65 20 66 6f 72 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f  e form: "?nnn"</
26e0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 72 6f 62  li>.<li>Fix prob
26f0: 6c 65 6d 73 20 66 6f 75 6e 64 20 6f 6e 20 36 34  lems found on 64
2700: 2d 62 69 74 20 73 79 73 74 65 6d 73 2e 3c 2f 6c  -bit systems.</l
2710: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 65  i>.<li>Removed e
2720: 6e 63 6f 64 65 2e 63 20 66 69 6c 65 20 28 63 6f  ncode.c file (co
2730: 6e 74 61 69 6e 69 6e 67 20 75 6e 75 73 65 64 20  ntaining unused 
2740: 72 6f 75 74 69 6e 65 73 29 20 66 72 6f 6d 20 74  routines) from t
2750: 68 65 20 0a 20 20 20 20 76 65 72 73 69 6f 6e 20  he .    version 
2760: 33 2e 30 20 73 6f 75 72 63 65 20 74 72 65 65 2e  3.0 source tree.
2770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71  </li>.<li>The sq
2780: 6c 69 74 65 33 5f 74 72 61 63 65 28 29 20 63 61  lite3_trace() ca
2790: 6c 6c 62 61 63 6b 73 20 6f 63 63 75 72 20 62 65  llbacks occur be
27a0: 66 6f 72 65 20 65 61 63 68 20 73 74 61 74 65 6d  fore each statem
27b0: 65 6e 74 0a 20 20 20 20 69 73 20 65 78 65 63 75  ent.    is execu
27c0: 74 65 64 2c 20 6e 6f 74 20 77 68 65 6e 20 74 68  ted, not when th
27d0: 65 20 73 74 61 74 65 6d 65 6e 74 20 69 73 20 63  e statement is c
27e0: 6f 6d 70 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  ompiled.</li>.<l
27f0: 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74  i>Makefile updat
2800: 65 73 20 61 6e 64 20 6d 69 73 63 65 6c 6c 61 6e  es and miscellan
2810: 65 6f 75 73 20 62 75 67 20 66 69 78 65 73 2e 3c  eous bug fixes.<
2820: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2830: 30 34 20 53 65 70 74 65 6d 62 65 72 20 30 32 20  04 September 02 
2840: 28 33 2e 30 2e 36 20 62 65 74 61 29 7d 20 7b 0a  (3.0.6 beta)} {.
2850: 3c 6c 69 3e 42 65 74 74 65 72 20 64 65 74 65 63  <li>Better detec
2860: 74 69 6f 6e 20 61 6e 64 20 68 61 6e 64 6c 69 6e  tion and handlin
2870: 67 20 6f 66 20 63 6f 72 72 75 70 74 20 64 61 74  g of corrupt dat
2880: 61 62 61 73 65 20 66 69 6c 65 73 2e 3c 2f 6c 69  abase files.</li
2890: 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65  >.<li>The sqlite
28a0: 33 5f 73 74 65 70 28 29 20 69 6e 74 65 72 66 61  3_step() interfa
28b0: 63 65 20 72 65 74 75 72 6e 73 20 53 51 4c 49 54  ce returns SQLIT
28c0: 45 5f 42 55 53 59 20 69 66 20 69 74 20 69 73 20  E_BUSY if it is 
28d0: 75 6e 61 62 6c 65 0a 20 20 20 20 74 6f 20 63 6f  unable.    to co
28e0: 6d 6d 69 74 20 61 20 63 68 61 6e 67 65 20 62 65  mmit a change be
28f0: 63 61 75 73 65 20 6f 66 20 61 20 6c 6f 63 6b 3c  cause of a lock<
2900: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 6d 62 69 6e 65  /li>.<li>Combine
2910: 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74   the implementat
2920: 69 6f 6e 73 20 6f 66 20 4c 49 4b 45 20 61 6e 64  ions of LIKE and
2930: 20 47 4c 4f 42 20 69 6e 74 6f 20 61 20 73 69 6e   GLOB into a sin
2940: 67 6c 65 0a 20 20 20 20 70 61 74 74 65 72 6e 2d  gle.    pattern-
2950: 6d 61 74 63 68 69 6e 67 20 73 75 62 72 6f 75 74  matching subrout
2960: 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69  ine.</li>.<li>Mi
2970: 73 63 65 6c 6c 61 6e 65 6f 75 73 20 63 6f 64 65  scellaneous code
2980: 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69   size optimizati
2990: 6f 6e 73 20 61 6e 64 20 62 75 67 20 66 69 78 65  ons and bug fixe
29a0: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
29b0: 32 30 30 34 20 41 75 67 75 73 74 20 32 39 20 28  2004 August 29 (
29c0: 33 2e 30 2e 35 20 62 65 74 61 29 7d 20 7b 0a 3c  3.0.5 beta)} {.<
29d0: 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 22  li>Support for "
29e0: 3a 41 41 41 22 20 73 74 79 6c 65 20 62 69 6e 64  :AAA" style bind
29f0: 20 70 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 73   parameter names
2a00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
2a10: 20 74 68 65 20 6e 65 77 20 73 71 6c 69 74 65 33   the new sqlite3
2a20: 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  _bind_parameter_
2a30: 6e 61 6d 65 28 29 20 69 6e 74 65 72 66 61 63 65  name() interface
2a40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f  .</li>.<li>Suppo
2a50: 72 74 20 66 6f 72 20 54 43 4c 20 76 61 72 69 61  rt for TCL varia
2a60: 62 6c 65 20 6e 61 6d 65 73 20 65 6d 62 65 64 64  ble names embedd
2a70: 65 64 20 69 6e 20 53 51 4c 20 73 74 61 74 65 6d  ed in SQL statem
2a80: 65 6e 74 73 20 69 6e 20 74 68 65 0a 20 20 20 20  ents in the.    
2a90: 54 43 4c 20 62 69 6e 64 69 6e 67 73 2e 3c 2f 6c  TCL bindings.</l
2aa0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 43 4c 20 62  i>.<li>The TCL b
2ab0: 69 6e 64 69 6e 67 73 20 74 72 61 6e 73 66 65 72  indings transfer
2ac0: 20 64 61 74 61 20 77 69 74 68 6f 75 74 20 6e 65   data without ne
2ad0: 63 65 73 73 61 72 69 6c 79 20 64 6f 69 6e 67 20  cessarily doing 
2ae0: 61 20 63 6f 6e 76 65 72 73 69 6f 6e 0a 20 20 20  a conversion.   
2af0: 20 74 6f 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c   to a string.</l
2b00: 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 61 74 61 62  i>.<li>The datab
2b10: 61 73 65 20 66 6f 72 20 54 45 4d 50 20 74 61 62  ase for TEMP tab
2b20: 6c 65 73 20 69 73 20 6e 6f 74 20 63 72 65 61 74  les is not creat
2b30: 65 64 20 75 6e 74 69 6c 20 69 74 20 69 73 20 6e  ed until it is n
2b40: 65 65 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  eeded.</li>.<li>
2b50: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
2b60: 74 6f 20 73 70 65 63 69 66 79 20 61 6e 20 61 6c  to specify an al
2b70: 74 65 72 6e 61 74 69 76 65 20 74 65 6d 70 6f 72  ternative tempor
2b80: 61 72 79 20 66 69 6c 65 20 64 69 72 65 63 74 6f  ary file directo
2b90: 72 79 0a 20 20 20 20 75 73 69 6e 67 20 74 68 65  ry.    using the
2ba0: 20 22 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69   "sqlite_temp_di
2bb0: 72 65 63 74 6f 72 79 22 20 67 6c 6f 62 61 6c 20  rectory" global 
2bc0: 76 61 72 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c  variable.</li>.<
2bd0: 6c 69 3e 41 20 63 6f 6d 70 69 6c 65 2d 74 69 6d  li>A compile-tim
2be0: 65 20 6f 70 74 69 6f 6e 20 28 53 51 4c 49 54 45  e option (SQLITE
2bf0: 5f 42 55 53 59 5f 52 45 53 45 52 56 45 44 5f 4c  _BUSY_RESERVED_L
2c00: 4f 43 4b 29 20 63 61 75 73 65 73 20 74 68 65 20  OCK) causes the 
2c10: 62 75 73 79 0a 20 20 20 20 68 61 6e 64 6c 65 72  busy.    handler
2c20: 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 68   to be called wh
2c30: 65 6e 20 74 68 65 72 65 20 69 73 20 63 6f 6e 74  en there is cont
2c40: 65 6e 74 69 6f 6e 20 66 6f 72 20 61 20 52 45 53  ention for a RES
2c50: 45 52 56 45 44 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e  ERVED lock.</li>
2c60: 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62 75 67  .<li>Various bug
2c70: 20 66 69 78 65 73 20 61 6e 64 20 6f 70 74 69 6d   fixes and optim
2c80: 69 7a 61 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a  izations</li>.}.
2c90: 0a 63 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75  .chng {2004 Augu
2ca0: 73 74 20 38 20 28 33 2e 30 2e 34 20 62 65 74 61  st 8 (3.0.4 beta
2cb0: 29 7d 20 7b 0a 3c 6c 69 3e 43 52 45 41 54 45 20  )} {.<li>CREATE 
2cc0: 54 41 42 4c 45 20 61 6e 64 20 44 52 4f 50 20 54  TABLE and DROP T
2cd0: 41 42 4c 45 20 6e 6f 77 20 77 6f 72 6b 20 63 6f  ABLE now work co
2ce0: 72 72 65 63 74 6c 79 20 61 73 20 70 72 65 70 61  rrectly as prepa
2cf0: 72 65 64 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  red statements.<
2d00: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
2d10: 75 67 20 69 6e 20 56 41 43 55 55 4d 20 61 6e 64  ug in VACUUM and
2d20: 20 55 4e 49 51 55 45 20 69 6e 64 69 63 65 73 2e   UNIQUE indices.
2d30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
2d40: 65 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d  e ".import" comm
2d50: 61 6e 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61  and to the comma
2d60: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 2e 3c 2f  nd-line shell.</
2d70: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
2d80: 67 20 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75  g that could cau
2d90: 73 65 20 69 6e 64 65 78 20 63 6f 72 72 75 70 74  se index corrupt
2da0: 69 6f 6e 20 77 68 65 6e 20 61 6e 20 61 74 74 65  ion when an atte
2db0: 6d 70 74 20 74 6f 0a 20 20 20 20 64 65 6c 65 74  mpt to.    delet
2dc0: 65 20 72 6f 77 73 20 6f 66 20 61 20 74 61 62 6c  e rows of a tabl
2dd0: 65 20 69 73 20 62 6c 6f 63 6b 65 64 20 62 79 20  e is blocked by 
2de0: 61 20 70 65 6e 64 69 6e 67 20 71 75 65 72 79 2e  a pending query.
2df0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 69 62 72 61 72  </li>.<li>Librar
2e00: 79 20 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74  y size optimizat
2e10: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  ions.</li>.<li>O
2e20: 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66  ther minor bug f
2e30: 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixes.</li>.}..ch
2e40: 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32  ng {2004 July 22
2e50: 20 28 32 2e 38 2e 31 35 29 7d 20 7b 0a 3c 6c 69   (2.8.15)} {.<li
2e60: 3e 54 68 69 73 20 69 73 20 61 20 6d 61 69 6e 74  >This is a maint
2e70: 65 6e 61 6e 63 65 20 72 65 6c 65 61 73 65 20 6f  enance release o
2e80: 6e 6c 79 2e 20 20 56 61 72 69 6f 75 73 20 6d 69  nly.  Various mi
2e90: 6e 6f 72 20 62 75 67 73 20 68 61 76 65 20 62 65  nor bugs have be
2ea0: 65 6e 0a 66 69 78 65 64 20 61 6e 64 20 73 6f 6d  en.fixed and som
2eb0: 65 20 70 6f 72 74 61 62 69 6c 69 74 79 20 65 6e  e portability en
2ec0: 68 61 6e 63 65 6d 65 6e 74 73 20 61 72 65 20 61  hancements are a
2ed0: 64 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  dded.</li>.}..ch
2ee0: 6e 67 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32  ng {2004 July 22
2ef0: 20 28 33 2e 30 2e 33 20 62 65 74 61 29 7d 20 7b   (3.0.3 beta)} {
2f00: 0a 3c 6c 69 3e 54 68 65 20 73 65 63 6f 6e 64 20  .<li>The second 
2f10: 62 65 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72  beta release for
2f20: 20 53 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69   SQLite 3.0.</li
2f30: 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72  >.<li>Add suppor
2f40: 74 20 66 6f 72 20 22 50 52 41 47 4d 41 20 70 61  t for "PRAGMA pa
2f50: 67 65 5f 73 69 7a 65 22 20 74 6f 20 61 64 6a 75  ge_size" to adju
2f60: 73 74 20 74 68 65 20 70 61 67 65 20 73 69 7a 65  st the page size
2f70: 20 6f 66 0a 74 68 65 20 64 61 74 61 62 61 73 65   of.the database
2f80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f  .</li>.<li>Vario
2f90: 75 73 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  us bug fixes and
2fa0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75   documentation u
2fb0: 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pdates.</li>.}..
2fc0: 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20  chng {2004 June 
2fd0: 33 30 20 28 33 2e 30 2e 32 20 62 65 74 61 29 7d  30 (3.0.2 beta)}
2fe0: 20 7b 0a 3c 6c 69 3e 54 68 65 20 66 69 72 73 74   {.<li>The first
2ff0: 20 62 65 74 61 20 72 65 6c 65 61 73 65 20 66 6f   beta release fo
3000: 72 20 53 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c  r SQLite 3.0.</l
3010: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
3020: 20 4a 75 6e 65 20 32 32 20 28 33 2e 30 2e 31 20   June 22 (3.0.1 
3030: 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66  alpha)} {.<li><f
3040: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e  ont color="red">
3050: 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68  <b>.    *** Alph
3060: 61 20 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65  a Release - Rese
3070: 61 72 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67  arch And Testing
3080: 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62   Use Only ***</b
3090: 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74  ></font>.<li>Lot
30a0: 73 20 6f 66 20 62 75 67 20 66 69 78 65 73 2e 3c  s of bug fixes.<
30b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
30c0: 30 34 20 4a 75 6e 65 20 31 38 20 28 33 2e 30 2e  04 June 18 (3.0.
30d0: 30 20 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e  0 alpha)} {.<li>
30e0: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64  <font color="red
30f0: 22 3e 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c  "><b>.    *** Al
3100: 70 68 61 20 52 65 6c 65 61 73 65 20 2d 20 52 65  pha Release - Re
3110: 73 65 61 72 63 68 20 41 6e 64 20 54 65 73 74 69  search And Testi
3120: 6e 67 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c  ng Use Only ***<
3130: 2f 62 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 53  /b></font>.<li>S
3140: 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 74 65 72  upport for inter
3150: 6e 61 74 69 6f 6e 61 6c 69 7a 61 74 69 6f 6e 20  nationalization 
3160: 69 6e 63 6c 75 64 69 6e 67 20 55 54 46 2d 38 2c  including UTF-8,
3170: 20 55 54 46 2d 31 36 2c 20 61 6e 64 0a 20 20 20   UTF-16, and.   
3180: 20 75 73 65 72 20 64 65 66 69 6e 65 64 20 63 6f   user defined co
3190: 6c 6c 61 74 69 6e 67 20 73 65 71 75 65 6e 63 65  llating sequence
31a0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20  s.</li>.<li>New 
31b0: 66 69 6c 65 20 66 6f 72 6d 61 74 20 74 68 61 74  file format that
31c0: 20 69 73 20 32 35 25 20 74 6f 20 33 35 25 20 73   is 25% to 35% s
31d0: 6d 61 6c 6c 65 72 20 66 6f 72 20 74 79 70 69 63  maller for typic
31e0: 61 6c 20 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  al use.</li>.<li
31f0: 3e 49 6d 70 72 6f 76 65 64 20 63 6f 6e 63 75 72  >Improved concur
3200: 72 65 6e 63 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rency.</li>.<li>
3210: 41 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 73 20 66  Atomic commits f
3220: 6f 72 20 41 54 54 41 43 48 65 64 20 64 61 74 61  or ATTACHed data
3230: 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  bases.</li>.<li>
3240: 52 65 6d 6f 76 65 20 63 72 75 66 74 20 66 72 6f  Remove cruft fro
3250: 6d 20 74 68 65 20 41 50 49 73 2e 3c 2f 6c 69 3e  m the APIs.</li>
3260: 0a 3c 6c 69 3e 42 4c 4f 42 20 73 75 70 70 6f 72  .<li>BLOB suppor
3270: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 36 34 2d 62  t.</li>.<li>64-b
3280: 69 74 20 72 6f 77 69 64 73 2e 3c 2f 6c 69 3e 0a  it rowids.</li>.
3290: 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 76 65 72  <li><a href="ver
32a0: 73 69 6f 6e 33 2e 68 74 6d 6c 22 3e 4d 6f 72 65  sion3.html">More
32b0: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e   information</a>
32c0: 2e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  ..}..chng {2004 
32d0: 4a 75 6e 65 20 39 20 28 32 2e 38 2e 31 34 29 7d  June 9 (2.8.14)}
32e0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6d   {.<li>Fix the m
32f0: 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20 6f  in() and max() o
3300: 70 74 69 6d 69 7a 65 72 20 73 6f 20 74 68 61 74  ptimizer so that
3310: 20 69 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 74   it works when t
3320: 68 65 20 46 52 4f 4d 0a 20 20 20 20 63 6c 61 75  he FROM.    clau
3330: 73 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61  se consists of a
3340: 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a   subquery.</li>.
3350: 3c 6c 69 3e 49 67 6e 6f 72 65 20 65 78 74 72 61  <li>Ignore extra
3360: 20 77 68 69 74 65 73 70 61 63 65 20 61 74 20 74   whitespace at t
3370: 68 65 20 65 6e 64 20 6f 66 20 6f 66 20 22 2e 22  he end of of "."
3380: 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65   commands in the
3390: 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69   shell.</li>.<li
33a0: 3e 42 75 6e 64 6c 65 20 73 71 6c 69 74 65 5f 65  >Bundle sqlite_e
33b0: 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61  ncode_binary() a
33c0: 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65  nd sqlite_decode
33d0: 5f 62 69 6e 61 72 79 28 29 20 77 69 74 68 20 74  _binary() with t
33e0: 68 65 20 0a 20 20 20 20 6c 69 62 72 61 72 79 2e  he .    library.
33f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 45  </li>.<li>The TE
3400: 4d 50 5f 53 54 4f 52 45 20 61 6e 64 20 44 45 46  MP_STORE and DEF
3410: 41 55 4c 54 5f 54 45 4d 50 5f 53 54 4f 52 45 20  AULT_TEMP_STORE 
3420: 70 72 61 67 6d 61 73 20 6e 6f 77 20 77 6f 72 6b  pragmas now work
3430: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 64 65 20  .</li>.<li>Code 
3440: 63 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 70 69  changes to compi
3450: 6c 65 20 63 6c 65 61 6e 6c 79 20 75 73 69 6e 67  le cleanly using
3460: 20 4f 70 65 6e 57 61 74 63 6f 6d 2e 3c 2f 6c 69   OpenWatcom.</li
3470: 3e 0a 3c 6c 69 3e 46 69 78 20 56 44 42 45 20 73  >.<li>Fix VDBE s
3480: 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 70 72  tack overflow pr
3490: 6f 62 6c 65 6d 73 20 77 69 74 68 20 49 4e 53 54  oblems with INST
34a0: 45 41 44 20 4f 46 20 74 72 69 67 67 65 72 73 20  EAD OF triggers 
34b0: 61 6e 64 0a 20 20 20 20 4e 55 4c 4c 73 20 69 6e  and.    NULLs in
34c0: 20 49 4e 20 6f 70 65 72 61 74 6f 72 73 2e 3c 2f   IN operators.</
34d0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
34e0: 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20  global variable 
34f0: 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65  sqlite_temp_dire
3500: 63 74 6f 72 79 20 77 68 69 63 68 20 69 66 20 73  ctory which if s
3510: 65 74 20 64 65 66 69 6e 65 73 20 74 68 65 0a 20  et defines the. 
3520: 20 20 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20     directory in 
3530: 77 68 69 63 68 20 74 65 6d 70 6f 72 61 72 79 20  which temporary 
3540: 66 69 6c 65 73 20 61 72 65 20 73 74 6f 72 65 64  files are stored
3550: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74  .</li>.<li>sqlit
3560: 65 5f 69 6e 74 65 72 72 75 70 74 28 29 20 70 6c  e_interrupt() pl
3570: 61 79 73 20 77 65 6c 6c 20 77 69 74 68 20 56 41  ays well with VA
3580: 43 55 55 4d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  CUUM.</li>.<li>O
3590: 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66  ther minor bug f
35a0: 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixes.</li>.}..ch
35b0: 6e 67 20 7b 32 30 30 34 20 4d 61 72 63 68 20 38  ng {2004 March 8
35c0: 20 28 32 2e 38 2e 31 33 29 7d 20 7b 0a 3c 6c 69   (2.8.13)} {.<li
35d0: 3e 52 65 66 61 63 74 6f 72 20 70 61 72 74 73 20  >Refactor parts 
35e0: 6f 66 20 74 68 65 20 63 6f 64 65 20 69 6e 20 6f  of the code in o
35f0: 72 64 65 72 20 74 6f 20 6d 61 6b 65 20 74 68 65  rder to make the
3600: 20 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 0a   code footprint.
3610: 20 20 20 20 73 6d 61 6c 6c 65 72 2e 20 20 54 68      smaller.  Th
3620: 65 20 63 6f 64 65 20 69 73 20 6e 6f 77 20 61 6c  e code is now al
3630: 73 6f 20 61 20 6c 69 74 74 6c 65 20 62 69 74 20  so a little bit 
3640: 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  faster.</li>.<li
3650: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 69  >sqlite_exec() i
3660: 73 20 6e 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 65  s now implemente
3670: 64 20 61 73 20 61 20 77 72 61 70 70 65 72 20 61  d as a wrapper a
3680: 72 6f 75 6e 64 20 73 71 6c 69 74 65 5f 63 6f 6d  round sqlite_com
3690: 70 69 6c 65 28 29 0a 20 20 20 20 61 6e 64 20 73  pile().    and s
36a0: 71 6c 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c  qlite_step().</l
36b0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 62 75 69 6c 74  i>.<li>The built
36c0: 2d 69 6e 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61  -in min() and ma
36d0: 78 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 6e 6f  x() functions no
36e0: 77 20 68 6f 6e 6f 72 20 74 68 65 20 64 69 66 66  w honor the diff
36f0: 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 0a 20  erence between. 
3700: 20 20 20 4e 55 4d 45 52 49 43 20 61 6e 64 20 54     NUMERIC and T
3710: 45 58 54 20 64 61 74 61 74 79 70 65 73 2e 20 20  EXT datatypes.  
3720: 46 6f 72 6d 65 72 6c 79 2c 20 6d 69 6e 28 29 20  Formerly, min() 
3730: 61 6e 64 20 6d 61 78 28 29 20 61 6c 77 61 79 73  and max() always
3740: 20 61 73 73 75 6d 65 64 0a 20 20 20 20 74 68 65   assumed.    the
3750: 69 72 20 61 72 67 75 6d 65 6e 74 73 20 77 65 72  ir arguments wer
3760: 65 20 6f 66 20 74 79 70 65 20 4e 55 4d 45 52 49  e of type NUMERI
3770: 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20  C.</li>.<li>New 
3780: 48 48 3a 4d 4d 3a 53 53 20 6d 6f 64 69 66 69 65  HH:MM:SS modifie
3790: 72 20 74 6f 20 74 68 65 20 62 75 69 6c 74 2d 69  r to the built-i
37a0: 6e 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63  n date/time func
37b0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
37c0: 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c  Experimental sql
37d0: 69 74 65 5f 6c 61 73 74 5f 73 74 61 74 65 6d 65  ite_last_stateme
37e0: 6e 74 5f 63 68 61 6e 67 65 73 28 29 20 41 50 49  nt_changes() API
37f0: 20 61 64 64 65 64 2e 20 20 46 69 78 65 64 20 74   added.  Fixed t
3800: 68 65 0a 20 20 20 20 74 68 65 20 6c 61 73 74 5f  he.    the last_
3810: 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 20 66  insert_rowid() f
3820: 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20  unction so that 
3830: 69 74 20 77 6f 72 6b 73 20 63 6f 72 72 65 63 74  it works correct
3840: 6c 79 20 77 69 74 68 0a 20 20 20 20 74 72 69 67  ly with.    trig
3850: 67 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  gers.</li>.<li>A
3860: 64 64 20 66 75 6e 63 74 69 6f 6e 73 20 70 72 6f  dd functions pro
3870: 74 6f 74 79 70 65 73 20 66 6f 72 20 74 68 65 20  totypes for the 
3880: 64 61 74 61 62 61 73 65 20 65 6e 63 72 79 70 74  database encrypt
3890: 69 6f 6e 20 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c  ion API.</li>.<l
38a0: 69 3e 46 69 78 20 73 65 76 65 72 61 6c 20 6e 75  i>Fix several nu
38b0: 69 73 61 6e 63 65 20 62 75 67 73 2e 3c 2f 6c 69  isance bugs.</li
38c0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
38d0: 46 65 62 72 75 61 72 79 20 38 20 28 32 2e 38 2e  February 8 (2.8.
38e0: 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  12)} {.<li>Fix a
38f0: 20 62 75 67 20 74 68 61 74 20 77 69 6c 6c 20 6d   bug that will m
3900: 69 67 68 74 20 63 6f 72 72 75 70 74 20 74 68 65  ight corrupt the
3910: 20 72 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61   rollback journa
3920: 6c 20 69 66 20 61 20 70 6f 77 65 72 20 66 61 69  l if a power fai
3930: 6c 75 72 65 0a 20 20 20 20 6f 72 20 65 78 74 65  lure.    or exte
3940: 72 6e 61 6c 20 70 72 6f 67 72 61 6d 20 68 61 6c  rnal program hal
3950: 74 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20  t occurs in the 
3960: 6d 69 64 64 6c 65 20 6f 66 20 61 20 43 4f 4d 4d  middle of a COMM
3970: 49 54 2e 20 20 54 68 65 20 63 6f 72 72 75 70 74  IT.  The corrupt
3980: 0a 20 20 20 20 6a 6f 75 72 6e 61 6c 20 63 61 6e  .    journal can
3990: 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73   lead to databas
39a0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65  e corruption whe
39b0: 6e 20 69 74 20 69 73 20 72 6f 6c 6c 65 64 20 62  n it is rolled b
39c0: 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  ack.</li>.<li>Re
39d0: 64 75 63 65 20 74 68 65 20 73 69 7a 65 20 61 6e  duce the size an
39e0: 64 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 73  d increase the s
39f0: 70 65 65 64 20 6f 66 20 76 61 72 69 6f 75 73 20  peed of various 
3a00: 6d 6f 64 75 6c 65 73 2c 20 65 73 70 65 63 69 61  modules, especia
3a10: 6c 6c 79 0a 20 20 20 20 74 68 65 20 76 69 72 74  lly.    the virt
3a20: 75 61 6c 20 6d 61 63 68 69 6e 65 2e 3c 2f 6c 69  ual machine.</li
3a30: 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 22 26 6c 74  >.<li>Allow "&lt
3a40: 3b 65 78 70 72 26 67 74 3b 20 49 4e 20 26 6c 74  ;expr&gt; IN &lt
3a50: 3b 74 61 62 6c 65 26 67 74 3b 22 20 61 73 20 61  ;table&gt;" as a
3a60: 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 0a 20   shorthand for. 
3a70: 20 20 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b     "&lt;expr&gt;
3a80: 20 49 4e 20 28 53 45 4c 45 43 54 20 2a 20 46 52   IN (SELECT * FR
3a90: 4f 4d 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b  OM &lt;table&gt;
3aa0: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69  ".</li>.<li>Opti
3ab0: 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 74 68 65  mizations to the
3ac0: 20 73 71 6c 69 74 65 5f 6d 70 72 69 6e 74 66 28   sqlite_mprintf(
3ad0: 29 20 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a  ) routine.</li>.
3ae0: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68  <li>Make sure th
3af0: 65 20 4d 49 4e 28 29 20 61 6e 64 20 4d 41 58 28  e MIN() and MAX(
3b00: 29 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20  ) optimizations 
3b10: 77 6f 72 6b 20 77 69 74 68 69 6e 20 73 75 62 71  work within subq
3b20: 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ueries.</li>.}..
3b30: 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61  chng {2004 Janua
3b40: 72 79 20 31 34 20 28 32 2e 38 2e 31 31 29 7d 20  ry 14 (2.8.11)} 
3b50: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
3b60: 69 6e 20 68 6f 77 20 74 68 65 20 49 4e 20 6f 70  in how the IN op
3b70: 65 72 61 74 6f 72 20 68 61 6e 64 6c 65 73 20 4e  erator handles N
3b80: 55 4c 4c 73 20 69 6e 20 73 75 62 71 75 65 72 69  ULLs in subqueri
3b90: 65 73 2e 20 20 54 68 65 20 62 75 67 0a 20 20 20  es.  The bug.   
3ba0: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20   was introduced 
3bb0: 62 79 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  by the previous 
3bc0: 72 65 6c 65 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a  release.</li>.}.
3bd0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75  .chng {2004 Janu
3be0: 61 72 79 20 31 33 20 28 32 2e 38 2e 31 30 29 7d  ary 13 (2.8.10)}
3bf0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 6f 74   {.<li>Fix a pot
3c00: 65 6e 74 69 61 6c 20 64 61 74 61 62 61 73 65 20  ential database 
3c10: 63 6f 72 72 75 70 74 69 6f 6e 20 70 72 6f 62 6c  corruption probl
3c20: 65 6d 20 6f 6e 20 55 6e 69 78 20 63 61 75 73 65  em on Unix cause
3c30: 64 20 62 79 20 74 68 65 20 66 61 63 74 0a 20 20  d by the fact.  
3c40: 20 20 74 68 61 74 20 61 6c 6c 20 70 6f 73 69 78    that all posix
3c50: 20 61 64 76 69 73 6f 72 79 20 6c 6f 63 6b 73 20   advisory locks 
3c60: 61 72 65 20 63 6c 65 61 72 65 64 20 77 68 65 6e  are cleared when
3c70: 65 76 65 72 20 79 6f 75 20 63 6c 6f 73 65 28 29  ever you close()
3c80: 20 61 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 65   a file..    The
3c90: 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 69 74 20   work around it 
3ca0: 74 6f 20 65 6d 62 61 72 67 6f 20 61 6c 6c 20 63  to embargo all c
3cb0: 6c 6f 73 65 28 29 20 63 61 6c 6c 73 20 77 68 69  lose() calls whi
3cc0: 6c 65 20 6c 6f 63 6b 73 20 61 72 65 20 0a 20 20  le locks are .  
3cd0: 20 20 6f 75 74 73 74 61 6e 64 69 6e 67 2e 3c 2f    outstanding.</
3ce0: 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61  li>.<li>Performa
3cf0: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
3d00: 20 6f 6e 20 73 6f 6d 65 20 63 6f 72 6e 65 72 20   on some corner 
3d10: 63 61 73 65 73 20 6f 66 20 43 4f 55 4e 54 28 2a  cases of COUNT(*
3d20: 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  ).</li>.<li>Make
3d30: 20 73 75 72 65 20 74 68 65 20 69 6e 2d 6d 65 6d   sure the in-mem
3d40: 6f 72 79 20 62 61 63 6b 65 6e 64 20 72 65 73 70  ory backend resp
3d50: 6f 6e 73 65 20 73 61 6e 65 6c 79 20 69 66 20 6d  onse sanely if m
3d60: 61 6c 6c 6f 63 28 29 20 66 61 69 6c 73 2e 3c 2f  alloc() fails.</
3d70: 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 73 71  li>.<li>Allow sq
3d80: 6c 69 74 65 5f 65 78 65 63 28 29 20 74 6f 20 62  lite_exec() to b
3d90: 65 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 77 69  e called from wi
3da0: 74 68 69 6e 20 75 73 65 72 2d 64 65 66 69 6e 65  thin user-define
3db0: 64 20 53 51 4c 0a 20 20 20 20 66 75 6e 63 74 69  d SQL.    functi
3dc0: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d  ons.</li>.<li>Im
3dd0: 70 72 6f 76 65 64 20 61 63 63 75 72 61 63 79 20  proved accuracy 
3de0: 6f 66 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e  of floating-poin
3df0: 74 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 75 73  t conversions us
3e00: 69 6e 67 20 22 6c 6f 6e 67 20 64 6f 75 62 6c 65  ing "long double
3e10: 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  ".</li>.<li>Bug 
3e20: 66 69 78 65 73 20 69 6e 20 74 68 65 20 65 78 70  fixes in the exp
3e30: 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74  erimental date/t
3e40: 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f  ime functions.</
3e50: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
3e60: 34 20 4a 61 6e 75 61 72 79 20 35 20 28 32 2e 38  4 January 5 (2.8
3e70: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .9)} {.<li>Fix a
3e80: 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 20   32-bit integer 
3e90: 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d  overflow problem
3ea0: 20 74 68 61 74 20 63 6f 75 6c 64 20 72 65 73 75   that could resu
3eb0: 6c 74 20 69 6e 20 63 6f 72 72 75 70 74 0a 20 20  lt in corrupt.  
3ec0: 20 20 69 6e 64 69 63 65 73 20 69 6e 20 61 20 64    indices in a d
3ed0: 61 74 61 62 61 73 65 20 69 66 20 6c 61 72 67 65  atabase if large
3ee0: 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72   negative number
3ef0: 73 20 28 6c 65 73 73 20 74 68 61 6e 20 2d 32 31  s (less than -21
3f00: 34 37 34 38 33 36 34 38 29 0a 20 20 20 20 77 65  47483648).    we
3f10: 72 65 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f  re inserted into
3f20: 20 61 20 69 6e 64 65 78 65 64 20 6e 75 6d 65 72   a indexed numer
3f30: 69 63 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a  ic column.</li>.
3f40: 3c 6c 69 3e 46 69 78 20 61 20 6c 6f 63 6b 69 6e  <li>Fix a lockin
3f50: 67 20 70 72 6f 62 6c 65 6d 20 6f 6e 20 6d 75 6c  g problem on mul
3f60: 74 69 2d 74 68 72 65 61 64 65 64 20 4c 69 6e 75  ti-threaded Linu
3f70: 78 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  x implementation
3f80: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 77 61  s.</li>.<li>Alwa
3f90: 79 73 20 75 73 65 20 22 2e 22 20 69 6e 73 74 65  ys use "." inste
3fa0: 61 64 20 6f 66 20 22 2c 22 20 61 73 20 74 68 65  ad of "," as the
3fb0: 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 65   decimal point e
3fc0: 76 65 6e 20 69 66 20 74 68 65 20 6c 6f 63 61 6c  ven if the local
3fd0: 65 0a 20 20 20 20 72 65 71 75 65 73 74 73 20 22  e.    requests "
3fe0: 2c 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ,".</li>.<li>Add
3ff0: 65 64 20 55 54 43 20 74 6f 20 6c 6f 63 61 6c 74  ed UTC to localt
4000: 69 6d 65 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20  ime conversions 
4010: 74 6f 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e  to the experimen
4020: 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 0a 20 20  tal date/time.  
4030: 20 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69    functions.</li
4040: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20  >.<li>Bug fixes 
4050: 74 6f 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e  to date/time fun
4060: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ctions.</li>.}..
4070: 63 68 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d  chng {2003 Decem
4080: 62 65 72 20 31 37 20 28 32 2e 38 2e 38 29 7d 20  ber 17 (2.8.8)} 
4090: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 63 72 69 74  {.<li>Fix a crit
40a0: 69 63 61 6c 20 62 75 67 20 69 6e 74 72 6f 64 75  ical bug introdu
40b0: 63 65 64 20 69 6e 74 6f 20 32 2e 38 2e 30 20 77  ced into 2.8.0 w
40c0: 68 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65  hich could cause
40d0: 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 63 6f  .    database co
40e0: 72 72 75 70 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  rruption.</li>.<
40f0: 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d  li>Fix a problem
4100: 20 77 69 74 68 20 33 2d 77 61 79 20 6a 6f 69 6e   with 3-way join
4110: 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 75 73  s that do not us
4120: 65 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c  e indices</li>.<
4130: 6c 69 3e 54 68 65 20 56 41 43 55 55 4d 20 63 6f  li>The VACUUM co
4140: 6d 6d 61 6e 64 20 6e 6f 77 20 77 6f 72 6b 73 20  mmand now works 
4150: 77 69 74 68 20 74 68 65 20 6e 6f 6e 2d 63 61 6c  with the non-cal
4160: 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c  lback API</li>.<
4170: 6c 69 3e 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20  li>Improvements 
4180: 74 6f 20 74 68 65 20 22 50 52 41 47 4d 41 20 69  to the "PRAGMA i
4190: 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20  ntegrity_check" 
41a0: 63 6f 6d 6d 61 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a  command</li>.}..
41b0: 63 68 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d  chng {2003 Decem
41c0: 62 65 72 20 34 20 28 32 2e 38 2e 37 29 7d 20 7b  ber 4 (2.8.7)} {
41d0: 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72  .<li>Added exper
41e0: 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 62  imental sqlite_b
41f0: 69 6e 64 28 29 20 61 6e 64 20 73 71 6c 69 74 65  ind() and sqlite
4200: 5f 72 65 73 65 74 28 29 20 41 50 49 73 2e 3c 2f  _reset() APIs.</
4210: 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6e  li>.<li>If the n
4220: 61 6d 65 20 6f 66 20 74 68 65 20 64 61 74 61 62  ame of the datab
4230: 61 73 65 20 69 73 20 61 6e 20 65 6d 70 74 79 20  ase is an empty 
4240: 73 74 72 69 6e 67 2c 20 6f 70 65 6e 20 61 20 6e  string, open a n
4250: 65 77 20 64 61 74 61 62 61 73 65 0a 20 20 20 20  ew database.    
4260: 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66  in a temporary f
4270: 69 6c 65 20 74 68 61 74 20 69 73 20 61 75 74 6f  ile that is auto
4280: 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c 65 74 65  matically delete
4290: 64 20 77 68 65 6e 20 74 68 65 20 64 61 74 61 62  d when the datab
42a0: 61 73 65 0a 20 20 20 20 69 73 20 63 6c 6f 73 65  ase.    is close
42b0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66  d.</li>.<li>Perf
42c0: 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d  ormance enhancem
42d0: 65 6e 74 73 20 69 6e 20 74 68 65 20 6c 65 6d 6f  ents in the lemo
42e0: 6e 2d 67 65 6e 65 72 61 74 65 64 20 70 61 72 73  n-generated pars
42f0: 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65  er</li>.<li>Expe
4300: 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69  rimental date/ti
4310: 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 76  me functions rev
4320: 69 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  ised.</li>.<li>D
4330: 69 73 61 6c 6c 6f 77 20 74 65 6d 70 6f 72 61 72  isallow temporar
4340: 79 20 69 6e 64 69 63 65 73 20 6f 6e 20 70 65 72  y indices on per
4350: 6d 61 6e 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f  manent tables.</
4360: 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  li>.<li>Document
4370: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 20 61 6e  ation updates an
4380: 64 20 74 79 70 6f 20 66 69 78 65 73 3c 2f 6c 69  d typo fixes</li
4390: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65  >.<li>Added expe
43a0: 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f  rimental sqlite_
43b0: 70 72 6f 67 72 65 73 73 5f 68 61 6e 64 6c 65 72  progress_handler
43c0: 28 29 20 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c  () callback API<
43d0: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64  /li>.<li>Removed
43e0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65   support for the
43f0: 20 4f 72 61 63 6c 65 38 20 6f 75 74 65 72 20 6a   Oracle8 outer j
4400: 6f 69 6e 20 73 79 6e 74 61 78 2e 3c 2f 6c 69 3e  oin syntax.</li>
4410: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 47 4c 4f 42 20  .<li>Allow GLOB 
4420: 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f  and LIKE operato
4430: 72 73 20 74 6f 20 77 6f 72 6b 20 61 73 20 66 75  rs to work as fu
4440: 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  nctions.</li>.<l
4450: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 64 6f  i>Other minor do
4460: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20  cumentation and 
4470: 6d 61 6b 65 66 69 6c 65 20 63 68 61 6e 67 65 73  makefile changes
4480: 20 61 6e 64 20 62 75 67 20 66 69 78 65 73 2e 3c   and bug fixes.<
4490: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
44a0: 30 33 20 41 75 67 75 73 74 20 32 31 20 28 32 2e  03 August 21 (2.
44b0: 38 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 76 65  8.6)} {.<li>Move
44c0: 64 20 74 68 65 20 43 56 53 20 72 65 70 6f 73 69  d the CVS reposi
44d0: 74 6f 72 79 20 74 6f 20 77 77 77 2e 73 71 6c 69  tory to www.sqli
44e0: 74 65 2e 6f 72 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e  te.org</li>.<li>
44f0: 55 70 64 61 74 65 20 74 68 65 20 4e 55 4c 4c 2d  Update the NULL-
4500: 68 61 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e  handling documen
4510: 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tation.</li>.<li
4520: 3e 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61  >Experimental da
4530: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
4540: 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  s added.</li>.<l
4550: 69 3e 42 75 67 20 66 69 78 3a 20 63 6f 72 72 65  i>Bug fix: corre
4560: 63 74 6c 79 20 65 76 61 6c 75 61 74 65 20 61 20  ctly evaluate a 
4570: 76 69 65 77 20 6f 66 20 61 20 76 69 65 77 20 77  view of a view w
4580: 69 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69  ithout segfaulti
4590: 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ng.</li>.<li>Bug
45a0: 20 66 69 78 3a 20 70 72 65 76 65 6e 74 20 64 61   fix: prevent da
45b0: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
45c0: 6e 20 69 66 20 79 6f 75 20 64 72 6f 70 70 65 64  n if you dropped
45d0: 20 61 0a 20 20 20 20 74 72 69 67 67 65 72 20 74   a.    trigger t
45e0: 68 61 74 20 68 61 64 20 74 68 65 20 73 61 6d 65  hat had the same
45f0: 20 6e 61 6d 65 20 61 73 20 61 20 74 61 62 6c 65   name as a table
4600: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
4610: 69 78 3a 20 61 6c 6c 6f 77 20 61 20 56 41 43 55  ix: allow a VACU
4620: 55 4d 20 28 77 69 74 68 6f 75 74 20 73 65 67 66  UM (without segf
4630: 61 75 6c 74 69 6e 67 29 20 6f 6e 20 61 6e 20 65  aulting) on an e
4640: 6d 70 74 79 0a 20 20 20 20 64 61 74 61 62 61 73  mpty.    databas
4650: 65 20 61 66 74 65 72 20 73 65 74 74 69 6e 67 20  e after setting 
4660: 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54  the EMPTY_RESULT
4670: 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d  _CALLBACKS pragm
4680: 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  a.</li>.<li>Bug 
4690: 66 69 78 3a 20 69 66 20 61 6e 20 69 6e 74 65 67  fix: if an integ
46a0: 65 72 20 76 61 6c 75 65 20 77 69 6c 6c 20 6e 6f  er value will no
46b0: 74 20 66 69 74 20 69 6e 20 61 20 33 32 2d 62 69  t fit in a 32-bi
46c0: 74 20 69 6e 74 2c 20 73 74 6f 72 65 20 69 74 20  t int, store it 
46d0: 69 6e 0a 20 20 20 20 61 20 64 6f 75 62 6c 65 20  in.    a double 
46e0: 69 6e 73 74 65 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c  instead.</li>.<l
46f0: 69 3e 42 75 67 20 66 69 78 3a 20 4d 61 6b 65 20  i>Bug fix: Make 
4700: 73 75 72 65 20 74 68 65 20 6a 6f 75 72 6e 61 6c  sure the journal
4710: 20 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 20   file directory 
4720: 65 6e 74 72 79 20 69 73 20 63 6f 6d 6d 69 74 74  entry is committ
4730: 65 64 20 74 6f 20 64 69 73 6b 0a 20 20 20 20 62  ed to disk.    b
4740: 65 66 6f 72 65 20 77 72 69 74 69 6e 67 20 74 68  efore writing th
4750: 65 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e  e database file.
4760: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4770: 30 30 33 20 4a 75 6c 79 20 32 32 20 28 32 2e 38  003 July 22 (2.8
4780: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .5)} {.<li>Make 
4790: 4c 49 4d 49 54 20 77 6f 72 6b 20 6f 6e 20 61 20  LIMIT work on a 
47a0: 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20  compound SELECT 
47b0: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
47c0: 3c 6c 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20  <li>LIMIT 0 now 
47d0: 73 68 6f 77 73 20 6e 6f 20 72 6f 77 73 2e 20 20  shows no rows.  
47e0: 55 73 65 20 4c 49 4d 49 54 20 2d 31 20 74 6f 20  Use LIMIT -1 to 
47f0: 73 65 65 20 61 6c 6c 20 72 6f 77 73 2e 3c 2f 6c  see all rows.</l
4800: 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79  i>.<li>Correctly
4810: 20 68 61 6e 64 6c 65 20 63 6f 6d 70 61 72 69 73   handle comparis
4820: 6f 6e 73 20 62 65 74 77 65 65 6e 20 61 6e 20 49  ons between an I
4830: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
4840: 45 59 20 61 6e 64 0a 20 20 20 20 61 20 66 6c 6f  EY and.    a flo
4850: 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62  ating point numb
4860: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  er.</li>.<li>Fix
4870: 20 73 65 76 65 72 61 6c 20 69 6d 70 6f 72 74 61   several importa
4880: 6e 74 20 62 75 67 73 20 69 6e 20 74 68 65 20 6e  nt bugs in the n
4890: 65 77 20 41 54 54 41 43 48 20 61 6e 64 20 44 45  ew ATTACH and DE
48a0: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f  TACH commands.</
48b0: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20  li>.<li>Updated 
48c0: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 6e 75 6c  the <a href="nul
48d0: 6c 73 2e 68 74 6d 6c 22 3e 4e 55 4c 4c 2d 68 61  ls.html">NULL-ha
48e0: 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 3c  ndling document<
48f0: 2f 61 3e 2e 3c 2f 6c 69 3e 20 0a 3c 6c 69 3e 41  /a>.</li> .<li>A
4900: 6c 6c 6f 77 20 4e 55 4c 4c 20 61 72 67 75 6d 65  llow NULL argume
4910: 6e 74 73 20 69 6e 20 73 71 6c 69 74 65 5f 63 6f  nts in sqlite_co
4920: 6d 70 69 6c 65 28 29 20 61 6e 64 20 73 71 6c 69  mpile() and sqli
4930: 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a  te_step().</li>.
4940: 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62  <li>Many minor b
4950: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
4960: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65  .chng {2003 June
4970: 20 32 39 20 28 32 2e 38 2e 34 29 7d 20 7b 0a 3c   29 (2.8.4)} {.<
4980: 6c 69 3e 45 6e 68 61 6e 63 65 64 20 74 68 65 20  li>Enhanced the 
4990: 22 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74  "PRAGMA integrit
49a0: 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64  y_check" command
49b0: 20 74 6f 20 76 65 72 69 66 79 20 69 6e 64 69 63   to verify indic
49c0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
49d0: 65 64 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e  ed authorization
49e0: 20 68 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 6e   hooks for the n
49f0: 65 77 20 41 54 54 41 43 48 20 61 6e 64 20 44 45  ew ATTACH and DE
4a00: 54 41 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f  TACH commands.</
4a10: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 64 6f 63  li>.<li>Many doc
4a20: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
4a30: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79  es</li>.<li>Many
4a40: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
4a50: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4a60: 30 30 33 20 4a 75 6e 65 20 34 20 28 32 2e 38 2e  003 June 4 (2.8.
4a70: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  3)} {.<li>Fix a 
4a80: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 69 6c  problem that wil
4a90: 6c 20 63 6f 72 72 75 70 74 20 74 68 65 20 69 6e  l corrupt the in
4aa0: 64 69 63 65 73 20 6f 6e 20 61 20 74 61 62 6c 65  dices on a table
4ab0: 20 69 66 20 79 6f 75 0a 20 20 20 20 64 6f 20 61   if you.    do a
4ac0: 6e 20 49 4e 53 45 52 54 20 4f 52 20 52 45 50 4c  n INSERT OR REPL
4ad0: 41 43 45 20 6f 72 20 61 6e 20 55 50 44 41 54 45  ACE or an UPDATE
4ae0: 20 4f 52 20 52 45 50 4c 41 43 45 20 6f 6e 20 61   OR REPLACE on a
4af0: 20 74 61 62 6c 65 20 74 68 61 74 0a 20 20 20 20   table that.    
4b00: 63 6f 6e 74 61 69 6e 73 20 61 6e 20 49 4e 54 45  contains an INTE
4b10: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
4b20: 70 6c 75 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65  plus one or more
4b30: 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c   indices.</li>.<
4b40: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
4b50: 77 69 6e 64 6f 77 73 20 6c 6f 63 6b 69 6e 67 20  windows locking 
4b60: 63 6f 64 65 20 73 6f 20 74 68 61 74 20 6c 6f 63  code so that loc
4b70: 6b 73 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c  ks work correctl
4b80: 79 0a 20 20 20 20 77 68 65 6e 20 73 69 6d 75 6c  y.    when simul
4b90: 74 61 6e 65 6f 75 73 6c 79 20 61 63 63 65 73 73  taneously access
4ba0: 65 64 20 62 79 20 57 69 6e 39 35 20 61 6e 64 20  ed by Win95 and 
4bb0: 57 69 6e 4e 54 20 73 79 73 74 65 6d 73 2e 3c 2f  WinNT systems.</
4bc0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
4bd0: 61 62 69 6c 69 74 79 20 66 6f 72 20 49 4e 53 45  ability for INSE
4be0: 52 54 20 61 6e 64 20 55 50 44 41 54 45 20 73 74  RT and UPDATE st
4bf0: 61 74 65 6d 65 6e 74 73 20 74 6f 20 72 65 66 65  atements to refe
4c00: 72 20 74 6f 20 74 68 65 0a 20 20 20 20 22 72 6f  r to the.    "ro
4c10: 77 69 64 22 20 28 6f 72 20 22 5f 72 6f 77 69 64  wid" (or "_rowid
4c20: 5f 22 20 6f 72 20 22 6f 69 64 22 29 20 63 6f 6c  _" or "oid") col
4c30: 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  umns.</li>.<li>O
4c40: 74 68 65 72 20 69 6d 70 6f 72 74 61 6e 74 20 62  ther important b
4c50: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a  ug fixes</li>.}.
4c60: 0a 63 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20  .chng {2003 May 
4c70: 31 37 20 28 32 2e 38 2e 32 29 7d 20 7b 0a 3c 6c  17 (2.8.2)} {.<l
4c80: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
4c90: 74 68 61 74 20 77 69 6c 6c 20 63 6f 72 72 75 70  that will corrup
4ca0: 74 20 74 68 65 20 64 61 74 61 62 61 73 65 20 66  t the database f
4cb0: 69 6c 65 20 69 66 20 79 6f 75 20 64 72 6f 70 20  ile if you drop 
4cc0: 61 0a 20 20 20 20 74 61 62 6c 65 20 66 72 6f 6d  a.    table from
4cd0: 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61   the main databa
4ce0: 73 65 20 74 68 61 74 20 68 61 73 20 61 20 54 45  se that has a TE
4cf0: 4d 50 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 7d  MP index.</li>.}
4d00: 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4d 61 79  ..chng {2003 May
4d10: 20 31 36 20 28 32 2e 38 2e 31 29 7d 20 7b 0a 3c   16 (2.8.1)} {.<
4d20: 6c 69 3e 52 65 61 63 74 69 76 61 74 65 64 20 74  li>Reactivated t
4d30: 68 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e  he VACUUM comman
4d40: 64 20 74 68 61 74 20 72 65 63 6c 61 69 6d 73 20  d that reclaims 
4d50: 75 6e 75 73 65 64 20 64 69 73 6b 20 73 70 61 63  unused disk spac
4d60: 65 20 69 6e 20 0a 20 20 20 20 61 20 64 61 74 61  e in .    a data
4d70: 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a  base file.</li>.
4d80: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41 54  <li>Added the AT
4d90: 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48 20  TACH and DETACH 
4da0: 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 61 6c 6c 6f  commands to allo
4db0: 77 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69  w interacting wi
4dc0: 74 68 20 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20  th multiple.    
4dd0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 61  database files a
4de0: 74 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e  t the same time.
4df0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
4e00: 73 75 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50  support for TEMP
4e10: 20 74 72 69 67 67 65 72 73 20 61 6e 64 20 69 6e   triggers and in
4e20: 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  dices.</li>.<li>
4e30: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
4e40: 72 20 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61  r in-memory data
4e50: 62 61 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  bases.</li>.<li>
4e60: 52 65 6d 6f 76 65 64 20 74 68 65 20 65 78 70 65  Removed the expe
4e70: 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f  rimental sqlite_
4e80: 6f 70 65 6e 5f 61 75 78 5f 66 69 6c 65 28 29 2e  open_aux_file().
4e90: 20 20 49 74 73 20 66 75 6e 63 74 69 6f 6e 20 69    Its function i
4ea0: 73 0a 20 20 20 20 73 75 62 73 75 6d 65 64 20 69  s.    subsumed i
4eb0: 6e 20 74 68 65 20 6e 65 77 20 41 54 54 41 43 48  n the new ATTACH
4ec0: 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c   command.</li>.<
4ed0: 6c 69 3e 54 68 65 20 70 72 65 63 65 64 65 6e 63  li>The precedenc
4ee0: 65 20 6f 72 64 65 72 20 66 6f 72 20 4f 4e 20 43  e order for ON C
4ef0: 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20  ONFLICT clauses 
4f00: 77 61 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74  was changed so t
4f10: 68 61 74 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c  hat.    ON CONFL
4f20: 49 43 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 42  ICT clauses on B
4f30: 45 47 49 4e 20 73 74 61 74 65 6d 65 6e 74 73 20  EGIN statements 
4f40: 68 61 76 65 20 61 20 68 69 67 68 65 72 20 70 72  have a higher pr
4f50: 65 63 65 64 65 6e 63 65 20 74 68 61 6e 0a 20 20  ecedence than.  
4f60: 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c    ON CONFLICT cl
4f70: 61 75 73 65 73 20 6f 6e 20 63 6f 6e 73 74 72 61  auses on constra
4f80: 69 6e 74 73 2e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20  ints..<li>Many, 
4f90: 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 20 61  many bug fixes a
4fa0: 6e 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  nd compatibility
4fb0: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f   enhancements.</
4fc0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4fd0: 33 20 46 65 62 20 31 36 20 28 32 2e 38 2e 30 29  3 Feb 16 (2.8.0)
4fe0: 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64  } {.<li>Modified
4ff0: 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c   the journal fil
5000: 65 20 66 6f 72 6d 61 74 20 74 6f 20 6d 61 6b 65  e format to make
5010: 20 69 74 20 6d 6f 72 65 20 72 65 73 69 73 74 61   it more resista
5020: 6e 74 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e  nt to corruption
5030: 0a 20 20 20 20 74 68 61 74 20 63 61 6e 20 6f 63  .    that can oc
5040: 63 75 72 20 61 66 74 65 72 20 61 6e 20 4f 53 20  cur after an OS 
5050: 63 72 61 73 68 20 6f 72 20 70 6f 77 65 72 20 66  crash or power f
5060: 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ailure.</li>.<li
5070: 3e 41 64 64 65 64 20 61 20 6e 65 77 20 43 2f 43  >Added a new C/C
5080: 2b 2b 20 41 50 49 20 74 68 61 74 20 64 6f 65 73  ++ API that does
5090: 20 6e 6f 74 20 75 73 65 20 63 61 6c 6c 62 61 63   not use callbac
50a0: 6b 20 66 6f 72 20 72 65 74 75 72 6e 69 6e 67 20  k for returning 
50b0: 64 61 74 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  data.</li>.}..ch
50c0: 6e 67 20 7b 32 30 30 33 20 4a 61 6e 20 32 35 20  ng {2003 Jan 25 
50d0: 28 32 2e 37 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 50  (2.7.6)} {.<li>P
50e0: 65 72 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f  erformance impro
50f0: 76 65 6d 65 6e 74 73 2e 20 20 54 68 65 20 6c 69  vements.  The li
5100: 62 72 61 72 79 20 69 73 20 6e 6f 77 20 6d 75 63  brary is now muc
5110: 68 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c  h faster.</li>.<
5120: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
5130: 73 71 6c 69 74 65 5f 73 65 74 5f 61 75 74 68 6f  sqlite_set_autho
5140: 72 69 7a 65 72 28 29 3c 2f 62 3e 20 41 50 49 2e  rizer()</b> API.
5150: 20 20 46 6f 72 6d 61 6c 20 64 6f 63 75 6d 65 6e    Formal documen
5160: 74 61 74 69 6f 6e 20 68 61 73 0a 20 20 20 20 6e  tation has.    n
5170: 6f 74 20 62 65 65 6e 20 77 72 69 74 74 65 6e 20  ot been written 
5180: 2d 20 73 65 65 20 74 68 65 20 73 6f 75 72 63 65  - see the source
5190: 20 63 6f 64 65 20 63 6f 6d 6d 65 6e 74 73 20 66   code comments f
51a0: 6f 72 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20  or instructions 
51b0: 6f 6e 0a 20 20 20 20 68 6f 77 20 74 6f 20 75 73  on.    how to us
51c0: 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e  e this function.
51d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
51e0: 62 75 67 20 69 6e 20 74 68 65 20 47 4c 4f 42 20  bug in the GLOB 
51f0: 6f 70 65 72 61 74 6f 72 20 74 68 61 74 20 77 61  operator that wa
5200: 73 20 70 72 65 76 65 6e 74 69 6e 67 20 69 74 20  s preventing it 
5210: 66 72 6f 6d 20 77 6f 72 6b 69 6e 67 0a 20 20 20  from working.   
5220: 20 77 69 74 68 20 75 70 70 65 72 2d 63 61 73 65   with upper-case
5230: 20 6c 65 74 74 65 72 73 2e 3c 2f 6c 69 3e 0a 3c   letters.</li>.<
5240: 6c 69 3e 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72  li>Various minor
5250: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
5260: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 44  .}..chng {2002 D
5270: 65 63 20 32 37 20 28 32 2e 37 2e 35 29 7d 20 7b  ec 27 (2.7.5)} {
5280: 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 75 6e 69 6e  .<li>Fix an unin
5290: 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62  itialized variab
52a0: 6c 65 20 69 6e 20 70 61 67 65 72 2e 63 20 77 68  le in pager.c wh
52b0: 69 63 68 20 63 6f 75 6c 64 20 28 77 69 74 68 20  ich could (with 
52c0: 61 20 70 72 6f 62 61 62 69 6c 69 74 79 0a 20 20  a probability.  
52d0: 20 20 6f 66 20 61 62 6f 75 74 20 31 20 69 6e 20    of about 1 in 
52e0: 34 20 62 69 6c 6c 69 6f 6e 29 20 72 65 73 75 6c  4 billion) resul
52f0: 74 20 69 6e 20 61 20 63 6f 72 72 75 70 74 65 64  t in a corrupted
5300: 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a   database.</li>.
5310: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65  }..chng {2002 De
5320: 63 20 31 37 20 28 32 2e 37 2e 34 29 7d 20 7b 0a  c 17 (2.7.4)} {.
5330: 3c 6c 69 3e 44 61 74 61 62 61 73 65 20 66 69 6c  <li>Database fil
5340: 65 73 20 63 61 6e 20 6e 6f 77 20 67 72 6f 77 20  es can now grow 
5350: 74 6f 20 62 65 20 75 70 20 74 6f 20 32 5e 34 31  to be up to 2^41
5360: 20 62 79 74 65 73 2e 20 20 54 68 65 20 6f 6c 64   bytes.  The old
5370: 20 6c 69 6d 69 74 0a 20 20 20 20 77 61 73 20 32   limit.    was 2
5380: 5e 33 31 20 62 79 74 65 73 2e 3c 2f 6c 69 3e 0a  ^31 bytes.</li>.
5390: 3c 6c 69 3e 54 68 65 20 6f 70 74 69 6d 69 7a 65  <li>The optimize
53a0: 72 20 77 69 6c 6c 20 6e 6f 77 20 73 63 61 6e 20  r will now scan 
53b0: 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20 72 65  tables in the re
53c0: 76 65 72 73 65 20 69 66 20 64 6f 69 6e 67 20 73  verse if doing s
53d0: 6f 20 77 69 6c 6c 0a 20 20 20 20 73 61 74 69 73  o will.    satis
53e0: 66 79 20 61 6e 20 4f 52 44 45 52 20 42 59 20 2e  fy an ORDER BY .
53f0: 2e 2e 20 44 45 53 43 20 63 6c 61 75 73 65 2e 3c  .. DESC clause.<
5400: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 75 6c  /li>.<li>The ful
5410: 6c 20 70 61 74 68 6e 61 6d 65 20 6f 66 20 74 68  l pathname of th
5420: 65 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20  e database file 
5430: 69 73 20 6e 6f 77 20 72 65 6d 65 6d 62 65 72 65  is now remembere
5440: 64 20 65 76 65 6e 20 69 66 0a 20 20 20 20 61 20  d even if.    a 
5450: 72 65 6c 61 74 69 76 65 20 70 61 74 68 20 69 73  relative path is
5460: 20 70 61 73 73 65 64 20 69 6e 74 6f 20 73 71 6c   passed into sql
5470: 69 74 65 5f 6f 70 65 6e 28 29 2e 20 20 54 68 69  ite_open().  Thi
5480: 73 20 61 6c 6c 6f 77 73 20 0a 20 20 20 20 74 68  s allows .    th
5490: 65 20 6c 69 62 72 61 72 79 20 74 6f 20 63 6f 6e  e library to con
54a0: 74 69 6e 75 65 20 6f 70 65 72 61 74 69 6e 67 20  tinue operating 
54b0: 63 6f 72 72 65 63 74 6c 79 20 61 66 74 65 72 20  correctly after 
54c0: 61 20 63 68 64 69 72 28 29 2e 3c 2f 6c 69 3e 0a  a chdir().</li>.
54d0: 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76  <li>Speed improv
54e0: 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 56 44  ements in the VD
54f0: 42 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74  BE.</li>.<li>Lot
5500: 73 20 6f 66 20 6c 69 74 74 6c 65 20 62 75 67 20  s of little bug 
5510: 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixes.</li>.}..c
5520: 68 6e 67 20 7b 32 30 30 32 20 4f 63 74 20 33 30  hng {2002 Oct 30
5530: 20 28 32 2e 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.3)} {.<li>
5540: 56 61 72 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72  Various compiler
5550: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 66   compatibility f
5560: 69 78 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ixes.</li>.<li>F
5570: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
5580: 22 65 78 70 72 20 49 4e 20 28 29 22 20 6f 70 65  "expr IN ()" ope
5590: 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rator.</li>.<li>
55a0: 41 63 63 65 70 74 20 63 6f 6c 75 6d 6e 20 6e 61  Accept column na
55b0: 6d 65 73 20 69 6e 20 70 61 72 65 6e 74 68 65 73  mes in parenthes
55c0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
55d0: 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20   a problem with 
55e0: 73 74 72 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 61  string memory ma
55f0: 6e 61 67 65 6d 65 6e 74 20 69 6e 20 74 68 65 20  nagement in the 
5600: 56 44 42 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  VDBE</li>.<li>Fi
5610: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 22  x a bug in the "
5620: 74 61 62 6c 65 5f 69 6e 66 6f 22 20 70 72 61 67  table_info" prag
5630: 6d 61 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70  ma"</li>.<li>Exp
5640: 6f 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f 66  ort the sqlite_f
5650: 75 6e 63 74 69 6f 6e 5f 74 79 70 65 28 29 20 41  unction_type() A
5660: 50 49 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74  PI function in t
5670: 68 65 20 57 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f  he Windows DLL</
5680: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b  li>.<li>Fix lock
5690: 69 6e 67 20 62 65 68 61 76 69 6f 72 20 75 6e 64  ing behavior und
56a0: 65 72 20 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a  er windows</li>.
56b0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
56c0: 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e   LEFT OUTER JOIN
56d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
56e0: 30 30 32 20 53 65 70 20 32 35 20 28 32 2e 37 2e  002 Sep 25 (2.7.
56f0: 32 29 7d 20 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e  2)} {.<li>Preven
5700: 74 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 6f  t journal file o
5710: 76 65 72 66 6c 6f 77 73 20 6f 6e 20 68 75 67 65  verflows on huge
5720: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f   transactions.</
5730: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65  li>.<li>Fix a me
5740: 6d 6f 72 79 20 6c 65 61 6b 20 74 68 61 74 20 6f  mory leak that o
5750: 63 63 75 72 72 65 64 20 77 68 65 6e 20 73 71 6c  ccurred when sql
5760: 69 74 65 5f 6f 70 65 6e 28 29 20 66 61 69 6c 65  ite_open() faile
5770: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f  d.</li>.<li>Hono
5780: 72 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 61  r the ORDER BY a
5790: 6e 64 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20  nd LIMIT clause 
57a0: 6f 66 20 61 20 53 45 4c 45 43 54 20 65 76 65 6e  of a SELECT even
57b0: 20 69 66 20 74 68 65 0a 20 20 20 20 72 65 73 75   if the.    resu
57c0: 6c 74 20 73 65 74 20 69 73 20 75 73 65 64 20 66  lt set is used f
57d0: 6f 72 20 61 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c  or an INSERT.</l
57e0: 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 70 75  i>.<li>Do not pu
57f0: 74 20 77 72 69 74 65 20 6c 6f 63 6b 73 20 6f 6e  t write locks on
5800: 20 74 68 65 20 66 69 6c 65 20 75 73 65 64 20 74   the file used t
5810: 6f 20 68 6f 6c 64 20 54 45 4d 50 20 74 61 62 6c  o hold TEMP tabl
5820: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
5830: 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ed documentation
5840: 20 6f 6e 20 53 45 4c 45 43 54 20 44 49 53 54 49   on SELECT DISTI
5850: 4e 43 54 20 61 6e 64 20 6f 6e 20 68 6f 77 20 53  NCT and on how S
5860: 51 4c 69 74 65 20 68 61 6e 64 6c 65 73 20 4e 55  QLite handles NU
5870: 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  LLs.</li>.<li>Fi
5880: 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74  x a problem that
5890: 20 77 61 73 20 63 61 75 73 69 6e 67 20 70 6f 6f   was causing poo
58a0: 72 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 68  r performance wh
58b0: 65 6e 20 6d 61 6e 79 20 74 68 6f 75 73 61 6e 64  en many thousand
58c0: 73 0a 20 20 20 20 6f 66 20 53 51 4c 20 73 74 61  s.    of SQL sta
58d0: 74 65 6d 65 6e 74 73 20 77 65 72 65 20 65 78 65  tements were exe
58e0: 63 75 74 65 64 20 62 79 20 61 20 73 69 6e 67 6c  cuted by a singl
58f0: 65 20 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20  e sqlite_exec() 
5900: 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  call.</li>.}..ch
5910: 6e 67 20 7b 32 30 30 32 20 41 75 67 20 33 31 20  ng {2002 Aug 31 
5920: 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.7.1)} {.<li>F
5930: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
5940: 4f 52 44 45 52 20 42 59 20 6c 6f 67 69 63 20 74  ORDER BY logic t
5950: 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63  hat was introduc
5960: 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e  ed in version 2.
5970: 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73  7.0</li>.<li>C-s
5980: 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 61 72  tyle comments ar
5990: 65 20 6e 6f 77 20 61 63 63 65 70 74 65 64 20 62  e now accepted b
59a0: 79 20 74 68 65 20 74 6f 6b 65 6e 69 7a 65 72 2e  y the tokenizer.
59b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54  </li>.<li>INSERT
59c0: 20 72 75 6e 73 20 61 20 6c 69 74 74 6c 65 20 66   runs a little f
59d0: 61 73 74 65 72 20 77 68 65 6e 20 74 68 65 20 73  aster when the s
59e0: 6f 75 72 63 65 20 69 73 20 61 20 53 45 4c 45 43  ource is a SELEC
59f0: 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69  T statement.</li
5a00: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
5a10: 41 75 67 20 32 35 20 28 32 2e 37 2e 30 29 7d 20  Aug 25 (2.7.0)} 
5a20: 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61 20 64 69 73  {.<li>Make a dis
5a30: 74 69 6e 63 74 69 6f 6e 20 62 65 74 77 65 65 6e  tinction between
5a40: 20 6e 75 6d 65 72 69 63 20 61 6e 64 20 74 65 78   numeric and tex
5a50: 74 20 76 61 6c 75 65 73 20 77 68 65 6e 20 73 6f  t values when so
5a60: 72 74 69 6e 67 2e 0a 20 20 20 20 54 65 78 74 20  rting..    Text 
5a70: 76 61 6c 75 65 73 20 73 6f 72 74 20 61 63 63 6f  values sort acco
5a80: 72 64 69 6e 67 20 74 6f 20 6d 65 6d 63 6d 70 28  rding to memcmp(
5a90: 29 2e 20 20 4e 75 6d 65 72 69 63 20 76 61 6c 75  ).  Numeric valu
5aa0: 65 73 20 73 6f 72 74 20 69 6e 0a 20 20 20 20 6e  es sort in.    n
5ab0: 75 6d 65 72 69 63 20 6f 72 64 65 72 2e 3c 2f 6c  umeric order.</l
5ac0: 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c  i>.<li>Allow mul
5ad0: 74 69 70 6c 65 20 73 69 6d 75 6c 74 61 6e 65 6f  tiple simultaneo
5ae0: 75 73 20 72 65 61 64 65 72 73 20 75 6e 64 65 72  us readers under
5af0: 20 77 69 6e 64 6f 77 73 20 62 79 20 73 69 6d 75   windows by simu
5b00: 6c 61 74 69 6e 67 0a 20 20 20 20 74 68 65 20 72  lating.    the r
5b10: 65 61 64 65 72 2f 77 72 69 74 65 72 73 20 6c 6f  eader/writers lo
5b20: 63 6b 73 20 74 68 61 74 20 61 72 65 20 6d 69 73  cks that are mis
5b30: 73 69 6e 67 20 66 72 6f 6d 20 57 69 6e 39 35 2f  sing from Win95/
5b40: 39 38 2f 4d 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  98/ME.</li>.<li>
5b50: 41 6e 20 65 72 72 6f 72 20 69 73 20 6e 6f 77 20  An error is now 
5b60: 72 65 74 75 72 6e 65 64 20 77 68 65 6e 20 74 72  returned when tr
5b70: 79 69 6e 67 20 74 6f 20 73 74 61 72 74 20 61 20  ying to start a 
5b80: 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 66 0a 20  transaction if. 
5b90: 20 20 20 61 6e 6f 74 68 65 72 20 74 72 61 6e 73     another trans
5ba0: 61 63 74 69 6f 6e 20 69 73 20 61 6c 72 65 61 64  action is alread
5bb0: 79 20 61 63 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d  y active.</li>.}
5bc0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67  ..chng {2002 Aug
5bd0: 20 31 32 20 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c   12 (2.6.3)} {.<
5be0: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
5bf0: 74 79 20 74 6f 20 72 65 61 64 20 62 6f 74 68 20  ty to read both 
5c00: 6c 69 74 74 6c 65 2d 65 6e 64 69 61 6e 20 61 6e  little-endian an
5c10: 64 20 62 69 67 2d 65 6e 64 69 61 6e 20 64 61 74  d big-endian dat
5c20: 61 62 61 73 65 73 2e 0a 20 20 20 20 53 6f 20 64  abases..    So d
5c30: 61 74 61 62 61 73 65 20 63 72 65 61 74 65 64 20  atabase created 
5c40: 75 6e 64 65 72 20 53 75 6e 4f 53 20 6f 72 20 4d  under SunOS or M
5c50: 61 63 4f 53 58 20 63 61 6e 20 62 65 20 72 65 61  acOSX can be rea
5c60: 64 20 61 6e 64 20 77 72 69 74 74 65 6e 0a 20 20  d and written.  
5c70: 20 20 75 6e 64 65 72 20 4c 69 6e 75 78 20 6f 72    under Linux or
5c80: 20 57 69 6e 64 6f 77 73 20 61 6e 64 20 76 69 63   Windows and vic
5c90: 65 20 76 65 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c  e versa.</li>.<l
5ca0: 69 3e 43 6f 6e 76 65 72 74 20 74 6f 20 74 68 65  i>Convert to the
5cb0: 20 6e 65 77 20 77 65 62 73 69 74 65 3a 20 68 74   new website: ht
5cc0: 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e  tp://www.sqlite.
5cd0: 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  org/</li>.<li>Al
5ce0: 6c 6f 77 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  low transactions
5cf0: 20 74 6f 20 73 70 61 6e 20 4c 69 6e 75 78 20 54   to span Linux T
5d00: 68 72 65 61 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  hreads</li>.<li>
5d10: 42 75 67 20 66 69 78 20 69 6e 20 74 68 65 20 70  Bug fix in the p
5d20: 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65  rocessing of the
5d30: 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65   ORDER BY clause
5d40: 20 66 6f 72 20 47 52 4f 55 50 20 42 59 20 71 75   for GROUP BY qu
5d50: 65 72 69 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  eries</li>.}..ch
5d60: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 33 30 20  ng {2002 Jly 30 
5d70: 28 32 2e 36 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54  (2.6.2)} {.<li>T
5d80: 65 78 74 20 66 69 6c 65 73 20 72 65 61 64 20 62  ext files read b
5d90: 79 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61  y the COPY comma
5da0: 6e 64 20 63 61 6e 20 6e 6f 77 20 68 61 76 65 20  nd can now have 
5db0: 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 73  line terminators
5dc0: 0a 20 20 20 20 6f 66 20 4c 46 2c 20 20 43 52 4c  .    of LF,  CRL
5dd0: 46 2c 20 6f 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c  F, or CR.</li>.<
5de0: 6c 69 3e 53 51 4c 49 54 45 5f 42 55 53 59 20 69  li>SQLITE_BUSY i
5df0: 73 20 68 61 6e 64 6c 65 64 20 63 6f 72 72 65 63  s handled correc
5e00: 74 6c 79 20 69 66 20 65 6e 63 6f 75 6e 74 65 72  tly if encounter
5e10: 65 64 20 64 75 72 69 6e 67 20 64 61 74 61 62 61  ed during databa
5e20: 73 65 0a 20 20 20 20 69 6e 69 74 69 61 6c 69 7a  se.    initializ
5e30: 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ation.</li>.<li>
5e40: 46 69 78 20 74 6f 20 55 50 44 41 54 45 20 74 72  Fix to UPDATE tr
5e50: 69 67 67 65 72 73 20 6f 6e 20 54 45 4d 50 20 74  iggers on TEMP t
5e60: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
5e70: 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  Documentation up
5e80: 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  dates.</li>.}..c
5e90: 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 39  hng {2002 Jly 19
5ea0: 20 28 32 2e 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.6.1)} {.<li>
5eb0: 49 6e 63 6c 75 64 65 20 61 20 73 74 61 74 69 63  Include a static
5ec0: 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 6c   string in the l
5ed0: 69 62 72 61 72 79 20 74 68 61 74 20 72 65 73 70  ibrary that resp
5ee0: 6f 6e 64 73 20 74 6f 20 74 68 65 20 52 43 53 0a  onds to the RCS.
5ef0: 20 20 20 20 22 69 64 65 6e 74 22 20 63 6f 6d 6d      "ident" comm
5f00: 61 6e 64 20 61 6e 64 20 77 68 69 63 68 20 63 6f  and and which co
5f10: 6e 74 61 69 6e 73 20 74 68 65 20 6c 69 62 72 61  ntains the libra
5f20: 72 79 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  ry version numbe
5f30: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  r.</li>.<li>Fix 
5f40: 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69  an assertion fai
5f50: 6c 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72  lure that occurr
5f60: 65 64 20 77 68 65 6e 20 64 65 6c 65 74 69 6e 67  ed when deleting
5f70: 20 61 6c 6c 20 72 6f 77 73 20 6f 66 0a 20 20 20   all rows of.   
5f80: 20 61 20 74 61 62 6c 65 20 77 69 74 68 20 74 68   a table with th
5f90: 65 20 22 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73  e "count_changes
5fa0: 22 20 70 72 61 67 6d 61 20 74 75 72 6e 65 64 20  " pragma turned 
5fb0: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74  on.</li>.<li>Bet
5fc0: 74 65 72 20 65 72 72 6f 72 20 72 65 70 6f 72 74  ter error report
5fd0: 69 6e 67 20 77 68 65 6e 20 70 72 6f 62 6c 65 6d  ing when problem
5fe0: 73 20 6f 63 63 75 72 20 64 75 72 69 6e 67 20 74  s occur during t
5ff0: 68 65 20 61 75 74 6f 6d 61 74 69 63 0a 20 20 20  he automatic.   
6000: 20 32 2e 35 2e 36 20 74 6f 20 32 2e 36 2e 30 20   2.5.6 to 2.6.0 
6010: 64 61 74 61 62 61 73 65 20 66 6f 72 6d 61 74 20  database format 
6020: 75 70 67 72 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a  upgrade.</li>.}.
6030: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20  .chng {2002 Jly 
6040: 31 37 20 28 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c  17 (2.6.0)} {.<l
6050: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72  i>Change the for
6060: 6d 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74  mat of indices t
6070: 6f 20 63 6f 72 72 65 63 74 20 61 20 64 65 73 69  o correct a desi
6080: 67 6e 20 66 6c 61 77 20 74 68 65 20 6f 72 69 67  gn flaw the orig
6090: 69 6e 61 74 65 64 0a 20 20 20 20 77 69 74 68 20  inated.    with 
60a0: 76 65 72 73 69 6f 6e 20 32 2e 31 2e 30 2e 20 20  version 2.1.0.  
60b0: 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64  <font color="red
60c0: 22 3e 2a 2a 2a 20 54 68 69 73 20 69 73 20 61 6e  ">*** This is an
60d0: 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20   incompatible.  
60e0: 20 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 63 68    file format ch
60f0: 61 6e 67 65 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20  ange ***</font> 
6100: 20 57 68 65 6e 20 76 65 72 73 69 6f 6e 20 32 2e   When version 2.
6110: 36 2e 30 20 6f 72 20 6c 61 74 65 72 20 6f 66 20  6.0 or later of 
6120: 74 68 65 0a 20 20 20 20 6c 69 62 72 61 72 79 20  the.    library 
6130: 61 74 74 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e  attempts to open
6140: 20 61 20 64 61 74 61 62 61 73 65 20 66 69 6c 65   a database file
6150: 20 63 72 65 61 74 65 64 20 62 79 20 76 65 72 73   created by vers
6160: 69 6f 6e 20 32 2e 35 2e 36 20 6f 72 0a 20 20 20  ion 2.5.6 or.   
6170: 20 65 61 72 6c 69 65 72 2c 20 69 74 20 77 69 6c   earlier, it wil
6180: 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  l automatically 
6190: 61 6e 64 20 69 72 72 65 76 65 72 73 69 62 6c 79  and irreversibly
61a0: 20 63 6f 6e 76 65 72 74 20 74 68 65 20 66 69 6c   convert the fil
61b0: 65 20 66 6f 72 6d 61 74 2e 0a 20 20 20 20 3c 62  e format..    <b
61c0: 3e 4d 61 6b 65 20 62 61 63 6b 75 70 20 63 6f 70  >Make backup cop
61d0: 69 65 73 20 6f 66 20 6f 6c 64 65 72 20 64 61 74  ies of older dat
61e0: 61 62 61 73 65 20 66 69 6c 65 73 20 62 65 66 6f  abase files befo
61f0: 72 65 20 6f 70 65 6e 69 6e 67 20 74 68 65 6d 20  re opening them 
6200: 77 69 74 68 0a 20 20 20 20 76 65 72 73 69 6f 6e  with.    version
6210: 20 32 2e 36 2e 30 20 6f 66 20 74 68 65 20 6c 69   2.6.0 of the li
6220: 62 72 61 72 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c  brary.</b>.    <
6230: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6240: 30 32 20 4a 6c 79 20 37 20 28 32 2e 35 2e 36 29  02 Jly 7 (2.5.6)
6250: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 6d 6f 72 65  } {.<li>Fix more
6260: 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 72   problems with r
6270: 6f 6c 6c 62 61 63 6b 2e 20 20 45 6e 68 61 6e 63  ollback.  Enhanc
6280: 65 20 74 68 65 20 74 65 73 74 20 73 75 69 74 65  e the test suite
6290: 20 74 6f 20 65 78 65 72 63 69 73 65 0a 20 20 20   to exercise.   
62a0: 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f   the rollback lo
62b0: 67 69 63 20 65 78 74 65 6e 73 69 76 65 6c 79 20  gic extensively 
62c0: 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76  in order to prev
62d0: 65 6e 74 20 61 6e 79 20 66 75 74 75 72 65 20 70  ent any future p
62e0: 72 6f 62 6c 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c  roblems..    </l
62f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
6300: 20 4a 6c 79 20 36 20 28 32 2e 35 2e 35 29 7d 20   Jly 6 (2.5.5)} 
6310: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  {.<li>Fix a bug 
6320: 77 68 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73  which could caus
6330: 65 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75  e database corru
6340: 70 74 69 6f 6e 20 64 75 72 69 6e 67 20 61 20 72  ption during a r
6350: 6f 6c 6c 62 61 63 6b 2e 0a 20 20 20 20 54 68 69  ollback..    Thi
6360: 73 20 62 75 67 73 20 77 61 73 20 69 6e 74 72 6f  s bugs was intro
6370: 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e  duced in version
6380: 20 32 2e 34 2e 30 20 62 79 20 74 68 65 20 66 72   2.4.0 by the fr
6390: 65 65 6c 69 73 74 0a 20 20 20 20 6f 70 74 69 6d  eelist.    optim
63a0: 69 7a 61 74 69 6f 6e 20 6f 66 20 63 68 65 63 6b  ization of check
63b0: 69 6e 67 20 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a  ing [410].</li>.
63c0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
63d0: 20 61 67 67 72 65 67 61 74 65 20 66 75 6e 63 74   aggregate funct
63e0: 69 6f 6e 73 20 66 6f 72 20 56 49 45 57 73 2e 3c  ions for VIEWs.<
63f0: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d  /li>.<li>Other m
6400: 69 6e 6f 72 20 63 68 61 6e 67 65 73 20 61 6e 64  inor changes and
6410: 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f   enhancements.</
6420: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6430: 32 20 4a 6c 79 20 31 20 28 32 2e 35 2e 34 29 7d  2 Jly 1 (2.5.4)}
6440: 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20   {.<li>Make the 
6450: 22 41 53 22 20 6b 65 79 77 6f 72 64 20 6f 70 74  "AS" keyword opt
6460: 69 6f 6e 61 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69  ional again.</li
6470: 3e 0a 3c 6c 69 3e 54 68 65 20 64 61 74 61 74 79  >.<li>The dataty
6480: 70 65 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f  pe of columns no
6490: 77 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20  w appear in the 
64a0: 34 74 68 20 61 72 67 75 6d 65 6e 74 20 74 6f 20  4th argument to 
64b0: 74 68 65 0a 20 20 20 20 63 61 6c 6c 62 61 63 6b  the.    callback
64c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
64d0: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 6f   the <b>sqlite_o
64e0: 70 65 6e 5f 61 75 78 5f 66 69 6c 65 28 29 3c 2f  pen_aux_file()</
64f0: 62 3e 20 41 50 49 2c 20 74 68 6f 75 67 68 20 69  b> API, though i
6500: 74 20 69 73 20 73 74 69 6c 6c 0a 20 20 20 20 6d  t is still.    m
6510: 6f 73 74 6c 79 20 75 6e 64 6f 63 75 6d 65 6e 74  ostly undocument
6520: 65 64 20 61 6e 64 20 75 6e 74 65 73 74 65 64 2e  ed and untested.
6530: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
6540: 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 20  additional test 
6550: 63 61 73 65 73 20 61 6e 64 20 66 69 78 65 64 20  cases and fixed 
6560: 61 20 66 65 77 20 62 75 67 73 20 74 68 61 74 20  a few bugs that 
6570: 74 68 6f 73 65 0a 20 20 20 20 74 65 73 74 20 63  those.    test c
6580: 61 73 65 73 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e  ases found.</li>
6590: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
65a0: 75 6e 20 32 34 20 28 32 2e 35 2e 33 29 7d 20 7b  un 24 (2.5.3)} {
65b0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 20 44  .<li>Bug fix:  D
65c0: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
65d0: 6f 6e 20 63 61 6e 20 6f 63 63 75 72 20 64 75 65  on can occur due
65e0: 20 74 6f 20 74 68 65 20 6f 70 74 69 6d 69 7a 61   to the optimiza
65f0: 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20 77 61  tion.    that wa
6600: 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20  s introduced in 
6610: 76 65 72 73 69 6f 6e 20 32 2e 34 2e 30 20 28 63  version 2.4.0 (c
6620: 68 65 63 6b 2d 69 6e 20 5b 34 31 30 5d 29 2e 20  heck-in [410]). 
6630: 20 54 68 65 20 70 72 6f 62 6c 65 6d 0a 20 20 20   The problem.   
6640: 20 73 68 6f 75 6c 64 20 6e 6f 77 20 62 65 20 66   should now be f
6650: 69 78 65 64 2e 20 20 54 68 65 20 75 73 65 20 6f  ixed.  The use o
6660: 66 20 76 65 72 73 69 6f 6e 73 20 32 2e 34 2e 30  f versions 2.4.0
6670: 20 74 68 72 6f 75 67 68 20 32 2e 35 2e 32 20 69   through 2.5.2 i
6680: 73 0a 20 20 20 20 6e 6f 74 20 72 65 63 6f 6d 6d  s.    not recomm
6690: 65 6e 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ended.</li>.}..c
66a0: 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34  hng {2002 Jun 24
66b0: 20 28 32 2e 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.5.2)} {.<li>
66c0: 41 64 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62  Added the new <b
66d0: 3e 53 51 4c 49 54 45 5f 54 45 4d 50 5f 4d 41 53  >SQLITE_TEMP_MAS
66e0: 54 45 52 3c 2f 62 3e 20 74 61 62 6c 65 20 77 68  TER</b> table wh
66f0: 69 63 68 20 72 65 63 6f 72 64 73 20 74 68 65 20  ich records the 
6700: 73 63 68 65 6d 61 0a 20 20 20 20 66 6f 72 20 74  schema.    for t
6710: 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 73 20  emporary tables 
6720: 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20  in the same way 
6730: 74 68 61 74 20 3c 62 3e 53 51 4c 49 54 45 5f 4d  that <b>SQLITE_M
6740: 41 53 54 45 52 3c 2f 62 3e 20 64 6f 65 73 20 66  ASTER</b> does f
6750: 6f 72 0a 20 20 20 20 70 65 72 73 69 73 74 65 6e  or.    persisten
6760: 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  t tables.</li>.<
6770: 6c 69 3e 41 64 64 65 64 20 61 6e 20 6f 70 74 69  li>Added an opti
6780: 6d 69 7a 61 74 69 6f 6e 20 74 6f 20 55 4e 49 4f  mization to UNIO
6790: 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  N ALL</li>.<li>F
67a0: 69 78 65 64 20 61 20 62 75 67 20 69 6e 20 74 68  ixed a bug in th
67b0: 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20  e processing of 
67c0: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c  LEFT OUTER JOIN<
67d0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d  /li>.<li>The LIM
67e0: 49 54 20 63 6c 61 75 73 65 20 6e 6f 77 20 77 6f  IT clause now wo
67f0: 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65 63 74  rks on subselect
6800: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52  s</li>.<li>ORDER
6810: 20 42 59 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62   BY works on sub
6820: 73 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69  selects</li>.<li
6830: 3e 54 68 65 72 65 20 69 73 20 61 20 6e 65 77 20  >There is a new 
6840: 54 79 70 65 4f 66 28 29 20 66 75 6e 63 74 69 6f  TypeOf() functio
6850: 6e 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d  n used to determ
6860: 69 6e 65 20 69 66 20 61 6e 20 65 78 70 72 65 73  ine if an expres
6870: 73 69 6f 6e 0a 20 20 20 20 69 73 20 6e 75 6d 65  sion.    is nume
6880: 72 69 63 20 6f 72 20 74 65 78 74 2e 3c 2f 6c 69  ric or text.</li
6890: 3e 0a 3c 6c 69 3e 41 75 74 6f 69 6e 63 72 65 6d  >.<li>Autoincrem
68a0: 65 6e 74 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f  ent now works fo
68b0: 72 20 49 4e 53 45 52 54 20 66 72 6f 6d 20 61 20  r INSERT from a 
68c0: 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  SELECT.</li>.}..
68d0: 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 31  chng {2002 Jun 1
68e0: 39 20 28 32 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69  9 (2.5.1)} {.<li
68f0: 3e 54 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d  >The query optim
6900: 69 7a 65 72 20 6e 6f 77 20 61 74 74 65 6d 70 74  izer now attempt
6910: 73 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74  s to implement t
6920: 68 65 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75  he ORDER BY clau
6930: 73 65 0a 20 20 20 20 75 73 69 6e 67 20 61 6e 20  se.    using an 
6940: 69 6e 64 65 78 2e 20 20 53 6f 72 74 69 6e 67 20  index.  Sorting 
6950: 69 73 20 73 74 69 6c 6c 20 75 73 65 64 20 69 66  is still used if
6960: 20 6e 6f 74 20 73 75 69 74 61 62 6c 65 20 69 6e   not suitable in
6970: 64 65 78 20 69 73 0a 20 20 20 20 61 76 61 69 6c  dex is.    avail
6980: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
6990: 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 37 20  ng {2002 Jun 17 
69a0: 28 32 2e 35 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.5.0)} {.<li>A
69b0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
69c0: 20 72 6f 77 20 74 72 69 67 67 65 72 73 2e 3c 2f   row triggers.</
69d0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 53 51  li>.<li>Added SQ
69e0: 4c 2d 39 32 20 63 6f 6d 70 6c 69 61 6e 74 20 68  L-92 compliant h
69f0: 61 6e 64 6c 69 6e 67 20 6f 66 20 4e 55 4c 4c 73  andling of NULLs
6a00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73  .</li>.<li>Add s
6a10: 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 66  upport for the f
6a20: 75 6c 6c 20 53 51 4c 2d 39 32 20 6a 6f 69 6e 20  ull SQL-92 join 
6a30: 73 79 6e 74 61 78 20 61 6e 64 20 4c 45 46 54 20  syntax and LEFT 
6a40: 4f 55 54 45 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69  OUTER JOINs.</li
6a50: 3e 0a 3c 6c 69 3e 44 6f 75 62 6c 65 2d 71 75 6f  >.<li>Double-quo
6a60: 74 65 64 20 73 74 72 69 6e 67 73 20 69 6e 74 65  ted strings inte
6a70: 72 70 72 65 74 65 64 20 61 73 20 63 6f 6c 75 6d  rpreted as colum
6a80: 6e 20 6e 61 6d 65 73 20 6e 6f 74 20 74 65 78 74  n names not text
6a90: 20 6c 69 74 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a   literals.</li>.
6aa0: 3c 6c 69 3e 50 61 72 73 65 20 28 62 75 74 20 64  <li>Parse (but d
6ab0: 6f 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 29  o not implement)
6ac0: 20 66 6f 72 65 69 67 6e 20 6b 65 79 73 2e 3c 2f   foreign keys.</
6ad0: 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61  li>.<li>Performa
6ae0: 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73  nce improvements
6af0: 20 69 6e 20 74 68 65 20 70 61 72 73 65 72 2c 20   in the parser, 
6b00: 70 61 67 65 72 2c 20 61 6e 64 20 57 48 45 52 45  pager, and WHERE
6b10: 20 63 6c 61 75 73 65 20 63 6f 64 65 0a 20 20 20   clause code.   
6b20: 20 67 65 6e 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e   generator.</li>
6b30: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 4c 49  .<li>Make the LI
6b40: 4d 49 54 20 63 6c 61 75 73 65 20 77 6f 72 6b 20  MIT clause work 
6b50: 6f 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20 20  on subqueries.  
6b60: 28 4f 52 44 45 52 20 42 59 20 73 74 69 6c 6c 20  (ORDER BY still 
6b70: 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 77 6f 72  does not.    wor
6b80: 6b 2c 20 74 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e  k, though.)</li>
6b90: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22  .<li>Added the "
6ba0: 25 51 22 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f  %Q" expansion to
6bb0: 20 73 71 6c 69 74 65 5f 2a 5f 70 72 69 6e 74 66   sqlite_*_printf
6bc0: 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ().</li>.<li>Bug
6bd0: 20 66 69 78 65 73 20 74 6f 6f 20 6e 75 6d 65 72   fixes too numer
6be0: 6f 75 73 20 74 6f 20 6d 65 6e 74 69 6f 6e 20 28  ous to mention (
6bf0: 73 65 65 20 74 68 65 20 63 68 61 6e 67 65 20 6c  see the change l
6c00: 6f 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  og).</li>.}..chn
6c10: 67 20 7b 32 30 30 32 20 4d 61 79 20 30 39 20 28  g {2002 May 09 (
6c20: 32 2e 34 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41  2.4.12)} {.<li>A
6c30: 64 64 65 64 20 6c 6f 67 69 63 20 74 6f 20 64 65  dded logic to de
6c40: 74 65 63 74 20 77 68 65 6e 20 74 68 65 20 6c 69  tect when the li
6c50: 62 72 61 72 79 20 41 50 49 20 72 6f 75 74 69 6e  brary API routin
6c60: 65 73 20 61 72 65 20 63 61 6c 6c 65 64 20 6f 75  es are called ou
6c70: 74 0a 20 20 20 20 6f 66 20 73 65 71 75 65 6e 63  t.    of sequenc
6c80: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
6c90: 7b 32 30 30 32 20 4d 61 79 20 30 38 20 28 32 2e  {2002 May 08 (2.
6ca0: 34 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  4.11)} {.<li>Bug
6cb0: 20 66 69 78 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d   fix: Column nam
6cc0: 65 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74  es in the result
6cd0: 20 73 65 74 20 77 65 72 65 20 6e 6f 74 20 62 65   set were not be
6ce0: 69 6e 67 20 67 65 6e 65 72 61 74 65 64 0a 20 20  ing generated.  
6cf0: 20 20 63 6f 72 72 65 63 74 6c 79 20 66 6f 72 20    correctly for 
6d00: 73 6f 6d 65 20 28 72 61 74 68 65 72 20 63 6f 6d  some (rather com
6d10: 70 6c 65 78 29 20 56 49 45 57 73 2e 20 20 54 68  plex) VIEWs.  Th
6d20: 69 73 20 63 6f 75 6c 64 20 63 61 75 73 65 20 61  is could cause a
6d30: 0a 20 20 20 20 73 65 67 66 61 75 6c 74 20 75 6e  .    segfault un
6d40: 64 65 72 20 63 65 72 74 61 69 6e 20 63 69 72 63  der certain circ
6d50: 75 6d 73 74 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a  umstances.</li>.
6d60: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
6d70: 79 20 30 32 20 28 32 2e 34 2e 31 30 29 7d 20 7b  y 02 (2.4.10)} {
6d80: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 47 65  .<li>Bug fix: Ge
6d90: 6e 65 72 61 74 65 20 63 6f 72 72 65 63 74 20 63  nerate correct c
6da0: 6f 6c 75 6d 6e 20 68 65 61 64 65 72 73 20 77 68  olumn headers wh
6db0: 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45  en a compound SE
6dc0: 4c 45 43 54 20 69 73 20 75 73 65 64 0a 20 20 20  LECT is used.   
6dd0: 20 61 73 20 61 20 73 75 62 71 75 65 72 79 2e 3c   as a subquery.<
6de0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
6df0: 68 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65  he sqlite_encode
6e00: 5f 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71  _binary() and sq
6e10: 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61  lite_decode_bina
6e20: 72 79 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 74  ry() functions t
6e30: 6f 0a 20 20 20 20 74 68 65 20 73 6f 75 72 63 65  o.    the source
6e40: 20 74 72 65 65 2e 20 20 42 75 74 20 74 68 65 79   tree.  But they
6e50: 20 61 72 65 20 6e 6f 74 20 79 65 74 20 6c 69 6e   are not yet lin
6e60: 6b 65 64 20 69 6e 74 6f 20 74 68 65 20 6c 69 62  ked into the lib
6e70: 72 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  rary.</li>.<li>D
6e80: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
6e90: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  ates.</li>.<li>E
6ea0: 78 70 6f 72 74 20 74 68 65 20 73 71 6c 69 74 65  xport the sqlite
6eb0: 5f 63 68 61 6e 67 65 73 28 29 20 66 75 6e 63 74  _changes() funct
6ec0: 69 6f 6e 20 66 72 6f 6d 20 77 69 6e 64 6f 77 73  ion from windows
6ed0: 20 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   DLLs.</li>.<li>
6ee0: 42 75 67 20 66 69 78 3a 20 44 6f 20 6e 6f 74 20  Bug fix: Do not 
6ef0: 61 74 74 65 6d 70 74 20 74 68 65 20 73 75 62 71  attempt the subq
6f00: 75 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20  uery flattening 
6f10: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20  optimization on 
6f20: 71 75 65 72 69 65 73 0a 20 20 20 20 74 68 61 74  queries.    that
6f30: 20 6c 61 63 6b 20 61 20 46 52 4f 4d 20 63 6c 61   lack a FROM cla
6f40: 75 73 65 2e 20 20 54 6f 20 64 6f 20 73 6f 20 63  use.  To do so c
6f50: 61 75 73 65 73 20 61 20 73 65 67 66 61 75 6c 74  auses a segfault
6f60: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6f70: 32 30 30 32 20 41 70 72 20 32 31 20 28 32 2e 34  2002 Apr 21 (2.4
6f80: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .9)} {.<li>Fix a
6f90: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
6fa0: 75 73 69 6e 67 20 74 68 65 20 70 72 65 63 6f 6d  using the precom
6fb0: 70 69 6c 65 64 20 62 69 6e 61 72 79 20 6f 66 20  piled binary of 
6fc0: 53 51 4c 49 54 45 2e 45 58 45 20 74 6f 0a 20 20  SQLITE.EXE to.  
6fd0: 20 20 72 65 70 6f 72 74 20 22 6f 75 74 20 6f 66    report "out of
6fe0: 20 6d 65 6d 6f 72 79 22 20 75 6e 64 65 72 20 57   memory" under W
6ff0: 69 6e 64 6f 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a  indows 98.</li>.
7000: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70  }..chng {2002 Ap
7010: 72 20 32 30 20 28 32 2e 34 2e 38 29 7d 20 7b 0a  r 20 (2.4.8)} {.
7020: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 56 49  <li>Make sure VI
7030: 45 57 73 20 61 72 65 20 63 72 65 61 74 65 64 20  EWs are created 
7040: 61 66 74 65 72 20 74 68 65 69 72 20 63 6f 72 72  after their corr
7050: 65 73 70 6f 6e 64 69 6e 67 20 54 41 42 4c 45 73  esponding TABLEs
7060: 20 69 6e 20 74 68 65 0a 20 20 20 20 6f 75 74 70   in the.    outp
7070: 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 2e 64 75  ut of the <b>.du
7080: 6d 70 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69  mp</b> command i
7090: 6e 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  n the shell.</li
70a0: 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72  >.<li>Speed impr
70b0: 6f 76 65 6d 65 6e 74 73 3a 20 44 6f 20 6e 6f 74  ovements: Do not
70c0: 20 64 6f 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20   do synchronous 
70d0: 75 70 64 61 74 65 73 20 6f 6e 20 54 45 4d 50 20  updates on TEMP 
70e0: 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tables.</li>.<li
70f0: 3e 4d 61 6e 79 20 69 6d 70 72 6f 76 65 6d 65 6e  >Many improvemen
7100: 74 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65  ts and enhanceme
7110: 6e 74 73 20 74 6f 20 74 68 65 20 73 68 65 6c 6c  nts to the shell
7120: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
7130: 74 68 65 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b  the GLOB and LIK
7140: 45 20 6f 70 65 72 61 74 6f 72 73 20 66 75 6e 63  E operators func
7150: 74 69 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62  tions that can b
7160: 65 20 6f 76 65 72 72 69 64 64 65 6e 0a 20 20 20  e overridden.   
7170: 20 62 79 20 61 20 70 72 6f 67 72 61 6d 6d 65 72   by a programmer
7180: 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 2c 20  .  This allows, 
7190: 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65  for example, the
71a0: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 74   LIKE operator t
71b0: 6f 0a 20 20 20 20 62 65 20 63 68 61 6e 67 65 64  o.    be changed
71c0: 20 74 6f 20 62 65 20 63 61 73 65 20 73 65 6e 73   to be case sens
71d0: 69 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  itive.</li>.}..c
71e0: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 36  hng {2002 Apr 06
71f0: 20 28 32 2e 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.7)} {.<li>
7200: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
7210: 74 6f 20 70 75 74 20 54 41 42 4c 45 2e 2a 20 69  to put TABLE.* i
7220: 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73  n the column lis
7230: 74 20 6f 66 20 61 0a 20 20 20 20 53 45 4c 45 43  t of a.    SELEC
7240: 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69  T statement.</li
7250: 3e 0a 3c 6c 69 3e 50 65 72 6d 69 74 20 53 45 4c  >.<li>Permit SEL
7260: 45 43 54 20 73 74 61 74 65 6d 65 6e 74 73 20 77  ECT statements w
7270: 69 74 68 6f 75 74 20 61 20 46 52 4f 4d 20 63 6c  ithout a FROM cl
7280: 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ause.</li>.<li>A
7290: 64 64 65 64 20 74 68 65 20 3c 62 3e 6c 61 73 74  dded the <b>last
72a0: 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c  _insert_rowid()<
72b0: 2f 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e  /b> SQL function
72c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
72d0: 74 20 63 6f 75 6e 74 20 72 6f 77 73 20 77 68 65  t count rows whe
72e0: 72 65 20 74 68 65 20 49 47 4e 4f 52 45 20 63 6f  re the IGNORE co
72f0: 6e 66 6c 69 63 74 20 72 65 73 6f 6c 75 74 69 6f  nflict resolutio
7300: 6e 20 6f 63 63 75 72 73 20 69 6e 0a 20 20 20 20  n occurs in.    
7310: 74 68 65 20 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f  the row count.</
7320: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72  li>.<li>Make sur
7330: 65 20 66 75 6e 63 74 69 6f 6e 73 20 65 78 70 72  e functions expr
7340: 65 73 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 56  essions in the V
7350: 41 4c 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20  ALUES clause of 
7360: 61 6e 20 49 4e 53 45 52 54 0a 20 20 20 20 61 72  an INSERT.    ar
7370: 65 20 63 6f 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a  e correct.</li>.
7380: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
7390: 3e 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28  >sqlite_changes(
73a0: 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69  )</b> API functi
73b0: 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65  on to return the
73c0: 20 6e 75 6d 62 65 72 0a 20 20 20 20 6f 66 20 72   number.    of r
73d0: 6f 77 20 74 68 61 74 20 63 68 61 6e 67 65 64 20  ow that changed 
73e0: 69 6e 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65  in the most rece
73f0: 6e 74 20 6f 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c  nt operation.</l
7400: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
7410: 20 41 70 72 20 30 32 20 28 32 2e 34 2e 36 29 7d   Apr 02 (2.4.6)}
7420: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
7430: 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65  Correctly handle
7440: 20 74 65 72 6d 73 20 69 6e 20 74 68 65 20 57 48   terms in the WH
7450: 45 52 45 20 63 6c 61 75 73 65 20 6f 66 20 61 20  ERE clause of a 
7460: 6a 6f 69 6e 20 74 68 61 74 0a 20 20 20 20 64 6f  join that.    do
7470: 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 61 20 63   not contain a c
7480: 6f 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74  omparison operat
7490: 6f 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  or.</li>.}..chng
74a0: 20 7b 32 30 30 32 20 41 70 72 20 30 31 20 28 32   {2002 Apr 01 (2
74b0: 2e 34 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .4.5)} {.<li>Bug
74c0: 20 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20   fix: Correctly 
74d0: 68 61 6e 64 6c 65 20 66 75 6e 63 74 69 6f 6e 73  handle functions
74e0: 20 74 68 61 74 20 61 70 70 65 61 72 20 69 6e 20   that appear in 
74f0: 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65  the WHERE clause
7500: 0a 20 20 20 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c  .    of a join.<
7510: 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 74 68  /li>.<li>When th
7520: 65 20 50 52 41 47 4d 41 20 76 64 62 65 5f 74 72  e PRAGMA vdbe_tr
7530: 61 63 65 3d 4f 4e 20 69 73 20 73 65 74 2c 20 63  ace=ON is set, c
7540: 6f 72 72 65 63 74 6c 79 20 70 72 69 6e 74 20 74  orrectly print t
7550: 68 65 20 50 33 20 6f 70 65 72 61 6e 64 0a 20 20  he P3 operand.  
7560: 20 20 76 61 6c 75 65 20 77 68 65 6e 20 69 74 20    value when it 
7570: 69 73 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20  is a pointer to 
7580: 61 20 73 74 72 75 63 74 75 72 65 20 72 61 74 68  a structure rath
7590: 65 72 20 74 68 61 6e 20 61 20 70 6f 69 6e 74 65  er than a pointe
75a0: 72 20 74 6f 0a 20 20 20 20 61 20 73 74 72 69 6e  r to.    a strin
75b0: 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e  g.</li>.<li>When
75c0: 20 69 6e 73 65 72 74 69 6e 67 20 61 6e 20 65 78   inserting an ex
75d0: 70 6c 69 63 69 74 20 4e 55 4c 4c 20 69 6e 74 6f  plicit NULL into
75e0: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
75f0: 41 52 59 20 4b 45 59 2c 20 63 6f 6e 76 65 72 74  ARY KEY, convert
7600: 0a 20 20 20 20 74 68 65 20 4e 55 4c 4c 20 76 61  .    the NULL va
7610: 6c 75 65 20 69 6e 74 6f 20 61 20 75 6e 69 71 75  lue into a uniqu
7620: 65 20 6b 65 79 20 61 75 74 6f 6d 61 74 69 63 61  e key automatica
7630: 6c 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  lly.</li>.}..chn
7640: 67 20 7b 32 30 30 32 20 4d 61 72 20 32 34 20 28  g {2002 Mar 24 (
7650: 32 2e 34 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c  2.4.4)} {.<li>Al
7660: 6c 6f 77 20 22 56 49 45 57 22 20 74 6f 20 62 65  low "VIEW" to be
7670: 20 61 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f   a column name</
7680: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
7690: 70 70 6f 72 74 20 66 6f 72 20 43 41 53 45 20 65  pport for CASE e
76a0: 78 70 72 65 73 73 69 6f 6e 73 20 28 70 61 74 63  xpressions (patc
76b0: 68 20 66 72 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65  h from Dan Kenne
76c0: 64 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  dy)</li>.<li>Add
76d0: 65 64 20 52 50 4d 53 20 74 6f 20 74 68 65 20 64  ed RPMS to the d
76e0: 65 6c 69 76 65 72 79 20 28 70 61 74 63 68 65 73  elivery (patches
76f0: 20 66 72 6f 6d 20 44 6f 75 67 20 48 65 6e 72 79   from Doug Henry
7700: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  )</li>.<li>Fix t
7710: 79 70 6f 73 20 69 6e 20 74 68 65 20 64 6f 63 75  ypos in the docu
7720: 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c  mentation</li>.<
7730: 6c 69 3e 43 75 74 20 6f 76 65 72 20 63 6f 6e 66  li>Cut over conf
7740: 69 67 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65  iguration manage
7750: 6d 65 6e 74 20 74 6f 20 61 20 6e 65 77 20 43 56  ment to a new CV
7760: 53 20 72 65 70 6f 73 69 74 6f 72 79 20 77 69 74  S repository wit
7770: 68 0a 20 20 20 20 69 74 73 20 6f 77 6e 20 43 56  h.    its own CV
7780: 53 54 72 61 63 20 62 75 67 20 74 72 61 63 6b 69  STrac bug tracki
7790: 6e 67 20 73 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a  ng system.</li>.
77a0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
77b0: 72 20 32 32 20 28 32 2e 34 2e 33 29 7d 20 7b 0a  r 22 (2.4.3)} {.
77c0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
77d0: 20 53 45 4c 45 43 54 20 74 68 61 74 20 6f 63 63   SELECT that occ
77e0: 75 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f  urs when a compo
77f0: 75 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75 73  und SELECT is us
7800: 65 64 20 61 73 20 61 0a 20 20 20 20 73 75 62 71  ed as a.    subq
7810: 75 65 72 79 20 69 6e 20 74 68 65 20 46 52 4f 4d  uery in the FROM
7820: 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c   of a SELECT.</l
7830: 69 3e 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 73 71  i>.<li>The <b>sq
7840: 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29  lite_get_table()
7850: 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6e 6f  </b> function no
7860: 77 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72  w returns an err
7870: 6f 72 20 69 66 20 79 6f 75 0a 20 20 20 20 67 69  or if you.    gi
7880: 76 65 20 69 74 20 74 77 6f 20 6f 72 20 6d 6f 72  ve it two or mor
7890: 65 20 53 45 4c 45 43 54 73 20 74 68 61 74 20 72  e SELECTs that r
78a0: 65 74 75 72 6e 20 64 69 66 66 65 72 65 6e 74 20  eturn different 
78b0: 6e 75 6d 62 65 72 73 20 6f 66 20 63 6f 6c 75 6d  numbers of colum
78c0: 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ns.</li>.}..chng
78d0: 20 7b 32 30 30 32 20 4d 61 72 20 31 34 20 28 32   {2002 Mar 14 (2
78e0: 2e 34 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .4.2)} {.<li>Bug
78f0: 20 66 69 78 3a 20 46 69 78 20 61 6e 20 61 73 73   fix: Fix an ass
7900: 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 74  ertion failure t
7910: 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68 65  hat occurred whe
7920: 6e 20 52 4f 57 49 44 20 77 61 73 20 61 20 63 6f  n ROWID was a co
7930: 6c 75 6d 6e 0a 20 20 20 20 69 6e 20 61 20 53 45  lumn.    in a SE
7940: 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 20 6f  LECT statement o
7950: 6e 20 61 20 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c  n a view.</li>.<
7960: 6c 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20  li>Bug fix: Fix 
7970: 61 6e 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64  an uninitialized
7980: 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65   variable in the
7990: 20 56 44 42 45 20 74 68 61 74 20 77 6f 75 6c 64   VDBE that would
79a0: 20 63 6f 75 6c 64 20 61 6e 0a 20 20 20 20 61 73   could an.    as
79b0: 73 65 72 74 20 66 61 69 6c 75 72 65 2e 3c 2f 6c  sert failure.</l
79c0: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20  i>.<li>Make the 
79d0: 6f 73 2e 68 20 68 65 61 64 65 72 20 66 69 6c 65  os.h header file
79e0: 20 6d 6f 72 65 20 72 6f 62 75 73 74 20 69 6e 20   more robust in 
79f0: 64 65 74 65 63 74 69 6e 67 20 77 68 65 6e 20 74  detecting when t
7a00: 68 65 20 63 6f 6d 70 69 6c 65 20 69 73 0a 20 20  he compile is.  
7a10: 20 20 66 6f 72 20 77 69 6e 64 6f 77 73 20 61 6e    for windows an
7a20: 64 20 77 68 65 6e 20 69 74 20 69 73 20 66 6f 72  d when it is for
7a30: 20 75 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   unix.</li>.}..c
7a40: 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 31 33  hng {2002 Mar 13
7a50: 20 28 32 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.1)} {.<li>
7a60: 55 73 69 6e 67 20 61 6e 20 75 6e 6e 61 6d 65 64  Using an unnamed
7a70: 20 73 75 62 71 75 65 72 79 20 69 6e 20 61 20 46   subquery in a F
7a80: 52 4f 4d 20 63 6c 61 75 73 65 20 77 6f 75 6c 64  ROM clause would
7a90: 20 63 61 75 73 65 20 61 20 73 65 67 66 61 75 6c   cause a segfaul
7aa0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  t.</li>.<li>The 
7ab0: 70 61 72 73 65 72 20 6e 6f 77 20 69 6e 73 69 73  parser now insis
7ac0: 74 73 20 6f 6e 20 73 65 65 69 6e 67 20 61 20 73  ts on seeing a s
7ad0: 65 6d 69 63 6f 6c 6f 6e 20 6f 72 20 74 68 65 20  emicolon or the 
7ae0: 65 6e 64 20 6f 66 20 69 6e 70 75 74 20 62 65 66  end of input bef
7af0: 6f 72 65 0a 20 20 20 20 65 78 65 63 75 74 69 6e  ore.    executin
7b00: 67 20 61 20 73 74 61 74 65 6d 65 6e 74 2e 20 20  g a statement.  
7b10: 54 68 69 73 20 61 76 6f 69 64 73 20 61 6e 20 61  This avoids an a
7b20: 63 63 69 64 65 6e 74 61 6c 20 64 69 73 61 73 74  ccidental disast
7b30: 65 72 20 69 66 20 74 68 65 0a 20 20 20 20 57 48  er if the.    WH
7b40: 45 52 45 20 6b 65 79 77 6f 72 64 20 69 73 20 6d  ERE keyword is m
7b50: 69 73 73 70 65 6c 6c 65 64 20 69 6e 20 61 6e 20  isspelled in an 
7b60: 55 50 44 41 54 45 20 6f 72 20 44 45 4c 45 54 45  UPDATE or DELETE
7b70: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e   statement.</li>
7b80: 0a 7d 0a 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  .}...chng {2002 
7b90: 4d 61 72 20 31 30 20 28 32 2e 34 2e 30 29 7d 20  Mar 10 (2.4.0)} 
7ba0: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
7bb0: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 73 61 6e   name of the san
7bc0: 69 74 79 5f 63 68 65 63 6b 20 50 52 41 47 4d 41  ity_check PRAGMA
7bd0: 20 74 6f 20 3c 62 3e 69 6e 74 65 67 72 69 74 79   to <b>integrity
7be0: 5f 63 68 65 63 6b 3c 2f 62 3e 0a 20 20 20 20 61  _check</b>.    a
7bf0: 6e 64 20 6d 61 6b 65 20 69 74 20 61 76 61 69 6c  nd make it avail
7c00: 61 62 6c 65 20 69 6e 20 61 6c 6c 20 63 6f 6d 70  able in all comp
7c10: 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  iles.</li>.<li>S
7c20: 45 4c 45 43 54 20 6d 69 6e 28 29 20 6f 72 20 6d  ELECT min() or m
7c30: 61 78 28 29 20 6f 66 20 61 6e 20 69 6e 64 65 78  ax() of an index
7c40: 65 64 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 6e  ed column with n
7c50: 6f 20 57 48 45 52 45 20 6f 72 20 47 52 4f 55 50  o WHERE or GROUP
7c60: 20 42 59 0a 20 20 20 20 63 6c 61 75 73 65 20 69   BY.    clause i
7c70: 73 20 68 61 6e 64 6c 65 64 20 61 73 20 61 20 73  s handled as a s
7c80: 70 65 63 69 61 6c 20 63 61 73 65 20 77 68 69 63  pecial case whic
7c90: 68 20 61 76 6f 69 64 73 20 61 20 63 6f 6d 70 6c  h avoids a compl
7ca0: 65 74 65 20 74 61 62 6c 65 20 73 63 61 6e 2e 3c  ete table scan.<
7cb0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74  /li>.<li>Automat
7cc0: 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64  ically generated
7cd0: 20 52 4f 57 49 44 73 20 61 72 65 20 6e 6f 77 20   ROWIDs are now 
7ce0: 73 65 71 75 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e  sequential.</li>
7cf0: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f  .<li>Do not allo
7d00: 77 20 64 6f 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f  w dot-commands o
7d10: 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69  f the command-li
7d20: 6e 65 20 73 68 65 6c 6c 20 74 6f 20 6f 63 63 75  ne shell to occu
7d30: 72 20 69 6e 20 74 68 65 0a 20 20 20 20 6d 69 64  r in the.    mid
7d40: 64 6c 65 20 6f 66 20 61 20 72 65 61 6c 20 53 51  dle of a real SQ
7d50: 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  L command.</li>.
7d60: 3c 6c 69 3e 4d 6f 64 69 66 69 63 61 74 69 6f 6e  <li>Modification
7d70: 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22  s to the "lemon"
7d80: 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f   parser generato
7d90: 72 20 73 6f 20 74 68 61 74 20 74 68 65 20 70 61  r so that the pa
7da0: 72 73 65 72 20 74 61 62 6c 65 73 0a 20 20 20 20  rser tables.    
7db0: 61 72 65 20 34 20 74 69 6d 65 73 20 73 6d 61 6c  are 4 times smal
7dc0: 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ler.</li>.<li>Ad
7dd0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
7de0: 75 73 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e  user-defined fun
7df0: 63 74 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74  ctions implement
7e00: 65 64 20 69 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c  ed in C.</li>.<l
7e10: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
7e20: 66 6f 72 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e  for new function
7e30: 73 3a 20 3c 62 3e 63 6f 61 6c 65 73 63 65 28 29  s: <b>coalesce()
7e40: 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f 77 65 72 28 29  </b>, <b>lower()
7e50: 3c 2f 62 3e 2c 0a 20 20 20 20 3c 62 3e 75 70 70  </b>,.    <b>upp
7e60: 65 72 28 29 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62  er()</b>, and <b
7e70: 3e 72 61 6e 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c  >random()</b>.<l
7e80: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
7e90: 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a  for VIEWs.</li>.
7ea0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73 75  <li>Added the su
7eb0: 62 71 75 65 72 79 20 66 6c 61 74 74 65 6e 69 6e  bquery flattenin
7ec0: 67 20 6f 70 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69  g optimizer.</li
7ed0: 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74  >.<li>Modified t
7ee0: 68 65 20 42 2d 54 72 65 65 20 61 6e 64 20 50 61  he B-Tree and Pa
7ef0: 67 65 72 20 6d 6f 64 75 6c 65 73 20 73 6f 20 74  ger modules so t
7f00: 68 61 74 20 64 69 73 6b 20 70 61 67 65 73 20 74  hat disk pages t
7f10: 68 61 74 20 64 6f 20 6e 6f 74 0a 20 20 20 20 63  hat do not.    c
7f20: 6f 6e 74 61 69 6e 20 72 65 61 6c 20 64 61 74 61  ontain real data
7f30: 20 28 66 72 65 65 20 70 61 67 65 73 29 20 61 72   (free pages) ar
7f40: 65 20 6e 6f 74 20 6a 6f 75 72 6e 61 6c 65 64 20  e not journaled 
7f50: 61 6e 64 20 61 72 65 20 6e 6f 74 0a 20 20 20 20  and are not.    
7f60: 77 72 69 74 74 65 6e 20 66 72 6f 6d 20 6d 65 6d  written from mem
7f70: 6f 72 79 20 62 61 63 6b 20 74 6f 20 74 68 65 20  ory back to the 
7f80: 64 69 73 6b 20 77 68 65 6e 20 74 68 65 79 20 63  disk when they c
7f90: 68 61 6e 67 65 2e 20 20 54 68 69 73 20 64 6f 65  hange.  This doe
7fa0: 73 20 6e 6f 74 20 0a 20 20 20 20 69 6d 70 61 63  s not .    impac
7fb0: 74 20 64 61 74 61 62 61 73 65 20 69 6e 74 65 67  t database integ
7fc0: 72 69 74 79 2c 20 73 69 6e 63 65 20 74 68 65 0a  rity, since the.
7fd0: 20 20 20 20 70 61 67 65 73 20 63 6f 6e 74 61 69      pages contai
7fe0: 6e 20 6e 6f 20 72 65 61 6c 20 64 61 74 61 2c 20  n no real data, 
7ff0: 62 75 74 20 69 74 20 64 6f 65 73 20 6d 61 6b 65  but it does make
8000: 20 6c 61 72 67 65 20 49 4e 53 45 52 54 20 6f 70   large INSERT op
8010: 65 72 61 74 69 6f 6e 73 0a 20 20 20 20 61 62 6f  erations.    abo
8020: 75 74 20 32 2e 35 20 74 69 6d 65 73 20 66 61 73  ut 2.5 times fas
8030: 74 65 72 20 61 6e 64 20 6c 61 72 67 65 20 44 45  ter and large DE
8040: 4c 45 54 45 73 20 61 62 6f 75 74 20 35 20 74 69  LETEs about 5 ti
8050: 6d 65 73 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e  mes faster.</li>
8060: 0a 3c 6c 69 3e 4d 61 64 65 20 74 68 65 20 43 41  .<li>Made the CA
8070: 43 48 45 5f 53 49 5a 45 20 70 72 61 67 6d 61 20  CHE_SIZE pragma 
8080: 70 65 72 73 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a  persistent</li>.
8090: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 59  <li>Added the SY
80a0: 4e 43 48 52 4f 4e 4f 55 53 20 70 72 61 67 6d 61  NCHRONOUS pragma
80b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20  </li>.<li>Fixed 
80c0: 61 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63  a bug that was c
80d0: 61 75 73 69 6e 67 20 75 70 64 61 74 65 73 20 74  ausing updates t
80e0: 6f 20 66 61 69 6c 20 69 6e 73 69 64 65 20 6f 66  o fail inside of
80f0: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 68   transactions wh
8100: 65 6e 0a 20 20 20 20 74 68 65 20 64 61 74 61 62  en.    the datab
8110: 61 73 65 20 63 6f 6e 74 61 69 6e 65 64 20 61 20  ase contained a 
8120: 74 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 2e  temporary table.
8130: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8140: 30 30 32 20 46 65 62 20 31 38 20 28 32 2e 33 2e  002 Feb 18 (2.3.
8150: 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  3)} {.<li>Allow 
8160: 69 64 65 6e 74 69 66 69 65 72 73 20 74 6f 20 62  identifiers to b
8170: 65 20 71 75 6f 74 65 64 20 69 6e 20 73 71 75 61  e quoted in squa
8180: 72 65 20 62 72 61 63 6b 65 74 73 2c 20 66 6f 72  re brackets, for
8190: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 20   compatibility. 
81a0: 20 20 20 77 69 74 68 20 4d 53 2d 41 63 63 65 73     with MS-Acces
81b0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
81c0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 75  d support for su
81d0: 62 2d 71 75 65 72 69 65 73 20 69 6e 20 74 68 65  b-queries in the
81e0: 20 46 52 4f 4d 20 63 6c 61 75 73 65 20 6f 66 20   FROM clause of 
81f0: 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c  a SELECT.</li>.<
8200: 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e  li>More efficien
8210: 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  t implementation
8220: 20 6f 66 20 73 71 6c 69 74 65 46 69 6c 65 45 78   of sqliteFileEx
8230: 69 73 74 73 28 29 20 75 6e 64 65 72 20 57 69 6e  ists() under Win
8240: 64 6f 77 73 2e 0a 20 20 20 20 28 62 79 20 4a 6f  dows..    (by Jo
8250: 65 6c 20 4c 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c  el Luscy)</li>.<
8260: 6c 69 3e 54 68 65 20 56 41 4c 55 45 53 20 63 6c  li>The VALUES cl
8270: 61 75 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52  ause of an INSER
8280: 54 20 63 61 6e 20 6e 6f 77 20 63 6f 6e 74 61 69  T can now contai
8290: 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 69  n expressions, i
82a0: 6e 63 6c 75 64 69 6e 67 0a 20 20 20 20 73 63 61  ncluding.    sca
82b0: 6c 61 72 20 53 45 4c 45 43 54 20 63 6c 61 75 73  lar SELECT claus
82c0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  es.</li>.<li>Add
82d0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43  ed support for C
82e0: 52 45 41 54 45 20 54 41 42 4c 45 20 41 53 20 53  REATE TABLE AS S
82f0: 45 4c 45 43 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ELECT</li>.<li>B
8300: 75 67 20 66 69 78 3a 20 43 72 65 61 74 69 6e 67  ug fix: Creating
8310: 20 61 6e 64 20 64 72 6f 70 70 69 6e 67 20 61 20   and dropping a 
8320: 74 61 62 6c 65 20 61 6c 6c 20 77 69 74 68 69 6e  table all within
8330: 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 74 72   a single.    tr
8340: 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 6e 6f  ansaction was no
8350: 74 20 77 6f 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a  t working.</li>.
8360: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65  }..chng {2002 Fe
8370: 62 20 31 34 20 28 32 2e 33 2e 32 29 7d 20 7b 0a  b 14 (2.3.2)} {.
8380: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 54 68 65  <li>Bug fix: The
8390: 72 65 20 77 61 73 20 61 6e 20 69 6e 63 6f 72 72  re was an incorr
83a0: 65 63 74 20 61 73 73 65 72 74 28 29 20 69 6e 20  ect assert() in 
83b0: 70 61 67 65 72 2e 63 2e 20 20 54 68 65 20 72 65  pager.c.  The re
83c0: 61 6c 20 63 6f 64 65 20 77 61 73 0a 20 20 20 20  al code was.    
83d0: 61 6c 6c 20 63 6f 72 72 65 63 74 20 28 61 73 20  all correct (as 
83e0: 66 61 72 20 61 73 20 69 73 20 6b 6e 6f 77 6e 29  far as is known)
83f0: 20 73 6f 20 65 76 65 72 79 74 68 69 6e 67 20 73   so everything s
8400: 68 6f 75 6c 64 20 77 6f 72 6b 20 4f 4b 20 69 66  hould work OK if
8410: 20 79 6f 75 0a 20 20 20 20 63 6f 6d 70 69 6c 65   you.    compile
8420: 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47 3d 31   with -DNDEBUG=1
8430: 2e 20 20 57 68 65 6e 20 61 73 73 65 72 74 73 20  .  When asserts 
8440: 61 72 65 20 6e 6f 74 20 64 69 73 61 62 6c 65 64  are not disabled
8450: 2c 20 74 68 65 72 65 0a 20 20 20 20 63 6f 75 6c  , there.    coul
8460: 64 20 62 65 20 61 20 66 61 75 6c 74 2e 3c 2f 6c  d be a fault.</l
8470: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
8480: 20 46 65 62 20 31 33 20 28 32 2e 33 2e 31 29 7d   Feb 13 (2.3.1)}
8490: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
84a0: 41 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73  An assertion was
84b0: 20 66 61 69 6c 69 6e 67 20 69 66 20 22 50 52 41   failing if "PRA
84c0: 47 4d 41 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f  GMA full_column_
84d0: 6e 61 6d 65 73 3d 4f 4e 3b 22 20 77 61 73 0a 20  names=ON;" was. 
84e0: 20 20 20 73 65 74 20 61 6e 64 20 79 6f 75 20 64     set and you d
84f0: 69 64 20 61 20 71 75 65 72 79 20 74 68 61 74 20  id a query that 
8500: 75 73 65 64 20 61 20 72 6f 77 69 64 2c 20 6c 69  used a rowid, li
8510: 6b 65 20 74 68 69 73 3a 20 20 0a 20 20 20 20 22  ke this:  .    "
8520: 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20  SELECT rowid, * 
8530: 46 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a  FROM ...".</li>.
8540: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
8550: 6e 20 33 30 20 28 32 2e 33 2e 30 29 7d 20 7b 0a  n 30 (2.3.0)} {.
8560: 3c 6c 69 3e 46 69 78 20 61 20 73 65 72 69 6f 75  <li>Fix a seriou
8570: 73 20 62 75 67 20 69 6e 20 74 68 65 20 49 4e 53  s bug in the INS
8580: 45 52 54 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63  ERT command whic
8590: 68 20 77 61 73 20 63 61 75 73 69 6e 67 20 64 61  h was causing da
85a0: 74 61 20 74 6f 20 67 6f 0a 20 20 20 20 69 6e 74  ta to go.    int
85b0: 6f 20 74 68 65 20 77 72 6f 6e 67 20 63 6f 6c 75  o the wrong colu
85c0: 6d 6e 73 20 69 66 20 74 68 65 20 64 61 74 61 20  mns if the data 
85d0: 73 6f 75 72 63 65 20 77 61 73 20 61 20 53 45 4c  source was a SEL
85e0: 45 43 54 20 61 6e 64 20 74 68 65 20 49 4e 53 45  ECT and the INSE
85f0: 52 54 0a 20 20 20 20 63 6c 61 75 73 65 73 20 73  RT.    clauses s
8600: 70 65 63 69 66 69 65 64 20 69 74 73 20 63 6f 6c  pecified its col
8610: 75 6d 6e 73 20 69 6e 20 73 6f 6d 65 20 6f 72 64  umns in some ord
8620: 65 72 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68  er other than th
8630: 65 20 64 65 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a  e default.</li>.
8640: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61 62  <li>Added the ab
8650: 69 6c 69 74 79 20 74 6f 20 72 65 73 6f 6c 76 65  ility to resolve
8660: 20 63 6f 6e 73 74 72 61 69 6e 74 20 63 6f 6e 66   constraint conf
8670: 6c 69 63 74 73 20 69 73 20 77 61 79 73 20 6f 74  licts is ways ot
8680: 68 65 72 20 74 68 61 6e 0a 20 20 20 20 61 6e 20  her than.    an 
8690: 61 62 6f 72 74 20 61 6e 64 20 72 6f 6c 6c 62 61  abort and rollba
86a0: 63 6b 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63  ck.  See the doc
86b0: 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68  umentation on th
86c0: 65 20 22 4f 4e 20 43 4f 4e 46 4c 49 43 54 22 0a  e "ON CONFLICT".
86d0: 20 20 20 20 63 6c 61 75 73 65 20 66 6f 72 20 64      clause for d
86e0: 65 74 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  etails.</li>.<li
86f0: 3e 54 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73  >Temporary files
8700: 20 61 72 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74   are now automat
8710: 69 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 62  ically deleted b
8720: 79 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20  y the operating 
8730: 73 79 73 74 65 6d 0a 20 20 20 20 77 68 65 6e 20  system.    when 
8740: 63 6c 6f 73 65 64 2e 20 20 54 68 65 72 65 20 61  closed.  There a
8750: 72 65 20 6e 6f 20 6d 6f 72 65 20 64 61 6e 67 6c  re no more dangl
8760: 69 6e 67 20 74 65 6d 70 6f 72 61 72 79 20 66 69  ing temporary fi
8770: 6c 65 73 20 6f 6e 20 61 20 70 72 6f 67 72 61 6d  les on a program
8780: 0a 20 20 20 20 63 72 61 73 68 2e 20 20 28 49 66  .    crash.  (If
8790: 20 74 68 65 20 4f 53 20 63 72 61 73 68 65 73 2c   the OS crashes,
87a0: 20 66 73 63 6b 20 77 69 6c 6c 20 64 65 6c 65 74   fsck will delet
87b0: 65 20 74 68 65 20 66 69 6c 65 20 61 66 74 65 72  e the file after
87c0: 20 72 65 62 6f 6f 74 20 0a 20 20 20 20 75 6e 64   reboot .    und
87d0: 65 72 20 55 6e 69 78 2e 20 20 49 20 64 6f 20 6e  er Unix.  I do n
87e0: 6f 74 20 6b 6e 6f 77 20 77 68 61 74 20 68 61 70  ot know what hap
87f0: 70 65 6e 73 20 75 6e 64 65 72 20 57 69 6e 64 6f  pens under Windo
8800: 77 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f  ws.)</li>.<li>NO
8810: 54 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e  T NULL constrain
8820: 74 73 20 61 72 65 20 68 6f 6e 6f 72 65 64 2e 3c  ts are honored.<
8830: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 43 4f 50  /li>.<li>The COP
8840: 59 20 63 6f 6d 6d 61 6e 64 20 70 75 74 73 20 4e  Y command puts N
8850: 55 4c 4c 73 20 69 6e 20 63 6f 6c 75 6d 6e 73 20  ULLs in columns 
8860: 77 68 6f 73 65 20 64 61 74 61 20 69 73 20 27 5c  whose data is '\
8870: 4e 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20  N'.</li>.<li>In 
8880: 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64  the COPY command
8890: 2c 20 62 61 63 6b 73 6c 61 73 68 20 63 61 6e 20  , backslash can 
88a0: 6e 6f 77 20 62 65 20 75 73 65 64 20 74 6f 20 65  now be used to e
88b0: 73 63 61 70 65 20 61 20 6e 65 77 6c 69 6e 65 2e  scape a newline.
88c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
88d0: 74 68 65 20 53 41 4e 49 54 59 5f 43 48 45 43 4b  the SANITY_CHECK
88e0: 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a   pragma.</li>.}.
88f0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
8900: 32 38 20 28 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c  28 (2.2.5)} {.<l
8910: 69 3e 49 6d 70 6f 72 74 61 6e 74 20 62 75 67 20  i>Important bug 
8920: 66 69 78 3a 20 74 68 65 20 49 4e 20 6f 70 65 72  fix: the IN oper
8930: 61 74 6f 72 20 77 61 73 20 6e 6f 74 20 77 6f 72  ator was not wor
8940: 6b 69 6e 67 20 69 66 20 65 69 74 68 65 72 20 74  king if either t
8950: 68 65 0a 20 20 20 20 6c 65 66 74 2d 68 61 6e 64  he.    left-hand
8960: 20 6f 72 20 72 69 67 68 74 2d 68 61 6e 64 20 73   or right-hand s
8970: 69 64 65 20 77 61 73 20 64 65 72 69 76 65 64 20  ide was derived 
8980: 66 72 6f 6d 20 61 6e 20 49 4e 54 45 47 45 52 20  from an INTEGER 
8990: 50 52 49 4d 41 52 59 20 4b 45 59 2e 3c 2f 6c 69  PRIMARY KEY.</li
89a0: 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 65 73 63  >.<li>Do not esc
89b0: 61 70 65 20 74 68 65 20 62 61 63 6b 73 6c 61 73  ape the backslas
89c0: 68 20 27 5c 27 20 63 68 61 72 61 63 74 65 72 20  h '\' character 
89d0: 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  in the output of
89e0: 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69   the.    <b>sqli
89f0: 74 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c  te</b> command-l
8a00: 69 6e 65 20 61 63 63 65 73 73 20 70 72 6f 67 72  ine access progr
8a10: 61 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  am.</li>.}..chng
8a20: 20 7b 32 30 30 32 20 4a 61 6e 20 32 32 20 28 32   {2002 Jan 22 (2
8a30: 2e 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  .2.4)} {.<li>The
8a40: 20 6c 61 62 65 6c 20 74 6f 20 74 68 65 20 72 69   label to the ri
8a50: 67 68 74 20 6f 66 20 61 6e 20 41 53 20 69 6e 20  ght of an AS in 
8a60: 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20  the column list 
8a70: 6f 66 20 61 20 53 45 4c 45 43 54 20 63 61 6e 20  of a SELECT can 
8a80: 6e 6f 77 0a 20 20 20 20 62 65 20 75 73 65 64 20  now.    be used 
8a90: 61 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 78  as part of an ex
8aa0: 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20  pression in the 
8ab0: 57 48 45 52 45 2c 20 4f 52 44 45 52 20 42 59 2c  WHERE, ORDER BY,
8ac0: 20 47 52 4f 55 50 20 42 59 2c 20 61 6e 64 2f 6f   GROUP BY, and/o
8ad0: 72 0a 20 20 20 20 48 41 56 49 4e 47 20 63 6c 61  r.    HAVING cla
8ae0: 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  uses.</li>.<li>F
8af0: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
8b00: 3c 62 3e 2d 73 65 70 61 72 61 74 6f 72 3c 2f 62  <b>-separator</b
8b10: 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f  > command-line o
8b20: 70 74 69 6f 6e 20 74 6f 20 74 68 65 20 3c 62 3e  ption to the <b>
8b30: 73 71 6c 69 74 65 3c 2f 62 3e 0a 20 20 20 20 63  sqlite</b>.    c
8b40: 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ommand.</li>.<li
8b50: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77  >Fix a problem w
8b60: 69 74 68 20 74 68 65 20 73 6f 72 74 20 6f 72 64  ith the sort ord
8b70: 65 72 20 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e  er when comparin
8b80: 67 20 75 70 70 65 72 2d 63 61 73 65 20 73 74 72  g upper-case str
8b90: 69 6e 67 73 20 61 67 61 69 6e 73 74 0a 20 20 20  ings against.   
8ba0: 20 63 68 61 72 61 63 74 65 72 73 20 67 72 65 61   characters grea
8bb0: 74 65 72 20 74 68 61 6e 20 27 5a 27 20 62 75 74  ter than 'Z' but
8bc0: 20 6c 65 73 73 20 74 68 61 6e 20 27 61 27 2e 3c   less than 'a'.<
8bd0: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 70 6f 72 74 20  /li>.<li>Report 
8be0: 61 6e 20 65 72 72 6f 72 20 69 66 20 61 6e 20 4f  an error if an O
8bf0: 52 44 45 52 20 42 59 20 6f 72 20 47 52 4f 55 50  RDER BY or GROUP
8c00: 20 42 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69   BY expression i
8c10: 73 20 63 6f 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e  s constant.</li>
8c20: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
8c30: 61 6e 20 31 36 20 28 32 2e 32 2e 33 29 7d 20 7b  an 16 (2.2.3)} {
8c40: 0a 3c 6c 69 3e 46 69 78 20 77 61 72 6e 69 6e 67  .<li>Fix warning
8c50: 20 6d 65 73 73 61 67 65 73 20 69 6e 20 56 43 2b   messages in VC+
8c60: 2b 20 37 2e 30 2e 20 20 28 50 61 74 63 68 65 73  + 7.0.  (Patches
8c70: 20 66 72 6f 6d 20 6e 69 63 6f 6c 61 73 33 35 32   from nicolas352
8c80: 30 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  001)</li>.<li>Ma
8c90: 6b 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 74  ke the library t
8ca0: 68 72 65 61 64 2d 73 61 66 65 2e 20 20 28 54 68  hread-safe.  (Th
8cb0: 65 20 63 6f 64 65 20 69 73 20 74 68 65 72 65 20  e code is there 
8cc0: 61 6e 64 20 61 70 70 65 61 72 73 20 74 6f 20 77  and appears to w
8cd0: 6f 72 6b 0a 20 20 20 20 62 75 74 20 68 61 73 20  ork.    but has 
8ce0: 6e 6f 74 20 62 65 65 6e 20 73 74 72 65 73 73 65  not been stresse
8cf0: 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  d.)</li>.<li>Add
8d00: 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 73 71  ed the new <b>sq
8d10: 6c 69 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74  lite_last_insert
8d20: 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 41 50 49  _rowid()</b> API
8d30: 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a   function.</li>.
8d40: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
8d50: 6e 20 31 33 20 28 32 2e 32 2e 32 29 7d 20 7b 0a  n 13 (2.2.2)} {.
8d60: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20  <li>Bug fix: An 
8d70: 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61  assertion was fa
8d80: 69 6c 69 6e 67 20 77 68 65 6e 20 61 20 74 65 6d  iling when a tem
8d90: 70 6f 72 61 72 79 20 74 61 62 6c 65 20 77 69 74  porary table wit
8da0: 68 20 61 6e 20 69 6e 64 65 78 0a 20 20 20 20 68  h an index.    h
8db0: 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65  ad the same name
8dc0: 20 61 73 20 61 20 70 65 72 6d 61 6e 65 6e 74 20   as a permanent 
8dd0: 74 61 62 6c 65 20 63 72 65 61 74 65 64 20 62 79  table created by
8de0: 20 61 20 73 65 70 61 72 61 74 65 20 70 72 6f 63   a separate proc
8df0: 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ess.</li>.<li>Bu
8e00: 67 20 66 69 78 3a 20 55 70 64 61 74 65 73 20 74  g fix: Updates t
8e10: 6f 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e  o tables contain
8e20: 69 6e 67 20 61 6e 20 49 4e 54 45 47 45 52 20 50  ing an INTEGER P
8e30: 52 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 20 61  RIMARY KEY and a
8e40: 6e 0a 20 20 20 20 69 6e 64 65 78 20 63 6f 75 6c  n.    index coul
8e50: 64 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  d fail.</li>.}..
8e60: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 39  chng {2002 Jan 9
8e70: 20 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.1)} {.<li>
8e80: 42 75 67 20 66 69 78 3a 20 41 6e 20 61 74 74 65  Bug fix: An atte
8e90: 6d 70 74 20 74 6f 20 64 65 6c 65 74 65 20 61 20  mpt to delete a 
8ea0: 73 69 6e 67 6c 65 20 72 6f 77 20 6f 66 20 61 20  single row of a 
8eb0: 74 61 62 6c 65 20 77 69 74 68 20 61 20 57 48 45  table with a WHE
8ec0: 52 45 0a 20 20 20 20 63 6c 61 75 73 65 20 6f 66  RE.    clause of
8ed0: 20 22 52 4f 57 49 44 3d 78 22 20 77 68 65 6e 20   "ROWID=x" when 
8ee0: 6e 6f 20 73 75 63 68 20 72 6f 77 69 64 20 65 78  no such rowid ex
8ef0: 69 73 74 73 20 77 61 73 20 63 61 75 73 69 6e 67  ists was causing
8f00: 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a   an error.</li>.
8f10: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 50 61 73  <li>Bug fix: Pas
8f20: 73 69 6e 67 20 69 6e 20 61 20 4e 55 4c 4c 20 61  sing in a NULL a
8f30: 73 20 74 68 65 20 33 72 64 20 70 61 72 61 6d 65  s the 3rd parame
8f40: 74 65 72 20 74 6f 20 3c 62 3e 73 71 6c 69 74 65  ter to <b>sqlite
8f50: 5f 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20 20 20 20  _open()</b>.    
8f60: 77 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20  would sometimes 
8f70: 63 61 75 73 65 20 61 20 63 6f 72 65 64 75 6d 70  cause a coredump
8f80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
8f90: 69 78 3a 20 44 52 4f 50 20 54 41 42 4c 45 20 66  ix: DROP TABLE f
8fa0: 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 43 52 45  ollowed by a CRE
8fb0: 41 54 45 20 54 41 42 4c 45 20 77 69 74 68 20 74  ATE TABLE with t
8fc0: 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 6c 6c  he same name all
8fd0: 0a 20 20 20 20 77 69 74 68 69 6e 20 61 20 73 69  .    within a si
8fe0: 6e 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e  ngle transaction
8ff0: 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20 63   was causing a c
9000: 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c  oredump.</li>.<l
9010: 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74  i>Makefile updat
9020: 65 73 20 66 72 6f 6d 20 41 2e 20 52 6f 74 74 6d  es from A. Rottm
9030: 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ann</li>.}..chng
9040: 20 7b 32 30 30 31 20 44 65 63 20 32 32 20 28 32   {2001 Dec 22 (2
9050: 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c  .2.0)} {.<li>Col
9060: 75 6d 6e 73 20 6f 66 20 74 79 70 65 20 49 4e 54  umns of type INT
9070: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
9080: 20 61 72 65 20 61 63 74 75 61 6c 6c 79 20 75 73   are actually us
9090: 65 64 20 61 73 20 74 68 65 20 70 72 69 6d 61 72  ed as the primar
90a0: 79 0a 20 20 20 20 6b 65 79 20 69 6e 20 75 6e 64  y.    key in und
90b0: 65 72 6c 79 69 6e 67 20 42 2d 54 72 65 65 20 72  erlying B-Tree r
90c0: 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66  epresentation of
90d0: 20 74 68 65 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e   the table.</li>
90e0: 0a 3c 6c 69 3e 53 65 76 65 72 61 6c 20 6f 62 73  .<li>Several obs
90f0: 63 75 72 65 2c 20 75 6e 72 65 6c 61 74 65 64 20  cure, unrelated 
9100: 62 75 67 73 20 77 65 72 65 20 66 6f 75 6e 64 20  bugs were found 
9110: 61 6e 64 20 66 69 78 65 64 20 77 68 69 6c 65 20  and fixed while 
9120: 0a 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64  .    implemented
9130: 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 72 69   the integer pri
9140: 6d 61 72 79 20 6b 65 79 20 63 68 61 6e 67 65 20  mary key change 
9150: 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  of the previous 
9160: 62 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  bullet.</li>.<li
9170: 3e 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69  >Added the abili
9180: 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 22 2a  ty to specify "*
9190: 22 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 6c  " as part of a l
91a0: 61 72 67 65 72 20 63 6f 6c 75 6d 6e 20 6c 69 73  arger column lis
91b0: 74 20 69 6e 0a 20 20 20 20 74 68 65 20 72 65 73  t in.    the res
91c0: 75 6c 74 20 73 65 63 74 69 6f 6e 20 6f 66 20 61  ult section of a
91d0: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
91e0: 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a  t.  For example:
91f0: 0a 20 20 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53  .    <nobr>"<b>S
9200: 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46  ELECT rowid, * F
9210: 52 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f 62 3e 22  ROM table1;</b>"
9220: 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  </nobr>.</li>.<l
9230: 69 3e 55 70 64 61 74 65 73 20 74 6f 20 63 6f 6d  i>Updates to com
9240: 6d 65 6e 74 73 20 61 6e 64 20 64 6f 63 75 6d 65  ments and docume
9250: 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  ntation.</li>.}.
9260: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
9270: 31 34 20 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c  14 (2.1.7)} {.<l
9280: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 3c  i>Fix a bug in <
9290: 62 3e 43 52 45 41 54 45 20 54 45 4d 50 4f 52 41  b>CREATE TEMPORA
92a0: 52 59 20 54 41 42 4c 45 3c 2f 62 3e 20 77 68 69  RY TABLE</b> whi
92b0: 63 68 20 77 61 73 20 63 61 75 73 69 6e 67 20 74  ch was causing t
92c0: 68 65 0a 20 20 20 20 74 61 62 6c 65 20 74 6f 20  he.    table to 
92d0: 62 65 20 69 6e 69 74 69 61 6c 6c 79 20 61 6c 6c  be initially all
92e0: 6f 63 61 74 65 64 20 69 6e 20 74 68 65 20 6d 61  ocated in the ma
92f0: 69 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  in database file
9300: 20 69 6e 73 74 65 61 64 0a 20 20 20 20 6f 66 20   instead.    of 
9310: 69 6e 20 74 68 65 20 73 65 70 61 72 61 74 65 20  in the separate 
9320: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 20  temporary file. 
9330: 20 54 68 69 73 20 62 75 67 20 63 6f 75 6c 64 20   This bug could 
9340: 63 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72  cause the librar
9350: 79 0a 20 20 20 20 74 6f 20 73 75 66 66 65 72 20  y.    to suffer 
9360: 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69  an assertion fai
9370: 6c 75 72 65 20 61 6e 64 20 69 74 20 63 6f 75 6c  lure and it coul
9380: 64 20 63 61 75 73 65 20 22 70 61 67 65 20 6c 65  d cause "page le
9390: 61 6b 73 22 20 69 6e 20 74 68 65 0a 20 20 20 20  aks" in the.    
93a0: 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 66 69  main database fi
93b0: 6c 65 2e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  le..<li>Fix a bu
93c0: 67 20 69 6e 20 74 68 65 20 62 2d 74 72 65 65 20  g in the b-tree 
93d0: 73 75 62 73 79 73 74 65 6d 20 74 68 61 74 20 63  subsystem that c
93e0: 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63  ould sometimes c
93f0: 61 75 73 65 20 74 68 65 20 66 69 72 73 74 0a 20  ause the first. 
9400: 20 20 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c     row of a tabl
9410: 65 20 74 6f 20 62 65 20 72 65 70 65 61 74 65 64  e to be repeated
9420: 20 64 75 72 69 6e 67 20 61 20 64 61 74 61 62 61   during a databa
9430: 73 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  se scan.</li>.}.
9440: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
9450: 31 34 20 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c  14 (2.1.6)} {.<l
9460: 69 3e 46 69 78 20 74 68 65 20 6c 6f 63 6b 69 6e  i>Fix the lockin
9470: 67 20 6d 65 63 68 61 6e 69 73 6d 20 79 65 74 20  g mechanism yet 
9480: 61 67 61 69 6e 20 74 6f 20 70 72 65 76 65 6e 74  again to prevent
9490: 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 65  .    <b>sqlite_e
94a0: 78 65 63 28 29 3c 2f 62 3e 20 66 72 6f 6d 20 72  xec()</b> from r
94b0: 65 74 75 72 6e 69 6e 67 20 53 51 4c 49 54 45 5f  eturning SQLITE_
94c0: 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e  PROTOCOL.    unn
94d0: 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69  ecessarily.  Thi
94e0: 73 20 74 69 6d 65 20 74 68 65 20 62 75 67 20 77  s time the bug w
94f0: 61 73 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74  as a race condit
9500: 69 6f 6e 20 69 6e 0a 20 20 20 20 74 68 65 20 6c  ion in.    the l
9510: 6f 63 6b 69 6e 67 20 63 6f 64 65 2e 20 20 54 68  ocking code.  Th
9520: 69 73 20 63 68 61 6e 67 65 20 65 66 66 65 63 74  is change effect
9530: 73 20 62 6f 74 68 20 50 4f 53 49 58 20 61 6e 64  s both POSIX and
9540: 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c   Windows users.<
9550: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9560: 30 31 20 44 65 63 20 36 20 28 32 2e 31 2e 35 29  01 Dec 6 (2.1.5)
9570: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 66 6f 72 20  } {.<li>Fix for 
9580: 61 6e 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 20  another problem 
9590: 28 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68  (unrelated to th
95a0: 65 20 6f 6e 65 20 66 69 78 65 64 20 69 6e 20 32  e one fixed in 2
95b0: 2e 31 2e 34 29 20 0a 20 20 20 20 74 68 61 74 20  .1.4) .    that 
95c0: 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 73  sometimes causes
95d0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28   <b>sqlite_exec(
95e0: 29 3c 2f 62 3e 20 74 6f 20 72 65 74 75 72 6e 20  )</b> to return 
95f0: 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a  SQLITE_PROTOCOL.
9600: 20 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c      unnecessaril
9610: 79 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68  y.  This time th
9620: 65 20 62 75 67 20 77 61 73 0a 20 20 20 20 69 6e  e bug was.    in
9630: 20 74 68 65 20 50 4f 53 49 58 20 6c 6f 63 6b 69   the POSIX locki
9640: 6e 67 20 63 6f 64 65 20 61 6e 64 20 73 68 6f 75  ng code and shou
9650: 6c 64 20 6e 6f 74 20 65 66 66 65 63 74 20 77 69  ld not effect wi
9660: 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69  ndows users.</li
9670: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9680: 44 65 63 20 34 20 28 32 2e 31 2e 34 29 7d 20 7b  Dec 4 (2.1.4)} {
9690: 0a 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65 73 20 3c  .<li>Sometimes <
96a0: 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c  b>sqlite_exec()<
96b0: 2f 62 3e 20 77 6f 75 6c 64 20 72 65 74 75 72 6e  /b> would return
96c0: 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c   SQLITE_PROTOCOL
96d0: 20 77 68 65 6e 20 69 74 0a 20 20 20 20 73 68 6f   when it.    sho
96e0: 75 6c 64 20 68 61 76 65 20 72 65 74 75 72 6e 65  uld have returne
96f0: 64 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f  d SQLITE_BUSY.</
9700: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 69 78 20  li>.<li>The fix 
9710: 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  to the previous 
9720: 62 75 67 20 75 6e 63 6f 76 65 72 65 64 20 61 20  bug uncovered a 
9730: 64 65 61 64 6c 6f 63 6b 20 77 68 69 63 68 20 77  deadlock which w
9740: 61 73 20 61 6c 73 6f 0a 20 20 20 20 66 69 78 65  as also.    fixe
9750: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  d.</li>.<li>Add 
9760: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70  the ability to p
9770: 75 74 20 61 20 73 69 6e 67 6c 65 20 2e 63 6f 6d  ut a single .com
9780: 6d 61 6e 64 20 69 6e 20 74 68 65 20 73 65 63 6f  mand in the seco
9790: 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20  nd argument.    
97a0: 6f 66 20 74 68 65 20 73 71 6c 69 74 65 20 73 68  of the sqlite sh
97b0: 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64  ell</li>.<li>Upd
97c0: 61 74 65 73 20 74 6f 20 74 68 65 20 46 41 51 3c  ates to the FAQ<
97d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
97e0: 30 31 20 4e 6f 76 20 32 33 20 28 32 2e 31 2e 33  01 Nov 23 (2.1.3
97f0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65  )} {.<li>Fix the
9800: 20 62 65 68 61 76 69 6f 72 20 6f 66 20 63 6f 6d   behavior of com
9810: 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72  parison operator
9820: 73 20 0a 20 20 20 20 28 65 78 3a 20 22 3c 62 3e  s .    (ex: "<b>
9830: 26 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d  &lt</b>", "<b>==
9840: 3c 2f 62 3e 22 2c 20 65 74 63 2e 29 0a 20 20 20  </b>", etc.).   
9850: 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 61 72   so that they ar
9860: 65 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74  e consistent wit
9870: 68 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 65  h the order of e
9880: 6e 74 72 69 65 73 20 69 6e 20 61 6e 20 69 6e 64  ntries in an ind
9890: 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72  ex.</li>.<li>Cor
98a0: 72 65 63 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66  rect handling of
98b0: 20 69 6e 74 65 67 65 72 73 20 69 6e 20 53 51 4c   integers in SQL
98c0: 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61   expressions tha
98d0: 74 20 61 72 65 20 6c 61 72 67 65 72 20 74 68 61  t are larger tha
98e0: 6e 0a 20 20 20 20 77 68 61 74 20 63 61 6e 20 62  n.    what can b
98f0: 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79  e represented by
9900: 20 74 68 65 20 6d 61 63 68 69 6e 65 20 69 6e 74   the machine int
9910: 65 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  eger.</li>.}..ch
9920: 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 32 20  ng {2001 Nov 22 
9930: 28 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43  (2.1.2)} {.<li>C
9940: 68 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f 72  hanges to suppor
9950: 74 20 36 34 2d 62 69 74 20 61 72 63 68 69 74 65  t 64-bit archite
9960: 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctures.</li>.<li
9970: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
9980: 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63  e locking protoc
9990: 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ol.</li>.<li>Fix
99a0: 20 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c   a bug that coul
99b0: 64 20 28 72 61 72 65 6c 79 29 20 63 61 75 73 65  d (rarely) cause
99c0: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 74 6f   the database to
99d0: 20 62 65 63 6f 6d 65 20 0a 20 20 20 20 75 6e 72   become .    unr
99e0: 65 61 64 61 62 6c 65 20 61 66 74 65 72 20 61 20  eadable after a 
99f0: 44 52 4f 50 20 54 41 42 4c 45 20 64 75 65 20 74  DROP TABLE due t
9a00: 6f 20 63 6f 72 72 75 70 74 69 6f 6e 20 74 6f 20  o corruption to 
9a10: 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45  the SQLITE_MASTE
9a20: 52 0a 20 20 20 20 74 61 62 6c 65 2e 3c 2f 6c 69  R.    table.</li
9a30: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  >.<li>Change the
9a40: 20 63 6f 64 65 20 73 6f 20 74 68 61 74 20 76 65   code so that ve
9a50: 72 73 69 6f 6e 20 32 2e 31 2e 31 20 64 61 74 61  rsion 2.1.1 data
9a60: 62 61 73 65 73 20 74 68 61 74 20 77 65 72 65 20  bases that were 
9a70: 72 65 6e 64 65 72 65 64 20 0a 20 20 20 20 75 6e  rendered .    un
9a80: 72 65 61 64 61 62 6c 65 20 62 79 20 74 68 65 20  readable by the 
9a90: 61 62 6f 76 65 20 62 75 67 20 63 61 6e 20 62 65  above bug can be
9aa0: 20 72 65 61 64 20 62 79 20 74 68 69 73 20 76 65   read by this ve
9ab0: 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20 74 68 65  rsion of.    the
9ac0: 20 6c 69 62 72 61 72 79 20 65 76 65 6e 20 74 68   library even th
9ad0: 6f 75 67 68 20 74 68 65 20 53 51 4c 49 54 45 5f  ough the SQLITE_
9ae0: 4d 41 53 54 45 52 20 74 61 62 6c 65 20 69 73 20  MASTER table is 
9af0: 28 73 6c 69 67 68 74 6c 79 29 0a 20 20 20 20 63  (slightly).    c
9b00: 6f 72 72 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d  orrupted.</li>.}
9b10: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76  ..chng {2001 Nov
9b20: 20 31 33 20 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c   13 (2.1.1)} {.<
9b30: 6c 69 3e 42 75 67 20 66 69 78 3a 20 53 6f 6d 65  li>Bug fix: Some
9b40: 74 69 6d 65 73 20 61 72 62 69 74 72 61 72 79 20  times arbitrary 
9b50: 73 74 72 69 6e 67 73 20 77 65 72 65 20 70 61 73  strings were pas
9b60: 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  sed to the callb
9b70: 61 63 6b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e  ack.    function
9b80: 20 77 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c   when the actual
9b90: 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75   value of a colu
9ba0: 6d 6e 20 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69  mn was NULL.</li
9bb0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
9bc0: 4e 6f 76 20 31 32 20 28 32 2e 31 2e 30 29 7d 20  Nov 12 (2.1.0)} 
9bd0: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
9be0: 20 66 6f 72 6d 61 74 20 6f 66 20 64 61 74 61 20   format of data 
9bf0: 72 65 63 6f 72 64 73 20 73 6f 20 74 68 61 74 20  records so that 
9c00: 72 65 63 6f 72 64 73 20 75 70 20 74 6f 20 31 36  records up to 16
9c10: 4d 42 20 69 6e 20 73 69 7a 65 0a 20 20 20 20 63  MB in size.    c
9c20: 61 6e 20 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c  an be stored.</l
9c30: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
9c40: 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69  e format of indi
9c50: 63 65 73 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72  ces to allow for
9c60: 20 62 65 74 74 65 72 20 71 75 65 72 79 20 6f 70   better query op
9c70: 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  timization.</li>
9c80: 0a 3c 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74  .<li>Implement t
9c90: 68 65 20 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46  he "LIMIT ... OF
9ca0: 46 53 45 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65  FSET ..." clause
9cb0: 20 6f 6e 20 53 45 4c 45 43 54 20 73 74 61 74 65   on SELECT state
9cc0: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
9cd0: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 33 20  hng {2001 Nov 3 
9ce0: 28 32 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.0.8)} {.<li>M
9cf0: 61 64 65 20 73 65 6c 65 63 74 65 64 20 70 61 72  ade selected par
9d00: 61 6d 65 74 65 72 73 20 69 6e 20 41 50 49 20 66  ameters in API f
9d10: 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73  unctions <b>cons
9d20: 74 3c 2f 62 3e 2e 20 54 68 69 73 20 73 68 6f 75  t</b>. This shou
9d30: 6c 64 0a 20 20 20 20 62 65 20 66 75 6c 6c 79 20  ld.    be fully 
9d40: 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74  backwards compat
9d50: 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  ible.</li>.<li>D
9d60: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
9d70: 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69  ates</li>.<li>Si
9d80: 6d 70 6c 69 66 79 20 74 68 65 20 64 65 73 69 67  mplify the desig
9d90: 6e 20 6f 66 20 74 68 65 20 56 44 42 45 20 62 79  n of the VDBE by
9da0: 20 72 65 73 74 72 69 63 74 69 6e 67 20 74 68 65   restricting the
9db0: 20 6e 75 6d 62 65 72 20 6f 66 20 73 6f 72 74 65   number of sorte
9dc0: 72 73 0a 20 20 20 20 61 6e 64 20 6c 69 73 74 73  rs.    and lists
9dd0: 20 74 6f 20 31 2e 0a 20 20 20 20 49 6e 20 70 72   to 1..    In pr
9de0: 61 63 74 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20  actice, no more 
9df0: 74 68 61 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20  than one sorter 
9e00: 61 6e 64 20 6f 6e 65 20 6c 69 73 74 20 77 61 73  and one list was
9e10: 20 65 76 65 72 20 75 73 65 64 20 61 6e 79 68 6f   ever used anyho
9e20: 77 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  w..    </li>.}..
9e30: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32  chng {2001 Oct 2
9e40: 31 20 28 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69  1 (2.0.7)} {.<li
9e50: 3e 41 6e 79 20 55 54 46 2d 38 20 63 68 61 72 61  >Any UTF-8 chara
9e60: 63 74 65 72 20 6f 72 20 49 53 4f 38 38 35 39 20  cter or ISO8859 
9e70: 63 68 61 72 61 63 74 65 72 20 63 61 6e 20 62 65  character can be
9e80: 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66   used as part of
9e90: 0a 20 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69  .    an identifi
9ea0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74  er.</li>.<li>Pat
9eb0: 63 68 65 73 20 66 72 6f 6d 20 43 68 72 69 73 74  ches from Christ
9ec0: 69 61 6e 20 57 65 72 6e 65 72 20 74 6f 20 69 6d  ian Werner to im
9ed0: 70 72 6f 76 65 20 4f 44 42 43 20 63 6f 6d 70 61  prove ODBC compa
9ee0: 74 69 62 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a  tibility and to.
9ef0: 20 20 20 20 66 69 78 20 61 20 62 75 67 20 69 6e      fix a bug in
9f00: 20 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e   the round() fun
9f10: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ction.</li>.<li>
9f20: 50 6c 75 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79  Plug some memory
9f30: 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 20   leaks that use 
9f40: 74 6f 20 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c  to occur if mall
9f50: 6f 63 28 29 20 66 61 69 6c 65 64 2e 0a 20 20 20  oc() failed..   
9f60: 20 57 65 20 68 61 76 65 20 62 65 65 6e 20 61 6e   We have been an
9f70: 64 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65  d continue to be
9f80: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65   memory leak fre
9f90: 65 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20  e as long as.   
9fa0: 20 6d 61 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e   malloc() works.
9fb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
9fc0: 73 20 74 6f 20 73 6f 6d 65 20 74 65 73 74 20 73  s to some test s
9fd0: 63 72 69 70 74 73 20 73 6f 20 74 68 61 74 20 74  cripts so that t
9fe0: 68 65 79 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64  hey work on Wind
9ff0: 6f 77 73 20 69 6e 0a 20 20 20 20 61 64 64 69 74  ows in.    addit
a000: 69 6f 6e 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69  ion to Unix.</li
a010: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a020: 4f 63 74 20 31 39 20 28 32 2e 30 2e 36 29 7d 20  Oct 19 (2.0.6)} 
a030: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
a040: 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c  EMPTY_RESULT_CAL
a050: 4c 42 41 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c  LBACKS pragma</l
a060: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
a070: 6f 72 20 55 54 46 2d 38 20 61 6e 64 20 49 53 4f  or UTF-8 and ISO
a080: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 73 20  8859 characters 
a090: 69 6e 20 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61  in column and ta
a0a0: 62 6c 65 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a  ble names.</li>.
a0b0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d  <li>Bug fix: Com
a0c0: 70 75 74 65 20 63 6f 72 72 65 63 74 20 74 61 62  pute correct tab
a0d0: 6c 65 20 6e 61 6d 65 73 20 77 69 74 68 20 74 68  le names with th
a0e0: 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41  e FULL_COLUMN_NA
a0f0: 4d 45 53 20 70 72 61 67 6d 61 0a 20 20 20 20 69  MES pragma.    i
a100: 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69  s turned on.</li
a110: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
a120: 4f 63 74 20 31 34 20 28 32 2e 30 2e 35 29 7d 20  Oct 14 (2.0.5)} 
a130: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
a140: 43 4f 55 4e 54 5f 43 48 41 4e 47 45 53 20 70 72  COUNT_CHANGES pr
a150: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  agma.</li>.<li>C
a160: 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 46 55  hanges to the FU
a170: 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20  LL_COLUMN_NAMES 
a180: 70 72 61 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f  pragma to help o
a190: 75 74 20 74 68 65 20 4f 44 42 43 20 64 72 69 76  ut the ODBC driv
a1a0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  er.</li>.<li>Bug
a1b0: 20 66 69 78 3a 20 22 53 45 4c 45 43 54 20 63 6f   fix: "SELECT co
a1c0: 75 6e 74 28 2a 29 22 20 77 61 73 20 72 65 74 75  unt(*)" was retu
a1d0: 72 6e 69 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65  rning NULL for e
a1e0: 6d 70 74 79 20 74 61 62 6c 65 73 2e 0a 20 20 20  mpty tables..   
a1f0: 20 4e 6f 77 20 69 74 20 72 65 74 75 72 6e 73 20   Now it returns 
a200: 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  0.</li>.}..chng 
a210: 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e  {2001 Oct 13 (2.
a220: 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  0.4)} {.<li>Bug 
a230: 66 69 78 3a 20 61 6e 20 6f 62 73 63 75 72 65 20  fix: an obscure 
a240: 61 6e 64 20 72 65 6c 61 74 69 76 65 6c 79 20 68  and relatively h
a250: 61 72 6d 6c 65 73 73 20 62 75 67 20 77 61 73 20  armless bug was 
a260: 63 61 75 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20  causing one of. 
a270: 20 20 20 74 68 65 20 74 65 73 74 73 20 74 6f 20     the tests to 
a280: 66 61 69 6c 20 77 68 65 6e 20 67 63 63 20 6f 70  fail when gcc op
a290: 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20  timizations are 
a2a0: 74 75 72 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73  turned on.  This
a2b0: 20 72 65 6c 65 61 73 65 0a 20 20 20 20 66 69 78   release.    fix
a2c0: 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c  es the problem.<
a2d0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
a2e0: 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 33  01 Oct 13 (2.0.3
a2f0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
a300: 3a 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  : the <b>sqlite_
a310: 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f  busy_timeout()</
a320: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20  b> function was 
a330: 64 65 6c 61 79 69 6e 67 20 31 30 30 30 0a 20 20  delaying 1000.  
a340: 20 20 74 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67    times too long
a350: 20 62 65 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e   before failing.
a360: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
a370: 78 3a 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: an assertion 
a380: 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20 74  was failing if t
a390: 68 65 20 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20  he disk holding 
a3a0: 74 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20  the database.   
a3b0: 20 66 69 6c 65 20 62 65 63 61 6d 65 20 66 75 6c   file became ful
a3c0: 6c 20 6f 72 20 73 74 6f 70 70 65 64 20 61 63 63  l or stopped acc
a3d0: 65 70 74 69 6e 67 20 77 72 69 74 65 73 20 66 6f  epting writes fo
a3e0: 72 20 73 6f 6d 65 20 6f 74 68 65 72 20 72 65 61  r some other rea
a3f0: 73 6f 6e 2e 0a 20 20 20 20 4e 65 77 20 74 65 73  son..    New tes
a400: 74 73 20 77 65 72 65 20 61 64 64 65 64 20 74 6f  ts were added to
a410: 20 64 65 74 65 63 74 20 73 69 6d 69 6c 61 72 20   detect similar 
a420: 70 72 6f 62 6c 65 6d 73 20 69 6e 20 74 68 65 20  problems in the 
a430: 66 75 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  future.</li>.<li
a440: 3e 41 64 64 65 64 20 6e 65 77 20 6f 70 65 72 61  >Added new opera
a450: 74 6f 72 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f  tors: <b>&amp;</
a460: 62 3e 20 28 62 69 74 77 69 73 65 2d 61 6e 64 29  b> (bitwise-and)
a470: 0a 20 20 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62  .    <b>|</b> (b
a480: 69 74 77 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e  itwise-or), <b>~
a490: 3c 2f 62 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c  </b> (ones-compl
a4a0: 65 6d 65 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26  ement),.    <b>&
a4b0: 6c 74 3b 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69  lt;&lt;</b> (shi
a4c0: 66 74 20 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74  ft left), <b>&gt
a4d0: 3b 26 67 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74  ;&gt;</b> (shift
a4e0: 20 72 69 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c   right).</li>.<l
a4f0: 69 3e 41 64 64 65 64 20 6e 65 77 20 66 75 6e 63  i>Added new func
a500: 74 69 6f 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28  tions: <b>round(
a510: 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73  )</b> and <b>abs
a520: 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ()</b>.</li>.}..
a530: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 39  chng {2001 Oct 9
a540: 20 28 32 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.2)} {.<li>
a550: 46 69 78 20 74 77 6f 20 62 75 67 73 20 69 6e 20  Fix two bugs in 
a560: 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74  the locking prot
a570: 6f 63 6f 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20  ocol.  (One was 
a580: 6d 61 73 6b 69 6e 67 20 74 68 65 20 6f 74 68 65  masking the othe
a590: 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  r.)</li>.<li>Rem
a5a0: 6f 76 65 64 20 73 6f 6d 65 20 75 6e 75 73 65 64  oved some unused
a5b0: 20 22 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73   "#include <unis
a5c0: 74 64 2e 68 3e 22 20 74 68 61 74 20 77 65 72 65  td.h>" that were
a5d0: 20 63 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d   causing problem
a5e0: 73 0a 20 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c  s.    for VC++.<
a5f0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c  /li>.<li>Fixed <
a600: 62 3e 73 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73  b>sqlite.h</b> s
a610: 6f 20 74 68 61 74 20 69 74 20 69 73 20 75 73 61  o that it is usa
a620: 62 6c 65 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69  ble from C++</li
a630: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
a640: 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45  FULL_COLUMN_NAME
a650: 53 20 70 72 61 67 6d 61 2e 20 20 57 68 65 6e 20  S pragma.  When 
a660: 73 65 74 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65  set to "ON", the
a670: 20 6e 61 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f   names of.    co
a680: 6c 75 6d 6e 73 20 61 72 65 20 72 65 70 6f 72 74  lumns are report
a690: 65 64 20 62 61 63 6b 20 61 73 20 54 41 42 4c 45  ed back as TABLE
a6a0: 2e 43 4f 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20  .COLUMN instead 
a6b0: 6f 66 20 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c  of just COLUMN.<
a6c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
a6d0: 68 65 20 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20  he TABLE_INFO() 
a6e0: 61 6e 64 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29  and INDEX_INFO()
a6f0: 20 70 72 61 67 6d 61 73 20 74 6f 20 68 65 6c 70   pragmas to help
a700: 20 73 75 70 70 6f 72 74 20 74 68 65 0a 20 20 20   support the.   
a710: 20 4f 44 42 43 20 69 6e 74 65 72 66 61 63 65 2e   ODBC interface.
a720: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
a730: 73 75 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50  support for TEMP
a740: 4f 52 41 52 59 20 74 61 62 6c 65 73 20 61 6e 64  ORARY tables and
a750: 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d   indices.</li>.}
a760: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
a770: 20 32 20 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c   2 (2.0.1)} {.<l
a780: 69 3e 52 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b  i>Remove some C+
a790: 2b 20 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73  + style comments
a7a0: 20 66 72 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f   from btree.c so
a7b0: 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 63 6f   that it will co
a7c0: 6d 70 69 6c 65 0a 20 20 20 20 75 73 69 6e 67 20  mpile.    using 
a7d0: 63 6f 6d 70 69 6c 65 72 73 20 6f 74 68 65 72 20  compilers other 
a7e0: 74 68 61 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c  than gcc.</li>.<
a7f0: 6c 69 3e 54 68 65 20 22 2e 64 75 6d 70 22 20 6f  li>The ".dump" o
a800: 75 74 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73  utput from the s
a810: 68 65 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f  hell does not wo
a820: 72 6b 20 69 66 20 74 68 65 72 65 20 61 72 65 20  rk if there are 
a830: 65 6d 62 65 64 64 65 64 0a 20 20 20 20 6e 65 77  embedded.    new
a840: 6c 69 6e 65 73 20 61 6e 79 77 68 65 72 65 20 69  lines anywhere i
a850: 6e 20 74 68 65 20 64 61 74 61 2e 20 20 54 68 69  n the data.  Thi
a860: 73 20 69 73 20 61 6e 20 6f 6c 64 20 62 75 67 20  s is an old bug 
a870: 74 68 61 74 20 77 61 73 20 63 61 72 72 69 65 64  that was carried
a880: 0a 20 20 20 20 66 6f 72 77 61 72 64 20 66 72 6f  .    forward fro
a890: 6d 20 76 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20  m version 1.0.  
a8a0: 54 6f 20 66 69 78 20 69 74 2c 20 74 68 65 20 22  To fix it, the "
a8b0: 2e 64 75 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f  .dump" output no
a8c0: 20 6c 6f 6e 67 65 72 0a 20 20 20 20 75 73 65 73   longer.    uses
a8d0: 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e   the COPY comman
a8e0: 64 2e 20 20 49 74 20 69 6e 73 74 65 61 64 20 67  d.  It instead g
a8f0: 65 6e 65 72 61 74 65 73 20 49 4e 53 45 52 54 20  enerates INSERT 
a900: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
a910: 0a 3c 6c 69 3e 45 78 74 65 6e 64 20 74 68 65 20  .<li>Extend the 
a920: 65 78 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61  expression synta
a930: 78 20 74 6f 20 73 75 70 70 6f 72 74 20 22 65 78  x to support "ex
a940: 70 72 20 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69  pr NOT NULL" (wi
a950: 74 68 20 61 0a 20 20 20 20 73 70 61 63 65 20 62  th a.    space b
a960: 65 74 77 65 65 6e 20 74 68 65 20 22 4e 4f 54 22  etween the "NOT"
a970: 20 61 6e 64 20 74 68 65 20 22 4e 55 4c 4c 22 29   and the "NULL")
a980: 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20   in addition to 
a990: 22 65 78 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20  "expr NOTNULL". 
a9a0: 20 20 20 28 77 69 74 68 20 6e 6f 20 73 70 61 63     (with no spac
a9b0: 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  e).</li>.}..chng
a9c0: 20 7b 32 30 30 31 20 53 65 70 20 32 38 20 28 32   {2001 Sep 28 (2
a9d0: 2e 30 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74  .0.0)} {.<li>Aut
a9e0: 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75 69 6c 64  omatically build
a9f0: 20 62 69 6e 61 72 69 65 73 20 66 6f 72 20 4c 69   binaries for Li
aa00: 6e 75 78 20 61 6e 64 20 57 69 6e 64 6f 77 73 20  nux and Windows 
aa10: 61 6e 64 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a  and put them on.
aa20: 20 20 20 20 74 68 65 20 77 65 62 73 69 74 65 2e      the website.
aa30: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
aa40: 30 30 31 20 53 65 70 20 32 38 20 28 32 2e 30 2d  001 Sep 28 (2.0-
aa50: 61 6c 70 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e  alpha-4)} {.<li>
aa60: 49 6e 63 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65  Incorporate make
aa70: 66 69 6c 65 20 70 61 74 63 68 65 73 20 66 6f 72  file patches for
aa80: 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f  m A. Rottmann to
aa90: 20 75 73 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69   use LIBTOOL</li
aaa0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
aab0: 53 65 70 20 32 37 20 28 32 2e 30 2d 61 6c 70 68  Sep 27 (2.0-alph
aac0: 61 2d 33 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69  a-3)} {.<li>SQLi
aad0: 74 65 20 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68  te now honors th
aae0: 65 20 55 4e 49 51 55 45 20 6b 65 79 77 6f 72 64  e UNIQUE keyword
aaf0: 20 69 6e 20 43 52 45 41 54 45 20 55 4e 49 51 55   in CREATE UNIQU
ab00: 45 20 49 4e 44 45 58 2e 20 20 50 72 69 6d 61 72  E INDEX.  Primar
ab10: 79 0a 20 20 20 20 6b 65 79 73 20 61 72 65 20 72  y.    keys are r
ab20: 65 71 75 69 72 65 64 20 74 6f 20 62 65 20 75 6e  equired to be un
ab30: 69 71 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ique.</li>.<li>F
ab40: 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67  ile format chang
ab50: 65 64 20 62 61 63 6b 20 74 6f 20 77 68 61 74 20  ed back to what 
ab60: 69 74 20 77 61 73 20 66 6f 72 20 61 6c 70 68 61  it was for alpha
ab70: 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  -1</li>.<li>Fixe
ab80: 73 20 74 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63  s to the rollbac
ab90: 6b 20 61 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65  k and locking be
aba0: 68 61 76 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63  havior</li>.}..c
abb0: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 30  hng {2001 Sep 20
abc0: 20 28 32 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20   (2.0-alpha-2)} 
abd0: 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65  {.<li>Initial re
abe0: 6c 65 61 73 65 20 6f 66 20 76 65 72 73 69 6f 6e  lease of version
abf0: 20 32 2e 30 2e 20 20 54 68 65 20 69 64 65 61 20   2.0.  The idea 
ac00: 6f 66 20 72 65 6e 61 6d 69 6e 67 20 74 68 65 20  of renaming the 
ac10: 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 22  library.    to "
ac20: 53 51 4c 75 73 22 20 77 61 73 20 61 62 61 6e 64  SQLus" was aband
ac30: 6f 6e 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66  oned in favor of
ac40: 20 6b 65 65 70 69 6e 67 20 74 68 65 20 22 53 51   keeping the "SQ
ac50: 4c 69 74 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20  Lite" name and. 
ac60: 20 20 20 62 75 6d 70 69 6e 67 20 74 68 65 20 6d     bumping the m
ac70: 61 6a 6f 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d  ajor version num
ac80: 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ber.</li>.<li>Th
ac90: 65 20 70 61 67 65 72 20 61 6e 64 20 62 74 72 65  e pager and btre
aca0: 65 20 73 75 62 73 79 73 74 65 6d 73 20 61 64 64  e subsystems add
acb0: 65 64 20 62 61 63 6b 2e 20 54 68 65 79 20 61 72  ed back. They ar
acc0: 65 20 6e 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20  e now the only. 
acd0: 20 20 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63     available bac
ace0: 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  kend.</li>.<li>T
acf0: 68 65 20 44 62 62 65 20 61 62 73 74 72 61 63 74  he Dbbe abstract
ad00: 69 6f 6e 20 61 6e 64 20 74 68 65 20 47 44 42 4d  ion and the GDBM
ad10: 20 61 6e 64 20 6d 65 6d 6f 72 79 20 64 72 69 76   and memory driv
ad20: 65 72 73 20 77 65 72 65 20 72 65 6d 6f 76 65 64  ers were removed
ad30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72  .</li>.<li>Copyr
ad40: 69 67 68 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65  ight on all code
ad50: 20 77 61 73 20 64 69 73 63 6c 61 69 6d 65 64 2e   was disclaimed.
ad60: 20 20 54 68 65 20 6c 69 62 72 61 72 79 20 69 73    The library is
ad70: 20 6e 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20   now in the.    
ad80: 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f  public domain.</
ad90: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
ada0: 31 20 4a 75 6c 20 32 33 20 28 31 2e 30 2e 33 32  1 Jul 23 (1.0.32
adb0: 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61  )} {.<li>Pager a
adc0: 6e 64 20 62 74 72 65 65 20 73 75 62 73 79 73 74  nd btree subsyst
add0: 65 6d 73 20 72 65 6d 6f 76 65 64 2e 20 20 54 68  ems removed.  Th
ade0: 65 73 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64  ese will be used
adf0: 20 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a   in a follow-on.
ae00: 20 20 20 20 53 51 4c 20 73 65 72 76 65 72 20 6c      SQL server l
ae10: 69 62 72 61 72 79 20 6e 61 6d 65 64 20 22 53 51  ibrary named "SQ
ae20: 4c 75 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  Lus".</li>.<li>A
ae30: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
ae40: 6f 20 75 73 65 20 71 75 6f 74 65 64 20 73 74 72  o use quoted str
ae50: 69 6e 67 73 20 61 73 20 74 61 62 6c 65 20 61 6e  ings as table an
ae60: 64 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  d column names i
ae70: 6e 0a 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e  n.    expression
ae80: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
ae90: 7b 32 30 30 31 20 41 70 72 20 31 34 20 28 31 2e  {2001 Apr 14 (1.
aea0: 30 2e 33 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67  0.31)} {.<li>Pag
aeb0: 65 72 20 73 75 62 73 79 73 74 65 6d 20 61 64 64  er subsystem add
aec0: 65 64 20 62 75 74 20 6e 6f 74 20 79 65 74 20 75  ed but not yet u
aed0: 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  sed.</li>.<li>Mo
aee0: 72 65 20 72 6f 62 75 73 74 20 68 61 6e 64 6c 69  re robust handli
aef0: 6e 67 20 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d  ng of out-of-mem
af00: 6f 72 79 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e  ory errors.</li>
af10: 0a 3c 6c 69 3e 4e 65 77 20 74 65 73 74 73 20 61  .<li>New tests a
af20: 64 64 65 64 20 74 6f 20 74 68 65 20 74 65 73 74  dded to the test
af30: 20 73 75 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   suite.</li>.}..
af40: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 36  chng {2001 Apr 6
af50: 20 28 31 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69   (1.0.30)} {.<li
af60: 3e 52 65 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73  >Remove the <b>s
af70: 71 6c 69 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f  qlite_encoding</
af80: 62 3e 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20  b> TCL variable 
af90: 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75  that was introdu
afa0: 63 65 64 0a 20 20 20 20 69 6e 20 74 68 65 20 70  ced.    in the p
afb0: 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e  revious version.
afc0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70  </li>.<li>Add op
afd0: 74 69 6f 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69  tions <b>-encodi
afe0: 6e 67 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74  ng</b> and <b>-t
aff0: 63 6c 2d 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20  cl-uses-utf</b> 
b000: 74 6f 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71  to the.    <b>sq
b010: 6c 69 74 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d  lite</b> TCL com
b020: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  mand.</li>.<li>A
b030: 64 64 20 74 65 73 74 73 20 74 6f 20 6d 61 6b 65  dd tests to make
b040: 20 73 75 72 65 20 74 68 61 74 20 74 63 6c 73 71   sure that tclsq
b050: 6c 69 74 65 20 77 61 73 20 63 6f 6d 70 69 6c 65  lite was compile
b060: 64 20 75 73 69 6e 67 20 54 63 6c 20 68 65 61 64  d using Tcl head
b070: 65 72 0a 20 20 20 20 66 69 6c 65 73 20 61 6e 64  er.    files and
b080: 20 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20   libraries that 
b090: 6d 61 74 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  match.</li>.}..c
b0a0: 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 35 20  hng {2001 Apr 5 
b0b0: 28 31 2e 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.29)} {.<li>
b0c0: 54 68 65 20 6c 69 62 72 61 72 79 20 6e 6f 77 20  The library now 
b0d0: 61 73 73 75 6d 65 73 20 64 61 74 61 20 69 73 20  assumes data is 
b0e0: 73 74 6f 72 65 64 20 61 73 20 55 54 46 2d 38 20  stored as UTF-8 
b0f0: 69 66 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d  if the --enable-
b100: 75 74 66 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20  utf8.    option 
b110: 69 73 20 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66  is given to conf
b120: 69 67 75 72 65 2e 20 20 54 68 65 20 64 65 66 61  igure.  The defa
b130: 75 6c 74 20 62 65 68 61 76 69 6f 72 20 69 73 20  ult behavior is 
b140: 74 6f 20 61 73 73 75 6d 65 0a 20 20 20 20 69 73  to assume.    is
b150: 6f 38 38 35 39 2d 78 2c 20 61 73 20 69 74 20 68  o8859-x, as it h
b160: 61 73 20 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20  as always done. 
b170: 20 54 68 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73   This only makes
b180: 20 61 20 64 69 66 66 65 72 65 6e 63 65 20 66 6f   a difference fo
b190: 72 0a 20 20 20 20 4c 49 4b 45 20 61 6e 64 20 47  r.    LIKE and G
b1a0: 4c 4f 42 20 6f 70 65 72 61 74 6f 72 73 20 61 6e  LOB operators an
b1b0: 64 20 74 68 65 20 4c 45 4e 47 54 48 20 61 6e 64  d the LENGTH and
b1c0: 20 53 55 42 53 54 52 20 66 75 6e 63 74 69 6f 6e   SUBSTR function
b1d0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74  s.</li>.<li>If t
b1e0: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
b1f0: 74 20 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72  t configured for
b200: 20 55 54 46 2d 38 20 61 6e 64 20 74 68 65 20 54   UTF-8 and the T
b210: 63 6c 20 6c 69 62 72 61 72 79 0a 20 20 20 20 69  cl library.    i
b220: 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 6e 65 77  s one of the new
b230: 65 72 20 6f 6e 65 73 20 74 68 61 74 20 75 73 65  er ones that use
b240: 73 20 55 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c  s UTF-8 internal
b250: 6c 79 2c 0a 20 20 20 20 74 68 65 6e 20 61 20 63  ly,.    then a c
b260: 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55  onversion from U
b270: 54 46 2d 38 20 74 6f 20 69 73 6f 38 38 35 39 20  TF-8 to iso8859 
b280: 61 6e 64 0a 20 20 20 20 62 61 63 6b 20 61 67 61  and.    back aga
b290: 69 6e 20 69 73 20 64 6f 6e 65 20 69 6e 73 69 64  in is done insid
b2a0: 65 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  e the TCL interf
b2b0: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
b2c0: 67 20 7b 32 30 30 31 20 41 70 72 20 34 20 28 31  g {2001 Apr 4 (1
b2d0: 2e 30 2e 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .0.28)} {.<li>Ad
b2e0: 64 65 64 20 6c 69 6d 69 74 65 64 20 73 75 70 70  ded limited supp
b2f0: 6f 72 74 20 66 6f 72 20 74 72 61 6e 73 61 63 74  ort for transact
b300: 69 6f 6e 73 2e 20 20 41 74 20 74 68 69 73 20 70  ions.  At this p
b310: 6f 69 6e 74 2c 20 74 72 61 6e 73 61 63 74 69 6f  oint, transactio
b320: 6e 73 0a 20 20 20 20 77 69 6c 6c 20 64 6f 20 74  ns.    will do t
b330: 61 62 6c 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20  able locking on 
b340: 74 68 65 20 47 44 42 4d 20 62 61 63 6b 65 6e 64  the GDBM backend
b350: 2e 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73  .  There is no s
b360: 75 70 70 6f 72 74 20 28 79 65 74 29 0a 20 20 20  upport (yet).   
b370: 20 66 6f 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72   for rollback or
b380: 20 61 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c   atomic commit.<
b390: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
b3a0: 70 65 63 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61  pecial column na
b3b0: 6d 65 73 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20  mes ROWID, OID, 
b3c0: 61 6e 64 20 5f 52 4f 57 49 44 5f 20 74 68 61 74  and _ROWID_ that
b3d0: 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20   refer to the.  
b3e0: 20 20 75 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20    unique random 
b3f0: 69 6e 74 65 67 65 72 20 6b 65 79 20 61 73 73 6f  integer key asso
b400: 63 69 61 74 65 64 20 77 69 74 68 20 65 76 65 72  ciated with ever
b410: 79 20 72 6f 77 20 6f 66 20 65 76 65 72 79 20 74  y row of every t
b420: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  able.</li>.<li>A
b430: 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 73 20  dditional tests 
b440: 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 65 67  added to the reg
b450: 72 65 73 73 69 6f 6e 20 73 75 69 74 65 20 74 6f  ression suite to
b460: 20 63 6f 76 65 72 20 74 68 65 20 6e 65 77 20 52   cover the new R
b470: 4f 57 49 44 0a 20 20 20 20 66 65 61 74 75 72 65  OWID.    feature
b480: 20 61 6e 64 20 74 68 65 20 54 43 4c 20 69 6e 74   and the TCL int
b490: 65 72 66 61 63 65 20 62 75 67 73 20 6d 65 6e 74  erface bugs ment
b4a0: 69 6f 6e 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69  ioned below.</li
b4b0: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  >.<li>Changes to
b4c0: 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72   the "lemon" par
b4d0: 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20 74 6f  ser generator to
b4e0: 20 68 65 6c 70 20 69 74 20 77 6f 72 6b 20 62 65   help it work be
b4f0: 74 74 65 72 20 77 68 65 6e 0a 20 20 20 20 63 6f  tter when.    co
b500: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 4d 53 56  mpiled using MSV
b510: 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  C.</li>.<li>Bug 
b520: 66 69 78 65 73 20 69 6e 20 74 68 65 20 54 43 4c  fixes in the TCL
b530: 20 69 6e 74 65 72 66 61 63 65 20 69 64 65 6e 74   interface ident
b540: 69 66 69 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c  ified by Oleg Ol
b550: 65 69 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  einick.</li>.}..
b560: 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32  chng {2001 Mar 2
b570: 30 20 28 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c  0 (1.0.27)} {.<l
b580: 69 3e 57 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c  i>When doing DEL
b590: 45 54 45 20 61 6e 64 20 55 50 44 41 54 45 2c 20  ETE and UPDATE, 
b5a0: 74 68 65 20 6c 69 62 72 61 72 79 20 75 73 65 64  the library used
b5b0: 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 72 65   to write the re
b5c0: 63 6f 72 64 0a 20 20 20 20 6e 75 6d 62 65 72 73  cord.    numbers
b5d0: 20 6f 66 20 72 65 63 6f 72 64 73 20 74 6f 20 62   of records to b
b5e0: 65 20 64 65 6c 65 74 65 64 20 6f 72 20 75 70 64  e deleted or upd
b5f0: 61 74 65 64 20 69 6e 74 6f 20 61 20 74 65 6d 70  ated into a temp
b600: 6f 72 61 72 79 20 66 69 6c 65 2e 0a 20 20 20 20  orary file..    
b610: 54 68 69 73 20 69 73 20 63 68 61 6e 67 65 64 20  This is changed 
b620: 73 6f 20 74 68 61 74 20 74 68 65 20 72 65 63 6f  so that the reco
b630: 72 64 20 6e 75 6d 62 65 72 73 20 61 72 65 20 68  rd numbers are h
b640: 65 6c 64 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f  eld in memory.</
b650: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45  li>.<li>The DELE
b660: 54 45 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f  TE command witho
b670: 75 74 20 61 20 57 48 49 4c 45 20 63 6c 61 75 73  ut a WHILE claus
b680: 65 20 6a 75 73 74 20 72 65 6d 6f 76 65 73 20 74  e just removes t
b690: 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20  he database.    
b6a0: 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 64  files from the d
b6b0: 69 73 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e  isk, rather than
b6c0: 20 67 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 61   going through a
b6d0: 6e 64 20 64 65 6c 65 74 69 6e 67 20 72 65 63 6f  nd deleting reco
b6e0: 72 64 0a 20 20 20 20 62 79 20 72 65 63 6f 72 64  rd.    by record
b6f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b700: 32 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30  2001 Mar 20 (1.0
b710: 2e 32 36 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65  .26)} {.<li>A se
b720: 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 64 20  rious bug fixed 
b730: 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e  on Windows.  Win
b740: 64 6f 77 73 20 75 73 65 72 73 20 73 68 6f 75 6c  dows users shoul
b750: 64 20 75 70 67 72 61 64 65 2e 0a 20 20 20 20 4e  d upgrade..    N
b760: 6f 20 69 6d 70 61 63 74 20 74 6f 20 55 6e 69 78  o impact to Unix
b770: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
b780: 32 30 30 31 20 4d 61 72 20 31 35 20 28 31 2e 30  2001 Mar 15 (1.0
b790: 2e 32 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69  .25)} {.<li>Modi
b7a0: 66 79 20 74 68 65 20 74 65 73 74 20 73 63 72 69  fy the test scri
b7b0: 70 74 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20  pts to identify 
b7c0: 74 65 73 74 73 20 74 68 61 74 20 64 65 70 65 6e  tests that depen
b7d0: 64 20 6f 6e 20 73 79 73 74 65 6d 0a 20 20 20 20  d on system.    
b7e0: 6c 6f 61 64 20 61 6e 64 20 70 72 6f 63 65 73 73  load and process
b7f0: 6f 72 20 73 70 65 65 64 20 61 6e 64 0a 20 20 20  or speed and.   
b800: 20 74 6f 20 77 61 72 6e 20 74 68 65 20 75 73 65   to warn the use
b810: 72 20 74 68 61 74 20 61 20 66 61 69 6c 75 72 65  r that a failure
b820: 20 6f 66 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65   of one of those
b830: 20 28 72 61 72 65 29 20 74 65 73 74 73 20 64 6f   (rare) tests do
b840: 65 73 0a 20 20 20 20 6e 6f 74 20 6e 65 63 65 73  es.    not neces
b850: 73 61 72 69 6c 79 20 6d 65 61 6e 20 74 68 65 20  sarily mean the 
b860: 6c 69 62 72 61 72 79 20 69 73 20 6d 61 6c 66 75  library is malfu
b870: 6e 63 74 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63  nctioning.  No c
b880: 68 61 6e 67 65 73 20 74 6f 0a 20 20 20 20 63 6f  hanges to.    co
b890: 64 65 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  de..    </li>.}.
b8a0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20  .chng {2001 Mar 
b8b0: 31 34 20 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c  14 (1.0.24)} {.<
b8c0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69  li>Fix a bug whi
b8d0: 63 68 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20  ch was causing. 
b8e0: 20 20 20 74 68 65 20 55 50 44 41 54 45 20 63 6f     the UPDATE co
b8f0: 6d 6d 61 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e  mmand to fail on
b900: 20 73 79 73 74 65 6d 73 20 77 68 65 72 65 20 22   systems where "
b910: 6d 61 6c 6c 6f 63 28 30 29 22 20 72 65 74 75 72  malloc(0)" retur
b920: 6e 73 0a 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68  ns.    NULL.  Th
b930: 65 20 70 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e  e problem does n
b940: 6f 74 20 61 70 70 65 61 72 20 57 69 6e 64 6f 77  ot appear Window
b950: 73 2c 20 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55  s, Linux, or HPU
b960: 58 20 62 75 74 20 64 6f 65 73 20 0a 20 20 20 20  X but does .    
b970: 63 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72  cause the librar
b980: 79 20 74 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58  y to fail on QNX
b990: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
b9a0: 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39  hng {2001 Feb 19
b9b0: 20 28 31 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69   (1.0.23)} {.<li
b9c0: 3e 41 6e 20 75 6e 72 65 6c 61 74 65 64 20 28 61  >An unrelated (a
b9d0: 6e 64 20 6d 69 6e 6f 72 29 20 62 75 67 20 66 72  nd minor) bug fr
b9e0: 6f 6d 20 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b  om Mark Muranwsk
b9f0: 69 20 66 69 78 65 64 2e 20 20 54 68 65 20 61 6c  i fixed.  The al
ba00: 67 6f 72 69 74 68 6d 0a 20 20 20 20 66 6f 72 20  gorithm.    for 
ba10: 66 69 67 75 72 69 6e 67 20 6f 75 74 20 77 68 65  figuring out whe
ba20: 72 65 20 74 6f 20 70 75 74 20 74 65 6d 70 6f 72  re to put tempor
ba30: 61 72 79 20 66 69 6c 65 73 20 66 6f 72 20 61 20  ary files for a 
ba40: 22 6d 65 6d 6f 72 79 3a 22 20 64 61 74 61 62 61  "memory:" databa
ba50: 73 65 0a 20 20 20 20 77 61 73 20 6e 6f 74 20 77  se.    was not w
ba60: 6f 72 6b 69 6e 67 20 71 75 69 74 65 20 72 69 67  orking quite rig
ba70: 68 74 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  ht..    </li>.}.
ba80: 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
ba90: 31 39 20 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c  19 (1.0.22)} {.<
baa0: 6c 69 3e 54 68 65 20 70 72 65 76 69 6f 75 73 20  li>The previous 
bab0: 66 69 78 20 77 61 73 20 6e 6f 74 20 71 75 69 74  fix was not quit
bac0: 65 20 72 69 67 68 74 2e 20 20 54 68 69 73 20 6f  e right.  This o
bad0: 6e 65 20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b  ne seems to work
bae0: 20 62 65 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c   better..    </l
baf0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
bb00: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 31 29   Feb 19 (1.0.21)
bb10: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41  } {.<li>The UPDA
bb20: 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73  TE statement was
bb30: 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 77 68 65   not working whe
bb40: 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61 75  n the WHERE clau
bb50: 73 65 20 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20  se contained.   
bb60: 20 73 6f 6d 65 20 74 65 72 6d 73 20 74 68 61 74   some terms that
bb70: 20 63 6f 75 6c 64 20 62 65 20 73 61 74 69 73 66   could be satisf
bb80: 69 65 64 20 75 73 69 6e 67 20 69 6e 64 69 63 65  ied using indice
bb90: 73 20 61 6e 64 20 6f 74 68 65 72 20 74 65 72 6d  s and other term
bba0: 73 20 74 68 61 74 0a 20 20 20 20 63 6f 75 6c 64  s that.    could
bbb0: 20 6e 6f 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c   not.  Fixed.</l
bbc0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
bbd0: 20 46 65 62 20 31 31 20 28 31 2e 30 2e 32 30 29   Feb 11 (1.0.20)
bbe0: 7d 20 7b 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65  } {.<li>Merge de
bbf0: 76 65 6c 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65  velopment change
bc00: 73 20 69 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20  s into the main 
bc10: 74 72 75 6e 6b 2e 20 20 46 75 74 75 72 65 20 77  trunk.  Future w
bc20: 6f 72 6b 20 74 6f 77 61 72 64 0a 20 20 20 20 75  ork toward.    u
bc30: 73 69 6e 67 20 61 20 42 54 72 65 65 20 66 69 6c  sing a BTree fil
bc40: 65 20 73 74 72 75 63 74 75 72 65 20 77 69 6c 6c  e structure will
bc50: 20 75 73 65 20 61 20 73 65 70 61 72 61 74 65 20   use a separate 
bc60: 43 56 53 20 73 6f 75 72 63 65 20 74 72 65 65 2e  CVS source tree.
bc70: 20 20 54 68 69 73 0a 20 20 20 20 43 56 53 20 74    This.    CVS t
bc80: 72 65 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75  ree will continu
bc90: 65 20 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65  e to support the
bca0: 20 47 44 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66   GDBM version of
bcb0: 20 53 51 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c   SQLite only.</l
bcc0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
bcd0: 20 46 65 62 20 36 20 28 31 2e 30 2e 31 39 29 7d   Feb 6 (1.0.19)}
bce0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 74 72   {.<li>Fix a str
bcf0: 61 6e 67 65 20 28 62 75 74 20 76 61 6c 69 64 29  ange (but valid)
bd00: 20 43 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74   C declaration t
bd10: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
bd20: 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72  problems.    for
bd30: 20 51 4e 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61   QNX.  No logica
bd40: 6c 20 63 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a  l changes.</li>.
bd50: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61  }..chng {2001 Ja
bd60: 6e 20 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a  n 4 (1.0.18)} {.
bd70: 3c 6c 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66  <li>Print the of
bd80: 66 65 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74  fending SQL stat
bd90: 65 6d 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72  ement when an er
bda0: 72 6f 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e  ror occurs.</li>
bdb0: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75  .<li>Do not requ
bdc0: 69 72 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65  ire commas betwe
bdd0: 65 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69  en constraints i
bde0: 6e 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 73  n CREATE TABLE s
bdf0: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
be00: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d  <li>Added the "-
be10: 65 63 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20  echo" option to 
be20: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
be30: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63  <li>Changes to c
be40: 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  omments.</li>.}.
be50: 0a 63 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20  .chng {2000 Dec 
be60: 31 30 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c  10 (1.0.17)} {.<
be70: 6c 69 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71  li>Rewrote <b>sq
be80: 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c  lite_complete()<
be90: 2f 62 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66  /b> to make it f
bea0: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
beb0: 4d 69 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20  Minor tweaks to 
bec0: 6f 74 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61  other code to ma
bed0: 6b 65 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74  ke it run a litt
bee0: 6c 65 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  le faster.</li>.
bef0: 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65  <li>Added new te
bf00: 73 74 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74  sts for <b>sqlit
bf10: 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e  e_complete()</b>
bf20: 20 61 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20   and for memory 
bf30: 6c 65 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  leaks.</li>.}..c
bf40: 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 34 20  hng {2000 Dec 4 
bf50: 28 31 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.16)} {.<li>
bf60: 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  Documentation up
bf70: 64 61 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66  dates.  Mostly f
bf80: 69 78 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61  ixing of typos a
bf90: 6e 64 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f  nd spelling erro
bfa0: 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  rs.</li>.}..chng
bfb0: 20 7b 32 30 30 30 20 4f 63 74 20 32 33 20 28 31   {2000 Oct 23 (1
bfc0: 2e 30 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f  .0.15)} {.<li>Do
bfd0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
bfe0: 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d  tes</li>.<li>Som
bff0: 65 20 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e  e sanity checkin
c000: 67 20 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76  g code was remov
c010: 65 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65  ed from the inne
c020: 72 20 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63  r loop of vdbe.c
c030: 0a 20 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65  .    to help the
c040: 20 6c 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20   library to run 
c050: 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e  a little faster.
c060: 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e    The code is on
c070: 6c 79 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69  ly.    removed i
c080: 66 20 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69  f you compile wi
c090: 74 68 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69  th -DNDEBUG.</li
c0a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
c0b0: 4f 63 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d  Oct 19 (1.0.14)}
c0c0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22   {.<li>Added a "
c0d0: 6d 65 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64  memory:" backend
c0e0: 20 64 72 69 76 65 72 20 74 68 61 74 20 73 74 6f   driver that sto
c0f0: 72 65 73 20 69 74 73 20 64 61 74 61 62 61 73 65  res its database
c100: 20 69 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65   in an.    in-me
c110: 6d 6f 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e  mory hash table.
c120: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c130: 30 30 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e  000 Oct 18 (1.0.
c140: 31 33 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b  13)} {.<li>Break
c150: 20 6f 75 74 20 74 68 65 20 47 44 42 4d 20 64 72   out the GDBM dr
c160: 69 76 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61  iver into a sepa
c170: 72 61 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74  rate file in ant
c180: 69 63 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f  icipation.    to
c190: 20 61 64 64 65 64 20 6e 65 77 20 64 72 69 76 65   added new drive
c1a0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  rs.</li>.<li>All
c1b0: 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61  ow the name of a
c1c0: 20 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 20   database to be 
c1d0: 70 72 65 66 69 78 65 64 20 62 79 20 74 68 65 20  prefixed by the 
c1e0: 64 72 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20  driver type..   
c1f0: 20 46 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e   For now, the on
c200: 6c 79 20 64 72 69 76 65 72 20 74 79 70 65 20 69  ly driver type i
c210: 73 20 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a  s "gdbm:".</li>.
c220: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
c230: 74 20 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b  t 16 (1.0.12)} {
c240: 0a 3c 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66  .<li>Fixed an of
c250: 66 2d 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74  f-by-one error t
c260: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
c270: 61 20 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20  a coredump in . 
c280: 20 20 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d     the '%q' form
c290: 61 74 20 64 69 72 65 63 74 69 76 65 20 6f 66 20  at directive of 
c2a0: 74 68 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73  the new.    <b>s
c2b0: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
c2c0: 28 29 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e  ()</b> routines.
c2d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
c2e0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e  the <b>sqlite_in
c2f0: 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e  terrupt()</b> in
c300: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  terface.</li>.<l
c310: 69 3e 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20  i>In the shell, 
c320: 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72  <b>sqlite_interr
c330: 75 70 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76  upt()</b> is inv
c340: 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20  oked when the.  
c350: 20 20 75 73 65 72 20 70 72 65 73 73 65 73 20 43    user presses C
c360: 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c  ontrol-C</li>.<l
c370: 69 3e 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73  i>Fixed some ins
c380: 74 61 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e  tances where <b>
c390: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62  sqlite_exec()</b
c3a0: 3e 20 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e  > was.    return
c3b0: 69 6e 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72  ing the wrong er
c3c0: 72 6f 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d  ror code.</li>.}
c3d0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
c3e0: 20 31 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a   11 (1.0.10)} {.
c3f0: 3c 6c 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20  <li>Added notes 
c400: 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c  on how to compil
c410: 65 20 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f  e for Windows95/
c420: 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  98.</li>.<li>Rem
c430: 6f 76 65 64 20 61 20 66 65 77 20 76 61 72 69 61  oved a few varia
c440: 62 6c 65 73 20 74 68 61 74 20 77 65 72 65 20 6e  bles that were n
c450: 6f 74 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20  ot being used.  
c460: 45 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  Etc.</li>.}..chn
c470: 67 20 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31  g {2000 Oct 8 (1
c480: 2e 30 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.9)} {.<li>Add
c490: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
c4a0: 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62  _..._printf()</b
c4b0: 3e 20 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74  > interface rout
c4c0: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ines.</li>.<li>M
c4d0: 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73  odified the <b>s
c4e0: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
c4f0: 70 72 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74  program to use t
c500: 68 65 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65  he new interface
c510: 20 0a 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c   .    routines.<
c520: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
c530: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  d the <b>sqlite<
c540: 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61  /b> shell progra
c550: 6d 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73  m to print the s
c560: 63 68 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68  chema for.    th
c570: 65 20 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54  e built-in SQLIT
c580: 45 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20  E_MASTER table, 
c590: 69 66 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65  if explicitly re
c5a0: 71 75 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  quested.</li>.}.
c5b0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
c5c0: 33 30 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c  30 (1.0.8)} {.<l
c5d0: 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20  i>Begin writing 
c5e0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e  documentation on
c5f0: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
c600: 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ce.</li>.}..chng
c610: 20 7b 32 30 30 30 20 53 65 70 20 32 39 20 28 4e   {2000 Sep 29 (N
c620: 6f 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a  ot Released)} {.
c630: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
c640: 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c  >sqlite_get_tabl
c650: 65 28 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e  e()</b> API</li>
c660: 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65  .<li>Updated the
c670: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66   documentation f
c680: 6f 72 20 64 75 65 20 74 6f 20 74 68 65 20 61 62  or due to the ab
c690: 6f 76 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e  ove change.</li>
c6a0: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
c6b0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
c6c0: 73 68 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73  shell to make us
c6d0: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
c6e0: 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c   sqlite_get_tabl
c6f0: 65 28 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72  e() API in order
c700: 20 74 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74   to print a list
c710: 20 6f 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69   of tables.    i
c720: 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d  n multiple colum
c730: 6e 73 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74  ns, similar to t
c740: 68 65 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e  he way "ls" prin
c750: 74 73 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c  ts filenames.</l
c760: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
c770: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
c780: 3e 20 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74  > shell to print
c790: 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20   a semicolon at 
c7a0: 74 68 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65  the.    end of e
c7b0: 61 63 68 20 43 52 45 41 54 45 20 73 74 61 74 65  ach CREATE state
c7c0: 6d 65 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70  ment in the outp
c7d0: 75 74 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65  ut of the ".sche
c7e0: 6d 61 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69  ma" command.</li
c7f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
c800: 53 65 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65  Sep 21 (Not Rele
c810: 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  ased)} {.<li>Cha
c820: 6e 67 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74  nge the tclsqlit
c830: 65 20 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20  e "eval" method 
c840: 74 6f 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74  to return a list
c850: 20 6f 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20   of results if. 
c860: 20 20 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73     no callback s
c870: 63 72 69 70 74 20 69 73 20 73 70 65 63 69 66 69  cript is specifi
c880: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ed.</li>.<li>Cha
c890: 6e 67 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20  nge tclsqlite.c 
c8a0: 74 6f 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f  to use the Tcl_O
c8b0: 62 6a 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  bj interface</li
c8c0: 3e 0a 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c  >.<li>Add tclsql
c8d0: 69 74 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62  ite.c to the lib
c8e0: 73 71 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79  sqlite.a library
c8f0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c900: 30 30 30 20 53 65 70 20 31 33 20 28 56 65 72 73  000 Sep 13 (Vers
c910: 69 6f 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c  ion 1.0.5)} {.<l
c920: 69 3e 43 68 61 6e 67 65 64 20 74 68 65 20 70 72  i>Changed the pr
c930: 69 6e 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66  int format for f
c940: 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61  loating point va
c950: 6c 75 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74  lues from "%g" t
c960: 6f 20 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c  o "%.15g"..    <
c970: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64  /li>.<li>Changed
c980: 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20   the comparison 
c990: 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74  function so that
c9a0: 20 6e 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f   numbers in expo
c9b0: 6e 65 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e  nential notation
c9c0: 0a 20 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65  .    (ex: 1.234e
c9d0: 2b 30 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d  +05) sort in num
c9e0: 65 72 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c  erical order.</l
c9f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ca00: 20 41 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e   Aug 28 (Version
ca10: 20 31 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41   1.0.4)} {.<li>A
ca20: 64 64 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c  dded functions <
ca30: 62 3e 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61  b>length()</b> a
ca40: 6e 64 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f  nd <b>substr()</
ca50: 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  b>.</li>.<li>Fix
ca60: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62   a bug in the <b
ca70: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c  >sqlite</b> shel
ca80: 6c 20 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77  l program that w
ca90: 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61  as causing.    a
caa0: 20 63 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74   coredump when t
cab0: 68 65 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77  he output mode w
cac0: 61 73 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20  as "column" and 
cad0: 74 68 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20  the first row.  
cae0: 20 20 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69    of data contai
caf0: 6e 65 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e  ned a NULL.</li>
cb00: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
cb10: 75 67 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31  ug 22 (Version 1
cb20: 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20  .0.3)} {.<li>In 
cb30: 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c  the sqlite shell
cb40: 2c 20 70 72 69 6e 74 20 74 68 65 20 22 44 61 74  , print the "Dat
cb50: 61 62 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41  abase opened REA
cb60: 44 20 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a  D ONLY" message.
cb70: 20 20 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e      to stderr in
cb80: 73 74 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e  stead of stdout.
cb90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65  </li>.<li>In the
cba0: 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e   sqlite shell, n
cbb0: 6f 77 20 70 72 69 6e 74 20 74 68 65 20 76 65 72  ow print the ver
cbc0: 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69  sion number on i
cbd0: 6e 69 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c  nitial startup.<
cbe0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65  /li>.<li>Add the
cbf0: 20 3c 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69   <b>sqlite_versi
cc00: 6f 6e 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20  on[]</b> string 
cc10: 63 6f 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20  constant to the 
cc20: 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69  library</li>.<li
cc30: 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65  >Makefile update
cc40: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  s</li>.<li>Bug f
cc50: 69 78 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44  ix: incorrect VD
cc60: 42 45 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e  BE code was bein
cc70: 67 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20  g generated for 
cc80: 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20  the following.  
cc90: 20 20 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20    circumstance: 
cca0: 61 20 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e  a query on an in
ccb0: 64 65 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74  dexed table cont
ccc0: 61 69 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63  aining a WHERE c
ccd0: 6c 61 75 73 65 20 77 69 74 68 0a 20 20 20 20 61  lause with.    a
cce0: 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68  n IN operator th
ccf0: 61 74 20 68 61 64 20 61 20 73 75 62 71 75 65 72  at had a subquer
cd00: 79 20 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68  y on its right-h
cd10: 61 6e 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d  and side.</li>.}
cd20: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
cd30: 20 31 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   18 (Version 1.0
cd40: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .1)} {.<li>Fix a
cd50: 20 62 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66   bug in the conf
cd60: 69 67 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c  igure script.</l
cd70: 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76  i>.<li>Minor rev
cd80: 69 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65  isions to the we
cd90: 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  bsite.</li>.}..c
cda0: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 37  hng {2000 Aug 17
cdb0: 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20   (Version 1.0)} 
cdc0: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
cdd0: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70   <b>sqlite</b> p
cde0: 72 6f 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69  rogram so that i
cdf0: 74 20 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64  t can read.    d
ce00: 61 74 61 62 61 73 65 73 20 66 6f 72 20 77 68 69  atabases for whi
ce10: 63 68 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74  ch it lacks writ
ce20: 65 20 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28  e permission.  (
ce30: 49 74 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72  It used to.    r
ce40: 65 66 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73  efuse all access
ce50: 20 69 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74   if it could not
ce60: 20 77 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a   write.)</li>.}.
ce70: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
ce80: 39 7d 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63  9} {.<li>Treat c
ce90: 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 73 20  arriage returns 
cea0: 61 73 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c  as white space.<
ceb0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
cec0: 30 30 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e  00 Aug 8} {.<li>
ced0: 41 64 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61  Added pattern ma
cee0: 74 63 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e  tching to the ".
cef0: 74 61 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69  table" command i
cf00: 6e 20 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63  n the "sqlite".c
cf10: 6f 6d 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c  ommand shell.</l
cf20: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
cf30: 20 41 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f   Aug 4} {.<li>Do
cf40: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
cf50: 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  tes</li>.<li>Add
cf60: 65 64 20 22 62 75 73 79 22 20 61 6e 64 20 22 74  ed "busy" and "t
cf70: 69 6d 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20  imeout" methods 
cf80: 74 6f 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72  to the Tcl inter
cf90: 66 61 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  face</li>.}..chn
cfa0: 67 20 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b  g {2000 Aug 3} {
cfb0: 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74  .<li>File format
cfc0: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   version number 
cfd0: 77 61 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64  was being stored
cfe0: 20 69 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65   in sqlite_maste
cff0: 72 2e 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70  r.tcl.    multip
d000: 6c 65 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77  le times. This w
d010: 61 73 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74  as harmless, but
d020: 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74   unnecessary. It
d030: 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f   is now fixed.</
d040: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d050: 30 20 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54  0 Aug 2} {.<li>T
d060: 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66  he file format f
d070: 6f 72 20 69 6e 64 69 63 65 73 20 77 61 73 20 63  or indices was c
d080: 68 61 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20  hanged slightly 
d090: 69 6e 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b  in order to work
d0a0: 0a 20 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69  .    around an i
d0b0: 6e 65 66 66 69 63 69 65 6e 63 79 20 74 68 61 74  nefficiency that
d0c0: 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63   can sometimes c
d0d0: 6f 6d 65 20 75 70 20 77 69 74 68 20 47 44 42 4d  ome up with GDBM
d0e0: 20 77 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20   when.    there 
d0f0: 61 72 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65  are large indice
d100: 73 20 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e  s having many en
d110: 74 72 69 65 73 20 77 69 74 68 20 74 68 65 20 73  tries with the s
d120: 61 6d 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f  ame key..    <fo
d130: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a  nt color="red">*
d140: 2a 20 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43  * Incompatible C
d150: 68 61 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c  hange **</font><
d160: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d170: 30 30 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e  00 Aug 1} {.<li>
d180: 54 68 65 20 70 61 72 73 65 72 27 73 20 73 74 61  The parser's sta
d190: 63 6b 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69  ck was overflowi
d1a0: 6e 67 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e  ng on a very lon
d1b0: 67 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  g UPDATE stateme
d1c0: 6e 74 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20  nt..    This is 
d1d0: 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  now fixed.</li>.
d1e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
d1f0: 6c 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e  ly 31} {.<li>Fin
d200: 69 73 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d  ish the <a href=
d210: 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45  "vdbe.html">VDBE
d220: 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f   tutorial</a>.</
d230: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f  li>.<li>Added do
d240: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63  cumentation on c
d250: 6f 6d 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64  ompiling to Wind
d260: 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  owsNT.</li>.<li>
d270: 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74  Fix a configurat
d280: 69 6f 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20  ion program for 
d290: 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a  WindowsNT.</li>.
d2a0: 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67  <li>Fix a config
d2b0: 75 72 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20  uration problem 
d2c0: 66 6f 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d  for HPUX.</li>.}
d2d0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c  ..chng {2000 Jul
d2e0: 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74  y 29} {.<li>Bett
d2f0: 65 72 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c  er labels on col
d300: 75 6d 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65  umn names of the
d310: 20 72 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a   result.</li>.}.
d320: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
d330: 20 32 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   28} {.<li>Added
d340: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62   the <b>sqlite_b
d350: 75 73 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62  usy_handler()</b
d360: 3e 20 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71  > .    and <b>sq
d370: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
d380: 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63  t()</b> interfac
d390: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
d3a0: 7b 32 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b  {2000 June 23} {
d3b0: 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69  .<li>Begin writi
d3c0: 6e 67 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  ng the <a href="
d3d0: 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20  vdbe.html">VDBE 
d3e0: 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c  tutorial</a>.</l
d3f0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
d400: 20 4a 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e   June 21} {.<li>
d410: 43 6c 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74  Clean up comment
d420: 73 20 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e  s and variable n
d430: 61 6d 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74  ames.  Changes t
d440: 6f 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e  o documentation.
d450: 0a 20 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e  .    No function
d460: 61 6c 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68  al changes to th
d470: 65 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e code.</li>.}..
d480: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
d490: 31 39 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e  19} {.<li>Column
d4a0: 20 6e 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45   names in UPDATE
d4b0: 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65   statements were
d4c0: 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e   case sensitive.
d4d0: 0a 20 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b  .    This mistak
d4e0: 65 20 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66  e has now been f
d4f0: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
d500: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36  ng {2000 June 16
d510: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
d520: 65 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74  e concatenate st
d530: 72 69 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c  ring operator (|
d540: 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  |)</li>.}..chng 
d550: 7b 32 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b  {2000 June 12} {
d560: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66  .<li>Added the f
d570: 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74  cnt() function t
d580: 6f 20 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70  o the SQL interp
d590: 72 65 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74  reter.  The fcnt
d5a0: 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20  () function.    
d5b0: 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62  returns the numb
d5c0: 65 72 20 6f 66 20 64 61 74 61 62 61 73 65 20 22  er of database "
d5d0: 46 65 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e  Fetch" operation
d5e0: 73 20 74 68 61 74 20 68 61 76 65 20 6f 63 63 75  s that have occu
d5f0: 72 72 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66  rred..    This f
d600: 75 6e 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67  unction is desig
d610: 6e 65 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74  ned for use in t
d620: 65 73 74 20 73 63 72 69 70 74 73 20 74 6f 20 76  est scripts to v
d630: 65 72 69 66 79 20 74 68 61 74 0a 20 20 20 20 71  erify that.    q
d640: 75 65 72 69 65 73 20 61 72 65 20 65 66 66 69 63  ueries are effic
d650: 69 65 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72  ient and appropr
d660: 69 61 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64  iately optimized
d670: 2e 20 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f  .  Fcnt() has no
d680: 20 6f 74 68 65 72 0a 20 20 20 20 75 73 65 66 75   other.    usefu
d690: 6c 20 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61  l purpose, as fa
d6a0: 72 20 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69  r as I know.</li
d6b0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75  >.<li>Added a bu
d6c0: 6e 63 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74  nch more tests t
d6d0: 68 61 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61  hat take advanta
d6e0: 67 65 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63  ge of the new fc
d6f0: 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20  nt() function.. 
d700: 20 20 20 54 68 65 20 6e 65 77 20 74 65 73 74 73     The new tests
d710: 20 64 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72   did not uncover
d720: 20 61 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d   any new problem
d730: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
d740: 7b 32 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a  {2000 June 8} {.
d750: 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f  <li>Added lots o
d760: 66 20 6e 65 77 20 74 65 73 74 20 63 61 73 65 73  f new test cases
d770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
d780: 66 65 77 20 62 75 67 73 20 64 69 73 63 6f 76 65  few bugs discove
d790: 72 65 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67  red while adding
d7a0: 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e   test cases</li>
d7b0: 0a 3c 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e  .<li>Begin addin
d7c0: 67 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f  g lots of new do
d7d0: 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e  cumentation</li>
d7e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
d7f0: 75 6e 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  une 6} {.<li>Add
d800: 65 64 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65  ed compound sele
d810: 63 74 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42  ct operators: <B
d820: 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55  >UNION</b>, <b>U
d830: 4e 49 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62  NION ALL</B>,.<b
d840: 3e 49 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20  >INTERSECT</b>, 
d850: 61 6e 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62  and <b>EXCEPT</b
d860: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  ></li>.<li>Added
d870: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69   support for usi
d880: 6e 67 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e  ng <b>(SELECT ..
d890: 2e 29 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78  .)</b> within ex
d8a0: 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c  pressions</li>.<
d8b0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
d8c0: 20 66 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61   for <b>IN</b> a
d8d0: 6e 64 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62  nd <b>BETWEEN</b
d8e0: 3e 20 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e  > operators</li>
d8f0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
d900: 72 74 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20  rt for <b>GROUP 
d910: 42 59 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41  BY</b> and <b>HA
d920: 56 49 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c  VING</b></li>.<l
d930: 69 3e 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72  i>NULL values ar
d940: 65 20 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 74  e now reported t
d950: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61  o the callback a
d960: 73 20 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72  s a NULL pointer
d970: 0a 20 20 20 20 72 61 74 68 65 72 20 74 68 61 6e  .    rather than
d980: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
d990: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
d9a0: 32 30 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c  2000 June 3} {.<
d9b0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
d9c0: 20 66 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c   for default val
d9d0: 75 65 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f  ues on columns o
d9e0: 66 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  f a table.</li>.
d9f0: 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73  <li>Improved tes
da00: 74 20 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78  t coverage.  Fix
da10: 65 64 20 61 20 66 65 77 20 6f 62 73 63 75 72 65  ed a few obscure
da20: 20 62 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74   bugs found by t
da30: 68 65 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74  he.improved test
da40: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
da50: 7b 32 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a  {2000 June 2} {.
da60: 3c 6c 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65  <li>All database
da70: 20 66 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64   files to be mod
da80: 69 66 69 65 64 20 62 79 20 61 6e 20 55 50 44 41  ified by an UPDA
da90: 54 45 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45  TE, INSERT or DE
daa0: 4c 45 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f  LETE are .now lo
dab0: 63 6b 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20  cked before any 
dac0: 63 68 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65  changes are made
dad0: 20 74 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20   to any files.  
dae0: 0a 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73  .This makes it s
daf0: 61 66 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f  afe (I think) to
db00: 20 61 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65   access.the same
db10: 20 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74   database simult
db20: 61 6e 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75  aneously from mu
db30: 6c 74 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73  ltiple processes
db40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63  .</li>.<li>The c
db50: 6f 64 65 20 61 70 70 65 61 72 73 20 73 74 61 62  ode appears stab
db60: 6c 65 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77  le so we are now
db70: 20 63 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74   calling it "bet
db80: 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  a".</li>.}..chng
db90: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b   {2000 June 1} {
dba0: 0a 3c 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70  .<li>Better supp
dbb0: 6f 72 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63  ort for file loc
dbc0: 6b 69 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f  king so that two
dbd0: 20 6f 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73   or more process
dbe0: 65 73 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29  es .(or threads)
dbf0: 0a 63 61 6e 20 61 63 63 65 73 73 20 74 68 65 20  .can access the 
dc00: 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69  same database si
dc10: 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d  multaneously.  M
dc20: 6f 72 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20  ore work needed 
dc30: 69 6e 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68  in.this area, th
dc40: 6f 75 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ough.</li>.}..ch
dc50: 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d  ng {2000 May 31}
dc60: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70   {.<li>Added sup
dc70: 70 6f 72 74 20 66 6f 72 20 61 67 67 72 65 67 61  port for aggrega
dc80: 74 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78  te functions (Ex
dc90: 3a 20 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62  : <b>COUNT(*)</b
dca0: 3e 2c 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f  >, <b>MIN(...)</
dcb0: 62 3e 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43  b>).to the SELEC
dcc0: 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69  T statement.</li
dcd0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
dce0: 6f 72 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43  ort for <B>SELEC
dcf0: 54 20 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f  T DISTINCT ...</
dd00: 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  B></li>.}..chng 
dd10: 7b 32 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a  {2000 May 30} {.
dd20: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
dd30: 3e 4c 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74  >LIKE</b> operat
dd40: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  or.</li>.<li>Add
dd50: 65 64 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e  ed a <b>GLOB</b>
dd60: 20 6f 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c   operator: simil
dd70: 61 72 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42  ar to <B>LIKE</B
dd80: 3e 20 0a 62 75 74 20 69 74 20 75 73 65 73 20 55  > .but it uses U
dd90: 6e 69 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69  nix shell globbi
dda0: 6e 67 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73  ng wildcards ins
ddb0: 74 65 61 64 20 6f 66 20 74 68 65 20 27 25 27 20  tead of the '%' 
ddc0: 0a 61 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72  .and '_' wildcar
ddd0: 64 73 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a  ds of SQL.</li>.
dde0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42  <li>Added the <B
ddf0: 3e 43 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >COPY</b> comman
de00: 64 20 70 61 74 74 65 72 6e 65 64 20 61 66 74 65  d patterned afte
de10: 72 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  r .<a href="http
de20: 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71  ://www.postgresq
de30: 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53  l.org/">PostgreS
de40: 51 4c 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53  QL</a> so that S
de50: 51 4c 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65  QLite.can now re
de60: 61 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  ad the output of
de70: 20 74 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c   the <b>pg_dump<
de80: 2f 62 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d  /b> database dum
de90: 70 20 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73  p utility.of Pos
dea0: 74 67 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c  tgreSQL.</li>.<l
deb0: 69 3e 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43  i>Added a <B>VAC
dec0: 55 55 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20  UUM</B> command 
ded0: 74 68 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20  that that calls 
dee0: 74 68 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f  the .<b>gdbm_reo
def0: 72 67 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75  rganize()</b> fu
df00: 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e  nction on the un
df10: 64 65 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73  derlying databas
df20: 65 0a 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  e.files.</li>.<l
df30: 69 3e 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79  i>And many, many
df40: 20 62 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c   bug fixes...</l
df50: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
df60: 20 4d 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49   May 29} {.<li>I
df70: 6e 69 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65  nitial Public Re
df80: 6c 65 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63  lease of Alpha c
df90: 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73  ode</li>.}..puts
dfa0: 20 7b 0a 3c 2f 44 4c 3e 0a 7d 0a 66 6f 6f 74 65   {.</DL>.}.foote
dfb0: 72 20 7b 24 49 64 3a 7d 0a                       r {$Id:}.