/ Hex Artifact Content
Login

Artifact 1dd3ded5a3a1b4f587c2bf913a5d4518220dd60f:


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 37 20 4a 61  }..chng {2007 Ja
0250: 6e 75 61 72 79 20 32 37 20 28 33 2e 33 2e 31 32  nuary 27 (3.3.12
0260: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 6f  )} {.<li>Fix ano
0270: 74 68 65 72 20 62 75 67 20 69 6e 20 74 68 65 20  ther bug in the 
0280: 49 53 20 4e 55 4c 4c 20 6f 70 74 69 6d 69 7a 61  IS NULL optimiza
0290: 74 69 6f 6e 20 74 68 61 74 20 77 61 73 20 61 64  tion that was ad
02a0: 64 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33  ded in.version 3
02b0: 2e 33 2e 39 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  .3.9.</li>.<li>F
02c0: 69 78 20 61 20 61 73 73 65 72 74 69 6f 6e 20 66  ix a assertion f
02d0: 61 75 6c 74 20 74 68 61 74 20 6f 63 63 75 72 72  ault that occurr
02e0: 65 64 20 6f 6e 20 64 65 65 70 6c 79 20 6e 65 73  ed on deeply nes
02f0: 74 65 64 20 76 69 65 77 73 2e 3c 2f 6c 69 3e 0a  ted views.</li>.
0300: 3c 6c 69 3e 4c 69 6d 69 74 20 74 68 65 20 61 6d  <li>Limit the am
0310: 6f 75 6e 74 20 6f 66 20 6f 75 74 70 75 74 20 74  ount of output t
0320: 68 61 74 0a 3c 61 20 68 72 65 66 3d 22 70 72 61  hat.<a href="pra
0330: 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f  gma.html#pragma_
0340: 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 22  integrity_check"
0350: 3e 50 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74  >PRAGMA integrit
0360: 79 5f 63 68 65 63 6b 3c 2f 61 3e 0a 67 65 6e 65  y_check</a>.gene
0370: 72 61 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rates.</li>.<li>
0380: 4d 69 6e 6f 72 20 73 79 6e 74 61 63 74 69 63 20  Minor syntactic 
0390: 63 68 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f  changes to suppo
03a0: 72 74 20 61 20 77 69 64 65 72 20 76 61 72 69 65  rt a wider varie
03b0: 74 79 20 6f 66 20 63 6f 6d 70 69 6c 65 72 73 2e  ty of compilers.
03c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
03d0: 30 30 37 20 4a 61 6e 75 61 72 79 20 32 32 20 28  007 January 22 (
03e0: 33 2e 33 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 46  3.3.11)} {.<li>F
03f0: 69 78 20 61 6e 6f 74 68 65 72 20 62 75 67 20 69  ix another bug i
0400: 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61  n the implementa
0410: 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77 20  tion of the new 
0420: 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72  .<a href="capi3r
0430: 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f  ef.html#sqlite3_
0440: 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69  prepare_v2">sqli
0450: 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29  te3_prepare_v2()
0460: 3c 2f 61 3e 20 41 50 49 2e 0a 57 65 27 6c 6c 20  </a> API..We'll 
0470: 67 65 74 20 69 74 20 72 69 67 68 74 20 65 76 65  get it right eve
0480: 6e 74 75 61 6c 6c 79 2e 2e 2e 3c 2f 6c 69 3e 0a  ntually...</li>.
0490: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
04a0: 20 74 68 65 20 49 53 20 4e 55 4c 4c 20 6f 70 74   the IS NULL opt
04b0: 69 6d 69 7a 61 74 69 6f 6e 20 74 68 61 74 20 77  imization that w
04c0: 61 73 20 61 64 64 65 64 20 69 6e 20 76 65 72 73  as added in vers
04d0: 69 6f 6e 20 33 2e 33 2e 39 20 2d 0a 74 68 65 20  ion 3.3.9 -.the 
04e0: 62 75 67 20 77 61 73 20 63 61 75 73 69 6e 67 20  bug was causing 
04f0: 69 6e 63 6f 72 72 65 63 74 20 72 65 73 75 6c 74  incorrect result
0500: 73 20 6f 6e 20 63 65 72 74 61 69 6e 20 4c 45 46  s on certain LEF
0510: 54 20 4a 4f 49 4e 73 20 74 68 61 74 20 69 6e 63  T JOINs that inc
0520: 6c 75 64 65 64 0a 69 6e 20 74 68 65 20 57 48 45  luded.in the WHE
0530: 52 45 20 63 6c 61 75 73 65 20 61 6e 20 49 53 20  RE clause an IS 
0540: 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74 20  NULL constraint 
0550: 66 6f 72 20 74 68 65 20 72 69 67 68 74 20 74 61  for the right ta
0560: 62 6c 65 20 6f 66 20 74 68 65 0a 4c 45 46 54 20  ble of the.LEFT 
0570: 4a 4f 49 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  JOIN.</li>.<li>M
0580: 61 6b 65 20 41 72 65 46 69 6c 65 41 70 69 73 41  ake AreFileApisA
0590: 4e 53 49 28 29 20 61 20 6e 6f 2d 6f 70 20 6d 61  NSI() a no-op ma
05a0: 63 72 6f 20 69 6e 20 77 69 6e 43 45 20 73 69 6e  cro in winCE sin
05b0: 63 65 20 77 69 6e 43 45 20 64 6f 65 73 20 6e 6f  ce winCE does no
05c0: 74 0a 73 75 70 70 6f 72 74 20 74 68 69 73 20 66  t.support this f
05d0: 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  unction.</li>.}.
05e0: 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 61 6e 75  .chng {2007 Janu
05f0: 61 72 79 20 39 20 28 33 2e 33 2e 31 30 29 7d 20  ary 9 (3.3.10)} 
0600: 7b 0a 3c 6c 69 3e 46 69 78 20 62 75 67 73 20 69  {.<li>Fix bugs i
0610: 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61  n the implementa
0620: 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 77 20  tion of the new 
0630: 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72  .<a href="capi3r
0640: 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f  ef.html#sqlite3_
0650: 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69  prepare_v2">sqli
0660: 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29  te3_prepare_v2()
0670: 3c 2f 61 3e 20 41 50 49 0a 74 68 61 74 20 63 61  </a> API.that ca
0680: 6e 20 6c 65 61 64 20 74 6f 20 73 65 67 66 61 75  n lead to segfau
0690: 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  lts.</li>.<li>Fi
06a0: 78 20 31 2d 73 65 63 6f 6e 64 20 72 6f 75 6e 64  x 1-second round
06b0: 2d 6f 66 66 20 65 72 72 6f 72 73 20 69 6e 20 74  -off errors in t
06c0: 68 65 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  he .<a href="htt
06d0: 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f  p://www.sqlite.o
06e0: 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f  rg/cvstrac/wiki?
06f0: 70 3d 44 61 74 65 41 6e 64 54 69 6d 65 46 75 6e  p=DateAndTimeFun
0700: 63 74 69 6f 6e 73 22 3e 0a 73 74 72 66 74 69 6d  ctions">.strftim
0710: 65 28 29 3c 2f 61 3e 20 66 75 6e 63 74 69 6f 6e  e()</a> function
0720: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61 6e 63  </li>.<li>Enhanc
0730: 65 20 74 68 65 20 77 69 6e 64 6f 77 73 20 4f 53  e the windows OS
0740: 20 6c 61 79 65 72 20 74 6f 20 70 72 6f 76 69 64   layer to provid
0750: 65 20 64 65 74 61 69 6c 65 64 20 65 72 72 6f 72  e detailed error
0760: 20 63 6f 64 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   codes</li>.<li>
0770: 57 6f 72 6b 20 61 72 6f 75 6e 64 20 61 20 77 69  Work around a wi
0780: 6e 32 6b 20 70 72 6f 62 6c 65 6d 20 73 6f 20 74  n2k problem so t
0790: 68 61 74 20 53 51 4c 69 74 65 20 63 61 6e 20 75  hat SQLite can u
07a0: 73 65 20 73 69 6e 67 6c 65 2d 63 68 61 72 61 63  se single-charac
07b0: 74 65 72 0a 64 61 74 61 62 61 73 65 20 66 69 6c  ter.database fil
07c0: 65 20 6e 61 6d 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  e names</li>.<li
07d0: 3e 54 68 65 0a 3c 61 20 68 72 65 66 3d 22 70 72  >The.<a href="pr
07e0: 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61  agma.html#pragma
07f0: 5f 75 73 65 72 5f 76 65 72 73 69 6f 6e 22 3e 75  _user_version">u
0800: 73 65 72 5f 76 65 72 73 69 6f 6e 3c 2f 61 3e 20  ser_version</a> 
0810: 61 6e 64 0a 3c 61 20 68 72 65 66 3d 22 70 72 61  and.<a href="pra
0820: 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f  gma.html#pragma_
0830: 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 22 3e  schema_version">
0840: 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 3c 2f  schema_version</
0850: 61 3e 20 70 72 61 67 6d 61 73 20 0a 63 6f 72 72  a> pragmas .corr
0860: 65 63 74 6c 79 20 73 65 74 20 74 68 65 69 72 20  ectly set their 
0870: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20  column names in 
0880: 74 68 65 20 72 65 73 75 6c 74 20 73 65 74 3c 2f  the result set</
0890: 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74  li>.<li>Document
08a0: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c  ation updates</l
08b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37  i>.}..chng {2007
08c0: 20 4a 61 6e 75 61 72 79 20 34 20 28 33 2e 33 2e   January 4 (3.3.
08d0: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 62 75  9)} {.<li>Fix bu
08e0: 67 73 20 69 6e 20 70 61 67 65 72 2e 63 20 74 68  gs in pager.c th
08f0: 61 74 20 63 6f 75 6c 64 20 6c 65 61 64 20 74 6f  at could lead to
0900: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
0910: 74 69 6f 6e 20 69 66 20 74 77 6f 0a 70 72 6f 63  tion if two.proc
0920: 65 73 73 65 73 20 62 6f 74 68 20 74 72 79 20 74  esses both try t
0930: 6f 20 72 65 63 6f 76 65 72 20 61 20 68 6f 74 20  o recover a hot 
0940: 6a 6f 75 72 6e 61 6c 20 61 74 20 74 68 65 20 73  journal at the s
0950: 61 6d 65 20 69 6e 73 74 61 6e 74 3c 2f 6c 69 3e  ame instant</li>
0960: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c  .<li>Added the <
0970: 61 20 68 72 65 66 3d 22 63 61 70 69 33 72 65 66  a href="capi3ref
0980: 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 70 72  .html#sqlite3_pr
0990: 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69 74 65  epare_v2">sqlite
09a0: 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29 3c 2f  3_prepare_v2()</
09b0: 61 3e 0a 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69  a>.API.</li>.<li
09c0: 3e 46 69 78 65 64 20 74 68 65 20 22 2e 64 75 6d  >Fixed the ".dum
09d0: 70 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68  p" command in th
09e0: 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73  e command-line s
09f0: 68 65 6c 6c 20 74 6f 20 73 68 6f 77 0a 69 6e 64  hell to show.ind
0a00: 69 63 65 73 2c 20 74 72 69 67 67 65 72 73 20 61  ices, triggers a
0a10: 6e 64 20 76 69 65 77 73 20 61 67 61 69 6e 2e 3c  nd views again.<
0a20: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
0a30: 74 68 65 20 74 61 62 6c 65 5f 69 6e 66 6f 20 70  the table_info p
0a40: 72 61 67 6d 61 20 73 6f 20 74 68 61 74 20 69 74  ragma so that it
0a50: 20 72 65 74 75 72 6e 73 20 4e 55 4c 4c 20 66 6f   returns NULL fo
0a60: 72 20 74 68 65 20 64 65 66 61 75 6c 74 0a 76 61  r the default.va
0a70: 6c 75 65 20 69 66 20 74 68 65 72 65 20 69 73 20  lue if there is 
0a80: 6e 6f 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65  no default value
0a90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72  </li>.<li>Suppor
0aa0: 74 20 66 6f 72 20 6e 6f 6e 2d 41 53 43 49 49 20  t for non-ASCII 
0ab0: 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 77 69  characters in wi
0ac0: 6e 39 35 20 66 69 6c 65 6e 61 6d 65 73 3c 2f 6c  n95 filenames</l
0ad0: 69 3e 0a 3c 6c 69 3e 51 75 65 72 79 20 6f 70 74  i>.<li>Query opt
0ae0: 69 6d 69 7a 65 72 20 65 6e 68 61 6e 63 65 6d 65  imizer enhanceme
0af0: 6e 74 73 3a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 4f 70  nts:.<ul>.<li>Op
0b00: 74 69 6d 69 7a 65 72 20 64 6f 65 73 20 61 20 62  timizer does a b
0b10: 65 74 74 65 72 20 6a 6f 62 20 6f 66 20 75 73 69  etter job of usi
0b20: 6e 67 20 69 6e 64 69 63 65 73 20 74 6f 20 73 61  ng indices to sa
0b30: 74 69 73 66 79 20 4f 52 44 45 52 20 42 59 0a 63  tisfy ORDER BY.c
0b40: 6c 61 75 73 65 73 20 74 68 61 74 20 73 6f 72 74  lauses that sort
0b50: 20 6f 6e 20 74 68 65 20 69 6e 74 65 67 65 72 20   on the integer 
0b60: 70 72 69 6d 61 72 79 20 6b 65 79 3c 2f 6c 69 3e  primary key</li>
0b70: 0a 3c 6c 69 3e 55 73 65 20 61 6e 20 69 6e 64 65  .<li>Use an inde
0b80: 78 20 74 6f 20 73 61 74 69 73 66 79 20 61 6e 20  x to satisfy an 
0b90: 49 53 20 4e 55 4c 4c 20 6f 70 65 72 61 74 6f 72  IS NULL operator
0ba0: 20 69 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c   in the WHERE cl
0bb0: 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ause</li>.<li>Fi
0bc0: 78 20 61 20 62 75 67 20 74 68 61 74 20 77 61 73  x a bug that was
0bd0: 20 63 61 75 73 69 6e 67 20 74 68 65 20 6f 70 74   causing the opt
0be0: 69 6d 69 7a 65 72 20 74 6f 20 6d 69 73 73 20 61  imizer to miss a
0bf0: 6e 20 4f 52 20 6f 70 74 69 6d 69 7a 61 74 69 6f  n OR optimizatio
0c00: 6e 0a 6f 70 70 6f 72 74 75 6e 69 74 79 3c 2f 6c  n.opportunity</l
0c10: 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74 69 6d  i>.<li>The optim
0c20: 69 7a 65 72 20 68 61 73 20 6d 6f 72 65 20 66 72  izer has more fr
0c30: 65 65 64 6f 6d 20 74 6f 20 72 65 6f 72 64 65 72  eedom to reorder
0c40: 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65 20 46   tables in the F
0c50: 52 4f 4d 20 63 6c 61 75 73 65 0a 65 76 65 6e 20  ROM clause.even 
0c60: 69 6e 20 74 68 65 72 65 20 61 72 65 20 4c 45 46  in there are LEF
0c70: 54 20 6a 6f 69 6e 73 2e 3c 2f 6c 69 3e 0a 3c 2f  T joins.</li>.</
0c80: 75 6c 3e 0a 3c 6c 69 3e 45 78 74 65 6e 73 69 6f  ul>.<li>Extensio
0c90: 6e 20 6c 6f 61 64 69 6e 67 20 73 75 70 70 6f 72  n loading suppor
0ca0: 74 65 64 20 61 64 64 65 64 20 74 6f 20 77 69 6e  ted added to win
0cb0: 43 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  CE</li>.<li>Allo
0cc0: 77 20 63 6f 6e 73 74 72 61 69 6e 74 20 6e 61 6d  w constraint nam
0cd0: 65 73 20 6f 6e 20 74 68 65 20 44 45 46 41 55 4c  es on the DEFAUL
0ce0: 54 20 63 6c 61 75 73 65 20 69 6e 20 61 20 74 61  T clause in a ta
0cf0: 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 3c 2f  ble definition</
0d00: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
0d10: 65 20 22 2e 62 61 69 6c 22 20 63 6f 6d 6d 61 6e  e ".bail" comman
0d20: 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64  d to the command
0d30: 2d 6c 69 6e 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e  -line shell</li>
0d40: 0a 3c 6c 69 3e 4d 61 6b 65 20 43 53 56 20 28 63  .<li>Make CSV (c
0d50: 6f 6d 6d 61 20 73 65 70 61 72 61 74 65 20 76 61  omma separate va
0d60: 6c 75 65 29 20 6f 75 74 70 75 74 20 66 72 6f 6d  lue) output from
0d70: 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e   the command-lin
0d80: 65 20 73 68 65 6c 6c 0a 6d 6f 72 65 20 63 6c 6f  e shell.more clo
0d90: 73 65 6c 79 20 61 6c 69 67 6e 65 64 20 74 6f 20  sely aligned to 
0da0: 61 63 63 65 70 74 65 64 20 70 72 61 63 74 69 63  accepted practic
0db0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72  e</li>.<li>Exper
0dc0: 69 6d 65 6e 74 61 6c 20 46 54 53 32 20 6d 6f 64  imental FTS2 mod
0dd0: 75 6c 65 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c  ule added</li>.<
0de0: 6c 69 3e 55 73 65 20 73 71 6c 69 74 65 33 5f 6d  li>Use sqlite3_m
0df0: 70 72 69 6e 74 66 28 29 20 69 6e 73 74 65 61 64  printf() instead
0e00: 20 6f 66 20 73 74 72 64 75 70 28 29 20 74 6f 20   of strdup() to 
0e10: 61 76 6f 69 64 20 6c 69 62 63 20 64 65 70 65 6e  avoid libc depen
0e20: 64 65 6e 63 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  dencies</li>.<li
0e30: 3e 56 41 43 55 55 4d 20 75 73 65 73 20 61 20 74  >VACUUM uses a t
0e40: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 69 6e  emporary file in
0e50: 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20 54 45   the official TE
0e60: 4d 50 20 66 6f 6c 64 65 72 2c 20 6e 6f 74 20 69  MP folder, not i
0e70: 6e 20 74 68 65 0a 73 61 6d 65 20 64 69 72 65 63  n the.same direc
0e80: 74 6f 72 79 20 61 73 20 74 68 65 20 6f 72 69 67  tory as the orig
0e90: 69 6e 61 6c 20 64 61 74 61 62 61 73 65 3c 2f 6c  inal database</l
0ea0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65 66 69  i>.<li>The prefi
0eb0: 78 20 6f 6e 20 74 65 6d 70 6f 72 61 72 79 20 66  x on temporary f
0ec0: 69 6c 65 6e 61 6d 65 73 20 6f 6e 20 77 69 6e 64  ilenames on wind
0ed0: 6f 77 73 20 69 73 20 63 68 61 6e 67 65 64 20 66  ows is changed f
0ee0: 72 6f 6d 20 22 73 71 6c 69 74 65 22 0a 74 6f 20  rom "sqlite".to 
0ef0: 22 65 74 69 6c 71 73 22 2e 3c 2f 6c 69 3e 0a 7d  "etilqs".</li>.}
0f00: 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4f 63 74  ..chng {2006 Oct
0f10: 6f 62 65 72 20 39 20 28 33 2e 33 2e 38 29 7d 20  ober 9 (3.3.8)} 
0f20: 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f  {.<li>Support fo
0f30: 72 20 66 75 6c 6c 20 74 65 78 74 20 73 65 61 72  r full text sear
0f40: 63 68 20 75 73 69 6e 67 20 74 68 65 0a 3c 61 20  ch using the.<a 
0f50: 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77  href="http://www
0f60: 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74  .sqlite.org/cvst
0f70: 72 61 63 2f 77 69 6b 69 3f 70 3d 46 75 6c 6c 54  rac/wiki?p=FullT
0f80: 65 78 74 49 6e 64 65 78 22 3e 46 54 53 31 20 6d  extIndex">FTS1 m
0f90: 6f 64 75 6c 65 3c 2f 61 3e 0a 28 62 65 74 61 29  odule</a>.(beta)
0fa0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0fb0: 4f 53 2d 58 20 6c 6f 63 6b 69 6e 67 20 70 61 74  OS-X locking pat
0fc0: 63 68 65 73 20 28 62 65 74 61 20 2d 20 64 69 73  ches (beta - dis
0fd0: 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74  abled by default
0fe0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 74 72 6f  )</li>.<li>Intro
0ff0: 64 75 63 65 20 65 78 74 65 6e 64 65 64 20 65 72  duce extended er
1000: 72 6f 72 20 63 6f 64 65 73 20 61 6e 64 20 61 64  ror codes and ad
1010: 64 20 65 72 72 6f 72 20 63 6f 64 65 73 20 66 6f  d error codes fo
1020: 72 20 76 61 72 69 6f 75 73 0a 6b 69 6e 64 73 20  r various.kinds 
1030: 6f 66 20 49 2f 4f 20 65 72 72 6f 72 73 2e 3c 2f  of I/O errors.</
1040: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
1050: 70 70 6f 72 74 20 66 6f 72 20 49 46 20 45 58 49  pport for IF EXI
1060: 53 54 53 20 6f 6e 20 43 52 45 41 54 45 2f 44 52  STS on CREATE/DR
1070: 4f 50 20 54 52 49 47 47 45 52 2f 56 49 45 57 3c  OP TRIGGER/VIEW<
1080: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65  /li>.<li>Fix the
1090: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
10a0: 20 73 75 69 74 65 20 73 6f 20 74 68 61 74 20 69   suite so that i
10b0: 74 20 77 6f 72 6b 73 20 77 69 74 68 20 54 63 6c  t works with Tcl
10c0: 38 2e 35 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68  8.5</li>.<li>Enh
10d0: 61 6e 63 65 20 73 71 6c 69 74 65 33 5f 73 65 74  ance sqlite3_set
10e0: 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 20 74 6f  _authorizer() to
10f0: 20 70 72 6f 76 69 64 65 20 6e 6f 74 69 66 69 63   provide notific
1100: 61 74 69 6f 6e 20 6f 66 20 63 61 6c 6c 73 20 74  ation of calls t
1110: 6f 0a 20 20 20 20 53 51 4c 20 66 75 6e 63 74 69  o.    SQL functi
1120: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ons.</li>.<li>Ad
1130: 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74 61 6c  ded experimental
1140: 20 41 50 49 3a 20 20 73 71 6c 69 74 65 33 5f 61   API:  sqlite3_a
1150: 75 74 6f 5f 65 78 74 65 6e 73 69 6f 6e 28 29 3c  uto_extension()<
1160: 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73  /li>.<li>Various
1170: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
1180: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1190: 30 30 36 20 41 75 67 75 73 74 20 31 32 20 28 33  006 August 12 (3
11a0: 2e 33 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .3.7)} {.<li>Add
11b0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 0a 3c  ed support for.<
11c0: 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77  a href="http://w
11d0: 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76  ww.sqlite.org/cv
11e0: 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d 56 69 72  strac/wiki?p=Vir
11f0: 74 75 61 6c 54 61 62 6c 65 73 22 3e 76 69 72 74  tualTables">virt
1200: 75 61 6c 20 74 61 62 6c 65 73 3c 2f 61 3e 0a 28  ual tables</a>.(
1210: 62 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  beta)</li>.<li>A
1220: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
1230: 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a   .<a href="http:
1240: 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67  //www.sqlite.org
1250: 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d  /cvstrac/wiki?p=
1260: 4c 6f 61 64 61 62 6c 65 45 78 74 65 6e 73 69 6f  LoadableExtensio
1270: 6e 73 22 3e 0a 64 79 6e 61 6d 69 63 61 6c 6c 79  ns">.dynamically
1280: 20 6c 6f 61 64 65 64 20 65 78 74 65 6e 73 69 6f   loaded extensio
1290: 6e 73 3c 2f 61 3e 20 28 62 65 74 61 29 3c 2f 6c  ns</a> (beta)</l
12a0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 0a 3c 61 20 68  i>.<li>The .<a h
12b0: 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e 68 74  ref="capi3ref.ht
12c0: 6d 6c 23 73 71 6c 69 74 65 33 5f 69 6e 74 65 72  ml#sqlite3_inter
12d0: 72 75 70 74 22 3e 73 71 6c 69 74 65 33 5f 69 6e  rupt">sqlite3_in
12e0: 74 65 72 72 75 70 74 28 29 3c 2f 61 3e 0a 72 6f  terrupt()</a>.ro
12f0: 75 74 69 6e 65 20 63 61 6e 20 62 65 20 63 61 6c  utine can be cal
1300: 6c 65 64 20 66 6f 72 20 61 20 64 69 66 66 65 72  led for a differ
1310: 65 6e 74 20 74 68 72 65 61 64 3c 2f 6c 69 3e 0a  ent thread</li>.
1320: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 61  <li>Added the <a
1330: 20 68 72 65 66 3d 22 6c 61 6e 67 5f 65 78 70 72   href="lang_expr
1340: 2e 68 74 6d 6c 23 6d 61 74 63 68 22 3e 4d 41 54  .html#match">MAT
1350: 43 48 3c 2f 61 3e 20 6f 70 65 72 61 74 6f 72 2e  CH</a> operator.
1360: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64 65  </li>.<li>The de
1370: 66 61 75 6c 74 20 66 69 6c 65 20 66 6f 72 6d 61  fault file forma
1380: 74 20 69 73 20 6e 6f 77 20 31 2e 20 20 0a 7d 0a  t is now 1.  .}.
1390: 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 75 6e 65  .chng {2006 June
13a0: 20 36 20 28 33 2e 33 2e 36 29 7d 20 7b 0a 3c 6c   6 (3.3.6)} {.<l
13b0: 69 3e 50 6c 61 79 73 20 62 65 74 74 65 72 20 77  i>Plays better w
13c0: 69 74 68 20 76 69 72 75 73 20 73 63 61 6e 6e 65  ith virus scanne
13d0: 72 73 20 6f 6e 20 77 69 6e 64 6f 77 73 3c 2f 6c  rs on windows</l
13e0: 69 3e 0a 3c 6c 69 3e 46 61 73 74 65 72 20 3a 6d  i>.<li>Faster :m
13f0: 65 6d 6f 72 79 3a 20 64 61 74 61 62 61 73 65 73  emory: databases
1400: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e  </li>.<li>Fix an
1410: 20 6f 62 73 63 75 72 65 20 73 65 67 66 61 75 6c   obscure segfaul
1420: 74 20 69 6e 20 55 54 46 2d 38 20 74 6f 20 55 54  t in UTF-8 to UT
1430: 46 2d 31 36 20 63 6f 6e 76 65 72 73 69 6f 6e 73  F-16 conversions
1440: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
1450: 64 72 69 76 65 72 20 66 6f 72 20 4f 53 2f 32 3c  driver for OS/2<
1460: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74  /li>.<li>Correct
1470: 20 63 6f 6c 75 6d 6e 20 6d 65 74 61 2d 69 6e 66   column meta-inf
1480: 6f 72 6d 61 74 69 6f 6e 20 72 65 74 75 72 6e 65  ormation returne
1490: 64 20 66 6f 72 20 61 67 67 72 65 67 61 74 65 20  d for aggregate 
14a0: 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  queries</li>.<li
14b0: 3e 45 6e 68 61 6e 63 65 64 20 6f 75 74 70 75 74  >Enhanced output
14c0: 20 66 72 6f 6d 20 45 58 50 4c 41 49 4e 20 51 55   from EXPLAIN QU
14d0: 45 52 59 20 50 4c 41 4e 3c 2f 6c 69 3e 0a 3c 6c  ERY PLAN</li>.<l
14e0: 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 77 6f  i>LIMIT 0 now wo
14f0: 72 6b 73 20 6f 6e 20 73 75 62 71 75 65 72 69 65  rks on subquerie
1500: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  s</li>.<li>Bug f
1510: 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72 6d  ixes and perform
1520: 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74  ance enhancement
1530: 73 20 69 6e 20 74 68 65 20 71 75 65 72 79 20 6f  s in the query o
1540: 70 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c  ptimizer</li>.<l
1550: 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64  i>Correctly hand
1560: 6c 65 20 4e 55 4c 4c 20 66 69 6c 65 6e 61 6d 65  le NULL filename
1570: 73 20 69 6e 20 41 54 54 41 43 48 20 61 6e 64 20  s in ATTACH and 
1580: 44 45 54 41 43 48 3c 2f 6c 69 3e 0a 3c 6c 69 3e  DETACH</li>.<li>
1590: 49 6e 70 72 6f 76 65 64 20 73 79 6e 74 61 78 20  Inproved syntax 
15a0: 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 69  error messages i
15b0: 6e 20 74 68 65 20 70 61 72 73 65 72 3c 2f 6c 69  n the parser</li
15c0: 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 65 20 63  >.<li>Fix type c
15d0: 6f 65 72 63 69 6f 6e 20 72 75 6c 65 73 20 66 6f  oercion rules fo
15e0: 72 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f  r the IN operato
15f0: 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  r</li>.}..chng {
1600: 32 30 30 36 20 41 70 72 69 6c 20 35 20 28 33 2e  2006 April 5 (3.
1610: 33 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43  3.5)} {.<li>CHEC
1620: 4b 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 75 73  K constraints us
1630: 65 20 63 6f 6e 66 6c 69 63 74 20 72 65 73 6f 6c  e conflict resol
1640: 75 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 73  ution algorithms
1650: 20 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 6c 69 3e   correctly.</li>
1660: 0a 3c 6c 69 3e 54 68 65 20 53 55 4d 28 29 20 66  .<li>The SUM() f
1670: 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 73 20 61  unction throws a
1680: 6e 20 65 72 72 6f 72 20 6f 6e 20 69 6e 74 65 67  n error on integ
1690: 65 72 20 6f 76 65 72 66 6c 6f 77 2e 3c 2f 6c 69  er overflow.</li
16a0: 3e 0a 3c 6c 69 3e 43 68 6f 6f 73 65 20 74 68 65  >.<li>Choose the
16b0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e   column names in
16c0: 20 61 20 63 6f 6d 70 6f 75 6e 64 20 71 75 65 72   a compound quer
16d0: 79 20 66 72 6f 6d 20 74 68 65 20 6c 65 66 74 2d  y from the left-
16e0: 6d 6f 73 74 20 53 45 4c 45 43 54 0a 20 20 20 20  most SELECT.    
16f0: 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 72  instead of the r
1700: 69 67 68 74 2d 6d 6f 73 74 2e 3c 2f 6c 69 3e 0a  ight-most.</li>.
1710: 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f  <li>The sqlite3_
1720: 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69 6f 6e  create_collation
1730: 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20  () function.    
1740: 68 6f 6e 6f 72 73 20 74 68 65 20 53 51 4c 49 54  honors the SQLIT
1750: 45 5f 55 54 46 31 36 5f 41 4c 49 47 4e 45 44 20  E_UTF16_ALIGNED 
1760: 66 6c 61 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  flag.</li>.<li>S
1770: 51 4c 49 54 45 5f 53 45 43 55 52 45 5f 44 45 4c  QLITE_SECURE_DEL
1780: 45 54 45 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65  ETE compile-time
1790: 20 6f 70 74 69 6f 6e 20 63 61 75 73 65 73 20 64   option causes d
17a0: 65 6c 65 74 65 73 20 74 6f 20 6f 76 65 72 77 72  eletes to overwr
17b0: 69 74 65 0a 20 20 20 20 6f 6c 64 20 64 61 74 61  ite.    old data
17c0: 20 77 69 74 68 20 7a 65 72 6f 73 2e 3c 2f 6c 69   with zeros.</li
17d0: 3e 0a 3c 6c 69 3e 44 65 74 65 63 74 20 69 6e 74  >.<li>Detect int
17e0: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 69 6e  eger overflow in
17f0: 20 61 62 73 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69   abs().</li>.<li
1800: 3e 54 68 65 20 72 61 6e 64 6f 6d 28 29 20 66 75  >The random() fu
1810: 6e 63 74 69 6f 6e 20 70 72 6f 76 69 64 65 73 20  nction provides 
1820: 36 34 20 62 69 74 73 20 6f 66 20 72 61 6e 64 6f  64 bits of rando
1830: 6d 6e 65 73 73 20 69 6e 73 74 65 61 64 20 6f 66  mness instead of
1840: 0a 20 20 20 20 6f 6e 6c 79 20 33 32 20 62 69 74  .    only 32 bit
1850: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73  s.</li>.<li>Pars
1860: 65 72 20 64 65 74 65 63 74 73 20 61 6e 64 20 72  er detects and r
1870: 65 70 6f 72 74 73 20 61 75 74 6f 6d 61 74 6f 6e  eports automaton
1880: 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 2e   stack overflow.
1890: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
18a0: 20 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e   the round() fun
18b0: 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 20  ction to return 
18c0: 52 45 41 4c 20 69 6e 73 74 65 61 64 20 6f 66 20  REAL instead of 
18d0: 54 45 58 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  TEXT.</li>.<li>A
18e0: 6c 6c 6f 77 20 57 48 45 52 45 20 63 6c 61 75 73  llow WHERE claus
18f0: 65 20 74 65 72 6d 73 20 6f 6e 20 74 68 65 20 6c  e terms on the l
1900: 65 66 74 20 74 61 62 6c 65 20 6f 66 20 61 20 4c  eft table of a L
1910: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 20 74  EFT OUTER JOIN t
1920: 6f 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 61 67  o.    contain ag
1930: 67 72 65 67 61 74 65 20 73 75 62 71 75 65 72 69  gregate subqueri
1940: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6b 69  es.</li>.<li>Ski
1950: 70 20 6f 76 65 72 20 6c 65 61 64 69 6e 67 20 73  p over leading s
1960: 70 61 63 65 73 20 69 6e 20 74 65 78 74 20 74 6f  paces in text to
1970: 20 6e 75 6d 65 72 69 63 20 63 6f 6e 76 65 72 73   numeric convers
1980: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56  ions.</li>.<li>V
1990: 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67  arious minor bug
19a0: 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69   and documentati
19b0: 6f 6e 20 74 79 70 6f 20 66 69 78 65 73 20 61 6e  on typo fixes an
19c0: 64 0a 20 20 20 20 70 65 72 66 6f 72 6d 61 6e 63  d.    performanc
19d0: 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c  e enhancements.<
19e0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
19f0: 30 36 20 46 65 62 72 75 61 72 79 20 31 31 20 28  06 February 11 (
1a00: 33 2e 33 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.3.4)} {.<li>Fi
1a10: 78 20 61 20 62 6c 75 6e 64 65 72 20 69 6e 20 74  x a blunder in t
1a20: 68 65 20 55 6e 69 78 20 6d 75 74 65 78 20 69 6d  he Unix mutex im
1a30: 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74 68 61  plementation tha
1a40: 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 0a 64 65  t can lead to.de
1a50: 61 64 6c 6f 63 6b 20 6f 6e 20 6d 75 6c 74 69 74  adlock on multit
1a60: 68 72 65 61 64 65 64 20 73 79 73 74 65 6d 73 2e  hreaded systems.
1a70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e  </li>.<li>Fix an
1a80: 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c   alignment probl
1a90: 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 6d 61 63  em on 64-bit mac
1aa0: 68 69 6e 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  hines</li>.<li>A
1ab0: 64 64 65 64 20 74 68 65 20 66 75 6c 6c 66 73 79  dded the fullfsy
1ac0: 6e 63 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  nc pragma.</li>.
1ad0: 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 70 74 69 6d  <li>Fix an optim
1ae0: 69 7a 65 72 20 62 75 67 20 74 68 61 74 20 63 6f  izer bug that co
1af0: 75 6c 64 20 68 61 76 65 20 63 61 75 73 65 64 20  uld have caused 
1b00: 73 6f 6d 65 20 75 6e 75 73 75 61 6c 20 4c 45 46  some unusual LEF
1b10: 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 0a 74 6f  T OUTER JOINs.to
1b20: 20 67 69 76 65 20 69 6e 63 6f 72 72 65 63 74 20   give incorrect 
1b30: 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  results.</li>.<l
1b40: 69 3e 54 68 65 20 53 55 4d 20 66 75 6e 63 74 69  i>The SUM functi
1b50: 6f 6e 20 64 65 74 65 63 74 73 20 69 6e 74 65 67  on detects integ
1b60: 65 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e 64 20  er overflow and 
1b70: 63 6f 6e 76 65 72 74 73 20 74 6f 20 61 63 63 75  converts to accu
1b80: 6d 75 6c 61 74 69 6e 67 0a 61 6e 20 61 70 70 72  mulating.an appr
1b90: 6f 78 69 6d 61 74 65 20 72 65 73 75 6c 74 20 75  oximate result u
1ba0: 73 69 6e 67 20 66 6c 6f 61 74 69 6e 67 20 70 6f  sing floating po
1bb0: 69 6e 74 20 6e 75 6d 62 65 72 73 3c 2f 6c 69 3e  int numbers</li>
1bc0: 0a 3c 6c 69 3e 48 6f 73 74 20 70 61 72 61 6d 65  .<li>Host parame
1bd0: 74 65 72 20 6e 61 6d 65 73 20 63 61 6e 20 62 65  ter names can be
1be0: 67 69 6e 20 77 69 74 68 20 27 40 27 20 66 6f 72  gin with '@' for
1bf0: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77   compatibility w
1c00: 69 74 68 20 53 51 4c 20 53 65 72 76 65 72 2e 0a  ith SQL Server..
1c10: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20  </li>.<li>Other 
1c20: 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 62 75  miscellaneous bu
1c30: 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a  g fixes</li>.}..
1c40: 63 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61  chng {2006 Janua
1c50: 72 79 20 33 31 20 28 33 2e 33 2e 33 29 7d 20 7b  ry 31 (3.3.3)} {
1c60: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70  .<li>Removed sup
1c70: 70 6f 72 74 20 66 6f 72 20 61 6e 20 4f 4e 20 43  port for an ON C
1c80: 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65 20 6f  ONFLICT clause o
1c90: 6e 20 43 52 45 41 54 45 20 49 4e 44 45 58 20 2d  n CREATE INDEX -
1ca0: 20 69 74 20 6e 65 76 65 72 0a 77 6f 72 6b 65 64   it never.worked
1cb0: 20 63 6f 72 72 65 63 74 6c 79 20 73 6f 20 74 68   correctly so th
1cc0: 69 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 70 72  is should not pr
1cd0: 65 73 65 6e 74 20 61 6e 79 20 62 61 63 6b 77 61  esent any backwa
1ce0: 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  rd compatibility
1cf0: 0a 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a  .problems.</li>.
1d00: 3c 6c 69 3e 41 75 74 68 6f 72 69 7a 65 72 20 63  <li>Authorizer c
1d10: 61 6c 6c 62 61 63 6b 20 6e 6f 77 20 6e 6f 74 69  allback now noti
1d20: 66 69 65 64 20 6f 66 20 41 4c 54 45 52 20 54 41  fied of ALTER TA
1d30: 42 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e 20 63  BLE ADD COLUMN c
1d40: 6f 6d 6d 61 6e 64 73 3c 2f 6c 69 3e 0a 3c 6c 69  ommands</li>.<li
1d50: 3e 41 66 74 65 72 20 61 6e 79 20 63 68 61 6e 67  >After any chang
1d60: 65 73 20 74 6f 20 74 68 65 20 54 45 4d 50 20 64  es to the TEMP d
1d70: 61 74 61 62 61 73 65 20 73 63 68 65 6d 61 2c 20  atabase schema, 
1d80: 61 6c 6c 20 70 72 65 70 61 72 65 64 20 73 74 61  all prepared sta
1d90: 74 65 6d 65 6e 74 73 0a 61 72 65 20 69 6e 76 61  tements.are inva
1da0: 6c 69 64 61 74 65 64 20 61 6e 64 20 6d 75 73 74  lidated and must
1db0: 20 62 65 20 72 65 63 72 65 61 74 65 64 20 75 73   be recreated us
1dc0: 69 6e 67 20 61 20 6e 65 77 20 63 61 6c 6c 20 74  ing a new call t
1dd0: 6f 0a 73 71 6c 69 74 65 33 5f 70 72 65 70 61 72  o.sqlite3_prepar
1de0: 65 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  e()</li>.<li>Oth
1df0: 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  er minor bug fix
1e00: 65 73 20 69 6e 20 70 72 65 70 61 72 61 74 69 6f  es in preparatio
1e10: 6e 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20  n for the first 
1e20: 73 74 61 62 6c 65 20 72 65 6c 65 61 73 65 0a 6f  stable release.o
1e30: 66 20 76 65 72 73 69 6f 6e 20 33 2e 33 3c 2f 6c  f version 3.3</l
1e40: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36  i>.}..chng {2006
1e50: 20 4a 61 6e 75 61 72 79 20 32 34 20 28 33 2e 33   January 24 (3.3
1e60: 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .2 beta)} {.<li>
1e70: 42 75 67 20 66 69 78 65 73 20 61 6e 64 20 73 70  Bug fixes and sp
1e80: 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73  eed improvements
1e90: 2e 20 20 49 6d 70 72 6f 76 65 64 20 74 65 73 74  .  Improved test
1ea0: 20 63 6f 76 65 72 61 67 65 2e 3c 2f 6c 69 3e 0a   coverage.</li>.
1eb0: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
1ec0: 68 65 20 4f 53 2d 6c 61 79 65 72 20 69 6e 74 65  he OS-layer inte
1ed0: 72 66 61 63 65 3a 20 6d 75 74 65 78 65 73 20 6d  rface: mutexes m
1ee0: 75 73 74 20 6e 6f 77 20 62 65 20 72 65 63 75 72  ust now be recur
1ef0: 73 69 76 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  sive.</li>.<li>D
1f00: 69 73 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 75  iscontinue the u
1f10: 73 65 20 6f 66 20 74 68 72 65 61 64 2d 73 70 65  se of thread-spe
1f20: 63 69 66 69 63 20 64 61 74 61 20 66 6f 72 20 6f  cific data for o
1f30: 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 0a 65 78 63  ut-of-memory.exc
1f40: 65 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 3c  eption handling<
1f50: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1f60: 30 36 20 4a 61 6e 75 61 72 79 20 31 36 20 28 33  06 January 16 (3
1f70: 2e 33 2e 31 20 61 6c 70 68 61 29 7d 20 7b 0a 3c  .3.1 alpha)} {.<
1f80: 6c 69 3e 43 6f 75 6e 74 6c 65 73 73 20 62 75 67  li>Countless bug
1f90: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   fixes</li>.<li>
1fa0: 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e  Speed improvemen
1fb0: 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61 74 61  ts</li>.<li>Data
1fc0: 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73  base connections
1fd0: 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64   can now be used
1fe0: 20 62 79 20 6d 75 6c 74 69 70 6c 65 20 74 68 72   by multiple thr
1ff0: 65 61 64 73 2c 20 6e 6f 74 20 6a 75 73 74 0a 74  eads, not just.t
2000: 68 65 20 74 68 72 65 61 64 20 69 6e 20 77 68 69  he thread in whi
2010: 63 68 20 74 68 65 79 20 77 65 72 65 20 63 72 65  ch they were cre
2020: 61 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ated.</li>.}..ch
2030: 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61 72 79  ng {2006 January
2040: 20 31 30 20 28 33 2e 33 2e 30 20 61 6c 70 68 61   10 (3.3.0 alpha
2050: 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43 4b 20 63  )} {.<li>CHECK c
2060: 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 6c 69 3e 0a  onstraints</li>.
2070: 3c 6c 69 3e 49 46 20 45 58 49 53 54 53 20 61 6e  <li>IF EXISTS an
2080: 64 20 49 46 20 4e 4f 54 20 45 58 49 53 54 53 20  d IF NOT EXISTS 
2090: 63 6c 61 75 73 65 73 20 6f 6e 20 43 52 45 41 54  clauses on CREAT
20a0: 45 2f 44 52 4f 50 20 54 41 42 4c 45 2f 49 4e 44  E/DROP TABLE/IND
20b0: 45 58 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 45 53  EX.</li>.<li>DES
20c0: 43 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c  C indices</li>.<
20d0: 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e  li>More efficien
20e0: 74 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 62 6f  t encoding of bo
20f0: 6f 6c 65 61 6e 20 76 61 6c 75 65 73 20 72 65 73  olean values res
2100: 75 6c 74 69 6e 67 20 69 6e 20 73 6d 61 6c 6c 65  ulting in smalle
2110: 72 20 64 61 74 61 62 61 73 65 0a 66 69 6c 65 73  r database.files
2120: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 61  </li>.<li>More a
2130: 67 67 72 65 73 73 69 76 65 20 53 51 4c 49 54 45  ggressive SQLITE
2140: 5f 4f 4d 49 54 5f 46 4c 4f 41 54 49 4e 47 5f 50  _OMIT_FLOATING_P
2150: 4f 49 4e 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65  OINT</li>.<li>Se
2160: 70 61 72 61 74 65 20 49 4e 54 45 47 45 52 20 61  parate INTEGER a
2170: 6e 64 20 52 45 41 4c 20 61 66 66 69 6e 69 74 79  nd REAL affinity
2180: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
2190: 61 20 76 69 72 74 75 61 6c 20 66 75 6e 63 74 69  a virtual functi
21a0: 6f 6e 20 6c 61 79 65 72 20 66 6f 72 20 74 68 65  on layer for the
21b0: 20 4f 53 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c   OS interface</l
21c0: 69 3e 0a 3c 6c 69 3e 22 65 78 69 73 74 73 22 20  i>.<li>"exists" 
21d0: 6d 65 74 68 6f 64 20 61 64 64 65 64 20 74 6f 20  method added to 
21e0: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
21f0: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  e</li>.<li>Impro
2200: 76 65 64 20 72 65 73 70 6f 6e 73 65 20 74 6f 20  ved response to 
2210: 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20 65 72  out-of-memory er
2220: 72 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61  rors</li>.<li>Da
2230: 74 61 62 61 73 65 20 63 61 63 68 65 20 63 61 6e  tabase cache can
2240: 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73   be optionally s
2250: 68 61 72 65 64 20 62 65 74 77 65 65 6e 20 63 6f  hared between co
2260: 6e 6e 65 63 74 69 6f 6e 73 0a 69 6e 20 74 68 65  nnections.in the
2270: 20 73 61 6d 65 20 74 68 72 65 61 64 3c 2f 6c 69   same thread</li
2280: 3e 0a 3c 6c 69 3e 4f 70 74 69 6f 6e 61 6c 20 52  >.<li>Optional R
2290: 45 41 44 20 55 4e 43 4f 4d 4d 49 54 54 45 44 20  EAD UNCOMMITTED 
22a0: 69 73 6f 6c 61 74 69 6f 6e 20 28 69 6e 73 74 65  isolation (inste
22b0: 61 64 20 6f 66 20 74 68 65 20 64 65 66 61 75 6c  ad of the defaul
22c0: 74 0a 69 73 6f 6c 61 74 69 6f 6e 20 6c 65 76 65  t.isolation leve
22d0: 6c 20 6f 66 20 53 45 52 49 41 4c 49 5a 41 42 4c  l of SERIALIZABL
22e0: 45 29 20 61 6e 64 20 74 61 62 6c 65 20 6c 65 76  E) and table lev
22f0: 65 6c 20 6c 6f 63 6b 69 6e 67 20 77 68 65 6e 0a  el locking when.
2300: 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74  database connect
2310: 69 6f 6e 73 20 73 68 61 72 65 20 61 20 63 6f 6d  ions share a com
2320: 6d 6f 6e 20 63 61 63 68 65 2e 3c 2f 6c 69 3e 0a  mon cache.</li>.
2330: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 44 65  }..chng {2005 De
2340: 63 65 6d 62 65 72 20 31 39 20 28 33 2e 32 2e 38  cember 19 (3.2.8
2350: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  )} {.<li>Fix an 
2360: 6f 62 73 63 75 72 65 20 62 75 67 20 74 68 61 74  obscure bug that
2370: 20 63 61 6e 20 63 61 75 73 65 20 64 61 74 61 62   can cause datab
2380: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 75  ase corruption u
2390: 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c 6f 77 69  nder the.followi
23a0: 6e 67 20 75 6e 75 73 75 61 6c 20 63 69 72 63 75  ng unusual circu
23b0: 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c 61 72 67  mstances: A larg
23c0: 65 20 49 4e 53 45 52 54 20 6f 72 20 55 50 44 41  e INSERT or UPDA
23d0: 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77 68 69  TE statement whi
23e0: 63 68 20 0a 69 73 20 70 61 72 74 20 6f 66 20 61  ch .is part of a
23f0: 6e 20 65 76 65 6e 20 6c 61 72 67 65 72 20 74 72  n even larger tr
2400: 61 6e 73 61 63 74 69 6f 6e 20 66 61 69 6c 73 20  ansaction fails 
2410: 64 75 65 20 74 6f 20 61 20 75 6e 69 71 75 65 6e  due to a uniquen
2420: 65 73 73 20 63 6f 6e 74 72 61 69 6e 74 0a 62 75  ess contraint.bu
2430: 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67  t the containing
2440: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6d   transaction com
2450: 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  mits.</li>.}..ch
2460: 6e 67 20 7b 32 30 30 35 20 44 65 63 65 6d 62 65  ng {2005 Decembe
2470: 72 20 31 39 20 28 32 2e 38 2e 31 37 29 7d 20 7b  r 19 (2.8.17)} {
2480: 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62 73 63  .<li>Fix an obsc
2490: 75 72 65 20 62 75 67 20 74 68 61 74 20 63 61 6e  ure bug that can
24a0: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
24b0: 63 6f 72 72 75 70 74 69 6f 6e 20 75 6e 64 65 72  corruption under
24c0: 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 75   the.following u
24d0: 6e 75 73 75 61 6c 20 63 69 72 63 75 6d 73 74 61  nusual circumsta
24e0: 6e 63 65 73 3a 20 41 20 6c 61 72 67 65 20 49 4e  nces: A large IN
24f0: 53 45 52 54 20 6f 72 20 55 50 44 41 54 45 20 73  SERT or UPDATE s
2500: 74 61 74 65 6d 65 6e 74 20 77 68 69 63 68 20 0a  tatement which .
2510: 69 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 76  is part of an ev
2520: 65 6e 20 6c 61 72 67 65 72 20 74 72 61 6e 73 61  en larger transa
2530: 63 74 69 6f 6e 20 66 61 69 6c 73 20 64 75 65 20  ction fails due 
2540: 74 6f 20 61 20 75 6e 69 71 75 65 6e 65 73 73 20  to a uniqueness 
2550: 63 6f 6e 74 72 61 69 6e 74 0a 62 75 74 20 74 68  contraint.but th
2560: 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 72 61  e containing tra
2570: 6e 73 61 63 74 69 6f 6e 20 63 6f 6d 6d 69 74 73  nsaction commits
2580: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2590: 32 30 30 35 20 53 65 70 74 65 6d 62 65 72 20 32  2005 September 2
25a0: 34 20 28 33 2e 32 2e 37 29 7d 20 7b 0a 3c 6c 69  4 (3.2.7)} {.<li
25b0: 3e 47 52 4f 55 50 20 42 59 20 6e 6f 77 20 63 6f  >GROUP BY now co
25c0: 6e 73 69 64 65 72 73 20 4e 55 4c 4c 73 20 74 6f  nsiders NULLs to
25d0: 20 62 65 20 65 71 75 61 6c 20 61 67 61 69 6e 2c   be equal again,
25e0: 20 61 73 20 69 74 20 73 68 6f 75 6c 64 0a 3c 2f   as it should.</
25f0: 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f 6d 70  li>.<li>Now comp
2600: 69 6c 65 73 20 6f 6e 20 53 6f 6c 61 72 69 73 20  iles on Solaris 
2610: 61 6e 64 20 4f 70 65 6e 42 53 44 20 61 6e 64 20  and OpenBSD and 
2620: 6f 74 68 65 72 20 55 6e 69 78 20 76 61 72 69 61  other Unix varia
2630: 6e 74 73 0a 74 68 61 74 20 6c 61 63 6b 20 74 68  nts.that lack th
2640: 65 20 66 64 61 74 61 73 79 6e 63 28 29 20 66 75  e fdatasync() fu
2650: 6e 63 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nction</li>.<li>
2660: 4e 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f 6e 20  Now compiles on 
2670: 4d 53 56 43 2b 2b 36 20 61 67 61 69 6e 3c 2f 6c  MSVC++6 again</l
2680: 69 3e 0a 3c 6c 69 3e 46 69 78 20 75 6e 69 6e 69  i>.<li>Fix unini
2690: 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c  tialized variabl
26a0: 65 73 20 63 61 75 73 69 6e 67 20 6d 61 6c 66 75  es causing malfu
26b0: 6e 63 74 69 6f 6e 73 20 66 6f 72 20 76 61 72 69  nctions for vari
26c0: 6f 75 73 20 6f 62 73 63 75 72 65 0a 71 75 65 72  ous obscure.quer
26d0: 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72  ies</li>.<li>Cor
26e0: 72 65 63 74 6c 79 20 63 6f 6d 70 75 74 65 20 61  rectly compute a
26f0: 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e   LEFT OUTER JOIN
2700: 73 20 74 68 61 74 20 69 73 20 63 6f 6e 73 74 72  s that is constr
2710: 61 69 6e 65 64 20 6f 6e 20 74 68 65 0a 6c 65 66  ained on the.lef
2720: 74 20 74 61 62 6c 65 20 6f 6e 6c 79 3c 2f 6c 69  t table only</li
2730: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
2740: 53 65 70 74 65 6d 62 65 72 20 31 37 20 28 33 2e  September 17 (3.
2750: 32 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.6)} {.<li>Fix 
2760: 61 20 62 75 67 20 74 68 61 74 20 63 61 6e 20 63  a bug that can c
2770: 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f  ause database co
2780: 72 72 75 70 74 69 6f 6e 20 69 66 20 61 20 56 41  rruption if a VA
2790: 43 55 55 4d 20 28 6f 72 0a 20 20 20 20 61 75 74  CUUM (or.    aut
27a0: 6f 76 61 63 75 75 6d 29 20 66 61 69 6c 73 20 61  ovacuum) fails a
27b0: 6e 64 20 69 73 20 72 6f 6c 6c 65 64 20 62 61 63  nd is rolled bac
27c0: 6b 20 6f 6e 20 61 20 64 61 74 61 62 61 73 65 20  k on a database 
27d0: 74 68 61 74 20 69 73 0a 20 20 20 20 6c 61 72 67  that is.    larg
27e0: 65 72 20 74 68 61 6e 20 31 47 69 42 3c 2f 6c 69  er than 1GiB</li
27f0: 3e 0a 3c 6c 69 3e 4c 49 4b 45 20 6f 70 74 69 69  >.<li>LIKE optii
2800: 7a 61 74 69 6f 6e 20 6e 6f 77 20 77 6f 72 6b 73  zation now works
2810: 20 66 6f 72 20 63 6f 6c 75 6d 6e 73 20 77 69 74   for columns wit
2820: 68 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41 53 45  h COLLATE NOCASE
2830: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20  </li>.<li>ORDER 
2840: 42 59 20 61 6e 64 20 47 52 4f 55 50 20 42 59 20  BY and GROUP BY 
2850: 6e 6f 77 20 75 73 65 20 62 6f 75 6e 64 65 64 20  now use bounded 
2860: 6d 65 6d 6f 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e  memory</li>.<li>
2870: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
2880: 72 20 43 4f 55 4e 54 28 44 49 53 54 49 4e 43 54  r COUNT(DISTINCT
2890: 20 65 78 70 72 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e   expr)</li>.<li>
28a0: 43 68 61 6e 67 65 20 74 68 65 20 77 61 79 20 53  Change the way S
28b0: 55 4d 28 29 20 68 61 6e 64 6c 65 73 20 4e 55 4c  UM() handles NUL
28c0: 4c 20 76 61 6c 75 65 73 20 69 6e 20 6f 72 64 65  L values in orde
28d0: 72 20 74 6f 20 63 6f 6d 70 6c 79 20 77 69 74 68  r to comply with
28e0: 0a 20 20 20 20 74 68 65 20 53 51 4c 20 73 74 61  .    the SQL sta
28f0: 6e 64 61 72 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  ndard</li>.<li>U
2900: 73 65 20 66 64 61 74 61 73 79 6e 63 28 29 20 69  se fdatasync() i
2910: 6e 73 74 65 61 64 20 6f 66 20 66 73 79 6e 63 28  nstead of fsync(
2920: 29 20 77 68 65 72 65 20 70 6f 73 73 69 62 6c 65  ) where possible
2930: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 70 65   in order to spe
2940: 65 64 0a 20 20 20 20 75 70 20 63 6f 6d 6d 69 74  ed.    up commit
2950: 73 20 73 6c 69 67 68 74 6c 79 3c 2f 6c 69 3e 0a  s slightly</li>.
2960: 3c 6c 69 3e 55 73 65 20 6f 66 20 74 68 65 20 43  <li>Use of the C
2970: 52 4f 53 53 20 6b 65 79 77 6f 72 64 20 69 6e 20  ROSS keyword in 
2980: 61 20 6a 6f 69 6e 20 74 75 72 6e 73 20 6f 66 66  a join turns off
2990: 20 74 68 65 20 74 61 62 6c 65 20 72 65 6f 72 64   the table reord
29a0: 65 72 69 6e 67 0a 20 20 20 20 6f 70 74 69 6d 69  ering.    optimi
29b0: 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  zation</li>.<li>
29c0: 41 64 64 65 64 20 74 68 65 20 65 78 70 65 72 69  Added the experi
29d0: 6d 65 6e 74 61 6c 20 61 6e 64 20 75 6e 64 6f 63  mental and undoc
29e0: 75 6d 65 6e 74 65 64 20 45 58 50 4c 41 49 4e 20  umented EXPLAIN 
29f0: 51 55 45 52 59 20 50 4c 41 4e 20 63 61 70 61 62  QUERY PLAN capab
2a00: 69 6c 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55  ility</li>.<li>U
2a10: 73 65 20 74 68 65 20 75 6e 69 63 6f 64 65 20 41  se the unicode A
2a20: 50 49 20 69 6e 20 77 69 6e 64 6f 77 73 3c 2f 6c  PI in windows</l
2a30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
2a40: 20 41 75 67 75 73 74 20 32 37 20 28 33 2e 32 2e   August 27 (3.2.
2a50: 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  5)} {.<li>Fix a 
2a60: 62 75 67 20 65 66 66 65 63 74 69 6e 67 20 44 45  bug effecting DE
2a70: 4c 45 54 45 20 61 6e 64 20 55 50 44 41 54 45 20  LETE and UPDATE 
2a80: 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20  statements that 
2a90: 63 68 61 6e 67 65 64 0a 6d 6f 72 65 20 74 68 61  changed.more tha
2aa0: 6e 20 34 30 39 36 30 20 72 6f 77 73 2e 3c 2f 6c  n 40960 rows.</l
2ab0: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
2ac0: 65 20 6d 61 6b 65 66 69 6c 65 20 73 6f 20 74 68  e makefile so th
2ad0: 61 74 20 69 74 20 6e 6f 20 6c 6f 6e 67 65 72 20  at it no longer 
2ae0: 72 65 71 75 69 72 65 73 20 47 4e 55 6d 61 6b 65  requires GNUmake
2af0: 20 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 6c 69 3e   extensions</li>
2b00: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 2d 2d 65  .<li>Fix the --e
2b10: 6e 61 62 6c 65 2d 74 68 72 65 61 64 73 61 66 65  nable-threadsafe
2b20: 20 6f 70 74 69 6f 6e 20 6f 6e 20 74 68 65 20 63   option on the c
2b30: 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70 74 3c  onfigure script<
2b40: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63  /li>.<li>Fix a c
2b50: 6f 64 65 20 67 65 6e 65 72 61 74 6f 72 20 62 75  ode generator bu
2b60: 67 20 74 68 61 74 20 6f 63 63 75 72 73 20 77 68  g that occurs wh
2b70: 65 6e 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64  en the left-hand
2b80: 20 73 69 64 65 20 6f 66 20 61 6e 20 49 4e 0a 6f   side of an IN.o
2b90: 70 65 72 61 74 6f 72 20 69 73 20 63 6f 6e 73 74  perator is const
2ba0: 61 6e 74 20 61 6e 64 20 74 68 65 20 72 69 67 68  ant and the righ
2bb0: 74 2d 68 61 6e 64 20 73 69 64 65 20 69 73 20 61  t-hand side is a
2bc0: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
2bd0: 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 50  t</li>.<li>The P
2be0: 52 41 47 4d 41 20 73 79 6e 63 68 72 6f 6e 6f 75  RAGMA synchronou
2bf0: 73 3d 6f 66 66 20 73 74 61 74 65 6d 65 6e 74 20  s=off statement 
2c00: 6e 6f 77 20 64 69 73 61 62 6c 65 73 20 73 79 6e  now disables syn
2c10: 63 69 6e 67 20 6f 66 20 74 68 65 0a 6d 61 73 74  cing of the.mast
2c20: 65 72 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20  er journal file 
2c30: 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74  in addition to t
2c40: 68 65 20 6e 6f 72 6d 61 6c 20 72 6f 6c 6c 62 61  he normal rollba
2c50: 63 6b 20 6a 6f 75 72 6e 61 6c 73 3c 2f 6c 69 3e  ck journals</li>
2c60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 41  .}..chng {2005 A
2c70: 75 67 75 73 74 20 32 34 20 28 33 2e 32 2e 34 29  ugust 24 (3.2.4)
2c80: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
2c90: 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20  g introduced in 
2ca0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c  the previous rel
2cb0: 65 61 73 65 0a 74 68 61 74 20 63 61 6e 20 63 61  ease.that can ca
2cc0: 75 73 65 20 61 20 73 65 67 66 61 75 6c 74 20 77  use a segfault w
2cd0: 68 69 6c 65 20 67 65 6e 65 72 61 74 69 6e 67 20  hile generating 
2ce0: 63 6f 64 65 0a 66 6f 72 20 63 6f 6d 70 6c 65 78  code.for complex
2cf0: 20 57 48 45 52 45 20 63 6c 61 75 73 65 73 2e 3c   WHERE clauses.<
2d00: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 66  /li>.<li>Allow f
2d10: 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6c 69  loating point li
2d20: 74 65 72 61 6c 73 20 74 6f 20 62 65 67 69 6e 20  terals to begin 
2d30: 6f 72 20 65 6e 64 20 77 69 74 68 20 61 20 64 65  or end with a de
2d40: 63 69 6d 61 6c 20 70 6f 69 6e 74 2e 3c 2f 6c 69  cimal point.</li
2d50: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
2d60: 41 75 67 75 73 74 20 32 31 20 28 33 2e 32 2e 33  August 21 (3.2.3
2d70: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73  )} {.<li>Added s
2d80: 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43  upport for the C
2d90: 41 53 54 20 6f 70 65 72 61 74 6f 72 3c 2f 6c 69  AST operator</li
2da0: 3e 0a 3c 6c 69 3e 54 63 6c 20 69 6e 74 65 72 66  >.<li>Tcl interf
2db0: 61 63 65 20 61 6c 6c 6f 77 73 20 42 4c 4f 42 20  ace allows BLOB 
2dc0: 76 61 6c 75 65 73 20 74 6f 20 62 65 20 74 72 61  values to be tra
2dd0: 6e 73 66 65 72 72 65 64 20 74 6f 20 75 73 65 72  nsferred to user
2de0: 2d 64 65 66 69 6e 65 64 0a 66 75 6e 63 74 69 6f  -defined.functio
2df0: 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ns</li>.<li>Adde
2e00: 64 20 74 68 65 20 22 74 72 61 6e 73 61 63 74 69  d the "transacti
2e10: 6f 6e 22 20 6d 65 74 68 6f 64 20 74 6f 20 74 68  on" method to th
2e20: 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65 3c  e Tcl interface<
2e30: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74  /li>.<li>Allow t
2e40: 68 65 20 44 45 46 41 55 4c 54 20 76 61 6c 75 65  he DEFAULT value
2e50: 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 74 6f 20   of a column to 
2e60: 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74  call functions t
2e70: 68 61 74 20 68 61 76 65 20 63 6f 6e 73 74 61 6e  hat have constan
2e80: 74 0a 6f 70 65 72 61 6e 64 73 3c 2f 6c 69 3e 0a  t.operands</li>.
2e90: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 41 4e  <li>Added the AN
2ea0: 41 4c 59 5a 45 20 63 6f 6d 6d 61 6e 64 20 66 6f  ALYZE command fo
2eb0: 72 20 67 61 74 68 65 72 69 6e 67 20 73 74 61 74  r gathering stat
2ec0: 69 73 74 69 63 73 20 6f 6e 20 69 6e 64 69 63 65  istics on indice
2ed0: 73 20 61 6e 64 0a 75 73 69 6e 67 20 74 68 6f 73  s and.using thos
2ee0: 65 20 73 74 61 74 69 73 74 69 63 73 20 77 68 65  e statistics whe
2ef0: 6e 20 70 69 63 6b 69 6e 67 20 61 6e 20 69 6e 64  n picking an ind
2f00: 65 78 20 69 6e 20 74 68 65 20 6f 70 74 69 6d 69  ex in the optimi
2f10: 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  zer</li>.<li>Rem
2f20: 6f 76 65 20 74 68 65 20 6c 69 6d 69 74 20 28 66  ove the limit (f
2f30: 6f 72 6d 65 72 6c 79 20 31 30 30 29 20 6f 6e 20  ormerly 100) on 
2f40: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 65  the number of te
2f50: 72 6d 73 20 69 6e 20 74 68 65 0a 57 48 45 52 45  rms in the.WHERE
2f60: 20 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69   clause</li>.<li
2f70: 3e 54 68 65 20 72 69 67 68 74 2d 68 61 6e 64 20  >The right-hand 
2f80: 73 69 64 65 20 6f 66 20 74 68 65 20 49 4e 20 6f  side of the IN o
2f90: 70 65 72 61 74 6f 72 20 63 61 6e 20 6e 6f 77 20  perator can now 
2fa0: 62 65 20 61 20 6c 69 73 74 20 6f 66 20 65 78 70  be a list of exp
2fb0: 72 65 73 73 69 6f 6e 73 0a 69 6e 73 74 65 61 64  ressions.instead
2fc0: 20 6f 66 20 6a 75 73 74 20 61 20 6c 69 73 74 20   of just a list 
2fd0: 6f 66 20 63 6f 6e 73 74 61 6e 74 73 3c 2f 6c 69  of constants</li
2fe0: 3e 0a 3c 6c 69 3e 52 65 77 6f 72 6b 20 74 68 65  >.<li>Rework the
2ff0: 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20 74 68   optimizer so th
3000: 61 74 20 69 74 20 69 73 20 61 62 6c 65 20 74 6f  at it is able to
3010: 20 6d 61 6b 65 20 62 65 74 74 65 72 20 75 73 65   make better use
3020: 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e   of indices</li>
3030: 0a 3c 6c 69 3e 54 68 65 20 6f 72 64 65 72 20 6f  .<li>The order o
3040: 66 20 74 61 62 6c 65 73 20 69 6e 20 61 20 6a 6f  f tables in a jo
3050: 69 6e 20 69 73 20 61 64 6a 75 73 74 65 64 20 61  in is adjusted a
3060: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 6f 20  utomatically to 
3070: 6d 61 6b 65 0a 62 65 74 74 65 72 20 75 73 65 20  make.better use 
3080: 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a  of indices</li>.
3090: 3c 6c 69 3e 54 68 65 20 49 4e 20 6f 70 65 72 61  <li>The IN opera
30a0: 74 6f 72 20 69 73 20 6e 6f 77 20 61 20 63 61 6e  tor is now a can
30b0: 64 69 64 61 74 65 20 66 6f 72 20 6f 70 74 69 6d  didate for optim
30c0: 69 7a 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20  ization even if 
30d0: 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a 73 69  the left-hand.si
30e0: 64 65 20 69 73 20 6e 6f 74 20 74 68 65 20 6c 65  de is not the le
30f0: 66 74 2d 6d 6f 73 74 20 74 65 72 6d 20 6f 66 20  ft-most term of 
3100: 74 68 65 20 69 6e 64 65 78 2e 20 20 4d 75 6c 74  the index.  Mult
3110: 69 70 6c 65 20 49 4e 20 6f 70 65 72 61 74 6f 72  iple IN operator
3120: 73 20 63 61 6e 20 62 65 0a 75 73 65 64 20 77 69  s can be.used wi
3130: 74 68 20 74 68 65 20 73 61 6d 65 20 69 6e 64 65  th the same inde
3140: 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48 45 52  x.</li>.<li>WHER
3150: 45 20 63 6c 61 75 73 65 20 65 78 70 72 65 73 73  E clause express
3160: 69 6f 6e 73 20 75 73 69 6e 67 20 42 45 54 57 45  ions using BETWE
3170: 45 4e 20 61 6e 64 20 4f 52 20 61 72 65 20 6e 6f  EN and OR are no
3180: 77 20 63 61 6e 64 69 64 61 74 65 73 0a 66 6f 72  w candidates.for
3190: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c 2f 6c   optimization</l
31a0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
31b0: 20 22 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65   "case_sensitive
31c0: 5f 6c 69 6b 65 22 20 70 72 61 67 6d 61 20 61 6e  _like" pragma an
31d0: 64 20 74 68 65 20 53 51 4c 49 54 45 5f 43 41 53  d the SQLITE_CAS
31e0: 45 5f 53 45 4e 53 49 54 49 56 45 5f 4c 49 4b 45  E_SENSITIVE_LIKE
31f0: 0a 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70  .compile-time op
3200: 74 69 6f 6e 20 74 6f 20 73 65 74 20 69 74 73 20  tion to set its 
3210: 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 74 6f  default value to
3220: 20 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   "on".</li>.<li>
3230: 55 73 65 20 69 6e 64 69 63 65 73 20 74 6f 20 68  Use indices to h
3240: 65 6c 70 20 77 69 74 68 20 47 4c 4f 42 20 65 78  elp with GLOB ex
3250: 70 72 65 73 73 69 6f 6e 73 20 61 6e 64 20 4c 49  pressions and LI
3260: 4b 45 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74  KE expressions t
3270: 6f 6f 0a 77 68 65 6e 20 74 68 65 20 63 61 73 65  oo.when the case
3280: 5f 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b 65 20  _sensitive_like 
3290: 70 72 61 67 6d 61 20 69 73 20 65 6e 61 62 6c 65  pragma is enable
32a0: 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  d</li>.<li>Added
32b0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 72 61   support for gra
32c0: 76 65 2d 61 63 63 65 6e 74 20 71 75 6f 74 69 6e  ve-accent quotin
32d0: 67 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c  g for compatibil
32e0: 69 74 79 20 77 69 74 68 20 4d 79 53 51 4c 3c 2f  ity with MySQL</
32f0: 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65 64  li>.<li>Improved
3300: 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 3c 2f   test coverage</
3310: 6c 69 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73 20 6f  li>.<li>Dozens o
3320: 66 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65  f minor bug fixe
3330: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
3340: 32 30 30 35 20 4a 75 6e 65 20 31 33 20 28 33 2e  2005 June 13 (3.
3350: 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  2.2)} {.<li>Adde
3360: 64 20 74 68 65 20 73 71 6c 69 74 65 33 5f 64 62  d the sqlite3_db
3370: 5f 68 61 6e 64 6c 65 28 29 20 41 50 49 3c 2f 6c  _handle() API</l
3380: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
3390: 20 73 71 6c 69 74 65 33 5f 67 65 74 5f 61 75 74   sqlite3_get_aut
33a0: 6f 63 6f 6d 6d 69 74 28 29 20 41 50 49 3c 2f 6c  ocommit() API</l
33b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 52  i>.<li>Added a R
33c0: 45 47 45 58 50 20 6f 70 65 72 61 74 6f 72 20 74  EGEXP operator t
33d0: 6f 20 74 68 65 20 70 61 72 73 65 72 2e 20 20 54  o the parser.  T
33e0: 68 65 72 65 20 69 73 20 6e 6f 20 66 75 6e 63 74  here is no funct
33f0: 69 6f 6e 20 74 6f 20 62 61 63 6b 0a 75 70 20 74  ion to back.up t
3400: 68 69 73 20 6f 70 65 72 61 74 6f 72 20 69 6e 20  his operator in 
3410: 74 68 65 20 73 74 61 6e 64 61 72 64 20 62 75 69  the standard bui
3420: 6c 64 20 62 75 74 20 75 73 65 72 73 20 63 61 6e  ld but users can
3430: 20 61 64 64 20 74 68 65 69 72 20 6f 77 6e 20 75   add their own u
3440: 73 69 6e 67 0a 73 71 6c 69 74 65 33 5f 63 72 65  sing.sqlite3_cre
3450: 61 74 65 5f 66 75 6e 63 74 69 6f 6e 28 29 3c 2f  ate_function()</
3460: 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d  li>.<li>Speed im
3470: 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 6c  provements and l
3480: 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69 6e 74  ibrary footprint
3490: 20 72 65 64 75 63 74 69 6f 6e 73 2e 3c 2f 6c 69   reductions.</li
34a0: 3e 0a 3c 6c 69 3e 46 69 78 20 62 79 74 65 20 61  >.<li>Fix byte a
34b0: 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c 65 6d  lignment problem
34c0: 73 20 6f 6e 20 36 34 2d 62 69 74 20 61 72 63 68  s on 64-bit arch
34d0: 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a  itectures.</li>.
34e0: 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79 20 6d  <li>Many, many m
34f0: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 20 61  inor bug fixes a
3500: 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  nd documentation
3510: 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d   updates.</li>.}
3520: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d 61 72  ..chng {2005 Mar
3530: 63 68 20 32 39 20 28 33 2e 32 2e 31 29 7d 20 7b  ch 29 (3.2.1)} {
3540: 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72  .<li>Fix a memor
3550: 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 65 72 72  y allocation err
3560: 6f 72 20 69 6e 20 74 68 65 20 6e 65 77 20 41 44  or in the new AD
3570: 44 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65 6e 74  D COLUMN comment
3580: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
3590: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
35a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
35b0: 30 30 35 20 4d 61 72 63 68 20 32 31 20 28 33 2e  005 March 21 (3.
35c0: 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  2.0)} {.<li>Adde
35d0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 4c  d support for AL
35e0: 54 45 52 20 54 41 42 4c 45 20 41 44 44 20 43 4f  TER TABLE ADD CO
35f0: 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  LUMN.</li>.<li>A
3600: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
3610: 20 74 68 65 20 22 54 22 20 73 65 70 61 72 61 74   the "T" separat
3620: 6f 72 20 69 6e 20 49 53 4f 2d 38 36 30 31 20 64  or in ISO-8601 d
3630: 61 74 65 2f 74 69 6d 65 20 73 74 72 69 6e 67 73  ate/time strings
3640: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f  .</li>.<li>Impro
3650: 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ved support for 
3660: 43 79 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  Cygwin.</li>.<li
3670: 3e 4e 75 6d 65 72 6f 75 73 20 62 75 67 20 66 69  >Numerous bug fi
3680: 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74  xes and document
3690: 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f  ation updates.</
36a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
36b0: 35 20 4d 61 72 63 68 20 31 36 20 28 33 2e 31 2e  5 March 16 (3.1.
36c0: 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  6)} {.<li>Fix a 
36d0: 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 63  bug that could c
36e0: 61 75 73 65 20 64 61 74 61 62 61 73 65 20 63 6f  ause database co
36f0: 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 6e  rruption when in
3700: 73 65 72 74 69 6e 67 0a 20 20 20 20 72 65 63 6f  serting.    reco
3710: 72 64 20 69 6e 74 6f 20 74 61 62 6c 65 73 20 77  rd into tables w
3720: 69 74 68 20 61 72 6f 75 6e 64 20 31 32 35 20 63  ith around 125 c
3730: 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  olumns.</li>.<li
3740: 3e 73 71 6c 69 74 65 33 5f 73 74 65 70 28 29 20  >sqlite3_step() 
3750: 69 73 20 6e 6f 77 20 6d 75 63 68 20 6d 6f 72 65  is now much more
3760: 20 6c 69 6b 65 6c 79 20 74 6f 20 69 6e 76 6f 6b   likely to invok
3770: 65 20 74 68 65 20 62 75 73 79 20 68 61 6e 64 6c  e the busy handl
3780: 65 72 0a 20 20 20 20 61 6e 64 20 6c 65 73 73 20  er.    and less 
3790: 6c 69 6b 65 6c 79 20 74 6f 20 72 65 74 75 72 6e  likely to return
37a0: 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c   SQLITE_BUSY.</l
37b0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d 6f 72  i>.<li>Fix memor
37c0: 79 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65  y leaks that use
37d0: 64 20 74 6f 20 6f 63 63 75 72 20 61 66 74 65 72  d to occur after
37e0: 20 61 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c   a malloc() fail
37f0: 75 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ure.</li>.}..chn
3800: 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 31  g {2005 March 11
3810: 20 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (3.1.5)} {.<li>
3820: 54 68 65 20 69 6f 63 74 6c 20 6f 6e 20 4f 53 2d  The ioctl on OS-
3830: 58 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73 79 6e  X to control syn
3840: 63 69 6e 67 20 74 6f 20 64 69 73 6b 20 69 73 20  cing to disk is 
3850: 46 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a 20 20 20  F_FULLFSYNC,.   
3860: 20 6e 6f 74 20 46 5f 46 55 4c 4c 53 59 4e 43 2e   not F_FULLSYNC.
3870: 20 20 54 68 65 20 70 72 65 76 69 6f 75 73 20 72    The previous r
3880: 65 6c 65 61 73 65 20 68 61 64 20 69 74 20 77 72  elease had it wr
3890: 6f 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ong.</li>.}..chn
38a0: 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20 31 30  g {2005 March 10
38b0: 20 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (3.1.4)} {.<li>
38c0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 61 75 74  Fix a bug in aut
38d0: 6f 76 61 63 75 75 6d 20 74 68 61 74 20 63 6f 75  ovacuum that cou
38e0: 6c 64 20 63 61 75 73 65 20 64 61 74 61 62 61 73  ld cause databas
38f0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 0a  e corruption if.
3900: 61 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20  a CREATE UNIQUE 
3910: 49 4e 44 45 58 20 66 61 69 6c 73 20 62 65 63 61  INDEX fails beca
3920: 75 73 65 20 6f 66 20 61 20 63 6f 6e 73 74 72 61  use of a constra
3930: 69 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 2e 0a 54  int violation..T
3940: 68 69 73 20 70 72 6f 62 6c 65 6d 20 6f 6e 6c 79  his problem only
3950: 20 6f 63 63 75 72 73 20 69 66 20 74 68 65 20 6e   occurs if the n
3960: 65 77 20 61 75 74 6f 76 61 63 75 75 6d 20 66 65  ew autovacuum fe
3970: 61 74 75 72 65 20 69 6e 74 72 6f 64 75 63 65 64  ature introduced
3980: 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e 31 20   in.version 3.1 
3990: 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c  is turned on.</l
39a0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f 46 55 4c  i>.<li>The F_FUL
39b0: 4c 53 59 4e 43 20 69 6f 63 74 6c 20 28 63 75 72  LSYNC ioctl (cur
39c0: 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70  rently only supp
39d0: 6f 72 74 65 64 20 6f 6e 20 4f 53 2d 58 29 20 69  orted on OS-X) i
39e0: 73 20 64 69 73 61 62 6c 65 64 0a 69 66 20 74 68  s disabled.if th
39f0: 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 70 72  e synchronous pr
3a00: 61 67 6d 61 20 69 73 20 73 65 74 20 74 6f 20 73  agma is set to s
3a10: 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74  omething other t
3a20: 68 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c 69 3e  han "full".</li>
3a30: 0a 3c 6c 69 3e 41 64 64 20 61 64 64 69 74 69 6f  .<li>Add additio
3a40: 6e 61 6c 20 66 6f 72 77 61 72 64 20 63 6f 6d 70  nal forward comp
3a50: 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74 68 65  atibility to the
3a60: 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 20   future version 
3a70: 33 2e 32 20 64 61 74 61 62 61 73 65 20 0a 66 69  3.2 database .fi
3a80: 6c 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69 3e 0a  le format.</li>.
3a90: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
3aa0: 20 57 48 45 52 45 20 63 6c 61 75 73 65 73 20 6f   WHERE clauses o
3ab0: 66 20 74 68 65 20 66 6f 72 6d 20 28 72 6f 77 69  f the form (rowi
3ac0: 64 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e  d<'2')</li>.<li>
3ad0: 4e 65 77 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f  New SQLITE_OMIT_
3ae0: 2e 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65  ... compile-time
3af0: 20 6f 70 74 69 6f 6e 73 20 61 64 64 65 64 3c 2f   options added</
3b00: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20  li>.<li>Updates 
3b10: 74 6f 20 74 68 65 20 6d 61 6e 20 70 61 67 65 3c  to the man page<
3b20: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20  /li>.<li>Remove 
3b30: 74 68 65 20 75 73 65 20 6f 66 20 73 74 72 63 61  the use of strca
3b40: 73 65 63 6d 70 28 29 20 66 72 6f 6d 20 74 68 65  secmp() from the
3b50: 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e   shell</li>.<li>
3b60: 57 69 6e 64 6f 77 73 20 44 4c 4c 20 65 78 70 6f  Windows DLL expo
3b70: 72 74 73 20 73 79 6d 62 6f 6c 73 20 54 63 6c 73  rts symbols Tcls
3b80: 71 6c 69 74 65 5f 49 6e 69 74 20 61 6e 64 20 53  qlite_Init and S
3b90: 71 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c 69 3e 0a  qlite_Init</li>.
3ba0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65  }..chng {2005 Fe
3bb0: 62 72 75 61 72 79 20 31 39 20 28 33 2e 31 2e 33  bruary 19 (3.1.3
3bc0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70  )} {.<li>Fix a p
3bd0: 72 6f 62 6c 65 6d 20 77 69 74 68 20 56 41 43 55  roblem with VACU
3be0: 55 4d 20 6f 6e 20 64 61 74 61 62 61 73 65 73 20  UM on databases 
3bf0: 66 72 6f 6d 20 77 68 69 63 68 20 74 61 62 6c 65  from which table
3c00: 73 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 41 55 54  s containing.AUT
3c10: 4f 49 4e 43 52 45 4d 45 4e 54 20 68 61 76 65 20  OINCREMENT have 
3c20: 62 65 65 6e 20 64 72 6f 70 70 65 64 2e 3c 2f 6c  been dropped.</l
3c30: 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f 72 77 61  i>.<li>Add forwa
3c40: 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  rd compatibility
3c50: 20 74 6f 20 74 68 65 20 66 75 74 75 72 65 20 76   to the future v
3c60: 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74 61 62  ersion 3.2 datab
3c70: 61 73 65 20 66 69 6c 65 0a 66 6f 72 6d 61 74 2e  ase file.format.
3c80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
3c90: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
3ca0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3cb0: 30 35 20 46 65 62 72 75 61 72 79 20 31 35 20 28  05 February 15 (
3cc0: 33 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.1.2)} {.<li>Fi
3cd0: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e  x a bug that can
3ce0: 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62 61 73   lead to databas
3cf0: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20  e corruption if 
3d00: 74 68 65 72 65 20 61 72 65 20 74 77 6f 0a 6f 70  there are two.op
3d10: 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 74  en connections t
3d20: 6f 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62  o the same datab
3d30: 61 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f 6e 6e  ase and one conn
3d40: 65 63 74 69 6f 6e 20 64 6f 65 73 20 61 20 56 41  ection does a VA
3d50: 43 55 55 4d 0a 61 6e 64 20 74 68 65 20 73 65 63  CUUM.and the sec
3d60: 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65 20 63  ond makes some c
3d70: 68 61 6e 67 65 20 74 6f 20 74 68 65 20 64 61 74  hange to the dat
3d80: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  abase.</li>.<li>
3d90: 41 6c 6c 6f 77 20 22 3f 22 20 70 61 72 61 6d 65  Allow "?" parame
3da0: 74 65 72 73 20 69 6e 20 74 68 65 20 4c 49 4d 49  ters in the LIMI
3db0: 54 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c  T clause.</li>.<
3dc0: 6c 69 3e 46 69 78 20 56 41 43 55 55 4d 20 73 6f  li>Fix VACUUM so
3dd0: 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73 20 77   that it works w
3de0: 69 74 68 20 41 55 54 4f 49 4e 43 52 45 4d 45 4e  ith AUTOINCREMEN
3df0: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  T.</li>.<li>Fix 
3e00: 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e  a race condition
3e10: 20 69 6e 20 41 55 54 4f 56 41 43 55 55 4d 20 74   in AUTOVACUUM t
3e20: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  hat can lead to 
3e30: 63 6f 72 72 75 70 74 20 64 61 74 61 62 61 73 65  corrupt database
3e40: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 61  s</li>.<li>Add a
3e50: 20 6e 75 6d 65 72 69 63 20 76 65 72 73 69 6f 6e   numeric version
3e60: 20 6e 75 6d 62 65 72 20 74 6f 20 74 68 65 20 73   number to the s
3e70: 71 6c 69 74 65 33 2e 68 20 69 6e 63 6c 75 64 65  qlite3.h include
3e80: 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   file.</li>.<li>
3e90: 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20  Other minor bug 
3ea0: 66 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f 72  fixes and perfor
3eb0: 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e  mance enhancemen
3ec0: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
3ed0: 20 7b 32 30 30 35 20 46 65 62 72 75 61 72 79 20   {2005 February 
3ee0: 31 35 20 28 32 2e 38 2e 31 36 29 7d 20 7b 0a 3c  15 (2.8.16)} {.<
3ef0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
3f00: 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 64 61  t can lead to da
3f10: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
3f20: 6e 20 69 66 20 74 68 65 72 65 20 61 72 65 20 74  n if there are t
3f30: 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69  wo.open connecti
3f40: 6f 6e 73 20 74 6f 20 74 68 65 20 73 61 6d 65 20  ons to the same 
3f50: 64 61 74 61 62 61 73 65 20 61 6e 64 20 6f 6e 65  database and one
3f60: 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73   connection does
3f70: 20 61 20 56 41 43 55 55 4d 0a 61 6e 64 20 74 68   a VACUUM.and th
3f80: 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73  e second makes s
3f90: 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f 20 74 68  ome change to th
3fa0: 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e  e database.</li>
3fb0: 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68  .<li>Correctly h
3fc0: 61 6e 64 6c 65 20 71 75 6f 74 65 64 20 6e 61 6d  andle quoted nam
3fd0: 65 73 20 69 6e 20 43 52 45 41 54 45 20 49 4e 44  es in CREATE IND
3fe0: 45 58 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f  EX statements.</
3ff0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6e 61  li>.<li>Fix a na
4000: 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 20 62 65  ming conflict be
4010: 74 77 65 65 6e 20 73 71 6c 69 74 65 2e 68 20 61  tween sqlite.h a
4020: 6e 64 20 73 71 6c 69 74 65 33 2e 68 2e 3c 2f 6c  nd sqlite3.h.</l
4030: 69 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20 65 78 63  i>.<li>Avoid exc
4040: 65 73 73 20 68 65 61 70 20 75 73 61 67 65 20 77  ess heap usage w
4050: 68 65 6e 20 63 6f 70 79 69 6e 67 20 65 78 70 72  hen copying expr
4060: 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  essions.</li>.<l
4070: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
4080: 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  g fixes.</li>.}.
4090: 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65 62 72  .chng {2005 Febr
40a0: 75 61 72 79 20 31 20 28 33 2e 31 2e 31 20 42 45  uary 1 (3.1.1 BE
40b0: 54 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d  TA)} {.<li>Autom
40c0: 61 74 69 63 20 63 61 63 68 69 6e 67 20 6f 66 20  atic caching of 
40d0: 70 72 65 70 61 72 65 64 20 73 74 61 74 65 6d 65  prepared stateme
40e0: 6e 74 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69  nts in the TCL i
40f0: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
4100: 69 3e 41 54 54 41 43 48 20 61 6e 64 20 44 45 54  i>ATTACH and DET
4110: 41 43 48 20 61 73 20 77 65 6c 6c 20 61 73 20 73  ACH as well as s
4120: 6f 6d 65 20 6f 74 68 65 72 20 6f 70 65 72 61 74  ome other operat
4130: 69 6f 6e 73 20 63 61 75 73 65 20 65 78 69 73 74  ions cause exist
4140: 69 6e 67 0a 20 20 20 20 70 72 65 70 61 72 65 64  ing.    prepared
4150: 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 65   statements to e
4160: 78 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  xpire.</li>.<li>
4170: 4e 75 6d 65 72 69 6f 75 73 20 6d 69 6e 6f 72 20  Numerious minor 
4180: 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d  bug fixes</li>.}
4190: 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a 61 6e  ..chng {2005 Jan
41a0: 75 61 72 79 20 32 31 20 28 33 2e 31 2e 30 20 41  uary 21 (3.1.0 A
41b0: 4c 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74  LPHA)} {.<li>Aut
41c0: 6f 76 61 63 75 75 6d 20 73 75 70 70 6f 72 74 20  ovacuum support 
41d0: 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  added</li>.<li>C
41e0: 55 52 52 45 4e 54 5f 54 49 4d 45 2c 20 43 55 52  URRENT_TIME, CUR
41f0: 52 45 4e 54 5f 44 41 54 45 2c 20 61 6e 64 20 43  RENT_DATE, and C
4200: 55 52 52 45 4e 54 5f 54 49 4d 45 53 54 41 4d 50  URRENT_TIMESTAMP
4210: 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e   added</li>.<li>
4220: 53 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20  Support for the 
4230: 45 58 49 53 54 53 20 63 6c 61 75 73 65 20 61 64  EXISTS clause ad
4240: 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75  ded.</li>.<li>Su
4250: 70 70 6f 72 74 20 66 6f 72 20 63 6f 72 72 65 6c  pport for correl
4260: 61 74 65 64 20 73 75 62 71 75 65 72 69 65 73 20  ated subqueries 
4270: 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  added.</li>.<li>
4280: 41 64 64 65 64 20 74 68 65 20 45 53 43 41 50 45  Added the ESCAPE
4290: 20 63 6c 61 75 73 65 20 6f 6e 20 74 68 65 20 4c   clause on the L
42a0: 49 4b 45 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c  IKE operator.</l
42b0: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
42c0: 6f 72 20 41 4c 54 45 52 20 54 41 42 4c 45 20 2e  or ALTER TABLE .
42d0: 2e 2e 20 52 45 4e 41 4d 45 20 54 41 42 4c 45 20  .. RENAME TABLE 
42e0: 2e 2e 2e 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c  ... added</li>.<
42f0: 6c 69 3e 41 55 54 4f 49 4e 43 52 45 4d 45 4e 54  li>AUTOINCREMENT
4300: 20 6b 65 79 77 6f 72 64 20 73 75 70 70 6f 72 74   keyword support
4310: 65 64 20 6f 6e 20 49 4e 54 45 47 45 52 20 50 52  ed on INTEGER PR
4320: 49 4d 41 52 59 20 4b 45 59 3c 2f 6c 69 3e 0a 3c  IMARY KEY</li>.<
4330: 6c 69 3e 4d 61 6e 79 20 53 51 4c 49 54 45 5f 4f  li>Many SQLITE_O
4340: 4d 49 54 5f 20 6d 61 63 72 6f 73 20 69 6e 73 65  MIT_ macros inse
4350: 72 74 73 20 74 6f 20 6f 6d 69 74 20 66 65 61 74  rts to omit feat
4360: 75 72 65 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d  ures at compile-
4370: 74 69 6d 65 0a 20 20 20 20 61 6e 64 20 72 65 64  time.    and red
4380: 75 63 65 20 74 68 65 20 6c 69 62 72 61 72 79 20  uce the library 
4390: 66 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69 3e 0a  footprint.</li>.
43a0: 3c 6c 69 3e 54 68 65 20 52 45 49 4e 44 45 58 20  <li>The REINDEX 
43b0: 63 6f 6d 6d 61 6e 64 20 77 61 73 20 61 64 64 65  command was adde
43c0: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  d.</li>.<li>The 
43d0: 65 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67 65 72  engine no longer
43e0: 20 63 6f 6e 73 75 6c 74 73 20 74 68 65 20 6d 61   consults the ma
43f0: 69 6e 20 74 61 62 6c 65 20 69 66 20 69 74 20 63  in table if it c
4400: 61 6e 20 67 65 74 0a 20 20 20 20 61 6c 6c 20 74  an get.    all t
4410: 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69  he information i
4420: 74 20 6e 65 65 64 73 20 66 72 6f 6d 20 61 6e 20  t needs from an 
4430: 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  index.</li>.<li>
4440: 4d 61 6e 79 20 6e 75 69 73 61 6e 63 65 20 62 75  Many nuisance bu
4450: 67 73 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  gs fixed.</li>.}
4460: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4f 63 74  ..chng {2004 Oct
4470: 6f 62 65 72 20 31 31 20 28 33 2e 30 2e 38 29 7d  ober 11 (3.0.8)}
4480: 20 7b 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f   {.<li>Add suppo
4490: 72 74 20 66 6f 72 20 44 45 46 45 52 52 45 44 2c  rt for DEFERRED,
44a0: 20 49 4d 4d 45 44 49 41 54 45 2c 20 61 6e 64 20   IMMEDIATE, and 
44b0: 45 58 43 4c 55 53 49 56 45 20 74 72 61 6e 73 61  EXCLUSIVE transa
44c0: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
44d0: 3e 41 6c 6c 6f 77 20 6e 65 77 20 75 73 65 72 2d  >Allow new user-
44e0: 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e  defined function
44f0: 73 20 74 6f 20 62 65 20 63 72 65 61 74 65 64 20  s to be created 
4500: 77 68 65 6e 20 74 68 65 72 65 20 61 72 65 0a 61  when there are.a
4510: 6c 72 65 61 64 79 20 6f 6e 65 20 6f 72 20 6d 6f  lready one or mo
4520: 72 65 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 53  re precompiled S
4530: 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 6c  QL statements.<l
4540: 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f 72 74 61  i>.<li>Fix porta
4550: 62 69 6c 69 74 79 20 70 72 6f 62 6c 65 6d 73 20  bility problems 
4560: 66 6f 72 20 4d 69 6e 67 77 2f 4d 53 59 53 2e 3c  for Mingw/MSYS.<
4570: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
4580: 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72  yte alignment pr
4590: 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20  oblem on 64-bit 
45a0: 53 70 61 72 63 20 6d 61 63 68 69 6e 65 73 2e 3c  Sparc machines.<
45b0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65  /li>.<li>Fix the
45c0: 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61   ".import" comma
45d0: 6e 64 20 6f 66 20 74 68 65 20 73 68 65 6c 6c 20  nd of the shell 
45e0: 73 6f 20 74 68 61 74 20 69 74 20 69 67 6e 6f 72  so that it ignor
45f0: 65 73 20 5c 72 0a 63 68 61 72 61 63 74 65 72 73  es \r.characters
4600: 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 6c   at the end of l
4610: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ines.</li>.<li>T
4620: 68 65 20 22 63 73 76 22 20 6d 6f 64 65 20 6f 70  he "csv" mode op
4630: 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 68 65 6c  tion in the shel
4640: 6c 20 70 75 74 73 20 73 74 72 69 6e 67 73 20 69  l puts strings i
4650: 6e 73 69 64 65 20 64 6f 75 62 6c 65 2d 71 75 6f  nside double-quo
4660: 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  tes.</li>.<li>Fi
4670: 78 20 74 79 70 6f 73 20 69 6e 20 64 6f 63 75 6d  x typos in docum
4680: 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  entation.</li>.<
4690: 6c 69 3e 43 6f 6e 76 65 72 74 20 61 72 72 61 79  li>Convert array
46a0: 20 63 6f 6e 73 74 61 6e 74 73 20 69 6e 20 74 68   constants in th
46b0: 65 20 63 6f 64 65 20 74 6f 20 68 61 76 65 20 74  e code to have t
46c0: 79 70 65 20 22 63 6f 6e 73 74 22 2e 3c 2f 6c 69  ype "const".</li
46d0: 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 63  >.<li>Numerous c
46e0: 6f 64 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ode optimization
46f0: 73 2c 20 73 70 65 63 69 61 6c 6c 79 20 6f 70 74  s, specially opt
4700: 69 6d 69 7a 61 74 69 6f 6e 73 20 64 65 73 69 67  imizations desig
4710: 6e 65 64 20 74 6f 0a 6d 61 6b 65 20 74 68 65 20  ned to.make the 
4720: 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 20 73  code footprint s
4730: 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  maller.</li>.}..
4740: 63 68 6e 67 20 7b 32 30 30 34 20 53 65 70 74 65  chng {2004 Septe
4750: 6d 62 65 72 20 31 38 20 28 33 2e 30 2e 37 29 7d  mber 18 (3.0.7)}
4760: 20 7b 0a 3c 6c 69 3e 54 68 65 20 42 54 72 65 65   {.<li>The BTree
4770: 20 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63 61 74 65   module allocate
4780: 73 20 6c 61 72 67 65 20 62 75 66 66 65 72 73 20  s large buffers 
4790: 75 73 69 6e 67 20 6d 61 6c 6c 6f 63 28 29 20 69  using malloc() i
47a0: 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20 6f 66  nstead of.    of
47b0: 66 20 6f 66 20 74 68 65 20 73 74 61 63 6b 2c 20  f of the stack, 
47c0: 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 61 79  in order to play
47d0: 20 62 65 74 74 65 72 20 6f 6e 20 6d 61 63 68 69   better on machi
47e0: 6e 65 73 20 77 69 74 68 20 6c 69 6d 69 74 65 64  nes with limited
47f0: 0a 20 20 20 20 73 74 61 63 6b 20 73 70 61 63 65  .    stack space
4800: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64  .</li>.<li>Fixed
4810: 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74   naming conflict
4820: 73 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f  s so that versio
4830: 6e 73 20 32 2e 38 20 61 6e 64 20 33 2e 30 20 63  ns 2.8 and 3.0 c
4840: 61 6e 20 62 65 0a 20 20 20 20 6c 69 6e 6b 65 64  an be.    linked
4850: 20 61 6e 64 20 75 73 65 64 20 74 6f 67 65 74 68   and used togeth
4860: 65 72 20 69 6e 20 74 68 65 20 73 61 6d 65 20 41  er in the same A
4870: 4e 53 49 2d 43 20 73 6f 75 72 63 65 20 66 69 6c  NSI-C source fil
4880: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20  e.</li>.<li>New 
4890: 69 6e 74 65 72 66 61 63 65 3a 20 73 71 6c 69 74  interface: sqlit
48a0: 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65  e3_bind_paramete
48b0: 72 5f 69 6e 64 65 78 28 29 3c 2f 6c 69 3e 0a 3c  r_index()</li>.<
48c0: 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66  li>Add support f
48d0: 6f 72 20 77 69 6c 64 63 61 72 64 20 70 61 72 61  or wildcard para
48e0: 6d 65 74 65 72 73 20 6f 66 20 74 68 65 20 66 6f  meters of the fo
48f0: 72 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69 3e 0a  rm: "?nnn"</li>.
4900: 3c 6c 69 3e 46 69 78 20 70 72 6f 62 6c 65 6d 73  <li>Fix problems
4910: 20 66 6f 75 6e 64 20 6f 6e 20 36 34 2d 62 69 74   found on 64-bit
4920: 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a 3c   systems.</li>.<
4930: 6c 69 3e 52 65 6d 6f 76 65 64 20 65 6e 63 6f 64  li>Removed encod
4940: 65 2e 63 20 66 69 6c 65 20 28 63 6f 6e 74 61 69  e.c file (contai
4950: 6e 69 6e 67 20 75 6e 75 73 65 64 20 72 6f 75 74  ning unused rout
4960: 69 6e 65 73 29 20 66 72 6f 6d 20 74 68 65 20 0a  ines) from the .
4970: 20 20 20 20 76 65 72 73 69 6f 6e 20 33 2e 30 20      version 3.0 
4980: 73 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f 6c 69  source tree.</li
4990: 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65  >.<li>The sqlite
49a0: 33 5f 74 72 61 63 65 28 29 20 63 61 6c 6c 62 61  3_trace() callba
49b0: 63 6b 73 20 6f 63 63 75 72 20 62 65 66 6f 72 65  cks occur before
49c0: 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e 74 0a   each statement.
49d0: 20 20 20 20 69 73 20 65 78 65 63 75 74 65 64 2c      is executed,
49e0: 20 6e 6f 74 20 77 68 65 6e 20 74 68 65 20 73 74   not when the st
49f0: 61 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d 70 69  atement is compi
4a00: 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  led.</li>.<li>Ma
4a10: 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 61  kefile updates a
4a20: 6e 64 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73  nd miscellaneous
4a30: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
4a40: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53  .}..chng {2004 S
4a50: 65 70 74 65 6d 62 65 72 20 30 32 20 28 33 2e 30  eptember 02 (3.0
4a60: 2e 36 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e  .6 beta)} {.<li>
4a70: 42 65 74 74 65 72 20 64 65 74 65 63 74 69 6f 6e  Better detection
4a80: 20 61 6e 64 20 68 61 6e 64 6c 69 6e 67 20 6f 66   and handling of
4a90: 20 63 6f 72 72 75 70 74 20 64 61 74 61 62 61 73   corrupt databas
4aa0: 65 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  e files.</li>.<l
4ab0: 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f 73 74  i>The sqlite3_st
4ac0: 65 70 28 29 20 69 6e 74 65 72 66 61 63 65 20 72  ep() interface r
4ad0: 65 74 75 72 6e 73 20 53 51 4c 49 54 45 5f 42 55  eturns SQLITE_BU
4ae0: 53 59 20 69 66 20 69 74 20 69 73 20 75 6e 61 62  SY if it is unab
4af0: 6c 65 0a 20 20 20 20 74 6f 20 63 6f 6d 6d 69 74  le.    to commit
4b00: 20 61 20 63 68 61 6e 67 65 20 62 65 63 61 75 73   a change becaus
4b10: 65 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c 69 3e  e of a lock</li>
4b20: 0a 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20 74 68 65  .<li>Combine the
4b30: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73   implementations
4b40: 20 6f 66 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f   of LIKE and GLO
4b50: 42 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a  B into a single.
4b60: 20 20 20 20 70 61 74 74 65 72 6e 2d 6d 61 74 63      pattern-matc
4b70: 68 69 6e 67 20 73 75 62 72 6f 75 74 69 6e 65 2e  hing subroutine.
4b80: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63 65 6c  </li>.<li>Miscel
4b90: 6c 61 6e 65 6f 75 73 20 63 6f 64 65 20 73 69 7a  laneous code siz
4ba0: 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20  e optimizations 
4bb0: 61 6e 64 20 62 75 67 20 66 69 78 65 73 3c 2f 6c  and bug fixes</l
4bc0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
4bd0: 20 41 75 67 75 73 74 20 32 39 20 28 33 2e 30 2e   August 29 (3.0.
4be0: 35 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69 3e 53  5 beta)} {.<li>S
4bf0: 75 70 70 6f 72 74 20 66 6f 72 20 22 3a 41 41 41  upport for ":AAA
4c00: 22 20 73 74 79 6c 65 20 62 69 6e 64 20 70 61 72  " style bind par
4c10: 61 6d 65 74 65 72 20 6e 61 6d 65 73 2e 3c 2f 6c  ameter names.</l
4c20: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
4c30: 20 6e 65 77 20 73 71 6c 69 74 65 33 5f 62 69 6e   new sqlite3_bin
4c40: 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61 6d 65  d_parameter_name
4c50: 28 29 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  () interface.</l
4c60: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
4c70: 6f 72 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20  or TCL variable 
4c80: 6e 61 6d 65 73 20 65 6d 62 65 64 64 65 64 20 69  names embedded i
4c90: 6e 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73  n SQL statements
4ca0: 20 69 6e 20 74 68 65 0a 20 20 20 20 54 43 4c 20   in the.    TCL 
4cb0: 62 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e 0a 3c  bindings.</li>.<
4cc0: 6c 69 3e 54 68 65 20 54 43 4c 20 62 69 6e 64 69  li>The TCL bindi
4cd0: 6e 67 73 20 74 72 61 6e 73 66 65 72 20 64 61 74  ngs transfer dat
4ce0: 61 20 77 69 74 68 6f 75 74 20 6e 65 63 65 73 73  a without necess
4cf0: 61 72 69 6c 79 20 64 6f 69 6e 67 20 61 20 63 6f  arily doing a co
4d00: 6e 76 65 72 73 69 6f 6e 0a 20 20 20 20 74 6f 20  nversion.    to 
4d10: 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c  a string.</li>.<
4d20: 6c 69 3e 54 68 65 20 64 61 74 61 62 61 73 65 20  li>The database 
4d30: 66 6f 72 20 54 45 4d 50 20 74 61 62 6c 65 73 20  for TEMP tables 
4d40: 69 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20 75  is not created u
4d50: 6e 74 69 6c 20 69 74 20 69 73 20 6e 65 65 64 65  ntil it is neede
4d60: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  d.</li>.<li>Add 
4d70: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73  the ability to s
4d80: 70 65 63 69 66 79 20 61 6e 20 61 6c 74 65 72 6e  pecify an altern
4d90: 61 74 69 76 65 20 74 65 6d 70 6f 72 61 72 79 20  ative temporary 
4da0: 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79 0a 20  file directory. 
4db0: 20 20 20 75 73 69 6e 67 20 74 68 65 20 22 73 71     using the "sq
4dc0: 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74  lite_temp_direct
4dd0: 6f 72 79 22 20 67 6c 6f 62 61 6c 20 76 61 72 69  ory" global vari
4de0: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  able.</li>.<li>A
4df0: 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70   compile-time op
4e00: 74 69 6f 6e 20 28 53 51 4c 49 54 45 5f 42 55 53  tion (SQLITE_BUS
4e10: 59 5f 52 45 53 45 52 56 45 44 5f 4c 4f 43 4b 29  Y_RESERVED_LOCK)
4e20: 20 63 61 75 73 65 73 20 74 68 65 20 62 75 73 79   causes the busy
4e30: 0a 20 20 20 20 68 61 6e 64 6c 65 72 20 74 6f 20  .    handler to 
4e40: 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74  be called when t
4e50: 68 65 72 65 20 69 73 20 63 6f 6e 74 65 6e 74 69  here is contenti
4e60: 6f 6e 20 66 6f 72 20 61 20 52 45 53 45 52 56 45  on for a RESERVE
4e70: 44 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69  D lock.</li>.<li
4e80: 3e 56 61 72 69 6f 75 73 20 62 75 67 20 66 69 78  >Various bug fix
4e90: 65 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61 74  es and optimizat
4ea0: 69 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ions</li>.}..chn
4eb0: 67 20 7b 32 30 30 34 20 41 75 67 75 73 74 20 38  g {2004 August 8
4ec0: 20 28 33 2e 30 2e 34 20 62 65 74 61 29 7d 20 7b   (3.0.4 beta)} {
4ed0: 0a 3c 6c 69 3e 43 52 45 41 54 45 20 54 41 42 4c  .<li>CREATE TABL
4ee0: 45 20 61 6e 64 20 44 52 4f 50 20 54 41 42 4c 45  E and DROP TABLE
4ef0: 20 6e 6f 77 20 77 6f 72 6b 20 63 6f 72 72 65 63   now work correc
4f00: 74 6c 79 20 61 73 20 70 72 65 70 61 72 65 64 20  tly as prepared 
4f10: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
4f20: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
4f30: 6e 20 56 41 43 55 55 4d 20 61 6e 64 20 55 4e 49  n VACUUM and UNI
4f40: 51 55 45 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69  QUE indices.</li
4f50: 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 22 2e  >.<li>Add the ".
4f60: 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e 64 20  import" command 
4f70: 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c  to the command-l
4f80: 69 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  ine shell.</li>.
4f90: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68  <li>Fix a bug th
4fa0: 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 69  at could cause i
4fb0: 6e 64 65 78 20 63 6f 72 72 75 70 74 69 6f 6e 20  ndex corruption 
4fc0: 77 68 65 6e 20 61 6e 20 61 74 74 65 6d 70 74 20  when an attempt 
4fd0: 74 6f 0a 20 20 20 20 64 65 6c 65 74 65 20 72 6f  to.    delete ro
4fe0: 77 73 20 6f 66 20 61 20 74 61 62 6c 65 20 69 73  ws of a table is
4ff0: 20 62 6c 6f 63 6b 65 64 20 62 79 20 61 20 70 65   blocked by a pe
5000: 6e 64 69 6e 67 20 71 75 65 72 79 2e 3c 2f 6c 69  nding query.</li
5010: 3e 0a 3c 6c 69 3e 4c 69 62 72 61 72 79 20 73 69  >.<li>Library si
5020: 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  ze optimizations
5030: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
5040: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
5050: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5060: 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28 32 2e  2004 July 22 (2.
5070: 38 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54 68 69  8.15)} {.<li>Thi
5080: 73 20 69 73 20 61 20 6d 61 69 6e 74 65 6e 61 6e  s is a maintenan
5090: 63 65 20 72 65 6c 65 61 73 65 20 6f 6e 6c 79 2e  ce release only.
50a0: 20 20 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20    Various minor 
50b0: 62 75 67 73 20 68 61 76 65 20 62 65 65 6e 0a 66  bugs have been.f
50c0: 69 78 65 64 20 61 6e 64 20 73 6f 6d 65 20 70 6f  ixed and some po
50d0: 72 74 61 62 69 6c 69 74 79 20 65 6e 68 61 6e 63  rtability enhanc
50e0: 65 6d 65 6e 74 73 20 61 72 65 20 61 64 64 65 64  ements are added
50f0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5100: 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28 33 2e  2004 July 22 (3.
5110: 30 2e 33 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69  0.3 beta)} {.<li
5120: 3e 54 68 65 20 73 65 63 6f 6e 64 20 62 65 74 61  >The second beta
5130: 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51 4c   release for SQL
5140: 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 3c 6c  ite 3.0.</li>.<l
5150: 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f  i>Add support fo
5160: 72 20 22 50 52 41 47 4d 41 20 70 61 67 65 5f 73  r "PRAGMA page_s
5170: 69 7a 65 22 20 74 6f 20 61 64 6a 75 73 74 20 74  ize" to adjust t
5180: 68 65 20 70 61 67 65 20 73 69 7a 65 20 6f 66 0a  he page size of.
5190: 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  the database.</l
51a0: 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 62  i>.<li>Various b
51b0: 75 67 20 66 69 78 65 73 20 61 6e 64 20 64 6f 63  ug fixes and doc
51c0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
51d0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
51e0: 20 7b 32 30 30 34 20 4a 75 6e 65 20 33 30 20 28   {2004 June 30 (
51f0: 33 2e 30 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c  3.0.2 beta)} {.<
5200: 6c 69 3e 54 68 65 20 66 69 72 73 74 20 62 65 74  li>The first bet
5210: 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53 51  a release for SQ
5220: 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a 7d  Lite 3.0.</li>.}
5230: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e  ..chng {2004 Jun
5240: 65 20 32 32 20 28 33 2e 30 2e 31 20 61 6c 70 68  e 22 (3.0.1 alph
5250: 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e 74 20  a)} {.<li><font 
5260: 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62 3e 0a  color="red"><b>.
5270: 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20 52 65      *** Alpha Re
5280: 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72 63 68  lease - Research
5290: 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55 73 65   And Testing Use
52a0: 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c 2f 66   Only ***</b></f
52b0: 6f 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66  ont>.<li>Lots of
52c0: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
52d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
52e0: 75 6e 65 20 31 38 20 28 33 2e 30 2e 30 20 61 6c  une 18 (3.0.0 al
52f0: 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e  pha)} {.<li><fon
5300: 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62  t color="red"><b
5310: 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20  >.    *** Alpha 
5320: 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72  Release - Resear
5330: 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55  ch And Testing U
5340: 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c  se Only ***</b><
5350: 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70 70 6f  /font>.<li>Suppo
5360: 72 74 20 66 6f 72 20 69 6e 74 65 72 6e 61 74 69  rt for internati
5370: 6f 6e 61 6c 69 7a 61 74 69 6f 6e 20 69 6e 63 6c  onalization incl
5380: 75 64 69 6e 67 20 55 54 46 2d 38 2c 20 55 54 46  uding UTF-8, UTF
5390: 2d 31 36 2c 20 61 6e 64 0a 20 20 20 20 75 73 65  -16, and.    use
53a0: 72 20 64 65 66 69 6e 65 64 20 63 6f 6c 6c 61 74  r defined collat
53b0: 69 6e 67 20 73 65 71 75 65 6e 63 65 73 2e 3c 2f  ing sequences.</
53c0: 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69 6c 65  li>.<li>New file
53d0: 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20   format that is 
53e0: 32 35 25 20 74 6f 20 33 35 25 20 73 6d 61 6c 6c  25% to 35% small
53f0: 65 72 20 66 6f 72 20 74 79 70 69 63 61 6c 20 75  er for typical u
5400: 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  se.</li>.<li>Imp
5410: 72 6f 76 65 64 20 63 6f 6e 63 75 72 72 65 6e 63  roved concurrenc
5420: 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74 6f 6d  y.</li>.<li>Atom
5430: 69 63 20 63 6f 6d 6d 69 74 73 20 66 6f 72 20 41  ic commits for A
5440: 54 54 41 43 48 65 64 20 64 61 74 61 62 61 73 65  TTACHed database
5450: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  s.</li>.<li>Remo
5460: 76 65 20 63 72 75 66 74 20 66 72 6f 6d 20 74 68  ve cruft from th
5470: 65 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  e APIs.</li>.<li
5480: 3e 42 4c 4f 42 20 73 75 70 70 6f 72 74 2e 3c 2f  >BLOB support.</
5490: 6c 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74 20 72  li>.<li>64-bit r
54a0: 6f 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  owids.</li>.<li>
54b0: 3c 61 20 68 72 65 66 3d 22 76 65 72 73 69 6f 6e  <a href="version
54c0: 33 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69 6e 66  3.html">More inf
54d0: 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a 7d 0a  ormation</a>..}.
54e0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65  .chng {2004 June
54f0: 20 39 20 28 32 2e 38 2e 31 34 29 7d 20 7b 0a 3c   9 (2.8.14)} {.<
5500: 6c 69 3e 46 69 78 20 74 68 65 20 6d 69 6e 28 29  li>Fix the min()
5510: 20 61 6e 64 20 6d 61 78 28 29 20 6f 70 74 69 6d   and max() optim
5520: 69 7a 65 72 20 73 6f 20 74 68 61 74 20 69 74 20  izer so that it 
5530: 77 6f 72 6b 73 20 77 68 65 6e 20 74 68 65 20 46  works when the F
5540: 52 4f 4d 0a 20 20 20 20 63 6c 61 75 73 65 20 63  ROM.    clause c
5550: 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 73 75 62  onsists of a sub
5560: 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  query.</li>.<li>
5570: 49 67 6e 6f 72 65 20 65 78 74 72 61 20 77 68 69  Ignore extra whi
5580: 74 65 73 70 61 63 65 20 61 74 20 74 68 65 20 65  tespace at the e
5590: 6e 64 20 6f 66 20 6f 66 20 22 2e 22 20 63 6f 6d  nd of of "." com
55a0: 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 73 68 65  mands in the she
55b0: 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 6e  ll.</li>.<li>Bun
55c0: 64 6c 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64  dle sqlite_encod
55d0: 65 5f 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73  e_binary() and s
55e0: 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e  qlite_decode_bin
55f0: 61 72 79 28 29 20 77 69 74 68 20 74 68 65 20 0a  ary() with the .
5600: 20 20 20 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69      library.</li
5610: 3e 0a 3c 6c 69 3e 54 68 65 20 54 45 4d 50 5f 53  >.<li>The TEMP_S
5620: 54 4f 52 45 20 61 6e 64 20 44 45 46 41 55 4c 54  TORE and DEFAULT
5630: 5f 54 45 4d 50 5f 53 54 4f 52 45 20 70 72 61 67  _TEMP_STORE prag
5640: 6d 61 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c 2f 6c  mas now work.</l
5650: 69 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63 68 61 6e  i>.<li>Code chan
5660: 67 65 73 20 74 6f 20 63 6f 6d 70 69 6c 65 20 63  ges to compile c
5670: 6c 65 61 6e 6c 79 20 75 73 69 6e 67 20 4f 70 65  leanly using Ope
5680: 6e 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a 3c 6c  nWatcom.</li>.<l
5690: 69 3e 46 69 78 20 56 44 42 45 20 73 74 61 63 6b  i>Fix VDBE stack
56a0: 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65   overflow proble
56b0: 6d 73 20 77 69 74 68 20 49 4e 53 54 45 41 44 20  ms with INSTEAD 
56c0: 4f 46 20 74 72 69 67 67 65 72 73 20 61 6e 64 0a  OF triggers and.
56d0: 20 20 20 20 4e 55 4c 4c 73 20 69 6e 20 49 4e 20      NULLs in IN 
56e0: 6f 70 65 72 61 74 6f 72 73 2e 3c 2f 6c 69 3e 0a  operators.</li>.
56f0: 3c 6c 69 3e 41 64 64 20 74 68 65 20 67 6c 6f 62  <li>Add the glob
5700: 61 6c 20 76 61 72 69 61 62 6c 65 20 73 71 6c 69  al variable sqli
5710: 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74 6f 72  te_temp_director
5720: 79 20 77 68 69 63 68 20 69 66 20 73 65 74 20 64  y which if set d
5730: 65 66 69 6e 65 73 20 74 68 65 0a 20 20 20 20 64  efines the.    d
5740: 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63  irectory in whic
5750: 68 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65  h temporary file
5760: 73 20 61 72 65 20 73 74 6f 72 65 64 2e 3c 2f 6c  s are stored.</l
5770: 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f 69 6e  i>.<li>sqlite_in
5780: 74 65 72 72 75 70 74 28 29 20 70 6c 61 79 73 20  terrupt() plays 
5790: 77 65 6c 6c 20 77 69 74 68 20 56 41 43 55 55 4d  well with VACUUM
57a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
57b0: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
57c0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
57d0: 32 30 30 34 20 4d 61 72 63 68 20 38 20 28 32 2e  2004 March 8 (2.
57e0: 38 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52 65 66  8.13)} {.<li>Ref
57f0: 61 63 74 6f 72 20 70 61 72 74 73 20 6f 66 20 74  actor parts of t
5800: 68 65 20 63 6f 64 65 20 69 6e 20 6f 72 64 65 72  he code in order
5810: 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 63 6f 64   to make the cod
5820: 65 20 66 6f 6f 74 70 72 69 6e 74 0a 20 20 20 20  e footprint.    
5830: 73 6d 61 6c 6c 65 72 2e 20 20 54 68 65 20 63 6f  smaller.  The co
5840: 64 65 20 69 73 20 6e 6f 77 20 61 6c 73 6f 20 61  de is now also a
5850: 20 6c 69 74 74 6c 65 20 62 69 74 20 66 61 73 74   little bit fast
5860: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c  er.</li>.<li>sql
5870: 69 74 65 5f 65 78 65 63 28 29 20 69 73 20 6e 6f  ite_exec() is no
5880: 77 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73  w implemented as
5890: 20 61 20 77 72 61 70 70 65 72 20 61 72 6f 75 6e   a wrapper aroun
58a0: 64 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c 65  d sqlite_compile
58b0: 28 29 0a 20 20 20 20 61 6e 64 20 73 71 6c 69 74  ().    and sqlit
58c0: 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c  e_step().</li>.<
58d0: 6c 69 3e 54 68 65 20 62 75 69 6c 74 2d 69 6e 20  li>The built-in 
58e0: 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28 29 20  min() and max() 
58f0: 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 77 20 68 6f  functions now ho
5900: 6e 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e  nor the differen
5910: 63 65 20 62 65 74 77 65 65 6e 0a 20 20 20 20 4e  ce between.    N
5920: 55 4d 45 52 49 43 20 61 6e 64 20 54 45 58 54 20  UMERIC and TEXT 
5930: 64 61 74 61 74 79 70 65 73 2e 20 20 46 6f 72 6d  datatypes.  Form
5940: 65 72 6c 79 2c 20 6d 69 6e 28 29 20 61 6e 64 20  erly, min() and 
5950: 6d 61 78 28 29 20 61 6c 77 61 79 73 20 61 73 73  max() always ass
5960: 75 6d 65 64 0a 20 20 20 20 74 68 65 69 72 20 61  umed.    their a
5970: 72 67 75 6d 65 6e 74 73 20 77 65 72 65 20 6f 66  rguments were of
5980: 20 74 79 70 65 20 4e 55 4d 45 52 49 43 2e 3c 2f   type NUMERIC.</
5990: 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48 3a 4d  li>.<li>New HH:M
59a0: 4d 3a 53 53 20 6d 6f 64 69 66 69 65 72 20 74 6f  M:SS modifier to
59b0: 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 64 61   the built-in da
59c0: 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e  te/time function
59d0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65  s.</li>.<li>Expe
59e0: 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f  rimental sqlite_
59f0: 6c 61 73 74 5f 73 74 61 74 65 6d 65 6e 74 5f 63  last_statement_c
5a00: 68 61 6e 67 65 73 28 29 20 41 50 49 20 61 64 64  hanges() API add
5a10: 65 64 2e 20 20 46 69 78 65 64 20 74 68 65 0a 20  ed.  Fixed the. 
5a20: 20 20 20 74 68 65 20 6c 61 73 74 5f 69 6e 73 65     the last_inse
5a30: 72 74 5f 72 6f 77 69 64 28 29 20 66 75 6e 63 74  rt_rowid() funct
5a40: 69 6f 6e 20 73 6f 20 74 68 61 74 20 69 74 20 77  ion so that it w
5a50: 6f 72 6b 73 20 63 6f 72 72 65 63 74 6c 79 20 77  orks correctly w
5a60: 69 74 68 0a 20 20 20 20 74 72 69 67 67 65 72 73  ith.    triggers
5a70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66  .</li>.<li>Add f
5a80: 75 6e 63 74 69 6f 6e 73 20 70 72 6f 74 6f 74 79  unctions prototy
5a90: 70 65 73 20 66 6f 72 20 74 68 65 20 64 61 74 61  pes for the data
5aa0: 62 61 73 65 20 65 6e 63 72 79 70 74 69 6f 6e 20  base encryption 
5ab0: 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  API.</li>.<li>Fi
5ac0: 78 20 73 65 76 65 72 61 6c 20 6e 75 69 73 61 6e  x several nuisan
5ad0: 63 65 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 7d 0a  ce bugs.</li>.}.
5ae0: 0a 63 68 6e 67 20 7b 32 30 30 34 20 46 65 62 72  .chng {2004 Febr
5af0: 75 61 72 79 20 38 20 28 32 2e 38 2e 31 32 29 7d  uary 8 (2.8.12)}
5b00: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
5b10: 20 74 68 61 74 20 77 69 6c 6c 20 6d 69 67 68 74   that will might
5b20: 20 63 6f 72 72 75 70 74 20 74 68 65 20 72 6f 6c   corrupt the rol
5b30: 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 20 69 66  lback journal if
5b40: 20 61 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65   a power failure
5b50: 0a 20 20 20 20 6f 72 20 65 78 74 65 72 6e 61 6c  .    or external
5b60: 20 70 72 6f 67 72 61 6d 20 68 61 6c 74 20 6f 63   program halt oc
5b70: 63 75 72 73 20 69 6e 20 74 68 65 20 6d 69 64 64  curs in the midd
5b80: 6c 65 20 6f 66 20 61 20 43 4f 4d 4d 49 54 2e 20  le of a COMMIT. 
5b90: 20 54 68 65 20 63 6f 72 72 75 70 74 0a 20 20 20   The corrupt.   
5ba0: 20 6a 6f 75 72 6e 61 6c 20 63 61 6e 20 6c 65 61   journal can lea
5bb0: 64 20 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f  d to database co
5bc0: 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20 69 74  rruption when it
5bd0: 20 69 73 20 72 6f 6c 6c 65 64 20 62 61 63 6b 2e   is rolled back.
5be0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75 63 65  </li>.<li>Reduce
5bf0: 20 74 68 65 20 73 69 7a 65 20 61 6e 64 20 69 6e   the size and in
5c00: 63 72 65 61 73 65 20 74 68 65 20 73 70 65 65 64  crease the speed
5c10: 20 6f 66 20 76 61 72 69 6f 75 73 20 6d 6f 64 75   of various modu
5c20: 6c 65 73 2c 20 65 73 70 65 63 69 61 6c 6c 79 0a  les, especially.
5c30: 20 20 20 20 74 68 65 20 76 69 72 74 75 61 6c 20      the virtual 
5c40: 6d 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c  machine.</li>.<l
5c50: 69 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b 65 78 70  i>Allow "&lt;exp
5c60: 72 26 67 74 3b 20 49 4e 20 26 6c 74 3b 74 61 62  r&gt; IN &lt;tab
5c70: 6c 65 26 67 74 3b 22 20 61 73 20 61 20 73 68 6f  le&gt;" as a sho
5c80: 72 74 68 61 6e 64 20 66 6f 72 0a 20 20 20 20 22  rthand for.    "
5c90: 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49 4e 20  &lt;expr&gt; IN 
5ca0: 28 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 26  (SELECT * FROM &
5cb0: 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 2e 3c 2f  lt;table&gt;".</
5cc0: 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69 7a 61  li>.<li>Optimiza
5cd0: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 71 6c  tions to the sql
5ce0: 69 74 65 5f 6d 70 72 69 6e 74 66 28 29 20 72 6f  ite_mprintf() ro
5cf0: 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  utine.</li>.<li>
5d00: 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 4d 49  Make sure the MI
5d10: 4e 28 29 20 61 6e 64 20 4d 41 58 28 29 20 6f 70  N() and MAX() op
5d20: 74 69 6d 69 7a 61 74 69 6f 6e 73 20 77 6f 72 6b  timizations work
5d30: 20 77 69 74 68 69 6e 20 73 75 62 71 75 65 72 69   within subqueri
5d40: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
5d50: 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20 31   {2004 January 1
5d60: 34 20 28 32 2e 38 2e 31 31 29 7d 20 7b 0a 3c 6c  4 (2.8.11)} {.<l
5d70: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 68  i>Fix a bug in h
5d80: 6f 77 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74  ow the IN operat
5d90: 6f 72 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73  or handles NULLs
5da0: 20 69 6e 20 73 75 62 71 75 65 72 69 65 73 2e 20   in subqueries. 
5db0: 20 54 68 65 20 62 75 67 0a 20 20 20 20 77 61 73   The bug.    was
5dc0: 20 69 6e 74 72 6f 64 75 63 65 64 20 62 79 20 74   introduced by t
5dd0: 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 6c 65  he previous rele
5de0: 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ase.</li>.}..chn
5df0: 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79 20  g {2004 January 
5e00: 31 33 20 28 32 2e 38 2e 31 30 29 7d 20 7b 0a 3c  13 (2.8.10)} {.<
5e10: 6c 69 3e 46 69 78 20 61 20 70 6f 74 65 6e 74 69  li>Fix a potenti
5e20: 61 6c 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  al database corr
5e30: 75 70 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 6f  uption problem o
5e40: 6e 20 55 6e 69 78 20 63 61 75 73 65 64 20 62 79  n Unix caused by
5e50: 20 74 68 65 20 66 61 63 74 0a 20 20 20 20 74 68   the fact.    th
5e60: 61 74 20 61 6c 6c 20 70 6f 73 69 78 20 61 64 76  at all posix adv
5e70: 69 73 6f 72 79 20 6c 6f 63 6b 73 20 61 72 65 20  isory locks are 
5e80: 63 6c 65 61 72 65 64 20 77 68 65 6e 65 76 65 72  cleared whenever
5e90: 20 79 6f 75 20 63 6c 6f 73 65 28 29 20 61 20 66   you close() a f
5ea0: 69 6c 65 2e 0a 20 20 20 20 54 68 65 20 77 6f 72  ile..    The wor
5eb0: 6b 20 61 72 6f 75 6e 64 20 69 74 20 74 6f 20 65  k around it to e
5ec0: 6d 62 61 72 67 6f 20 61 6c 6c 20 63 6c 6f 73 65  mbargo all close
5ed0: 28 29 20 63 61 6c 6c 73 20 77 68 69 6c 65 20 6c  () calls while l
5ee0: 6f 63 6b 73 20 61 72 65 20 0a 20 20 20 20 6f 75  ocks are .    ou
5ef0: 74 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69 3e 0a  tstanding.</li>.
5f00: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
5f10: 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 6f 6e 20  enhancements on 
5f20: 73 6f 6d 65 20 63 6f 72 6e 65 72 20 63 61 73 65  some corner case
5f30: 73 20 6f 66 20 43 4f 55 4e 54 28 2a 29 2e 3c 2f  s of COUNT(*).</
5f40: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72  li>.<li>Make sur
5f50: 65 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72 79 20  e the in-memory 
5f60: 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65  backend response
5f70: 20 73 61 6e 65 6c 79 20 69 66 20 6d 61 6c 6c 6f   sanely if mallo
5f80: 63 28 29 20 66 61 69 6c 73 2e 3c 2f 6c 69 3e 0a  c() fails.</li>.
5f90: 3c 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c 69 74 65  <li>Allow sqlite
5fa0: 5f 65 78 65 63 28 29 20 74 6f 20 62 65 20 63 61  _exec() to be ca
5fb0: 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74 68 69 6e  lled from within
5fc0: 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 53 51   user-defined SQ
5fd0: 4c 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e  L.    functions.
5fe0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
5ff0: 65 64 20 61 63 63 75 72 61 63 79 20 6f 66 20 66  ed accuracy of f
6000: 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f  loating-point co
6010: 6e 76 65 72 73 69 6f 6e 73 20 75 73 69 6e 67 20  nversions using 
6020: 22 6c 6f 6e 67 20 64 6f 75 62 6c 65 22 2e 3c 2f  "long double".</
6030: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65  li>.<li>Bug fixe
6040: 73 20 69 6e 20 74 68 65 20 65 78 70 65 72 69 6d  s in the experim
6050: 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20  ental date/time 
6060: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
6070: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 61  }..chng {2004 Ja
6080: 6e 75 61 72 79 20 35 20 28 32 2e 38 2e 39 29 7d  nuary 5 (2.8.9)}
6090: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 33 32 2d   {.<li>Fix a 32-
60a0: 62 69 74 20 69 6e 74 65 67 65 72 20 6f 76 65 72  bit integer over
60b0: 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 20 74 68 61  flow problem tha
60c0: 74 20 63 6f 75 6c 64 20 72 65 73 75 6c 74 20 69  t could result i
60d0: 6e 20 63 6f 72 72 75 70 74 0a 20 20 20 20 69 6e  n corrupt.    in
60e0: 64 69 63 65 73 20 69 6e 20 61 20 64 61 74 61 62  dices in a datab
60f0: 61 73 65 20 69 66 20 6c 61 72 67 65 20 6e 65 67  ase if large neg
6100: 61 74 69 76 65 20 6e 75 6d 62 65 72 73 20 28 6c  ative numbers (l
6110: 65 73 73 20 74 68 61 6e 20 2d 32 31 34 37 34 38  ess than -214748
6120: 33 36 34 38 29 0a 20 20 20 20 77 65 72 65 20 69  3648).    were i
6130: 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 61 20 69  nserted into a i
6140: 6e 64 65 78 65 64 20 6e 75 6d 65 72 69 63 20 63  ndexed numeric c
6150: 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  olumn.</li>.<li>
6160: 46 69 78 20 61 20 6c 6f 63 6b 69 6e 67 20 70 72  Fix a locking pr
6170: 6f 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69 2d 74  oblem on multi-t
6180: 68 72 65 61 64 65 64 20 4c 69 6e 75 78 20 69 6d  hreaded Linux im
6190: 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e 3c 2f  plementations.</
61a0: 6c 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73 20 75  li>.<li>Always u
61b0: 73 65 20 22 2e 22 20 69 6e 73 74 65 61 64 20 6f  se "." instead o
61c0: 66 20 22 2c 22 20 61 73 20 74 68 65 20 64 65 63  f "," as the dec
61d0: 69 6d 61 6c 20 70 6f 69 6e 74 20 65 76 65 6e 20  imal point even 
61e0: 69 66 20 74 68 65 20 6c 6f 63 61 6c 65 0a 20 20  if the locale.  
61f0: 20 20 72 65 71 75 65 73 74 73 20 22 2c 22 2e 3c    requests ",".<
6200: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 55  /li>.<li>Added U
6210: 54 43 20 74 6f 20 6c 6f 63 61 6c 74 69 6d 65 20  TC to localtime 
6220: 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 6f 20 74  conversions to t
6230: 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20  he experimental 
6240: 64 61 74 65 2f 74 69 6d 65 0a 20 20 20 20 66 75  date/time.    fu
6250: 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  nctions.</li>.<l
6260: 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 20 64  i>Bug fixes to d
6270: 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f  ate/time functio
6280: 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ns.</li>.}..chng
6290: 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20   {2003 December 
62a0: 31 37 20 28 32 2e 38 2e 38 29 7d 20 7b 0a 3c 6c  17 (2.8.8)} {.<l
62b0: 69 3e 46 69 78 20 61 20 63 72 69 74 69 63 61 6c  i>Fix a critical
62c0: 20 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20   bug introduced 
62d0: 69 6e 74 6f 20 32 2e 38 2e 30 20 77 68 69 63 68  into 2.8.0 which
62e0: 20 63 6f 75 6c 64 20 63 61 75 73 65 0a 20 20 20   could cause.   
62f0: 20 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70   database corrup
6300: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  tion.</li>.<li>F
6310: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74  ix a problem wit
6320: 68 20 33 2d 77 61 79 20 6a 6f 69 6e 73 20 74 68  h 3-way joins th
6330: 61 74 20 64 6f 20 6e 6f 74 20 75 73 65 20 69 6e  at do not use in
6340: 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  dices</li>.<li>T
6350: 68 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e  he VACUUM comman
6360: 64 20 6e 6f 77 20 77 6f 72 6b 73 20 77 69 74 68  d now works with
6370: 20 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62 61 63   the non-callbac
6380: 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  k API</li>.<li>I
6390: 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74  mprovements to t
63a0: 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74 65 67  he "PRAGMA integ
63b0: 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f 6d 6d  rity_check" comm
63c0: 61 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  and</li>.}..chng
63d0: 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65 72 20   {2003 December 
63e0: 34 20 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c 6c 69  4 (2.8.7)} {.<li
63f0: 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e  >Added experimen
6400: 74 61 6c 20 73 71 6c 69 74 65 5f 62 69 6e 64 28  tal sqlite_bind(
6410: 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 72 65 73  ) and sqlite_res
6420: 65 74 28 29 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a  et() APIs.</li>.
6430: 3c 6c 69 3e 49 66 20 74 68 65 20 6e 61 6d 65 20  <li>If the name 
6440: 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20  of the database 
6450: 69 73 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69  is an empty stri
6460: 6e 67 2c 20 6f 70 65 6e 20 61 20 6e 65 77 20 64  ng, open a new d
6470: 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e 20 61  atabase.    in a
6480: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20   temporary file 
6490: 74 68 61 74 20 69 73 20 61 75 74 6f 6d 61 74 69  that is automati
64a0: 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 77 68  cally deleted wh
64b0: 65 6e 20 74 68 65 20 64 61 74 61 62 61 73 65 0a  en the database.
64c0: 20 20 20 20 69 73 20 63 6c 6f 73 65 64 2e 3c 2f      is closed.</
64d0: 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61  li>.<li>Performa
64e0: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
64f0: 20 69 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d 67 65   in the lemon-ge
6500: 6e 65 72 61 74 65 64 20 70 61 72 73 65 72 3c 2f  nerated parser</
6510: 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69 6d 65  li>.<li>Experime
6520: 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65 20 66  ntal date/time f
6530: 75 6e 63 74 69 6f 6e 73 20 72 65 76 69 73 65 64  unctions revised
6540: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73 61 6c  .</li>.<li>Disal
6550: 6c 6f 77 20 74 65 6d 70 6f 72 61 72 79 20 69 6e  low temporary in
6560: 64 69 63 65 73 20 6f 6e 20 70 65 72 6d 61 6e 65  dices on permane
6570: 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a  nt tables.</li>.
6580: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
6590: 6e 20 75 70 64 61 74 65 73 20 61 6e 64 20 74 79  n updates and ty
65a0: 70 6f 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c  po fixes</li>.<l
65b0: 69 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d 65  i>Added experime
65c0: 6e 74 61 6c 20 73 71 6c 69 74 65 5f 70 72 6f 67  ntal sqlite_prog
65d0: 72 65 73 73 5f 68 61 6e 64 6c 65 72 28 29 20 63  ress_handler() c
65e0: 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c 69 3e  allback API</li>
65f0: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73 75 70  .<li>Removed sup
6600: 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 72 61  port for the Ora
6610: 63 6c 65 38 20 6f 75 74 65 72 20 6a 6f 69 6e 20  cle8 outer join 
6620: 73 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69  syntax.</li>.<li
6630: 3e 41 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e 64 20  >Allow GLOB and 
6640: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73 20 74  LIKE operators t
6650: 6f 20 77 6f 72 6b 20 61 73 20 66 75 6e 63 74 69  o work as functi
6660: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  ons.</li>.<li>Ot
6670: 68 65 72 20 6d 69 6e 6f 72 20 64 6f 63 75 6d 65  her minor docume
6680: 6e 74 61 74 69 6f 6e 20 61 6e 64 20 6d 61 6b 65  ntation and make
6690: 66 69 6c 65 20 63 68 61 6e 67 65 73 20 61 6e 64  file changes and
66a0: 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e   bug fixes.</li>
66b0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 41  .}..chng {2003 A
66c0: 75 67 75 73 74 20 32 31 20 28 32 2e 38 2e 36 29  ugust 21 (2.8.6)
66d0: 7d 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20 74 68  } {.<li>Moved th
66e0: 65 20 43 56 53 20 72 65 70 6f 73 69 74 6f 72 79  e CVS repository
66f0: 20 74 6f 20 77 77 77 2e 73 71 6c 69 74 65 2e 6f   to www.sqlite.o
6700: 72 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  rg</li>.<li>Upda
6710: 74 65 20 74 68 65 20 4e 55 4c 4c 2d 68 61 6e 64  te the NULL-hand
6720: 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69  ling documentati
6730: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70  on.</li>.<li>Exp
6740: 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74  erimental date/t
6750: 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 64  ime functions ad
6760: 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ded.</li>.<li>Bu
6770: 67 20 66 69 78 3a 20 63 6f 72 72 65 63 74 6c 79  g fix: correctly
6780: 20 65 76 61 6c 75 61 74 65 20 61 20 76 69 65 77   evaluate a view
6790: 20 6f 66 20 61 20 76 69 65 77 20 77 69 74 68 6f   of a view witho
67a0: 75 74 20 73 65 67 66 61 75 6c 74 69 6e 67 2e 3c  ut segfaulting.<
67b0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
67c0: 3a 20 70 72 65 76 65 6e 74 20 64 61 74 61 62 61  : prevent databa
67d0: 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69 66  se corruption if
67e0: 20 79 6f 75 20 64 72 6f 70 70 65 64 20 61 0a 20   you dropped a. 
67f0: 20 20 20 74 72 69 67 67 65 72 20 74 68 61 74 20     trigger that 
6800: 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d  had the same nam
6810: 65 20 61 73 20 61 20 74 61 62 6c 65 2e 3c 2f 6c  e as a table.</l
6820: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
6830: 61 6c 6c 6f 77 20 61 20 56 41 43 55 55 4d 20 28  allow a VACUUM (
6840: 77 69 74 68 6f 75 74 20 73 65 67 66 61 75 6c 74  without segfault
6850: 69 6e 67 29 20 6f 6e 20 61 6e 20 65 6d 70 74 79  ing) on an empty
6860: 0a 20 20 20 20 64 61 74 61 62 61 73 65 20 61 66  .    database af
6870: 74 65 72 20 73 65 74 74 69 6e 67 20 74 68 65 20  ter setting the 
6880: 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c  EMPTY_RESULT_CAL
6890: 4c 42 41 43 4b 53 20 70 72 61 67 6d 61 2e 3c 2f  LBACKS pragma.</
68a0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
68b0: 20 69 66 20 61 6e 20 69 6e 74 65 67 65 72 20 76   if an integer v
68c0: 61 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20 66 69  alue will not fi
68d0: 74 20 69 6e 20 61 20 33 32 2d 62 69 74 20 69 6e  t in a 32-bit in
68e0: 74 2c 20 73 74 6f 72 65 20 69 74 20 69 6e 0a 20  t, store it in. 
68f0: 20 20 20 61 20 64 6f 75 62 6c 65 20 69 6e 73 74     a double inst
6900: 65 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  ead.</li>.<li>Bu
6910: 67 20 66 69 78 3a 20 4d 61 6b 65 20 73 75 72 65  g fix: Make sure
6920: 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c   the journal fil
6930: 65 20 64 69 72 65 63 74 6f 72 79 20 65 6e 74 72  e directory entr
6940: 79 20 69 73 20 63 6f 6d 6d 69 74 74 65 64 20 74  y is committed t
6950: 6f 20 64 69 73 6b 0a 20 20 20 20 62 65 66 6f 72  o disk.    befor
6960: 65 20 77 72 69 74 69 6e 67 20 74 68 65 20 64 61  e writing the da
6970: 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f 6c 69  tabase file.</li
6980: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
6990: 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e 35 29 7d  July 22 (2.8.5)}
69a0: 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49 4d 49   {.<li>Make LIMI
69b0: 54 20 77 6f 72 6b 20 6f 6e 20 61 20 63 6f 6d 70  T work on a comp
69c0: 6f 75 6e 64 20 53 45 4c 45 43 54 20 73 74 61 74  ound SELECT stat
69d0: 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ement.</li>.<li>
69e0: 4c 49 4d 49 54 20 30 20 6e 6f 77 20 73 68 6f 77  LIMIT 0 now show
69f0: 73 20 6e 6f 20 72 6f 77 73 2e 20 20 55 73 65 20  s no rows.  Use 
6a00: 4c 49 4d 49 54 20 2d 31 20 74 6f 20 73 65 65 20  LIMIT -1 to see 
6a10: 61 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e 0a 3c  all rows.</li>.<
6a20: 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61 6e  li>Correctly han
6a30: 64 6c 65 20 63 6f 6d 70 61 72 69 73 6f 6e 73 20  dle comparisons 
6a40: 62 65 74 77 65 65 6e 20 61 6e 20 49 4e 54 45 47  between an INTEG
6a50: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61  ER PRIMARY KEY a
6a60: 6e 64 0a 20 20 20 20 61 20 66 6c 6f 61 74 69 6e  nd.    a floatin
6a70: 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 2e 3c  g point number.<
6a80: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73 65 76  /li>.<li>Fix sev
6a90: 65 72 61 6c 20 69 6d 70 6f 72 74 61 6e 74 20 62  eral important b
6aa0: 75 67 73 20 69 6e 20 74 68 65 20 6e 65 77 20 41  ugs in the new A
6ab0: 54 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48  TTACH and DETACH
6ac0: 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a   commands.</li>.
6ad0: 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20  <li>Updated the 
6ae0: 3c 61 20 68 72 65 66 3d 22 6e 75 6c 6c 73 2e 68  <a href="nulls.h
6af0: 74 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64 6c 69  tml">NULL-handli
6b00: 6e 67 20 64 6f 63 75 6d 65 6e 74 3c 2f 61 3e 2e  ng document</a>.
6b10: 3c 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c 6f 77  </li> .<li>Allow
6b20: 20 4e 55 4c 4c 20 61 72 67 75 6d 65 6e 74 73 20   NULL arguments 
6b30: 69 6e 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69 6c  in sqlite_compil
6b40: 65 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 73  e() and sqlite_s
6b50: 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tep().</li>.<li>
6b60: 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67 20 66  Many minor bug f
6b70: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
6b80: 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 32 39 20  g {2003 June 29 
6b90: 28 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 45  (2.8.4)} {.<li>E
6ba0: 6e 68 61 6e 63 65 64 20 74 68 65 20 22 50 52 41  nhanced the "PRA
6bb0: 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f 63 68  GMA integrity_ch
6bc0: 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74 6f 20  eck" command to 
6bd0: 76 65 72 69 66 79 20 69 6e 64 69 63 65 73 2e 3c  verify indices.<
6be0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
6bf0: 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 68 6f 6f  uthorization hoo
6c00: 6b 73 20 66 6f 72 20 74 68 65 20 6e 65 77 20 41  ks for the new A
6c10: 54 54 41 43 48 20 61 6e 64 20 44 45 54 41 43 48  TTACH and DETACH
6c20: 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69 3e 0a   commands.</li>.
6c30: 3c 6c 69 3e 4d 61 6e 79 20 64 6f 63 75 6d 65 6e  <li>Many documen
6c40: 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c 2f  tation updates</
6c50: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d 69 6e  li>.<li>Many min
6c60: 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69  or bug fixes</li
6c70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
6c80: 4a 75 6e 65 20 34 20 28 32 2e 38 2e 33 29 7d 20  June 4 (2.8.3)} 
6c90: 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f 62  {.<li>Fix a prob
6ca0: 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20 63 6f  lem that will co
6cb0: 72 72 75 70 74 20 74 68 65 20 69 6e 64 69 63 65  rrupt the indice
6cc0: 73 20 6f 6e 20 61 20 74 61 62 6c 65 20 69 66 20  s on a table if 
6cd0: 79 6f 75 0a 20 20 20 20 64 6f 20 61 6e 20 49 4e  you.    do an IN
6ce0: 53 45 52 54 20 4f 52 20 52 45 50 4c 41 43 45 20  SERT OR REPLACE 
6cf0: 6f 72 20 61 6e 20 55 50 44 41 54 45 20 4f 52 20  or an UPDATE OR 
6d00: 52 45 50 4c 41 43 45 20 6f 6e 20 61 20 74 61 62  REPLACE on a tab
6d10: 6c 65 20 74 68 61 74 0a 20 20 20 20 63 6f 6e 74  le that.    cont
6d20: 61 69 6e 73 20 61 6e 20 49 4e 54 45 47 45 52 20  ains an INTEGER 
6d30: 50 52 49 4d 41 52 59 20 4b 45 59 20 70 6c 75 73  PRIMARY KEY plus
6d40: 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 6e 64   one or more ind
6d50: 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ices.</li>.<li>F
6d60: 69 78 20 61 20 62 75 67 20 69 6e 20 77 69 6e 64  ix a bug in wind
6d70: 6f 77 73 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65  ows locking code
6d80: 20 73 6f 20 74 68 61 74 20 6c 6f 63 6b 73 20 77   so that locks w
6d90: 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 0a 20 20  ork correctly.  
6da0: 20 20 77 68 65 6e 20 73 69 6d 75 6c 74 61 6e 65    when simultane
6db0: 6f 75 73 6c 79 20 61 63 63 65 73 73 65 64 20 62  ously accessed b
6dc0: 79 20 57 69 6e 39 35 20 61 6e 64 20 57 69 6e 4e  y Win95 and WinN
6dd0: 54 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e 0a  T systems.</li>.
6de0: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
6df0: 69 74 79 20 66 6f 72 20 49 4e 53 45 52 54 20 61  ity for INSERT a
6e00: 6e 64 20 55 50 44 41 54 45 20 73 74 61 74 65 6d  nd UPDATE statem
6e10: 65 6e 74 73 20 74 6f 20 72 65 66 65 72 20 74 6f  ents to refer to
6e20: 20 74 68 65 0a 20 20 20 20 22 72 6f 77 69 64 22   the.    "rowid"
6e30: 20 28 6f 72 20 22 5f 72 6f 77 69 64 5f 22 20 6f   (or "_rowid_" o
6e40: 72 20 22 6f 69 64 22 29 20 63 6f 6c 75 6d 6e 73  r "oid") columns
6e50: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72  .</li>.<li>Other
6e60: 20 69 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66   important bug f
6e70: 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ixes</li>.}..chn
6e80: 67 20 7b 32 30 30 33 20 4d 61 79 20 31 37 20 28  g {2003 May 17 (
6e90: 32 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.8.2)} {.<li>Fi
6ea0: 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74  x a problem that
6eb0: 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20 74 68   will corrupt th
6ec0: 65 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20  e database file 
6ed0: 69 66 20 79 6f 75 20 64 72 6f 70 20 61 0a 20 20  if you drop a.  
6ee0: 20 20 74 61 62 6c 65 20 66 72 6f 6d 20 74 68 65    table from the
6ef0: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 74   main database t
6f00: 68 61 74 20 68 61 73 20 61 20 54 45 4d 50 20 69  hat has a TEMP i
6f10: 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ndex.</li>.}..ch
6f20: 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31 36 20  ng {2003 May 16 
6f30: 28 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52  (2.8.1)} {.<li>R
6f40: 65 61 63 74 69 76 61 74 65 64 20 74 68 65 20 56  eactivated the V
6f50: 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 74 68  ACUUM command th
6f60: 61 74 20 72 65 63 6c 61 69 6d 73 20 75 6e 75 73  at reclaims unus
6f70: 65 64 20 64 69 73 6b 20 73 70 61 63 65 20 69 6e  ed disk space in
6f80: 20 0a 20 20 20 20 61 20 64 61 74 61 62 61 73 65   .    a database
6f90: 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   file.</li>.<li>
6fa0: 41 64 64 65 64 20 74 68 65 20 41 54 54 41 43 48  Added the ATTACH
6fb0: 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f 6d 6d   and DETACH comm
6fc0: 61 6e 64 73 20 74 6f 20 61 6c 6c 6f 77 20 69 6e  ands to allow in
6fd0: 74 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 6d  teracting with m
6fe0: 75 6c 74 69 70 6c 65 0a 20 20 20 20 64 61 74 61  ultiple.    data
6ff0: 62 61 73 65 20 66 69 6c 65 73 20 61 74 20 74 68  base files at th
7000: 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f 6c 69  e same time.</li
7010: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
7020: 6f 72 74 20 66 6f 72 20 54 45 4d 50 20 74 72 69  ort for TEMP tri
7030: 67 67 65 72 73 20 61 6e 64 20 69 6e 64 69 63 65  ggers and indice
7040: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
7050: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 69 6e  d support for in
7060: 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61 73 65  -memory database
7070: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f  s.</li>.<li>Remo
7080: 76 65 64 20 74 68 65 20 65 78 70 65 72 69 6d 65  ved the experime
7090: 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6f 70 65 6e  ntal sqlite_open
70a0: 5f 61 75 78 5f 66 69 6c 65 28 29 2e 20 20 49 74  _aux_file().  It
70b0: 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20 20  s function is.  
70c0: 20 20 73 75 62 73 75 6d 65 64 20 69 6e 20 74 68    subsumed in th
70d0: 65 20 6e 65 77 20 41 54 54 41 43 48 20 63 6f 6d  e new ATTACH com
70e0: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  mand.</li>.<li>T
70f0: 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 72  he precedence or
7100: 64 65 72 20 66 6f 72 20 4f 4e 20 43 4f 4e 46 4c  der for ON CONFL
7110: 49 43 54 20 63 6c 61 75 73 65 73 20 77 61 73 20  ICT clauses was 
7120: 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61 74 0a  changed so that.
7130: 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43 54 20      ON CONFLICT 
7140: 63 6c 61 75 73 65 73 20 6f 6e 20 42 45 47 49 4e  clauses on BEGIN
7150: 20 73 74 61 74 65 6d 65 6e 74 73 20 68 61 76 65   statements have
7160: 20 61 20 68 69 67 68 65 72 20 70 72 65 63 65 64   a higher preced
7170: 65 6e 63 65 20 74 68 61 6e 0a 20 20 20 20 4f 4e  ence than.    ON
7180: 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65   CONFLICT clause
7190: 73 20 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73  s on constraints
71a0: 2e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79  ..<li>Many, many
71b0: 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 63   bug fixes and c
71c0: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 65 6e 68  ompatibility enh
71d0: 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  ancements.</li>.
71e0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 46 65  }..chng {2003 Fe
71f0: 62 20 31 36 20 28 32 2e 38 2e 30 29 7d 20 7b 0a  b 16 (2.8.0)} {.
7200: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
7210: 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 66 6f   journal file fo
7220: 72 6d 61 74 20 74 6f 20 6d 61 6b 65 20 69 74 20  rmat to make it 
7230: 6d 6f 72 65 20 72 65 73 69 73 74 61 6e 74 20 74  more resistant t
7240: 6f 20 63 6f 72 72 75 70 74 69 6f 6e 0a 20 20 20  o corruption.   
7250: 20 74 68 61 74 20 63 61 6e 20 6f 63 63 75 72 20   that can occur 
7260: 61 66 74 65 72 20 61 6e 20 4f 53 20 63 72 61 73  after an OS cras
7270: 68 20 6f 72 20 70 6f 77 65 72 20 66 61 69 6c 75  h or power failu
7280: 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  re.</li>.<li>Add
7290: 65 64 20 61 20 6e 65 77 20 43 2f 43 2b 2b 20 41  ed a new C/C++ A
72a0: 50 49 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74  PI that does not
72b0: 20 75 73 65 20 63 61 6c 6c 62 61 63 6b 20 66 6f   use callback fo
72c0: 72 20 72 65 74 75 72 6e 69 6e 67 20 64 61 74 61  r returning data
72d0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
72e0: 32 30 30 33 20 4a 61 6e 20 32 35 20 28 32 2e 37  2003 Jan 25 (2.7
72f0: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72 66 6f  .6)} {.<li>Perfo
7300: 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65 6d 65  rmance improveme
7310: 6e 74 73 2e 20 20 54 68 65 20 6c 69 62 72 61 72  nts.  The librar
7320: 79 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 66 61  y is now much fa
7330: 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ster.</li>.<li>A
7340: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
7350: 74 65 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65  te_set_authorize
7360: 72 28 29 3c 2f 62 3e 20 41 50 49 2e 20 20 46 6f  r()</b> API.  Fo
7370: 72 6d 61 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69  rmal documentati
7380: 6f 6e 20 68 61 73 0a 20 20 20 20 6e 6f 74 20 62  on has.    not b
7390: 65 65 6e 20 77 72 69 74 74 65 6e 20 2d 20 73 65  een written - se
73a0: 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64  e the source cod
73b0: 65 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72 20 69  e comments for i
73c0: 6e 73 74 72 75 63 74 69 6f 6e 73 20 6f 6e 0a 20  nstructions on. 
73d0: 20 20 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68     how to use th
73e0: 69 73 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69  is function.</li
73f0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
7400: 69 6e 20 74 68 65 20 47 4c 4f 42 20 6f 70 65 72  in the GLOB oper
7410: 61 74 6f 72 20 74 68 61 74 20 77 61 73 20 70 72  ator that was pr
7420: 65 76 65 6e 74 69 6e 67 20 69 74 20 66 72 6f 6d  eventing it from
7430: 20 77 6f 72 6b 69 6e 67 0a 20 20 20 20 77 69 74   working.    wit
7440: 68 20 75 70 70 65 72 2d 63 61 73 65 20 6c 65 74  h upper-case let
7450: 74 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56  ters.</li>.<li>V
7460: 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62 75 67  arious minor bug
7470: 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   fixes.</li>.}..
7480: 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20 32  chng {2002 Dec 2
7490: 37 20 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c 6c 69  7 (2.7.5)} {.<li
74a0: 3e 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61  >Fix an uninitia
74b0: 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69  lized variable i
74c0: 6e 20 70 61 67 65 72 2e 63 20 77 68 69 63 68 20  n pager.c which 
74d0: 63 6f 75 6c 64 20 28 77 69 74 68 20 61 20 70 72  could (with a pr
74e0: 6f 62 61 62 69 6c 69 74 79 0a 20 20 20 20 6f 66  obability.    of
74f0: 20 61 62 6f 75 74 20 31 20 69 6e 20 34 20 62 69   about 1 in 4 bi
7500: 6c 6c 69 6f 6e 29 20 72 65 73 75 6c 74 20 69 6e  llion) result in
7510: 20 61 20 63 6f 72 72 75 70 74 65 64 20 64 61 74   a corrupted dat
7520: 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  abase.</li>.}..c
7530: 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20 31 37  hng {2002 Dec 17
7540: 20 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.4)} {.<li>
7550: 44 61 74 61 62 61 73 65 20 66 69 6c 65 73 20 63  Database files c
7560: 61 6e 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20 62  an now grow to b
7570: 65 20 75 70 20 74 6f 20 32 5e 34 31 20 62 79 74  e up to 2^41 byt
7580: 65 73 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69 6d  es.  The old lim
7590: 69 74 0a 20 20 20 20 77 61 73 20 32 5e 33 31 20  it.    was 2^31 
75a0: 62 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  bytes.</li>.<li>
75b0: 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 77 69  The optimizer wi
75c0: 6c 6c 20 6e 6f 77 20 73 63 61 6e 20 74 61 62 6c  ll now scan tabl
75d0: 65 73 20 69 6e 20 74 68 65 20 72 65 76 65 72 73  es in the revers
75e0: 65 20 69 66 20 64 6f 69 6e 67 20 73 6f 20 77 69  e if doing so wi
75f0: 6c 6c 0a 20 20 20 20 73 61 74 69 73 66 79 20 61  ll.    satisfy a
7600: 6e 20 4f 52 44 45 52 20 42 59 20 2e 2e 2e 20 44  n ORDER BY ... D
7610: 45 53 43 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e  ESC clause.</li>
7620: 0a 3c 6c 69 3e 54 68 65 20 66 75 6c 6c 20 70 61  .<li>The full pa
7630: 74 68 6e 61 6d 65 20 6f 66 20 74 68 65 20 64 61  thname of the da
7640: 74 61 62 61 73 65 20 66 69 6c 65 20 69 73 20 6e  tabase file is n
7650: 6f 77 20 72 65 6d 65 6d 62 65 72 65 64 20 65 76  ow remembered ev
7660: 65 6e 20 69 66 0a 20 20 20 20 61 20 72 65 6c 61  en if.    a rela
7670: 74 69 76 65 20 70 61 74 68 20 69 73 20 70 61 73  tive path is pas
7680: 73 65 64 20 69 6e 74 6f 20 73 71 6c 69 74 65 5f  sed into sqlite_
7690: 6f 70 65 6e 28 29 2e 20 20 54 68 69 73 20 61 6c  open().  This al
76a0: 6c 6f 77 73 20 0a 20 20 20 20 74 68 65 20 6c 69  lows .    the li
76b0: 62 72 61 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75  brary to continu
76c0: 65 20 6f 70 65 72 61 74 69 6e 67 20 63 6f 72 72  e operating corr
76d0: 65 63 74 6c 79 20 61 66 74 65 72 20 61 20 63 68  ectly after a ch
76e0: 64 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  dir().</li>.<li>
76f0: 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e  Speed improvemen
7700: 74 73 20 69 6e 20 74 68 65 20 56 44 42 45 2e 3c  ts in the VDBE.<
7710: 2f 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20 6f 66  /li>.<li>Lots of
7720: 20 6c 69 74 74 6c 65 20 62 75 67 20 66 69 78 65   little bug fixe
7730: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
7740: 7b 32 30 30 32 20 4f 63 74 20 33 30 20 28 32 2e  {2002 Oct 30 (2.
7750: 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61 72 69  7.3)} {.<li>Vari
7760: 6f 75 73 20 63 6f 6d 70 69 6c 65 72 20 63 6f 6d  ous compiler com
7770: 70 61 74 69 62 69 6c 69 74 79 20 66 69 78 65 73  patibility fixes
7780: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
7790: 20 62 75 67 20 69 6e 20 74 68 65 20 22 65 78 70   bug in the "exp
77a0: 72 20 49 4e 20 28 29 22 20 6f 70 65 72 61 74 6f  r IN ()" operato
77b0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63 63 65  r.</li>.<li>Acce
77c0: 70 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20  pt column names 
77d0: 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2e 3c  in parentheses.<
77e0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70  /li>.<li>Fix a p
77f0: 72 6f 62 6c 65 6d 20 77 69 74 68 20 73 74 72 69  roblem with stri
7800: 6e 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61 67 65  ng memory manage
7810: 6d 65 6e 74 20 69 6e 20 74 68 65 20 56 44 42 45  ment in the VDBE
7820: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
7830: 62 75 67 20 69 6e 20 74 68 65 20 22 74 61 62 6c  bug in the "tabl
7840: 65 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61 22 3c  e_info" pragma"<
7850: 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20  /li>.<li>Export 
7860: 74 68 65 20 73 71 6c 69 74 65 5f 66 75 6e 63 74  the sqlite_funct
7870: 69 6f 6e 5f 74 79 70 65 28 29 20 41 50 49 20 66  ion_type() API f
7880: 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 57  unction in the W
7890: 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69 3e 0a  indows DLL</li>.
78a0: 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e 67 20  <li>Fix locking 
78b0: 62 65 68 61 76 69 6f 72 20 75 6e 64 65 72 20 77  behavior under w
78c0: 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  indows</li>.<li>
78d0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 4c 45 46  Fix a bug in LEF
78e0: 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69  T OUTER JOIN</li
78f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
7900: 53 65 70 20 32 35 20 28 32 2e 37 2e 32 29 7d 20  Sep 25 (2.7.2)} 
7910: 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20 6a 6f  {.<li>Prevent jo
7920: 75 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65 72 66  urnal file overf
7930: 6c 6f 77 73 20 6f 6e 20 68 75 67 65 20 74 72 61  lows on huge tra
7940: 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  nsactions.</li>.
7950: 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f 72 79  <li>Fix a memory
7960: 20 6c 65 61 6b 20 74 68 61 74 20 6f 63 63 75 72   leak that occur
7970: 72 65 64 20 77 68 65 6e 20 73 71 6c 69 74 65 5f  red when sqlite_
7980: 6f 70 65 6e 28 29 20 66 61 69 6c 65 64 2e 3c 2f  open() failed.</
7990: 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20 74 68  li>.<li>Honor th
79a0: 65 20 4f 52 44 45 52 20 42 59 20 61 6e 64 20 4c  e ORDER BY and L
79b0: 49 4d 49 54 20 63 6c 61 75 73 65 20 6f 66 20 61  IMIT clause of a
79c0: 20 53 45 4c 45 43 54 20 65 76 65 6e 20 69 66 20   SELECT even if 
79d0: 74 68 65 0a 20 20 20 20 72 65 73 75 6c 74 20 73  the.    result s
79e0: 65 74 20 69 73 20 75 73 65 64 20 66 6f 72 20 61  et is used for a
79f0: 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e 0a 3c  n INSERT.</li>.<
7a00: 6c 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20 77 72  li>Do not put wr
7a10: 69 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74 68 65  ite locks on the
7a20: 20 66 69 6c 65 20 75 73 65 64 20 74 6f 20 68 6f   file used to ho
7a30: 6c 64 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c  ld TEMP tables.<
7a40: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64  /li>.<li>Added d
7a50: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20  ocumentation on 
7a60: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
7a70: 61 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69 74  and on how SQLit
7a80: 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 2e  e handles NULLs.
7a90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
7aa0: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73  problem that was
7ab0: 20 63 61 75 73 69 6e 67 20 70 6f 6f 72 20 70 65   causing poor pe
7ac0: 72 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20 6d  rformance when m
7ad0: 61 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a 20 20  any thousands.  
7ae0: 20 20 6f 66 20 53 51 4c 20 73 74 61 74 65 6d 65    of SQL stateme
7af0: 6e 74 73 20 77 65 72 65 20 65 78 65 63 75 74 65  nts were execute
7b00: 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73 71  d by a single sq
7b10: 6c 69 74 65 5f 65 78 65 63 28 29 20 63 61 6c 6c  lite_exec() call
7b20: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7b30: 32 30 30 32 20 41 75 67 20 33 31 20 28 32 2e 37  2002 Aug 31 (2.7
7b40: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .1)} {.<li>Fix a
7b50: 20 62 75 67 20 69 6e 20 74 68 65 20 4f 52 44 45   bug in the ORDE
7b60: 52 20 42 59 20 6c 6f 67 69 63 20 74 68 61 74 20  R BY logic that 
7b70: 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69  was introduced i
7b80: 6e 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30 3c  n version 2.7.0<
7b90: 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c 65  /li>.<li>C-style
7ba0: 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e 6f   comments are no
7bb0: 77 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68  w accepted by th
7bc0: 65 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c 69  e tokenizer.</li
7bd0: 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75 6e  >.<li>INSERT run
7be0: 73 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65  s a little faste
7bf0: 72 20 77 68 65 6e 20 74 68 65 20 73 6f 75 72 63  r when the sourc
7c00: 65 20 69 73 20 61 20 53 45 4c 45 43 54 20 73 74  e is a SELECT st
7c10: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a  atement.</li>.}.
7c20: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
7c30: 32 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c 6c  25 (2.7.0)} {.<l
7c40: 69 3e 4d 61 6b 65 20 61 20 64 69 73 74 69 6e 63  i>Make a distinc
7c50: 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75 6d  tion between num
7c60: 65 72 69 63 20 61 6e 64 20 74 65 78 74 20 76 61  eric and text va
7c70: 6c 75 65 73 20 77 68 65 6e 20 73 6f 72 74 69 6e  lues when sortin
7c80: 67 2e 0a 20 20 20 20 54 65 78 74 20 76 61 6c 75  g..    Text valu
7c90: 65 73 20 73 6f 72 74 20 61 63 63 6f 72 64 69 6e  es sort accordin
7ca0: 67 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20 20  g to memcmp().  
7cb0: 4e 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20 73  Numeric values s
7cc0: 6f 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65 72  ort in.    numer
7cd0: 69 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 3c  ic order.</li>.<
7ce0: 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c  li>Allow multipl
7cf0: 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 72  e simultaneous r
7d00: 65 61 64 65 72 73 20 75 6e 64 65 72 20 77 69 6e  eaders under win
7d10: 64 6f 77 73 20 62 79 20 73 69 6d 75 6c 61 74 69  dows by simulati
7d20: 6e 67 0a 20 20 20 20 74 68 65 20 72 65 61 64 65  ng.    the reade
7d30: 72 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b 73 20  r/writers locks 
7d40: 74 68 61 74 20 61 72 65 20 6d 69 73 73 69 6e 67  that are missing
7d50: 20 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f 4d   from Win95/98/M
7d60: 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20 65  E.</li>.<li>An e
7d70: 72 72 6f 72 20 69 73 20 6e 6f 77 20 72 65 74 75  rror is now retu
7d80: 72 6e 65 64 20 77 68 65 6e 20 74 72 79 69 6e 67  rned when trying
7d90: 20 74 6f 20 73 74 61 72 74 20 61 20 74 72 61 6e   to start a tran
7da0: 73 61 63 74 69 6f 6e 20 69 66 0a 20 20 20 20 61  saction if.    a
7db0: 6e 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69  nother transacti
7dc0: 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20 61 63  on is already ac
7dd0: 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tive.</li>.}..ch
7de0: 6e 67 20 7b 32 30 30 32 20 41 75 67 20 31 32 20  ng {2002 Aug 12 
7df0: 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.6.3)} {.<li>A
7e00: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
7e10: 6f 20 72 65 61 64 20 62 6f 74 68 20 6c 69 74 74  o read both litt
7e20: 6c 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62 69  le-endian and bi
7e30: 67 2d 65 6e 64 69 61 6e 20 64 61 74 61 62 61 73  g-endian databas
7e40: 65 73 2e 0a 20 20 20 20 53 6f 20 64 61 74 61 62  es..    So datab
7e50: 61 73 65 20 63 72 65 61 74 65 64 20 75 6e 64 65  ase created unde
7e60: 72 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f 53  r SunOS or MacOS
7e70: 58 20 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e  X can be read an
7e80: 64 20 77 72 69 74 74 65 6e 0a 20 20 20 20 75 6e  d written.    un
7e90: 64 65 72 20 4c 69 6e 75 78 20 6f 72 20 57 69 6e  der Linux or Win
7ea0: 64 6f 77 73 20 61 6e 64 20 76 69 63 65 20 76 65  dows and vice ve
7eb0: 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  rsa.</li>.<li>Co
7ec0: 6e 76 65 72 74 20 74 6f 20 74 68 65 20 6e 65 77  nvert to the new
7ed0: 20 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a 2f   website: http:/
7ee0: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
7ef0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  </li>.<li>Allow 
7f00: 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20  transactions to 
7f10: 73 70 61 6e 20 4c 69 6e 75 78 20 54 68 72 65 61  span Linux Threa
7f20: 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  ds</li>.<li>Bug 
7f30: 66 69 78 20 69 6e 20 74 68 65 20 70 72 6f 63 65  fix in the proce
7f40: 73 73 69 6e 67 20 6f 66 20 74 68 65 20 4f 52 44  ssing of the ORD
7f50: 45 52 20 42 59 20 63 6c 61 75 73 65 20 66 6f 72  ER BY clause for
7f60: 20 47 52 4f 55 50 20 42 59 20 71 75 65 72 69 65   GROUP BY querie
7f70: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
7f80: 32 30 30 32 20 4a 6c 79 20 33 30 20 28 32 2e 36  2002 Jly 30 (2.6
7f90: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74 20  .2)} {.<li>Text 
7fa0: 66 69 6c 65 73 20 72 65 61 64 20 62 79 20 74 68  files read by th
7fb0: 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20 63  e COPY command c
7fc0: 61 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e 65  an now have line
7fd0: 20 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20 20   terminators.   
7fe0: 20 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20 6f   of LF,  CRLF, o
7ff0: 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  r CR.</li>.<li>S
8000: 51 4c 49 54 45 5f 42 55 53 59 20 69 73 20 68 61  QLITE_BUSY is ha
8010: 6e 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79 20  ndled correctly 
8020: 69 66 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64  if encountered d
8030: 75 72 69 6e 67 20 64 61 74 61 62 61 73 65 0a 20  uring database. 
8040: 20 20 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f     initializatio
8050: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  n.</li>.<li>Fix 
8060: 74 6f 20 55 50 44 41 54 45 20 74 72 69 67 67 65  to UPDATE trigge
8070: 72 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c 65  rs on TEMP table
8080: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  s.</li>.<li>Docu
8090: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
80a0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
80b0: 7b 32 30 30 32 20 4a 6c 79 20 31 39 20 28 32 2e  {2002 Jly 19 (2.
80c0: 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6c  6.1)} {.<li>Incl
80d0: 75 64 65 20 61 20 73 74 61 74 69 63 20 73 74 72  ude a static str
80e0: 69 6e 67 20 69 6e 20 74 68 65 20 6c 69 62 72 61  ing in the libra
80f0: 72 79 20 74 68 61 74 20 72 65 73 70 6f 6e 64 73  ry that responds
8100: 20 74 6f 20 74 68 65 20 52 43 53 0a 20 20 20 20   to the RCS.    
8110: 22 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64 20  "ident" command 
8120: 61 6e 64 20 77 68 69 63 68 20 63 6f 6e 74 61 69  and which contai
8130: 6e 73 20 74 68 65 20 6c 69 62 72 61 72 79 20 76  ns the library v
8140: 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f  ersion number.</
8150: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 61  li>.<li>Fix an a
8160: 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65  ssertion failure
8170: 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20 77   that occurred w
8180: 68 65 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c 6c  hen deleting all
8190: 20 72 6f 77 73 20 6f 66 0a 20 20 20 20 61 20 74   rows of.    a t
81a0: 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 22 63  able with the "c
81b0: 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22 20 70 72  ount_changes" pr
81c0: 61 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e 3c  agma turned on.<
81d0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72 20  /li>.<li>Better 
81e0: 65 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67 20  error reporting 
81f0: 77 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f 63  when problems oc
8200: 63 75 72 20 64 75 72 69 6e 67 20 74 68 65 20 61  cur during the a
8210: 75 74 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e 35  utomatic.    2.5
8220: 2e 36 20 74 6f 20 32 2e 36 2e 30 20 64 61 74 61  .6 to 2.6.0 data
8230: 62 61 73 65 20 66 6f 72 6d 61 74 20 75 70 67 72  base format upgr
8240: 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ade.</li>.}..chn
8250: 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 37 20 28  g {2002 Jly 17 (
8260: 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68  2.6.0)} {.<li>Ch
8270: 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20  ange the format 
8280: 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20 63 6f  of indices to co
8290: 72 72 65 63 74 20 61 20 64 65 73 69 67 6e 20 66  rrect a design f
82a0: 6c 61 77 20 74 68 65 20 6f 72 69 67 69 6e 61 74  law the originat
82b0: 65 64 0a 20 20 20 20 77 69 74 68 20 76 65 72 73  ed.    with vers
82c0: 69 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f 6e  ion 2.1.0.  <fon
82d0: 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a  t color="red">**
82e0: 2a 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e 63  * This is an inc
82f0: 6f 6d 70 61 74 69 62 6c 65 0a 20 20 20 20 66 69  ompatible.    fi
8300: 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65  le format change
8310: 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68 65   ***</font>  Whe
8320: 6e 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30 20  n version 2.6.0 
8330: 6f 72 20 6c 61 74 65 72 20 6f 66 20 74 68 65 0a  or later of the.
8340: 20 20 20 20 6c 69 62 72 61 72 79 20 61 74 74 65      library atte
8350: 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20 61 20 64  mpts to open a d
8360: 61 74 61 62 61 73 65 20 66 69 6c 65 20 63 72 65  atabase file cre
8370: 61 74 65 64 20 62 79 20 76 65 72 73 69 6f 6e 20  ated by version 
8380: 32 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65 61 72  2.5.6 or.    ear
8390: 6c 69 65 72 2c 20 69 74 20 77 69 6c 6c 20 61 75  lier, it will au
83a0: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64 20  tomatically and 
83b0: 69 72 72 65 76 65 72 73 69 62 6c 79 20 63 6f 6e  irreversibly con
83c0: 76 65 72 74 20 74 68 65 20 66 69 6c 65 20 66 6f  vert the file fo
83d0: 72 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61 6b  rmat..    <b>Mak
83e0: 65 20 62 61 63 6b 75 70 20 63 6f 70 69 65 73 20  e backup copies 
83f0: 6f 66 20 6f 6c 64 65 72 20 64 61 74 61 62 61 73  of older databas
8400: 65 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20 6f  e files before o
8410: 70 65 6e 69 6e 67 20 74 68 65 6d 20 77 69 74 68  pening them with
8420: 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 32 2e 36  .    version 2.6
8430: 2e 30 20 6f 66 20 74 68 65 20 6c 69 62 72 61 72  .0 of the librar
8440: 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69 3e  y.</b>.    </li>
8450: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
8460: 6c 79 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b 0a  ly 7 (2.5.6)} {.
8470: 3c 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70 72 6f  <li>Fix more pro
8480: 62 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c 62  blems with rollb
8490: 61 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74 68  ack.  Enhance th
84a0: 65 20 74 65 73 74 20 73 75 69 74 65 20 74 6f 20  e test suite to 
84b0: 65 78 65 72 63 69 73 65 0a 20 20 20 20 74 68 65  exercise.    the
84c0: 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63 20   rollback logic 
84d0: 65 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20 6f  extensively in o
84e0: 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20  rder to prevent 
84f0: 61 6e 79 20 66 75 74 75 72 65 20 70 72 6f 62 6c  any future probl
8500: 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d  ems..    </li>.}
8510: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79  ..chng {2002 Jly
8520: 20 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c 6c   6 (2.5.5)} {.<l
8530: 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63  i>Fix a bug whic
8540: 68 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64 61  h could cause da
8550: 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f  tabase corruptio
8560: 6e 20 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c 62  n during a rollb
8570: 61 63 6b 2e 0a 20 20 20 20 54 68 69 73 20 62 75  ack..    This bu
8580: 67 73 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  gs was introduce
8590: 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34  d in version 2.4
85a0: 2e 30 20 62 79 20 74 68 65 20 66 72 65 65 6c 69  .0 by the freeli
85b0: 73 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61 74  st.    optimizat
85c0: 69 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67 20  ion of checking 
85d0: 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  [410].</li>.<li>
85e0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 61 67 67  Fix a bug in agg
85f0: 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e 73  regate functions
8600: 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e   for VIEWs.</li>
8610: 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72  .<li>Other minor
8620: 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e 68   changes and enh
8630: 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  ancements.</li>.
8640: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
8650: 79 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a 3c  y 1 (2.5.4)} {.<
8660: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 22 41 53 22  li>Make the "AS"
8670: 20 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e 61   keyword optiona
8680: 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  l again.</li>.<l
8690: 69 3e 54 68 65 20 64 61 74 61 74 79 70 65 20 6f  i>The datatype o
86a0: 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61 70  f columns now ap
86b0: 70 65 61 72 20 69 6e 20 74 68 65 20 34 74 68 20  pear in the 4th 
86c0: 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 0a  argument to the.
86d0: 20 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f 6c      callback.</l
86e0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
86f0: 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 5f   <b>sqlite_open_
8700: 61 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20 41  aux_file()</b> A
8710: 50 49 2c 20 74 68 6f 75 67 68 20 69 74 20 69 73  PI, though it is
8720: 20 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74 6c   still.    mostl
8730: 79 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20 61  y undocumented a
8740: 6e 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c 69  nd untested.</li
8750: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64 64 69  >.<li>Added addi
8760: 74 69 6f 6e 61 6c 20 74 65 73 74 20 63 61 73 65  tional test case
8770: 73 20 61 6e 64 20 66 69 78 65 64 20 61 20 66 65  s and fixed a fe
8780: 77 20 62 75 67 73 20 74 68 61 74 20 74 68 6f 73  w bugs that thos
8790: 65 0a 20 20 20 20 74 65 73 74 20 63 61 73 65 73  e.    test cases
87a0: 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   found.</li>.}..
87b0: 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 32  chng {2002 Jun 2
87c0: 34 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c 69  4 (2.5.3)} {.<li
87d0: 3e 42 75 67 20 66 69 78 3a 20 20 44 61 74 61 62  >Bug fix:  Datab
87e0: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 63  ase corruption c
87f0: 61 6e 20 6f 63 63 75 72 20 64 75 65 20 74 6f 20  an occur due to 
8800: 74 68 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  the optimization
8810: 0a 20 20 20 20 74 68 61 74 20 77 61 73 20 69 6e  .    that was in
8820: 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73  troduced in vers
8830: 69 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65 63 6b  ion 2.4.0 (check
8840: 2d 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68 65  -in [410]).  The
8850: 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68 6f   problem.    sho
8860: 75 6c 64 20 6e 6f 77 20 62 65 20 66 69 78 65 64  uld now be fixed
8870: 2e 20 20 54 68 65 20 75 73 65 20 6f 66 20 76 65  .  The use of ve
8880: 72 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68 72  rsions 2.4.0 thr
8890: 6f 75 67 68 20 32 2e 35 2e 32 20 69 73 0a 20 20  ough 2.5.2 is.  
88a0: 20 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64 65    not recommende
88b0: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
88c0: 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e  {2002 Jun 24 (2.
88d0: 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  5.2)} {.<li>Adde
88e0: 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 53 51 4c  d the new <b>SQL
88f0: 49 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52 3c  ITE_TEMP_MASTER<
8900: 2f 62 3e 20 74 61 62 6c 65 20 77 68 69 63 68 20  /b> table which 
8910: 72 65 63 6f 72 64 73 20 74 68 65 20 73 63 68 65  records the sche
8920: 6d 61 0a 20 20 20 20 66 6f 72 20 74 65 6d 70 6f  ma.    for tempo
8930: 72 61 72 79 20 74 61 62 6c 65 73 20 69 6e 20 74  rary tables in t
8940: 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74  he same way that
8950: 20 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54 45   <b>SQLITE_MASTE
8960: 52 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a 20  R</b> does for. 
8970: 20 20 20 70 65 72 73 69 73 74 65 6e 74 20 74 61     persistent ta
8980: 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  bles.</li>.<li>A
8990: 64 64 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a 61  dded an optimiza
89a0: 74 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41 4c  tion to UNION AL
89b0: 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64  L</li>.<li>Fixed
89c0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 70 72   a bug in the pr
89d0: 6f 63 65 73 73 69 6e 67 20 6f 66 20 4c 45 46 54  ocessing of LEFT
89e0: 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69 3e   OUTER JOIN</li>
89f0: 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20 63  .<li>The LIMIT c
8a00: 6c 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73 20  lause now works 
8a10: 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c  on subselects</l
8a20: 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59 20  i>.<li>ORDER BY 
8a30: 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c 65  works on subsele
8a40: 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  cts</li>.<li>The
8a50: 72 65 20 69 73 20 61 20 6e 65 77 20 54 79 70 65  re is a new Type
8a60: 4f 66 28 29 20 66 75 6e 63 74 69 6f 6e 20 75 73  Of() function us
8a70: 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20  ed to determine 
8a80: 69 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e  if an expression
8a90: 0a 20 20 20 20 69 73 20 6e 75 6d 65 72 69 63 20  .    is numeric 
8aa0: 6f 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c 6c  or text.</li>.<l
8ab0: 69 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74 20  i>Autoincrement 
8ac0: 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 49 4e  now works for IN
8ad0: 53 45 52 54 20 66 72 6f 6d 20 61 20 53 45 4c 45  SERT from a SELE
8ae0: 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  CT.</li>.}..chng
8af0: 20 7b 32 30 30 32 20 4a 75 6e 20 31 39 20 28 32   {2002 Jun 19 (2
8b00: 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  .5.1)} {.<li>The
8b10: 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65 72   query optimizer
8b20: 20 6e 6f 77 20 61 74 74 65 6d 70 74 73 20 74 6f   now attempts to
8b30: 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 4f   implement the O
8b40: 52 44 45 52 20 42 59 20 63 6c 61 75 73 65 0a 20  RDER BY clause. 
8b50: 20 20 20 75 73 69 6e 67 20 61 6e 20 69 6e 64 65     using an inde
8b60: 78 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20 73  x.  Sorting is s
8b70: 74 69 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f 74  till used if not
8b80: 20 73 75 69 74 61 62 6c 65 20 69 6e 64 65 78 20   suitable index 
8b90: 69 73 0a 20 20 20 20 61 76 61 69 6c 61 62 6c 65  is.    available
8ba0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8bb0: 32 30 30 32 20 4a 75 6e 20 31 37 20 28 32 2e 35  2002 Jun 17 (2.5
8bc0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .0)} {.<li>Added
8bd0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 6f 77   support for row
8be0: 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e 0a   triggers.</li>.
8bf0: 3c 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d 39 32  <li>Added SQL-92
8c00: 20 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64 6c   compliant handl
8c10: 69 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f 6c  ing of NULLs.</l
8c20: 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f  i>.<li>Add suppo
8c30: 72 74 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20  rt for the full 
8c40: 53 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e 74  SQL-92 join synt
8c50: 61 78 20 61 6e 64 20 4c 45 46 54 20 4f 55 54 45  ax and LEFT OUTE
8c60: 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  R JOINs.</li>.<l
8c70: 69 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64 20  i>Double-quoted 
8c80: 73 74 72 69 6e 67 73 20 69 6e 74 65 72 70 72 65  strings interpre
8c90: 74 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e 61  ted as column na
8ca0: 6d 65 73 20 6e 6f 74 20 74 65 78 74 20 6c 69 74  mes not text lit
8cb0: 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  erals.</li>.<li>
8cc0: 50 61 72 73 65 20 28 62 75 74 20 64 6f 20 6e 6f  Parse (but do no
8cd0: 74 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f 72  t implement) for
8ce0: 65 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e 0a  eign keys.</li>.
8cf0: 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65 20  <li>Performance 
8d00: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20  improvements in 
8d10: 74 68 65 20 70 61 72 73 65 72 2c 20 70 61 67 65  the parser, page
8d20: 72 2c 20 61 6e 64 20 57 48 45 52 45 20 63 6c 61  r, and WHERE cla
8d30: 75 73 65 20 63 6f 64 65 0a 20 20 20 20 67 65 6e  use code.    gen
8d40: 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  erator.</li>.<li
8d50: 3e 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49 54 20  >Make the LIMIT 
8d60: 63 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e 20 73  clause work on s
8d70: 75 62 71 75 65 72 69 65 73 2e 20 20 28 4f 52 44  ubqueries.  (ORD
8d80: 45 52 20 42 59 20 73 74 69 6c 6c 20 64 6f 65 73  ER BY still does
8d90: 20 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c 20 74   not.    work, t
8da0: 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69  hough.)</li>.<li
8db0: 3e 41 64 64 65 64 20 74 68 65 20 22 25 51 22 20  >Added the "%Q" 
8dc0: 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73 71 6c  expansion to sql
8dd0: 69 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29 2e 3c  ite_*_printf().<
8de0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
8df0: 65 73 20 74 6f 6f 20 6e 75 6d 65 72 6f 75 73 20  es too numerous 
8e00: 74 6f 20 6d 65 6e 74 69 6f 6e 20 28 73 65 65 20  to mention (see 
8e10: 74 68 65 20 63 68 61 6e 67 65 20 6c 6f 67 29 2e  the change log).
8e20: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8e30: 30 30 32 20 4d 61 79 20 30 39 20 28 32 2e 34 2e  002 May 09 (2.4.
8e40: 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  12)} {.<li>Added
8e50: 20 6c 6f 67 69 63 20 74 6f 20 64 65 74 65 63 74   logic to detect
8e60: 20 77 68 65 6e 20 74 68 65 20 6c 69 62 72 61 72   when the librar
8e70: 79 20 41 50 49 20 72 6f 75 74 69 6e 65 73 20 61  y API routines a
8e80: 72 65 20 63 61 6c 6c 65 64 20 6f 75 74 0a 20 20  re called out.  
8e90: 20 20 6f 66 20 73 65 71 75 65 6e 63 65 2e 3c 2f    of sequence.</
8ea0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8eb0: 32 20 4d 61 79 20 30 38 20 28 32 2e 34 2e 31 31  2 May 08 (2.4.11
8ec0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
8ed0: 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  : Column names i
8ee0: 6e 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74  n the result set
8ef0: 20 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20   were not being 
8f00: 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20 63 6f  generated.    co
8f10: 72 72 65 63 74 6c 79 20 66 6f 72 20 73 6f 6d 65  rrectly for some
8f20: 20 28 72 61 74 68 65 72 20 63 6f 6d 70 6c 65 78   (rather complex
8f30: 29 20 56 49 45 57 73 2e 20 20 54 68 69 73 20 63  ) VIEWs.  This c
8f40: 6f 75 6c 64 20 63 61 75 73 65 20 61 0a 20 20 20  ould cause a.   
8f50: 20 73 65 67 66 61 75 6c 74 20 75 6e 64 65 72 20   segfault under 
8f60: 63 65 72 74 61 69 6e 20 63 69 72 63 75 6d 73 74  certain circumst
8f70: 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ances.</li>.}..c
8f80: 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20 30 32  hng {2002 May 02
8f90: 20 28 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c 6c 69   (2.4.10)} {.<li
8fa0: 3e 42 75 67 20 66 69 78 3a 20 47 65 6e 65 72 61  >Bug fix: Genera
8fb0: 74 65 20 63 6f 72 72 65 63 74 20 63 6f 6c 75 6d  te correct colum
8fc0: 6e 20 68 65 61 64 65 72 73 20 77 68 65 6e 20 61  n headers when a
8fd0: 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54   compound SELECT
8fe0: 20 69 73 20 75 73 65 64 0a 20 20 20 20 61 73 20   is used.    as 
8ff0: 61 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e  a subquery.</li>
9000: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 73  .<li>Added the s
9010: 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62 69 6e  qlite_encode_bin
9020: 61 72 79 28 29 20 61 6e 64 20 73 71 6c 69 74 65  ary() and sqlite
9030: 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72 79 28 29  _decode_binary()
9040: 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20   functions to.  
9050: 20 20 74 68 65 20 73 6f 75 72 63 65 20 74 72 65    the source tre
9060: 65 2e 20 20 42 75 74 20 74 68 65 79 20 61 72 65  e.  But they are
9070: 20 6e 6f 74 20 79 65 74 20 6c 69 6e 6b 65 64 20   not yet linked 
9080: 69 6e 74 6f 20 74 68 65 20 6c 69 62 72 61 72 79  into the library
9090: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
90a0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
90b0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72  .</li>.<li>Expor
90c0: 74 20 74 68 65 20 73 71 6c 69 74 65 5f 63 68 61  t the sqlite_cha
90d0: 6e 67 65 73 28 29 20 66 75 6e 63 74 69 6f 6e 20  nges() function 
90e0: 66 72 6f 6d 20 77 69 6e 64 6f 77 73 20 44 4c 4c  from windows DLL
90f0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  s.</li>.<li>Bug 
9100: 66 69 78 3a 20 44 6f 20 6e 6f 74 20 61 74 74 65  fix: Do not atte
9110: 6d 70 74 20 74 68 65 20 73 75 62 71 75 65 72 79  mpt the subquery
9120: 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70 74 69   flattening opti
9130: 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20 71 75 65 72  mization on quer
9140: 69 65 73 0a 20 20 20 20 74 68 61 74 20 6c 61 63  ies.    that lac
9150: 6b 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 2e  k a FROM clause.
9160: 20 20 54 6f 20 64 6f 20 73 6f 20 63 61 75 73 65    To do so cause
9170: 73 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f 6c  s a segfault.</l
9180: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
9190: 20 41 70 72 20 32 31 20 28 32 2e 34 2e 39 29 7d   Apr 21 (2.4.9)}
91a0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
91b0: 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e   that was causin
91c0: 67 20 74 68 65 20 70 72 65 63 6f 6d 70 69 6c 65  g the precompile
91d0: 64 20 62 69 6e 61 72 79 20 6f 66 20 53 51 4c 49  d binary of SQLI
91e0: 54 45 2e 45 58 45 20 74 6f 0a 20 20 20 20 72 65  TE.EXE to.    re
91f0: 70 6f 72 74 20 22 6f 75 74 20 6f 66 20 6d 65 6d  port "out of mem
9200: 6f 72 79 22 20 75 6e 64 65 72 20 57 69 6e 64 6f  ory" under Windo
9210: 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ws 98.</li>.}..c
9220: 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20 32 30  hng {2002 Apr 20
9230: 20 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.8)} {.<li>
9240: 4d 61 6b 65 20 73 75 72 65 20 56 49 45 57 73 20  Make sure VIEWs 
9250: 61 72 65 20 63 72 65 61 74 65 64 20 61 66 74 65  are created afte
9260: 72 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f  r their correspo
9270: 6e 64 69 6e 67 20 54 41 42 4c 45 73 20 69 6e 20  nding TABLEs in 
9280: 74 68 65 0a 20 20 20 20 6f 75 74 70 75 74 20 6f  the.    output o
9290: 66 20 74 68 65 20 3c 62 3e 2e 64 75 6d 70 3c 2f  f the <b>.dump</
92a0: 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68  b> command in th
92b0: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
92c0: 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d  i>Speed improvem
92d0: 65 6e 74 73 3a 20 44 6f 20 6e 6f 74 20 64 6f 20  ents: Do not do 
92e0: 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70 64 61  synchronous upda
92f0: 74 65 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c  tes on TEMP tabl
9300: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e  es.</li>.<li>Man
9310: 79 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61  y improvements a
9320: 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20  nd enhancements 
9330: 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c  to the shell.</l
9340: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20  i>.<li>Make the 
9350: 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20 6f 70  GLOB and LIKE op
9360: 65 72 61 74 6f 72 73 20 66 75 6e 63 74 69 6f 6e  erators function
9370: 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 6f 76  s that can be ov
9380: 65 72 72 69 64 64 65 6e 0a 20 20 20 20 62 79 20  erridden.    by 
9390: 61 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 54  a programmer.  T
93a0: 68 69 73 20 61 6c 6c 6f 77 73 2c 20 66 6f 72 20  his allows, for 
93b0: 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 4c 49 4b  example, the LIK
93c0: 45 20 6f 70 65 72 61 74 6f 72 20 74 6f 0a 20 20  E operator to.  
93d0: 20 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f 20    be changed to 
93e0: 62 65 20 63 61 73 65 20 73 65 6e 73 69 74 69 76  be case sensitiv
93f0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
9400: 7b 32 30 30 32 20 41 70 72 20 30 36 20 28 32 2e  {2002 Apr 06 (2.
9410: 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20  4.7)} {.<li>Add 
9420: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70  the ability to p
9430: 75 74 20 54 41 42 4c 45 2e 2a 20 69 6e 20 74 68  ut TABLE.* in th
9440: 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66  e column list of
9450: 20 61 0a 20 20 20 20 53 45 4c 45 43 54 20 73 74   a.    SELECT st
9460: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  atement.</li>.<l
9470: 69 3e 50 65 72 6d 69 74 20 53 45 4c 45 43 54 20  i>Permit SELECT 
9480: 73 74 61 74 65 6d 65 6e 74 73 20 77 69 74 68 6f  statements witho
9490: 75 74 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65  ut a FROM clause
94a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
94b0: 20 74 68 65 20 3c 62 3e 6c 61 73 74 5f 69 6e 73   the <b>last_ins
94c0: 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20  ert_rowid()</b> 
94d0: 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c  SQL function.</l
94e0: 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 63 6f  i>.<li>Do not co
94f0: 75 6e 74 20 72 6f 77 73 20 77 68 65 72 65 20 74  unt rows where t
9500: 68 65 20 49 47 4e 4f 52 45 20 63 6f 6e 66 6c 69  he IGNORE confli
9510: 63 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20 6f 63  ct resolution oc
9520: 63 75 72 73 20 69 6e 0a 20 20 20 20 74 68 65 20  curs in.    the 
9530: 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69 3e 0a  row count.</li>.
9540: 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 66 75  <li>Make sure fu
9550: 6e 63 74 69 6f 6e 73 20 65 78 70 72 65 73 73 69  nctions expressi
9560: 6f 6e 73 20 69 6e 20 74 68 65 20 56 41 4c 55 45  ons in the VALUE
9570: 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e 20 49  S clause of an I
9580: 4e 53 45 52 54 0a 20 20 20 20 61 72 65 20 63 6f  NSERT.    are co
9590: 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rrect.</li>.<li>
95a0: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
95b0: 69 74 65 5f 63 68 61 6e 67 65 73 28 29 3c 2f 62  ite_changes()</b
95c0: 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 20 74  > API function t
95d0: 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6e 75 6d  o return the num
95e0: 62 65 72 0a 20 20 20 20 6f 66 20 72 6f 77 20 74  ber.    of row t
95f0: 68 61 74 20 63 68 61 6e 67 65 64 20 69 6e 20 74  hat changed in t
9600: 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 6f  he most recent o
9610: 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  peration.</li>.}
9620: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
9630: 20 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b 0a 3c   02 (2.4.6)} {.<
9640: 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72  li>Bug fix: Corr
9650: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 74 65 72  ectly handle ter
9660: 6d 73 20 69 6e 20 74 68 65 20 57 48 45 52 45 20  ms in the WHERE 
9670: 63 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f 69 6e  clause of a join
9680: 20 74 68 61 74 0a 20 20 20 20 64 6f 20 6e 6f 74   that.    do not
9690: 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d 70 61   contain a compa
96a0: 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 3c  rison operator.<
96b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
96c0: 30 32 20 41 70 72 20 30 31 20 28 32 2e 34 2e 35  02 Apr 01 (2.4.5
96d0: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
96e0: 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61 6e 64  : Correctly hand
96f0: 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61  le functions tha
9700: 74 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20  t appear in the 
9710: 57 48 45 52 45 20 63 6c 61 75 73 65 0a 20 20 20  WHERE clause.   
9720: 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c 69 3e   of a join.</li>
9730: 0a 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20 50 52  .<li>When the PR
9740: 41 47 4d 41 20 76 64 62 65 5f 74 72 61 63 65 3d  AGMA vdbe_trace=
9750: 4f 4e 20 69 73 20 73 65 74 2c 20 63 6f 72 72 65  ON is set, corre
9760: 63 74 6c 79 20 70 72 69 6e 74 20 74 68 65 20 50  ctly print the P
9770: 33 20 6f 70 65 72 61 6e 64 0a 20 20 20 20 76 61  3 operand.    va
9780: 6c 75 65 20 77 68 65 6e 20 69 74 20 69 73 20 61  lue when it is a
9790: 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 74   pointer to a st
97a0: 72 75 63 74 75 72 65 20 72 61 74 68 65 72 20 74  ructure rather t
97b0: 68 61 6e 20 61 20 70 6f 69 6e 74 65 72 20 74 6f  han a pointer to
97c0: 0a 20 20 20 20 61 20 73 74 72 69 6e 67 2e 3c 2f  .    a string.</
97d0: 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69 6e 73  li>.<li>When ins
97e0: 65 72 74 69 6e 67 20 61 6e 20 65 78 70 6c 69 63  erting an explic
97f0: 69 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61 6e 20  it NULL into an 
9800: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20  INTEGER PRIMARY 
9810: 4b 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20 20 20  KEY, convert.   
9820: 20 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75 65 20   the NULL value 
9830: 69 6e 74 6f 20 61 20 75 6e 69 71 75 65 20 6b 65  into a unique ke
9840: 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e  y automatically.
9850: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
9860: 30 30 32 20 4d 61 72 20 32 34 20 28 32 2e 34 2e  002 Mar 24 (2.4.
9870: 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20  4)} {.<li>Allow 
9880: 22 56 49 45 57 22 20 74 6f 20 62 65 20 61 20 63  "VIEW" to be a c
9890: 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69 3e 0a  olumn name</li>.
98a0: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
98b0: 74 20 66 6f 72 20 43 41 53 45 20 65 78 70 72 65  t for CASE expre
98c0: 73 73 69 6f 6e 73 20 28 70 61 74 63 68 20 66 72  ssions (patch fr
98d0: 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79 29 3c  om Dan Kennedy)<
98e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 52  /li>.<li>Added R
98f0: 50 4d 53 20 74 6f 20 74 68 65 20 64 65 6c 69 76  PMS to the deliv
9900: 65 72 79 20 28 70 61 74 63 68 65 73 20 66 72 6f  ery (patches fro
9910: 6d 20 44 6f 75 67 20 48 65 6e 72 79 29 3c 2f 6c  m Doug Henry)</l
9920: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 6f 73  i>.<li>Fix typos
9930: 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74   in the document
9940: 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  ation</li>.<li>C
9950: 75 74 20 6f 76 65 72 20 63 6f 6e 66 69 67 75 72  ut over configur
9960: 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74  ation management
9970: 20 74 6f 20 61 20 6e 65 77 20 43 56 53 20 72 65   to a new CVS re
9980: 70 6f 73 69 74 6f 72 79 20 77 69 74 68 0a 20 20  pository with.  
9990: 20 20 69 74 73 20 6f 77 6e 20 43 56 53 54 72 61    its own CVSTra
99a0: 63 20 62 75 67 20 74 72 61 63 6b 69 6e 67 20 73  c bug tracking s
99b0: 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ystem.</li>.}..c
99c0: 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20 32 32  hng {2002 Mar 22
99d0: 20 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.4.3)} {.<li>
99e0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 53 45 4c  Fix a bug in SEL
99f0: 45 43 54 20 74 68 61 74 20 6f 63 63 75 72 73 20  ECT that occurs 
9a00: 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20  when a compound 
9a10: 53 45 4c 45 43 54 20 69 73 20 75 73 65 64 20 61  SELECT is used a
9a20: 73 20 61 0a 20 20 20 20 73 75 62 71 75 65 72 79  s a.    subquery
9a30: 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f 66 20   in the FROM of 
9a40: 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c  a SELECT.</li>.<
9a50: 6c 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69 74 65  li>The <b>sqlite
9a60: 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e  _get_table()</b>
9a70: 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20 72 65   function now re
9a80: 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 69  turns an error i
9a90: 66 20 79 6f 75 0a 20 20 20 20 67 69 76 65 20 69  f you.    give i
9aa0: 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 53 45  t two or more SE
9ab0: 4c 45 43 54 73 20 74 68 61 74 20 72 65 74 75 72  LECTs that retur
9ac0: 6e 20 64 69 66 66 65 72 65 6e 74 20 6e 75 6d 62  n different numb
9ad0: 65 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73 2e 3c  ers of columns.<
9ae0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
9af0: 30 32 20 4d 61 72 20 31 34 20 28 32 2e 34 2e 32  02 Mar 14 (2.4.2
9b00: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
9b10: 3a 20 46 69 78 20 61 6e 20 61 73 73 65 72 74 69  : Fix an asserti
9b20: 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20  on failure that 
9b30: 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20 52 4f  occurred when RO
9b40: 57 49 44 20 77 61 73 20 61 20 63 6f 6c 75 6d 6e  WID was a column
9b50: 0a 20 20 20 20 69 6e 20 61 20 53 45 4c 45 43 54  .    in a SELECT
9b60: 20 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20 61 20   statement on a 
9b70: 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  view.</li>.<li>B
9b80: 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e 20 75  ug fix: Fix an u
9b90: 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72  ninitialized var
9ba0: 69 61 62 6c 65 20 69 6e 20 74 68 65 20 56 44 42  iable in the VDB
9bb0: 45 20 74 68 61 74 20 77 6f 75 6c 64 20 63 6f 75  E that would cou
9bc0: 6c 64 20 61 6e 0a 20 20 20 20 61 73 73 65 72 74  ld an.    assert
9bd0: 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c   failure.</li>.<
9be0: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73 2e 68  li>Make the os.h
9bf0: 20 68 65 61 64 65 72 20 66 69 6c 65 20 6d 6f 72   header file mor
9c00: 65 20 72 6f 62 75 73 74 20 69 6e 20 64 65 74 65  e robust in dete
9c10: 63 74 69 6e 67 20 77 68 65 6e 20 74 68 65 20 63  cting when the c
9c20: 6f 6d 70 69 6c 65 20 69 73 0a 20 20 20 20 66 6f  ompile is.    fo
9c30: 72 20 77 69 6e 64 6f 77 73 20 61 6e 64 20 77 68  r windows and wh
9c40: 65 6e 20 69 74 20 69 73 20 66 6f 72 20 75 6e 69  en it is for uni
9c50: 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  x.</li>.}..chng 
9c60: 7b 32 30 30 32 20 4d 61 72 20 31 33 20 28 32 2e  {2002 Mar 13 (2.
9c70: 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73 69 6e  4.1)} {.<li>Usin
9c80: 67 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73 75 62  g an unnamed sub
9c90: 71 75 65 72 79 20 69 6e 20 61 20 46 52 4f 4d 20  query in a FROM 
9ca0: 63 6c 61 75 73 65 20 77 6f 75 6c 64 20 63 61 75  clause would cau
9cb0: 73 65 20 61 20 73 65 67 66 61 75 6c 74 2e 3c 2f  se a segfault.</
9cc0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73  li>.<li>The pars
9cd0: 65 72 20 6e 6f 77 20 69 6e 73 69 73 74 73 20 6f  er now insists o
9ce0: 6e 20 73 65 65 69 6e 67 20 61 20 73 65 6d 69 63  n seeing a semic
9cf0: 6f 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e 64 20  olon or the end 
9d00: 6f 66 20 69 6e 70 75 74 20 62 65 66 6f 72 65 0a  of input before.
9d10: 20 20 20 20 65 78 65 63 75 74 69 6e 67 20 61 20      executing a 
9d20: 73 74 61 74 65 6d 65 6e 74 2e 20 20 54 68 69 73  statement.  This
9d30: 20 61 76 6f 69 64 73 20 61 6e 20 61 63 63 69 64   avoids an accid
9d40: 65 6e 74 61 6c 20 64 69 73 61 73 74 65 72 20 69  ental disaster i
9d50: 66 20 74 68 65 0a 20 20 20 20 57 48 45 52 45 20  f the.    WHERE 
9d60: 6b 65 79 77 6f 72 64 20 69 73 20 6d 69 73 73 70  keyword is missp
9d70: 65 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50 44 41  elled in an UPDA
9d80: 54 45 20 6f 72 20 44 45 4c 45 54 45 20 73 74 61  TE or DELETE sta
9d90: 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tement.</li>.}..
9da0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
9db0: 31 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a 3c 6c  10 (2.4.0)} {.<l
9dc0: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 6e 61 6d  i>Change the nam
9dd0: 65 20 6f 66 20 74 68 65 20 73 61 6e 69 74 79 5f  e of the sanity_
9de0: 63 68 65 63 6b 20 50 52 41 47 4d 41 20 74 6f 20  check PRAGMA to 
9df0: 3c 62 3e 69 6e 74 65 67 72 69 74 79 5f 63 68 65  <b>integrity_che
9e00: 63 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64 20 6d  ck</b>.    and m
9e10: 61 6b 65 20 69 74 20 61 76 61 69 6c 61 62 6c 65  ake it available
9e20: 20 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c 65 73   in all compiles
9e30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c 45 43  .</li>.<li>SELEC
9e40: 54 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78 28 29  T min() or max()
9e50: 20 6f 66 20 61 6e 20 69 6e 64 65 78 65 64 20 63   of an indexed c
9e60: 6f 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20 57 48  olumn with no WH
9e70: 45 52 45 20 6f 72 20 47 52 4f 55 50 20 42 59 0a  ERE or GROUP BY.
9e80: 20 20 20 20 63 6c 61 75 73 65 20 69 73 20 68 61      clause is ha
9e90: 6e 64 6c 65 64 20 61 73 20 61 20 73 70 65 63 69  ndled as a speci
9ea0: 61 6c 20 63 61 73 65 20 77 68 69 63 68 20 61 76  al case which av
9eb0: 6f 69 64 73 20 61 20 63 6f 6d 70 6c 65 74 65 20  oids a complete 
9ec0: 74 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e  table scan.</li>
9ed0: 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c  .<li>Automatical
9ee0: 6c 79 20 67 65 6e 65 72 61 74 65 64 20 52 4f 57  ly generated ROW
9ef0: 49 44 73 20 61 72 65 20 6e 6f 77 20 73 65 71 75  IDs are now sequ
9f00: 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ential.</li>.<li
9f10: 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20 64 6f  >Do not allow do
9f20: 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20 74 68  t-commands of th
9f30: 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 73  e command-line s
9f40: 68 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20 69 6e  hell to occur in
9f50: 20 74 68 65 0a 20 20 20 20 6d 69 64 64 6c 65 20   the.    middle 
9f60: 6f 66 20 61 20 72 65 61 6c 20 53 51 4c 20 63 6f  of a real SQL co
9f70: 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mmand.</li>.<li>
9f80: 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f  Modifications to
9f90: 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72   the "lemon" par
9fa0: 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20 73 6f  ser generator so
9fb0: 20 74 68 61 74 20 74 68 65 20 70 61 72 73 65 72   that the parser
9fc0: 20 74 61 62 6c 65 73 0a 20 20 20 20 61 72 65 20   tables.    are 
9fd0: 34 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65 72 2e  4 times smaller.
9fe0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
9ff0: 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73 65 72  support for user
a000: 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f  -defined functio
a010: 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 69  ns implemented i
a020: 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  n C.</li>.<li>Ad
a030: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
a040: 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c  new functions: <
a050: 62 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f 62 3e  b>coalesce()</b>
a060: 2c 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f 62 3e  , <b>lower()</b>
a070: 2c 0a 20 20 20 20 3c 62 3e 75 70 70 65 72 28 29  ,.    <b>upper()
a080: 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72 61 6e  </b>, and <b>ran
a090: 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e 41 64  dom()</b>.<li>Ad
a0a0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
a0b0: 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  VIEWs.</li>.<li>
a0c0: 41 64 64 65 64 20 74 68 65 20 73 75 62 71 75 65  Added the subque
a0d0: 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70  ry flattening op
a0e0: 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  timizer.</li>.<l
a0f0: 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 42  i>Modified the B
a100: 2d 54 72 65 65 20 61 6e 64 20 50 61 67 65 72 20  -Tree and Pager 
a110: 6d 6f 64 75 6c 65 73 20 73 6f 20 74 68 61 74 20  modules so that 
a120: 64 69 73 6b 20 70 61 67 65 73 20 74 68 61 74 20  disk pages that 
a130: 64 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e 74 61  do not.    conta
a140: 69 6e 20 72 65 61 6c 20 64 61 74 61 20 28 66 72  in real data (fr
a150: 65 65 20 70 61 67 65 73 29 20 61 72 65 20 6e 6f  ee pages) are no
a160: 74 20 6a 6f 75 72 6e 61 6c 65 64 20 61 6e 64 20  t journaled and 
a170: 61 72 65 20 6e 6f 74 0a 20 20 20 20 77 72 69 74  are not.    writ
a180: 74 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72 79 20  ten from memory 
a190: 62 61 63 6b 20 74 6f 20 74 68 65 20 64 69 73 6b  back to the disk
a1a0: 20 77 68 65 6e 20 74 68 65 79 20 63 68 61 6e 67   when they chang
a1b0: 65 2e 20 20 54 68 69 73 20 64 6f 65 73 20 6e 6f  e.  This does no
a1c0: 74 20 0a 20 20 20 20 69 6d 70 61 63 74 20 64 61  t .    impact da
a1d0: 74 61 62 61 73 65 20 69 6e 74 65 67 72 69 74 79  tabase integrity
a1e0: 2c 20 73 69 6e 63 65 20 74 68 65 0a 20 20 20 20  , since the.    
a1f0: 70 61 67 65 73 20 63 6f 6e 74 61 69 6e 20 6e 6f  pages contain no
a200: 20 72 65 61 6c 20 64 61 74 61 2c 20 62 75 74 20   real data, but 
a210: 69 74 20 64 6f 65 73 20 6d 61 6b 65 20 6c 61 72  it does make lar
a220: 67 65 20 49 4e 53 45 52 54 20 6f 70 65 72 61 74  ge INSERT operat
a230: 69 6f 6e 73 0a 20 20 20 20 61 62 6f 75 74 20 32  ions.    about 2
a240: 2e 35 20 74 69 6d 65 73 20 66 61 73 74 65 72 20  .5 times faster 
a250: 61 6e 64 20 6c 61 72 67 65 20 44 45 4c 45 54 45  and large DELETE
a260: 73 20 61 62 6f 75 74 20 35 20 74 69 6d 65 73 20  s about 5 times 
a270: 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  faster.</li>.<li
a280: 3e 4d 61 64 65 20 74 68 65 20 43 41 43 48 45 5f  >Made the CACHE_
a290: 53 49 5a 45 20 70 72 61 67 6d 61 20 70 65 72 73  SIZE pragma pers
a2a0: 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e  istent</li>.<li>
a2b0: 41 64 64 65 64 20 74 68 65 20 53 59 4e 43 48 52  Added the SYNCHR
a2c0: 4f 4e 4f 55 53 20 70 72 61 67 6d 61 3c 2f 6c 69  ONOUS pragma</li
a2d0: 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75  >.<li>Fixed a bu
a2e0: 67 20 74 68 61 74 20 77 61 73 20 63 61 75 73 69  g that was causi
a2f0: 6e 67 20 75 70 64 61 74 65 73 20 74 6f 20 66 61  ng updates to fa
a300: 69 6c 20 69 6e 73 69 64 65 20 6f 66 20 74 72 61  il inside of tra
a310: 6e 73 61 63 74 69 6f 6e 73 20 77 68 65 6e 0a 20  nsactions when. 
a320: 20 20 20 74 68 65 20 64 61 74 61 62 61 73 65 20     the database 
a330: 63 6f 6e 74 61 69 6e 65 64 20 61 20 74 65 6d 70  contained a temp
a340: 6f 72 61 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69  orary table.</li
a350: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
a360: 46 65 62 20 31 38 20 28 32 2e 33 2e 33 29 7d 20  Feb 18 (2.3.3)} 
a370: 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64 65 6e  {.<li>Allow iden
a380: 74 69 66 69 65 72 73 20 74 6f 20 62 65 20 71 75  tifiers to be qu
a390: 6f 74 65 64 20 69 6e 20 73 71 75 61 72 65 20 62  oted in square b
a3a0: 72 61 63 6b 65 74 73 2c 20 66 6f 72 20 63 6f 6d  rackets, for com
a3b0: 70 61 74 69 62 69 6c 69 74 79 0a 20 20 20 20 77  patibility.    w
a3c0: 69 74 68 20 4d 53 2d 41 63 63 65 73 73 2e 3c 2f  ith MS-Access.</
a3d0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
a3e0: 70 70 6f 72 74 20 66 6f 72 20 73 75 62 2d 71 75  pport for sub-qu
a3f0: 65 72 69 65 73 20 69 6e 20 74 68 65 20 46 52 4f  eries in the FRO
a400: 4d 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53 45  M clause of a SE
a410: 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  LECT.</li>.<li>M
a420: 6f 72 65 20 65 66 66 69 63 69 65 6e 74 20 69 6d  ore efficient im
a430: 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20  plementation of 
a440: 73 71 6c 69 74 65 46 69 6c 65 45 78 69 73 74 73  sqliteFileExists
a450: 28 29 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73  () under Windows
a460: 2e 0a 20 20 20 20 28 62 79 20 4a 6f 65 6c 20 4c  ..    (by Joel L
a470: 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  uscy)</li>.<li>T
a480: 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75 73 65  he VALUES clause
a490: 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 20 63 61   of an INSERT ca
a4a0: 6e 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 65 78  n now contain ex
a4b0: 70 72 65 73 73 69 6f 6e 73 2c 20 69 6e 63 6c 75  pressions, inclu
a4c0: 64 69 6e 67 0a 20 20 20 20 73 63 61 6c 61 72 20  ding.    scalar 
a4d0: 53 45 4c 45 43 54 20 63 6c 61 75 73 65 73 2e 3c  SELECT clauses.<
a4e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
a4f0: 75 70 70 6f 72 74 20 66 6f 72 20 43 52 45 41 54  upport for CREAT
a500: 45 20 54 41 42 4c 45 20 41 53 20 53 45 4c 45 43  E TABLE AS SELEC
a510: 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  T</li>.<li>Bug f
a520: 69 78 3a 20 43 72 65 61 74 69 6e 67 20 61 6e 64  ix: Creating and
a530: 20 64 72 6f 70 70 69 6e 67 20 61 20 74 61 62 6c   dropping a tabl
a540: 65 20 61 6c 6c 20 77 69 74 68 69 6e 20 61 20 73  e all within a s
a550: 69 6e 67 6c 65 0a 20 20 20 20 74 72 61 6e 73 61  ingle.    transa
a560: 63 74 69 6f 6e 20 77 61 73 20 6e 6f 74 20 77 6f  ction was not wo
a570: 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rking.</li>.}..c
a580: 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 34  hng {2002 Feb 14
a590: 20 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.3.2)} {.<li>
a5a0: 42 75 67 20 66 69 78 3a 20 54 68 65 72 65 20 77  Bug fix: There w
a5b0: 61 73 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20  as an incorrect 
a5c0: 61 73 73 65 72 74 28 29 20 69 6e 20 70 61 67 65  assert() in page
a5d0: 72 2e 63 2e 20 20 54 68 65 20 72 65 61 6c 20 63  r.c.  The real c
a5e0: 6f 64 65 20 77 61 73 0a 20 20 20 20 61 6c 6c 20  ode was.    all 
a5f0: 63 6f 72 72 65 63 74 20 28 61 73 20 66 61 72 20  correct (as far 
a600: 61 73 20 69 73 20 6b 6e 6f 77 6e 29 20 73 6f 20  as is known) so 
a610: 65 76 65 72 79 74 68 69 6e 67 20 73 68 6f 75 6c  everything shoul
a620: 64 20 77 6f 72 6b 20 4f 4b 20 69 66 20 79 6f 75  d work OK if you
a630: 0a 20 20 20 20 63 6f 6d 70 69 6c 65 20 77 69 74  .    compile wit
a640: 68 20 2d 44 4e 44 45 42 55 47 3d 31 2e 20 20 57  h -DNDEBUG=1.  W
a650: 68 65 6e 20 61 73 73 65 72 74 73 20 61 72 65 20  hen asserts are 
a660: 6e 6f 74 20 64 69 73 61 62 6c 65 64 2c 20 74 68  not disabled, th
a670: 65 72 65 0a 20 20 20 20 63 6f 75 6c 64 20 62 65  ere.    could be
a680: 20 61 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d   a fault.</li>.}
a690: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62  ..chng {2002 Feb
a6a0: 20 31 33 20 28 32 2e 33 2e 31 29 7d 20 7b 0a 3c   13 (2.3.1)} {.<
a6b0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61  li>Bug fix: An a
a6c0: 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69  ssertion was fai
a6d0: 6c 69 6e 67 20 69 66 20 22 50 52 41 47 4d 41 20  ling if "PRAGMA 
a6e0: 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65  full_column_name
a6f0: 73 3d 4f 4e 3b 22 20 77 61 73 0a 20 20 20 20 73  s=ON;" was.    s
a700: 65 74 20 61 6e 64 20 79 6f 75 20 64 69 64 20 61  et and you did a
a710: 20 71 75 65 72 79 20 74 68 61 74 20 75 73 65 64   query that used
a720: 20 61 20 72 6f 77 69 64 2c 20 6c 69 6b 65 20 74   a rowid, like t
a730: 68 69 73 3a 20 20 0a 20 20 20 20 22 53 45 4c 45  his:  .    "SELE
a740: 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d  CT rowid, * FROM
a750: 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   ...".</li>.}..c
a760: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 33 30  hng {2002 Jan 30
a770: 20 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.3.0)} {.<li>
a780: 46 69 78 20 61 20 73 65 72 69 6f 75 73 20 62 75  Fix a serious bu
a790: 67 20 69 6e 20 74 68 65 20 49 4e 53 45 52 54 20  g in the INSERT 
a7a0: 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20 77 61  command which wa
a7b0: 73 20 63 61 75 73 69 6e 67 20 64 61 74 61 20 74  s causing data t
a7c0: 6f 20 67 6f 0a 20 20 20 20 69 6e 74 6f 20 74 68  o go.    into th
a7d0: 65 20 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e 73 20  e wrong columns 
a7e0: 69 66 20 74 68 65 20 64 61 74 61 20 73 6f 75 72  if the data sour
a7f0: 63 65 20 77 61 73 20 61 20 53 45 4c 45 43 54 20  ce was a SELECT 
a800: 61 6e 64 20 74 68 65 20 49 4e 53 45 52 54 0a 20  and the INSERT. 
a810: 20 20 20 63 6c 61 75 73 65 73 20 73 70 65 63 69     clauses speci
a820: 66 69 65 64 20 69 74 73 20 63 6f 6c 75 6d 6e 73  fied its columns
a830: 20 69 6e 20 73 6f 6d 65 20 6f 72 64 65 72 20 6f   in some order o
a840: 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 64 65  ther than the de
a850: 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  fault.</li>.<li>
a860: 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74  Added the abilit
a870: 79 20 74 6f 20 72 65 73 6f 6c 76 65 20 63 6f 6e  y to resolve con
a880: 73 74 72 61 69 6e 74 20 63 6f 6e 66 6c 69 63 74  straint conflict
a890: 73 20 69 73 20 77 61 79 73 20 6f 74 68 65 72 20  s is ways other 
a8a0: 74 68 61 6e 0a 20 20 20 20 61 6e 20 61 62 6f 72  than.    an abor
a8b0: 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b 2e 20  t and rollback. 
a8c0: 20 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e   See the documen
a8d0: 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 22 4f  tation on the "O
a8e0: 4e 20 43 4f 4e 46 4c 49 43 54 22 0a 20 20 20 20  N CONFLICT".    
a8f0: 63 6c 61 75 73 65 20 66 6f 72 20 64 65 74 61 69  clause for detai
a900: 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 65 6d  ls.</li>.<li>Tem
a910: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72 65  porary files are
a920: 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63 61 6c   now automatical
a930: 6c 79 20 64 65 6c 65 74 65 64 20 62 79 20 74 68  ly deleted by th
a940: 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74  e operating syst
a950: 65 6d 0a 20 20 20 20 77 68 65 6e 20 63 6c 6f 73  em.    when clos
a960: 65 64 2e 20 20 54 68 65 72 65 20 61 72 65 20 6e  ed.  There are n
a970: 6f 20 6d 6f 72 65 20 64 61 6e 67 6c 69 6e 67 20  o more dangling 
a980: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  temporary files 
a990: 6f 6e 20 61 20 70 72 6f 67 72 61 6d 0a 20 20 20  on a program.   
a9a0: 20 63 72 61 73 68 2e 20 20 28 49 66 20 74 68 65   crash.  (If the
a9b0: 20 4f 53 20 63 72 61 73 68 65 73 2c 20 66 73 63   OS crashes, fsc
a9c0: 6b 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 74 68  k will delete th
a9d0: 65 20 66 69 6c 65 20 61 66 74 65 72 20 72 65 62  e file after reb
a9e0: 6f 6f 74 20 0a 20 20 20 20 75 6e 64 65 72 20 55  oot .    under U
a9f0: 6e 69 78 2e 20 20 49 20 64 6f 20 6e 6f 74 20 6b  nix.  I do not k
aa00: 6e 6f 77 20 77 68 61 74 20 68 61 70 70 65 6e 73  now what happens
aa10: 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 2e 29   under Windows.)
aa20: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20 4e 55  </li>.<li>NOT NU
aa30: 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61  LL constraints a
aa40: 72 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c 69 3e  re honored.</li>
aa50: 0a 3c 6c 69 3e 54 68 65 20 43 4f 50 59 20 63 6f  .<li>The COPY co
aa60: 6d 6d 61 6e 64 20 70 75 74 73 20 4e 55 4c 4c 73  mmand puts NULLs
aa70: 20 69 6e 20 63 6f 6c 75 6d 6e 73 20 77 68 6f 73   in columns whos
aa80: 65 20 64 61 74 61 20 69 73 20 27 5c 4e 27 2e 3c  e data is '\N'.<
aa90: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20  /li>.<li>In the 
aaa0: 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c 20 62 61  COPY command, ba
aab0: 63 6b 73 6c 61 73 68 20 63 61 6e 20 6e 6f 77 20  ckslash can now 
aac0: 62 65 20 75 73 65 64 20 74 6f 20 65 73 63 61 70  be used to escap
aad0: 65 20 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f 6c 69  e a newline.</li
aae0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
aaf0: 53 41 4e 49 54 59 5f 43 48 45 43 4b 20 70 72 61  SANITY_CHECK pra
ab00: 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  gma.</li>.}..chn
ab10: 67 20 7b 32 30 30 32 20 4a 61 6e 20 32 38 20 28  g {2002 Jan 28 (
ab20: 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 49 6d  2.2.5)} {.<li>Im
ab30: 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69 78 3a  portant bug fix:
ab40: 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74 6f 72   the IN operator
ab50: 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67   was not working
ab60: 20 69 66 20 65 69 74 68 65 72 20 74 68 65 0a 20   if either the. 
ab70: 20 20 20 6c 65 66 74 2d 68 61 6e 64 20 6f 72 20     left-hand or 
ab80: 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20  right-hand side 
ab90: 77 61 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d  was derived from
aba0: 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d   an INTEGER PRIM
abb0: 41 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c  ARY KEY.</li>.<l
abc0: 69 3e 44 6f 20 6e 6f 74 20 65 73 63 61 70 65 20  i>Do not escape 
abd0: 74 68 65 20 62 61 63 6b 73 6c 61 73 68 20 27 5c  the backslash '\
abe0: 27 20 63 68 61 72 61 63 74 65 72 20 69 6e 20 74  ' character in t
abf0: 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65  he output of the
ac00: 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 3c 2f  .    <b>sqlite</
ac10: 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20  b> command-line 
ac20: 61 63 63 65 73 73 20 70 72 6f 67 72 61 6d 2e 3c  access program.<
ac30: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
ac40: 30 32 20 4a 61 6e 20 32 32 20 28 32 2e 32 2e 34  02 Jan 22 (2.2.4
ac50: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c 61 62  )} {.<li>The lab
ac60: 65 6c 20 74 6f 20 74 68 65 20 72 69 67 68 74 20  el to the right 
ac70: 6f 66 20 61 6e 20 41 53 20 69 6e 20 74 68 65 20  of an AS in the 
ac80: 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61  column list of a
ac90: 20 53 45 4c 45 43 54 20 63 61 6e 20 6e 6f 77 0a   SELECT can now.
aca0: 20 20 20 20 62 65 20 75 73 65 64 20 61 73 20 70      be used as p
acb0: 61 72 74 20 6f 66 20 61 6e 20 65 78 70 72 65 73  art of an expres
acc0: 73 69 6f 6e 20 69 6e 20 74 68 65 20 57 48 45 52  sion in the WHER
acd0: 45 2c 20 4f 52 44 45 52 20 42 59 2c 20 47 52 4f  E, ORDER BY, GRO
ace0: 55 50 20 42 59 2c 20 61 6e 64 2f 6f 72 0a 20 20  UP BY, and/or.  
acf0: 20 20 48 41 56 49 4e 47 20 63 6c 61 75 73 65 73    HAVING clauses
ad00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
ad10: 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 2d   bug in the <b>-
ad20: 73 65 70 61 72 61 74 6f 72 3c 2f 62 3e 20 63 6f  separator</b> co
ad30: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f  mmand-line optio
ad40: 6e 20 74 6f 20 74 68 65 20 3c 62 3e 73 71 6c 69  n to the <b>sqli
ad50: 74 65 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d 6d 61  te</b>.    comma
ad60: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  nd.</li>.<li>Fix
ad70: 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20   a problem with 
ad80: 74 68 65 20 73 6f 72 74 20 6f 72 64 65 72 20 77  the sort order w
ad90: 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20 75 70  hen comparing up
ada0: 70 65 72 2d 63 61 73 65 20 73 74 72 69 6e 67 73  per-case strings
adb0: 20 61 67 61 69 6e 73 74 0a 20 20 20 20 63 68 61   against.    cha
adc0: 72 61 63 74 65 72 73 20 67 72 65 61 74 65 72 20  racters greater 
add0: 74 68 61 6e 20 27 5a 27 20 62 75 74 20 6c 65 73  than 'Z' but les
ade0: 73 20 74 68 61 6e 20 27 61 27 2e 3c 2f 6c 69 3e  s than 'a'.</li>
adf0: 0a 3c 6c 69 3e 52 65 70 6f 72 74 20 61 6e 20 65  .<li>Report an e
ae00: 72 72 6f 72 20 69 66 20 61 6e 20 4f 52 44 45 52  rror if an ORDER
ae10: 20 42 59 20 6f 72 20 47 52 4f 55 50 20 42 59 20   BY or GROUP BY 
ae20: 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 63 6f  expression is co
ae30: 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  nstant.</li>.}..
ae40: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31  chng {2002 Jan 1
ae50: 36 20 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c 6c 69  6 (2.2.3)} {.<li
ae60: 3e 46 69 78 20 77 61 72 6e 69 6e 67 20 6d 65 73  >Fix warning mes
ae70: 73 61 67 65 73 20 69 6e 20 56 43 2b 2b 20 37 2e  sages in VC++ 7.
ae80: 30 2e 20 20 28 50 61 74 63 68 65 73 20 66 72 6f  0.  (Patches fro
ae90: 6d 20 6e 69 63 6f 6c 61 73 33 35 32 30 30 31 29  m nicolas352001)
aea0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
aeb0: 68 65 20 6c 69 62 72 61 72 79 20 74 68 72 65 61  he library threa
aec0: 64 2d 73 61 66 65 2e 20 20 28 54 68 65 20 63 6f  d-safe.  (The co
aed0: 64 65 20 69 73 20 74 68 65 72 65 20 61 6e 64 20  de is there and 
aee0: 61 70 70 65 61 72 73 20 74 6f 20 77 6f 72 6b 0a  appears to work.
aef0: 20 20 20 20 62 75 74 20 68 61 73 20 6e 6f 74 20      but has not 
af00: 62 65 65 6e 20 73 74 72 65 73 73 65 64 2e 29 3c  been stressed.)<
af10: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
af20: 68 65 20 6e 65 77 20 3c 62 3e 73 71 6c 69 74 65  he new <b>sqlite
af30: 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72 6f 77  _last_insert_row
af40: 69 64 28 29 3c 2f 62 3e 20 41 50 49 20 66 75 6e  id()</b> API fun
af50: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ction.</li>.}..c
af60: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 31 33  hng {2002 Jan 13
af70: 20 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.2)} {.<li>
af80: 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65  Bug fix: An asse
af90: 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e  rtion was failin
afa0: 67 20 77 68 65 6e 20 61 20 74 65 6d 70 6f 72 61  g when a tempora
afb0: 72 79 20 74 61 62 6c 65 20 77 69 74 68 20 61 6e  ry table with an
afc0: 20 69 6e 64 65 78 0a 20 20 20 20 68 61 64 20 74   index.    had t
afd0: 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 73 20  he same name as 
afe0: 61 20 70 65 72 6d 61 6e 65 6e 74 20 74 61 62 6c  a permanent tabl
aff0: 65 20 63 72 65 61 74 65 64 20 62 79 20 61 20 73  e created by a s
b000: 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2e  eparate process.
b010: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
b020: 78 3a 20 55 70 64 61 74 65 73 20 74 6f 20 74 61  x: Updates to ta
b030: 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20  bles containing 
b040: 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  an INTEGER PRIMA
b050: 52 59 20 4b 45 59 20 61 6e 64 20 61 6e 0a 20 20  RY KEY and an.  
b060: 20 20 69 6e 64 65 78 20 63 6f 75 6c 64 20 66 61    index could fa
b070: 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  il.</li>.}..chng
b080: 20 7b 32 30 30 32 20 4a 61 6e 20 39 20 28 32 2e   {2002 Jan 9 (2.
b090: 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  2.1)} {.<li>Bug 
b0a0: 66 69 78 3a 20 41 6e 20 61 74 74 65 6d 70 74 20  fix: An attempt 
b0b0: 74 6f 20 64 65 6c 65 74 65 20 61 20 73 69 6e 67  to delete a sing
b0c0: 6c 65 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c  le row of a tabl
b0d0: 65 20 77 69 74 68 20 61 20 57 48 45 52 45 0a 20  e with a WHERE. 
b0e0: 20 20 20 63 6c 61 75 73 65 20 6f 66 20 22 52 4f     clause of "RO
b0f0: 57 49 44 3d 78 22 20 77 68 65 6e 20 6e 6f 20 73  WID=x" when no s
b100: 75 63 68 20 72 6f 77 69 64 20 65 78 69 73 74 73  uch rowid exists
b110: 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 6e 20   was causing an 
b120: 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  error.</li>.<li>
b130: 42 75 67 20 66 69 78 3a 20 50 61 73 73 69 6e 67  Bug fix: Passing
b140: 20 69 6e 20 61 20 4e 55 4c 4c 20 61 73 20 74 68   in a NULL as th
b150: 65 20 33 72 64 20 70 61 72 61 6d 65 74 65 72 20  e 3rd parameter 
b160: 74 6f 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65  to <b>sqlite_ope
b170: 6e 28 29 3c 2f 62 3e 0a 20 20 20 20 77 6f 75 6c  n()</b>.    woul
b180: 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73  d sometimes caus
b190: 65 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c  e a coredump.</l
b1a0: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
b1b0: 44 52 4f 50 20 54 41 42 4c 45 20 66 6f 6c 6c 6f  DROP TABLE follo
b1c0: 77 65 64 20 62 79 20 61 20 43 52 45 41 54 45 20  wed by a CREATE 
b1d0: 54 41 42 4c 45 20 77 69 74 68 20 74 68 65 20 73  TABLE with the s
b1e0: 61 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a 20 20 20  ame name all.   
b1f0: 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65   within a single
b200: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73   transaction was
b210: 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72 65 64   causing a cored
b220: 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  ump.</li>.<li>Ma
b230: 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 20 66  kefile updates f
b240: 72 6f 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 3c  rom A. Rottmann<
b250: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
b260: 30 31 20 44 65 63 20 32 32 20 28 32 2e 32 2e 30  01 Dec 22 (2.2.0
b270: 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 73  )} {.<li>Columns
b280: 20 6f 66 20 74 79 70 65 20 49 4e 54 45 47 45 52   of type INTEGER
b290: 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61 72 65   PRIMARY KEY are
b2a0: 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64 20 61   actually used a
b2b0: 73 20 74 68 65 20 70 72 69 6d 61 72 79 0a 20 20  s the primary.  
b2c0: 20 20 6b 65 79 20 69 6e 20 75 6e 64 65 72 6c 79    key in underly
b2d0: 69 6e 67 20 42 2d 54 72 65 65 20 72 65 70 72 65  ing B-Tree repre
b2e0: 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65  sentation of the
b2f0: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69   table.</li>.<li
b300: 3e 53 65 76 65 72 61 6c 20 6f 62 73 63 75 72 65  >Several obscure
b310: 2c 20 75 6e 72 65 6c 61 74 65 64 20 62 75 67 73  , unrelated bugs
b320: 20 77 65 72 65 20 66 6f 75 6e 64 20 61 6e 64 20   were found and 
b330: 66 69 78 65 64 20 77 68 69 6c 65 20 0a 20 20 20  fixed while .   
b340: 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74 68 65   implemented the
b350: 20 69 6e 74 65 67 65 72 20 70 72 69 6d 61 72 79   integer primary
b360: 20 6b 65 79 20 63 68 61 6e 67 65 20 6f 66 20 74   key change of t
b370: 68 65 20 70 72 65 76 69 6f 75 73 20 62 75 6c 6c  he previous bull
b380: 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  et.</li>.<li>Add
b390: 65 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  ed the ability t
b3a0: 6f 20 73 70 65 63 69 66 79 20 22 2a 22 20 61 73  o specify "*" as
b3b0: 20 70 61 72 74 20 6f 66 20 61 20 6c 61 72 67 65   part of a large
b3c0: 72 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 69 6e  r column list in
b3d0: 0a 20 20 20 20 74 68 65 20 72 65 73 75 6c 74 20  .    the result 
b3e0: 73 65 63 74 69 6f 6e 20 6f 66 20 61 20 53 45 4c  section of a SEL
b3f0: 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e 20 20  ECT statement.  
b400: 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 20 20  For example:.   
b410: 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c 45 43   <nobr>"<b>SELEC
b420: 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f 4d 20  T rowid, * FROM 
b430: 74 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f  table1;</b>"</no
b440: 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70  br>.</li>.<li>Up
b450: 64 61 74 65 73 20 74 6f 20 63 6f 6d 6d 65 6e 74  dates to comment
b460: 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74  s and documentat
b470: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ion.</li>.}..chn
b480: 67 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28  g {2001 Dec 14 (
b490: 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.7)} {.<li>Fi
b4a0: 78 20 61 20 62 75 67 20 69 6e 20 3c 62 3e 43 52  x a bug in <b>CR
b4b0: 45 41 54 45 20 54 45 4d 50 4f 52 41 52 59 20 54  EATE TEMPORARY T
b4c0: 41 42 4c 45 3c 2f 62 3e 20 77 68 69 63 68 20 77  ABLE</b> which w
b4d0: 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 0a 20  as causing the. 
b4e0: 20 20 20 74 61 62 6c 65 20 74 6f 20 62 65 20 69     table to be i
b4f0: 6e 69 74 69 61 6c 6c 79 20 61 6c 6c 6f 63 61 74  nitially allocat
b500: 65 64 20 69 6e 20 74 68 65 20 6d 61 69 6e 20 64  ed in the main d
b510: 61 74 61 62 61 73 65 20 66 69 6c 65 20 69 6e 73  atabase file ins
b520: 74 65 61 64 0a 20 20 20 20 6f 66 20 69 6e 20 74  tead.    of in t
b530: 68 65 20 73 65 70 61 72 61 74 65 20 74 65 6d 70  he separate temp
b540: 6f 72 61 72 79 20 66 69 6c 65 2e 20 20 54 68 69  orary file.  Thi
b550: 73 20 62 75 67 20 63 6f 75 6c 64 20 63 61 75 73  s bug could caus
b560: 65 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20  e the library.  
b570: 20 20 74 6f 20 73 75 66 66 65 72 20 61 6e 20 61    to suffer an a
b580: 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65  ssertion failure
b590: 20 61 6e 64 20 69 74 20 63 6f 75 6c 64 20 63 61   and it could ca
b5a0: 75 73 65 20 22 70 61 67 65 20 6c 65 61 6b 73 22  use "page leaks"
b5b0: 20 69 6e 20 74 68 65 0a 20 20 20 20 6d 61 69 6e   in the.    main
b5c0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 0a   database file..
b5d0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
b5e0: 20 74 68 65 20 62 2d 74 72 65 65 20 73 75 62 73   the b-tree subs
b5f0: 79 73 74 65 6d 20 74 68 61 74 20 63 6f 75 6c 64  ystem that could
b600: 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65   sometimes cause
b610: 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 72   the first.    r
b620: 6f 77 20 6f 66 20 61 20 74 61 62 6c 65 20 74 6f  ow of a table to
b630: 20 62 65 20 72 65 70 65 61 74 65 64 20 64 75 72   be repeated dur
b640: 69 6e 67 20 61 20 64 61 74 61 62 61 73 65 20 73  ing a database s
b650: 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  can.</li>.}..chn
b660: 67 20 7b 32 30 30 31 20 44 65 63 20 31 34 20 28  g {2001 Dec 14 (
b670: 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.6)} {.<li>Fi
b680: 78 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 6d 65  x the locking me
b690: 63 68 61 6e 69 73 6d 20 79 65 74 20 61 67 61 69  chanism yet agai
b6a0: 6e 20 74 6f 20 70 72 65 76 65 6e 74 0a 20 20 20  n to prevent.   
b6b0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28   <b>sqlite_exec(
b6c0: 29 3c 2f 62 3e 20 66 72 6f 6d 20 72 65 74 75 72  )</b> from retur
b6d0: 6e 69 6e 67 20 53 51 4c 49 54 45 5f 50 52 4f 54  ning SQLITE_PROT
b6e0: 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65 73  OCOL.    unneces
b6f0: 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74 69  sarily.  This ti
b700: 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 20 61  me the bug was a
b710: 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20   race condition 
b720: 69 6e 0a 20 20 20 20 74 68 65 20 6c 6f 63 6b 69  in.    the locki
b730: 6e 67 20 63 6f 64 65 2e 20 20 54 68 69 73 20 63  ng code.  This c
b740: 68 61 6e 67 65 20 65 66 66 65 63 74 73 20 62 6f  hange effects bo
b750: 74 68 20 50 4f 53 49 58 20 61 6e 64 20 57 69 6e  th POSIX and Win
b760: 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e  dows users.</li>
b770: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
b780: 65 63 20 36 20 28 32 2e 31 2e 35 29 7d 20 7b 0a  ec 6 (2.1.5)} {.
b790: 3c 6c 69 3e 46 69 78 20 66 6f 72 20 61 6e 6f 74  <li>Fix for anot
b7a0: 68 65 72 20 70 72 6f 62 6c 65 6d 20 28 75 6e 72  her problem (unr
b7b0: 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 6f 6e  elated to the on
b7c0: 65 20 66 69 78 65 64 20 69 6e 20 32 2e 31 2e 34  e fixed in 2.1.4
b7d0: 29 20 0a 20 20 20 20 74 68 61 74 20 73 6f 6d 65  ) .    that some
b7e0: 74 69 6d 65 73 20 63 61 75 73 65 73 20 3c 62 3e  times causes <b>
b7f0: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62  sqlite_exec()</b
b800: 3e 20 74 6f 20 72 65 74 75 72 6e 20 53 51 4c 49  > to return SQLI
b810: 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20  TE_PROTOCOL.    
b820: 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20  unnecessarily.  
b830: 54 68 69 73 20 74 69 6d 65 20 74 68 65 20 62 75  This time the bu
b840: 67 20 77 61 73 0a 20 20 20 20 69 6e 20 74 68 65  g was.    in the
b850: 20 50 4f 53 49 58 20 6c 6f 63 6b 69 6e 67 20 63   POSIX locking c
b860: 6f 64 65 20 61 6e 64 20 73 68 6f 75 6c 64 20 6e  ode and should n
b870: 6f 74 20 65 66 66 65 63 74 20 77 69 6e 64 6f 77  ot effect window
b880: 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a  s users.</li>.}.
b890: 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20  .chng {2001 Dec 
b8a0: 34 20 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c 6c 69  4 (2.1.4)} {.<li
b8b0: 3e 53 6f 6d 65 74 69 6d 65 73 20 3c 62 3e 73 71  >Sometimes <b>sq
b8c0: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
b8d0: 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 53 51 4c  would return SQL
b8e0: 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 77 68 65  ITE_PROTOCOL whe
b8f0: 6e 20 69 74 0a 20 20 20 20 73 68 6f 75 6c 64 20  n it.    should 
b900: 68 61 76 65 20 72 65 74 75 72 6e 65 64 20 53 51  have returned SQ
b910: 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69 3e 0a  LITE_BUSY.</li>.
b920: 3c 6c 69 3e 54 68 65 20 66 69 78 20 74 6f 20 74  <li>The fix to t
b930: 68 65 20 70 72 65 76 69 6f 75 73 20 62 75 67 20  he previous bug 
b940: 75 6e 63 6f 76 65 72 65 64 20 61 20 64 65 61 64  uncovered a dead
b950: 6c 6f 63 6b 20 77 68 69 63 68 20 77 61 73 20 61  lock which was a
b960: 6c 73 6f 0a 20 20 20 20 66 69 78 65 64 2e 3c 2f  lso.    fixed.</
b970: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
b980: 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 61  ability to put a
b990: 20 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61 6e 64   single .command
b9a0: 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 61   in the second a
b9b0: 72 67 75 6d 65 6e 74 0a 20 20 20 20 6f 66 20 74  rgument.    of t
b9c0: 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 3c  he sqlite shell<
b9d0: 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73  /li>.<li>Updates
b9e0: 20 74 6f 20 74 68 65 20 46 41 51 3c 2f 6c 69 3e   to the FAQ</li>
b9f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
ba00: 6f 76 20 32 33 20 28 32 2e 31 2e 33 29 7d 20 7b  ov 23 (2.1.3)} {
ba10: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 62 65 68  .<li>Fix the beh
ba20: 61 76 69 6f 72 20 6f 66 20 63 6f 6d 70 61 72 69  avior of compari
ba30: 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20 0a 20  son operators . 
ba40: 20 20 20 28 65 78 3a 20 22 3c 62 3e 26 6c 74 3c     (ex: "<b>&lt<
ba50: 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f 62 3e  /b>", "<b>==</b>
ba60: 22 2c 20 65 74 63 2e 29 0a 20 20 20 20 73 6f 20  ", etc.).    so 
ba70: 74 68 61 74 20 74 68 65 79 20 61 72 65 20 63 6f  that they are co
ba80: 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68  nsistent with th
ba90: 65 20 6f 72 64 65 72 20 6f 66 20 65 6e 74 72 69  e order of entri
baa0: 65 73 20 69 6e 20 61 6e 20 69 6e 64 65 78 2e 3c  es in an index.<
bab0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74  /li>.<li>Correct
bac0: 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 69 6e 74   handling of int
bad0: 65 67 65 72 73 20 69 6e 20 53 51 4c 20 65 78 70  egers in SQL exp
bae0: 72 65 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72  ressions that ar
baf0: 65 20 6c 61 72 67 65 72 20 74 68 61 6e 0a 20 20  e larger than.  
bb00: 20 20 77 68 61 74 20 63 61 6e 20 62 65 20 72 65    what can be re
bb10: 70 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 65  presented by the
bb20: 20 6d 61 63 68 69 6e 65 20 69 6e 74 65 67 65 72   machine integer
bb30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
bb40: 32 30 30 31 20 4e 6f 76 20 32 32 20 28 32 2e 31  2001 Nov 22 (2.1
bb50: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .2)} {.<li>Chang
bb60: 65 73 20 74 6f 20 73 75 70 70 6f 72 74 20 36 34  es to support 64
bb70: 2d 62 69 74 20 61 72 63 68 69 74 65 63 74 75 72  -bit architectur
bb80: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
bb90: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 6c 6f   a bug in the lo
bba0: 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c 2e 3c  cking protocol.<
bbb0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
bbc0: 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20 28 72  ug that could (r
bbd0: 61 72 65 6c 79 29 20 63 61 75 73 65 20 74 68 65  arely) cause the
bbe0: 20 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 63   database to bec
bbf0: 6f 6d 65 20 0a 20 20 20 20 75 6e 72 65 61 64 61  ome .    unreada
bc00: 62 6c 65 20 61 66 74 65 72 20 61 20 44 52 4f 50  ble after a DROP
bc10: 20 54 41 42 4c 45 20 64 75 65 20 74 6f 20 63 6f   TABLE due to co
bc20: 72 72 75 70 74 69 6f 6e 20 74 6f 20 74 68 65 20  rruption to the 
bc30: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 0a 20 20  SQLITE_MASTER.  
bc40: 20 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c    table.</li>.<l
bc50: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 63 6f 64  i>Change the cod
bc60: 65 20 73 6f 20 74 68 61 74 20 76 65 72 73 69 6f  e so that versio
bc70: 6e 20 32 2e 31 2e 31 20 64 61 74 61 62 61 73 65  n 2.1.1 database
bc80: 73 20 74 68 61 74 20 77 65 72 65 20 72 65 6e 64  s that were rend
bc90: 65 72 65 64 20 0a 20 20 20 20 75 6e 72 65 61 64  ered .    unread
bca0: 61 62 6c 65 20 62 79 20 74 68 65 20 61 62 6f 76  able by the abov
bcb0: 65 20 62 75 67 20 63 61 6e 20 62 65 20 72 65 61  e bug can be rea
bcc0: 64 20 62 79 20 74 68 69 73 20 76 65 72 73 69 6f  d by this versio
bcd0: 6e 20 6f 66 0a 20 20 20 20 74 68 65 20 6c 69 62  n of.    the lib
bce0: 72 61 72 79 20 65 76 65 6e 20 74 68 6f 75 67 68  rary even though
bcf0: 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54   the SQLITE_MAST
bd00: 45 52 20 74 61 62 6c 65 20 69 73 20 28 73 6c 69  ER table is (sli
bd10: 67 68 74 6c 79 29 0a 20 20 20 20 63 6f 72 72 75  ghtly).    corru
bd20: 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  pted.</li>.}..ch
bd30: 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31 33 20  ng {2001 Nov 13 
bd40: 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.1.1)} {.<li>B
bd50: 75 67 20 66 69 78 3a 20 53 6f 6d 65 74 69 6d 65  ug fix: Sometime
bd60: 73 20 61 72 62 69 74 72 61 72 79 20 73 74 72 69  s arbitrary stri
bd70: 6e 67 73 20 77 65 72 65 20 70 61 73 73 65 64 20  ngs were passed 
bd80: 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 0a  to the callback.
bd90: 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 77 68 65      function whe
bda0: 6e 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c  n the actual val
bdb0: 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 77  ue of a column w
bdc0: 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a  as NULL.</li>.}.
bdd0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
bde0: 31 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a 3c 6c  12 (2.1.0)} {.<l
bdf0: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72  i>Change the for
be00: 6d 61 74 20 6f 66 20 64 61 74 61 20 72 65 63 6f  mat of data reco
be10: 72 64 73 20 73 6f 20 74 68 61 74 20 72 65 63 6f  rds so that reco
be20: 72 64 73 20 75 70 20 74 6f 20 31 36 4d 42 20 69  rds up to 16MB i
be30: 6e 20 73 69 7a 65 0a 20 20 20 20 63 61 6e 20 62  n size.    can b
be40: 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c  e stored.</li>.<
be50: 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66 6f  li>Change the fo
be60: 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65 73 20  rmat of indices 
be70: 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62 65 74  to allow for bet
be80: 74 65 72 20 71 75 65 72 79 20 6f 70 74 69 6d 69  ter query optimi
be90: 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  zation.</li>.<li
bea0: 3e 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20 22  >Implement the "
beb0: 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53 45 54  LIMIT ... OFFSET
bec0: 20 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f 6e 20   ..." clause on 
bed0: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
bee0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
bef0: 7b 32 30 30 31 20 4e 6f 76 20 33 20 28 32 2e 30  {2001 Nov 3 (2.0
bf00: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64 65 20  .8)} {.<li>Made 
bf10: 73 65 6c 65 63 74 65 64 20 70 61 72 61 6d 65 74  selected paramet
bf20: 65 72 73 20 69 6e 20 41 50 49 20 66 75 6e 63 74  ers in API funct
bf30: 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c 2f 62  ions <b>const</b
bf40: 3e 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 0a 20  >. This should. 
bf50: 20 20 20 62 65 20 66 75 6c 6c 79 20 62 61 63 6b     be fully back
bf60: 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 6c 65  wards compatible
bf70: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d  .</li>.<li>Docum
bf80: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
bf90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70 6c 69  </li>.<li>Simpli
bfa0: 66 79 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66  fy the design of
bfb0: 20 74 68 65 20 56 44 42 45 20 62 79 20 72 65 73   the VDBE by res
bfc0: 74 72 69 63 74 69 6e 67 20 74 68 65 20 6e 75 6d  tricting the num
bfd0: 62 65 72 20 6f 66 20 73 6f 72 74 65 72 73 0a 20  ber of sorters. 
bfe0: 20 20 20 61 6e 64 20 6c 69 73 74 73 20 74 6f 20     and lists to 
bff0: 31 2e 0a 20 20 20 20 49 6e 20 70 72 61 63 74 69  1..    In practi
c000: 63 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e  ce, no more than
c010: 20 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e 64 20   one sorter and 
c020: 6f 6e 65 20 6c 69 73 74 20 77 61 73 20 65 76 65  one list was eve
c030: 72 20 75 73 65 64 20 61 6e 79 68 6f 77 2e 0a 20  r used anyhow.. 
c040: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
c050: 20 7b 32 30 30 31 20 4f 63 74 20 32 31 20 28 32   {2001 Oct 21 (2
c060: 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 79  .0.7)} {.<li>Any
c070: 20 55 54 46 2d 38 20 63 68 61 72 61 63 74 65 72   UTF-8 character
c080: 20 6f 72 20 49 53 4f 38 38 35 39 20 63 68 61 72   or ISO8859 char
c090: 61 63 74 65 72 20 63 61 6e 20 62 65 20 75 73 65  acter can be use
c0a0: 64 20 61 73 20 70 61 72 74 20 6f 66 0a 20 20 20  d as part of.   
c0b0: 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2e 3c   an identifier.<
c0c0: 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68 65 73  /li>.<li>Patches
c0d0: 20 66 72 6f 6d 20 43 68 72 69 73 74 69 61 6e 20   from Christian 
c0e0: 57 65 72 6e 65 72 20 74 6f 20 69 6d 70 72 6f 76  Werner to improv
c0f0: 65 20 4f 44 42 43 20 63 6f 6d 70 61 74 69 62 69  e ODBC compatibi
c100: 6c 69 74 79 20 61 6e 64 20 74 6f 0a 20 20 20 20  lity and to.    
c110: 66 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  fix a bug in the
c120: 20 72 6f 75 6e 64 28 29 20 66 75 6e 63 74 69 6f   round() functio
c130: 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c 75 67  n.</li>.<li>Plug
c140: 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c 65 61   some memory lea
c150: 6b 73 20 74 68 61 74 20 75 73 65 20 74 6f 20 6f  ks that use to o
c160: 63 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63 28 29  ccur if malloc()
c170: 20 66 61 69 6c 65 64 2e 0a 20 20 20 20 57 65 20   failed..    We 
c180: 68 61 76 65 20 62 65 65 6e 20 61 6e 64 20 63 6f  have been and co
c190: 6e 74 69 6e 75 65 20 74 6f 20 62 65 20 6d 65 6d  ntinue to be mem
c1a0: 6f 72 79 20 6c 65 61 6b 20 66 72 65 65 20 61 73  ory leak free as
c1b0: 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d 61 6c   long as.    mal
c1c0: 6c 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f 6c 69  loc() works.</li
c1d0: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  >.<li>Changes to
c1e0: 20 73 6f 6d 65 20 74 65 73 74 20 73 63 72 69 70   some test scrip
c1f0: 74 73 20 73 6f 20 74 68 61 74 20 74 68 65 79 20  ts so that they 
c200: 77 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77 73 20  work on Windows 
c210: 69 6e 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 20  in.    addition 
c220: 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a  to Unix.</li>.}.
c230: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20  .chng {2001 Oct 
c240: 31 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a 3c 6c  19 (2.0.6)} {.<l
c250: 69 3e 41 64 64 65 64 20 74 68 65 20 45 4d 50 54  i>Added the EMPT
c260: 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42 41 43  Y_RESULT_CALLBAC
c270: 4b 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c  KS pragma</li>.<
c280: 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 55  li>Support for U
c290: 54 46 2d 38 20 61 6e 64 20 49 53 4f 38 38 35 39  TF-8 and ISO8859
c2a0: 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 63   characters in c
c2b0: 6f 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c 65 20  olumn and table 
c2c0: 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  names.</li>.<li>
c2d0: 42 75 67 20 66 69 78 3a 20 43 6f 6d 70 75 74 65  Bug fix: Compute
c2e0: 20 63 6f 72 72 65 63 74 20 74 61 62 6c 65 20 6e   correct table n
c2f0: 61 6d 65 73 20 77 69 74 68 20 74 68 65 20 46 55  ames with the FU
c300: 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20  LL_COLUMN_NAMES 
c310: 70 72 61 67 6d 61 0a 20 20 20 20 69 73 20 74 75  pragma.    is tu
c320: 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  rned on.</li>.}.
c330: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20  .chng {2001 Oct 
c340: 31 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a 3c 6c  14 (2.0.5)} {.<l
c350: 69 3e 41 64 64 65 64 20 74 68 65 20 43 4f 55 4e  i>Added the COUN
c360: 54 5f 43 48 41 4e 47 45 53 20 70 72 61 67 6d 61  T_CHANGES pragma
c370: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
c380: 65 73 20 74 6f 20 74 68 65 20 46 55 4c 4c 5f 43  es to the FULL_C
c390: 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67  OLUMN_NAMES prag
c3a0: 6d 61 20 74 6f 20 68 65 6c 70 20 6f 75 74 20 74  ma to help out t
c3b0: 68 65 20 4f 44 42 43 20 64 72 69 76 65 72 2e 3c  he ODBC driver.<
c3c0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
c3d0: 3a 20 22 53 45 4c 45 43 54 20 63 6f 75 6e 74 28  : "SELECT count(
c3e0: 2a 29 22 20 77 61 73 20 72 65 74 75 72 6e 69 6e  *)" was returnin
c3f0: 67 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70 74 79  g NULL for empty
c400: 20 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e 6f 77   tables..    Now
c410: 20 69 74 20 72 65 74 75 72 6e 73 20 30 2e 3c 2f   it returns 0.</
c420: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c430: 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 34 29  1 Oct 13 (2.0.4)
c440: 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  } {.<li>Bug fix:
c450: 20 61 6e 20 6f 62 73 63 75 72 65 20 61 6e 64 20   an obscure and 
c460: 72 65 6c 61 74 69 76 65 6c 79 20 68 61 72 6d 6c  relatively harml
c470: 65 73 73 20 62 75 67 20 77 61 73 20 63 61 75 73  ess bug was caus
c480: 69 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20 20 74  ing one of.    t
c490: 68 65 20 74 65 73 74 73 20 74 6f 20 66 61 69 6c  he tests to fail
c4a0: 20 77 68 65 6e 20 67 63 63 20 6f 70 74 69 6d 69   when gcc optimi
c4b0: 7a 61 74 69 6f 6e 73 20 61 72 65 20 74 75 72 6e  zations are turn
c4c0: 65 64 20 6f 6e 2e 20 20 54 68 69 73 20 72 65 6c  ed on.  This rel
c4d0: 65 61 73 65 0a 20 20 20 20 66 69 78 65 73 20 74  ease.    fixes t
c4e0: 68 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c 69 3e  he problem.</li>
c4f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f  .}..chng {2001 O
c500: 63 74 20 31 33 20 28 32 2e 30 2e 33 29 7d 20 7b  ct 13 (2.0.3)} {
c510: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 74 68  .<li>Bug fix: th
c520: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79  e <b>sqlite_busy
c530: 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 66  _timeout()</b> f
c540: 75 6e 63 74 69 6f 6e 20 77 61 73 20 64 65 6c 61  unction was dela
c550: 79 69 6e 67 20 31 30 30 30 0a 20 20 20 20 74 69  ying 1000.    ti
c560: 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62 65 66  mes too long bef
c570: 6f 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f 6c 69  ore failing.</li
c580: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 61  >.<li>Bug fix: a
c590: 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20  n assertion was 
c5a0: 66 61 69 6c 69 6e 67 20 69 66 20 74 68 65 20 64  failing if the d
c5b0: 69 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68 65 20  isk holding the 
c5c0: 64 61 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c  database.    fil
c5d0: 65 20 62 65 63 61 6d 65 20 66 75 6c 6c 20 6f 72  e became full or
c5e0: 20 73 74 6f 70 70 65 64 20 61 63 63 65 70 74 69   stopped accepti
c5f0: 6e 67 20 77 72 69 74 65 73 20 66 6f 72 20 73 6f  ng writes for so
c600: 6d 65 20 6f 74 68 65 72 20 72 65 61 73 6f 6e 2e  me other reason.
c610: 0a 20 20 20 20 4e 65 77 20 74 65 73 74 73 20 77  .    New tests w
c620: 65 72 65 20 61 64 64 65 64 20 74 6f 20 64 65 74  ere added to det
c630: 65 63 74 20 73 69 6d 69 6c 61 72 20 70 72 6f 62  ect similar prob
c640: 6c 65 6d 73 20 69 6e 20 74 68 65 20 66 75 74 75  lems in the futu
c650: 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  re.</li>.<li>Add
c660: 65 64 20 6e 65 77 20 6f 70 65 72 61 74 6f 72 73  ed new operators
c670: 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e 20 28  : <b>&amp;</b> (
c680: 62 69 74 77 69 73 65 2d 61 6e 64 29 0a 20 20 20  bitwise-and).   
c690: 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74 77 69   <b>|</b> (bitwi
c6a0: 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f 62 3e  se-or), <b>~</b>
c6b0: 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d 65 6e   (ones-complemen
c6c0: 74 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74 3b 26  t),.    <b>&lt;&
c6d0: 6c 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 6c  lt;</b> (shift l
c6e0: 65 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26 67 74  eft), <b>&gt;&gt
c6f0: 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 72 69 67  ;</b> (shift rig
c700: 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ht).</li>.<li>Ad
c710: 64 65 64 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e  ded new function
c720: 73 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c 2f 62  s: <b>round()</b
c730: 3e 20 61 6e 64 20 3c 62 3e 61 62 73 28 29 3c 2f  > and <b>abs()</
c740: 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  b>.</li>.}..chng
c750: 20 7b 32 30 30 31 20 4f 63 74 20 39 20 28 32 2e   {2001 Oct 9 (2.
c760: 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  0.2)} {.<li>Fix 
c770: 74 77 6f 20 62 75 67 73 20 69 6e 20 74 68 65 20  two bugs in the 
c780: 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c  locking protocol
c790: 2e 20 20 28 4f 6e 65 20 77 61 73 20 6d 61 73 6b  .  (One was mask
c7a0: 69 6e 67 20 74 68 65 20 6f 74 68 65 72 2e 29 3c  ing the other.)<
c7b0: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64  /li>.<li>Removed
c7c0: 20 73 6f 6d 65 20 75 6e 75 73 65 64 20 22 23 69   some unused "#i
c7d0: 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68  nclude <unistd.h
c7e0: 3e 22 20 74 68 61 74 20 77 65 72 65 20 63 61 75  >" that were cau
c7f0: 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20  sing problems.  
c800: 20 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c 69 3e    for VC++.</li>
c810: 0a 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e 73 71  .<li>Fixed <b>sq
c820: 6c 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20 74 68  lite.h</b> so th
c830: 61 74 20 69 74 20 69 73 20 75 73 61 62 6c 65 20  at it is usable 
c840: 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a 3c 6c  from C++</li>.<l
c850: 69 3e 41 64 64 65 64 20 74 68 65 20 46 55 4c 4c  i>Added the FULL
c860: 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72  _COLUMN_NAMES pr
c870: 61 67 6d 61 2e 20 20 57 68 65 6e 20 73 65 74 20  agma.  When set 
c880: 74 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e 61 6d  to "ON", the nam
c890: 65 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75 6d 6e  es of.    column
c8a0: 73 20 61 72 65 20 72 65 70 6f 72 74 65 64 20 62  s are reported b
c8b0: 61 63 6b 20 61 73 20 54 41 42 4c 45 2e 43 4f 4c  ack as TABLE.COL
c8c0: 55 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66 20 6a  UMN instead of j
c8d0: 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e  ust COLUMN.</li>
c8e0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 54  .<li>Added the T
c8f0: 41 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e 64 20  ABLE_INFO() and 
c900: 49 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70 72 61  INDEX_INFO() pra
c910: 67 6d 61 73 20 74 6f 20 68 65 6c 70 20 73 75 70  gmas to help sup
c920: 70 6f 72 74 20 74 68 65 0a 20 20 20 20 4f 44 42  port the.    ODB
c930: 43 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69  C interface.</li
c940: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
c950: 6f 72 74 20 66 6f 72 20 54 45 4d 50 4f 52 41 52  ort for TEMPORAR
c960: 59 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e 64  Y tables and ind
c970: 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ices.</li>.}..ch
c980: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32 20 28  ng {2001 Oct 2 (
c990: 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 52 65  2.0.1)} {.<li>Re
c9a0: 6d 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20 73 74  move some C++ st
c9b0: 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66 72 6f  yle comments fro
c9c0: 6d 20 62 74 72 65 65 2e 63 20 73 6f 20 74 68 61  m btree.c so tha
c9d0: 74 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70 69 6c  t it will compil
c9e0: 65 0a 20 20 20 20 75 73 69 6e 67 20 63 6f 6d 70  e.    using comp
c9f0: 69 6c 65 72 73 20 6f 74 68 65 72 20 74 68 61 6e  ilers other than
ca00: 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54   gcc.</li>.<li>T
ca10: 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70 75  he ".dump" outpu
ca20: 74 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c  t from the shell
ca30: 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b 20 69   does not work i
ca40: 66 20 74 68 65 72 65 20 61 72 65 20 65 6d 62 65  f there are embe
ca50: 64 64 65 64 0a 20 20 20 20 6e 65 77 6c 69 6e 65  dded.    newline
ca60: 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68  s anywhere in th
ca70: 65 20 64 61 74 61 2e 20 20 54 68 69 73 20 69 73  e data.  This is
ca80: 20 61 6e 20 6f 6c 64 20 62 75 67 20 74 68 61 74   an old bug that
ca90: 20 77 61 73 20 63 61 72 72 69 65 64 0a 20 20 20   was carried.   
caa0: 20 66 6f 72 77 61 72 64 20 66 72 6f 6d 20 76 65   forward from ve
cab0: 72 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f 20 66  rsion 1.0.  To f
cac0: 69 78 20 69 74 2c 20 74 68 65 20 22 2e 64 75 6d  ix it, the ".dum
cad0: 70 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c 6f 6e  p" output no lon
cae0: 67 65 72 0a 20 20 20 20 75 73 65 73 20 74 68 65  ger.    uses the
caf0: 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e 20 20   COPY command.  
cb00: 49 74 20 69 6e 73 74 65 61 64 20 67 65 6e 65 72  It instead gener
cb10: 61 74 65 73 20 49 4e 53 45 52 54 20 73 74 61 74  ates INSERT stat
cb20: 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ements.</li>.<li
cb30: 3e 45 78 74 65 6e 64 20 74 68 65 20 65 78 70 72  >Extend the expr
cb40: 65 73 73 69 6f 6e 20 73 79 6e 74 61 78 20 74 6f  ession syntax to
cb50: 20 73 75 70 70 6f 72 74 20 22 65 78 70 72 20 4e   support "expr N
cb60: 4f 54 20 4e 55 4c 4c 22 20 28 77 69 74 68 20 61  OT NULL" (with a
cb70: 0a 20 20 20 20 73 70 61 63 65 20 62 65 74 77 65  .    space betwe
cb80: 65 6e 20 74 68 65 20 22 4e 4f 54 22 20 61 6e 64  en the "NOT" and
cb90: 20 74 68 65 20 22 4e 55 4c 4c 22 29 20 69 6e 20   the "NULL") in 
cba0: 61 64 64 69 74 69 6f 6e 20 74 6f 20 22 65 78 70  addition to "exp
cbb0: 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20 20 28  r NOTNULL".    (
cbc0: 77 69 74 68 20 6e 6f 20 73 70 61 63 65 29 2e 3c  with no space).<
cbd0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
cbe0: 30 31 20 53 65 70 20 32 38 20 28 32 2e 30 2e 30  01 Sep 28 (2.0.0
cbf0: 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74  )} {.<li>Automat
cc00: 69 63 61 6c 6c 79 20 62 75 69 6c 64 20 62 69 6e  ically build bin
cc10: 61 72 69 65 73 20 66 6f 72 20 4c 69 6e 75 78 20  aries for Linux 
cc20: 61 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e 64 20  and Windows and 
cc30: 70 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20 20 20  put them on.    
cc40: 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69  the website.</li
cc50: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
cc60: 53 65 70 20 32 38 20 28 32 2e 30 2d 61 6c 70 68  Sep 28 (2.0-alph
cc70: 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63 6f  a-4)} {.<li>Inco
cc80: 72 70 6f 72 61 74 65 20 6d 61 6b 65 66 69 6c 65  rporate makefile
cc90: 20 70 61 74 63 68 65 73 20 66 6f 72 6d 20 41 2e   patches form A.
cca0: 20 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75 73 65   Rottmann to use
ccb0: 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a 7d 0a   LIBTOOL</li>.}.
ccc0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
ccd0: 32 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d 33 29  27 (2.0-alpha-3)
cce0: 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65 20 6e  } {.<li>SQLite n
ccf0: 6f 77 20 68 6f 6e 6f 72 73 20 74 68 65 20 55 4e  ow honors the UN
cd00: 49 51 55 45 20 6b 65 79 77 6f 72 64 20 69 6e 20  IQUE keyword in 
cd10: 43 52 45 41 54 45 20 55 4e 49 51 55 45 20 49 4e  CREATE UNIQUE IN
cd20: 44 45 58 2e 20 20 50 72 69 6d 61 72 79 0a 20 20  DEX.  Primary.  
cd30: 20 20 6b 65 79 73 20 61 72 65 20 72 65 71 75 69    keys are requi
cd40: 72 65 64 20 74 6f 20 62 65 20 75 6e 69 71 75 65  red to be unique
cd50: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c 65 20  .</li>.<li>File 
cd60: 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 64 20 62  format changed b
cd70: 61 63 6b 20 74 6f 20 77 68 61 74 20 69 74 20 77  ack to what it w
cd80: 61 73 20 66 6f 72 20 61 6c 70 68 61 2d 31 3c 2f  as for alpha-1</
cd90: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20 74 6f  li>.<li>Fixes to
cda0: 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20 61 6e   the rollback an
cdb0: 64 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69  d locking behavi
cdc0: 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  or</li>.}..chng 
cdd0: 7b 32 30 30 31 20 53 65 70 20 32 30 20 28 32 2e  {2001 Sep 20 (2.
cde0: 30 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a 3c 6c  0-alpha-2)} {.<l
cdf0: 69 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65 61 73  i>Initial releas
ce00: 65 20 6f 66 20 76 65 72 73 69 6f 6e 20 32 2e 30  e of version 2.0
ce10: 2e 20 20 54 68 65 20 69 64 65 61 20 6f 66 20 72  .  The idea of r
ce20: 65 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69 62 72  enaming the libr
ce30: 61 72 79 0a 20 20 20 20 74 6f 20 22 53 51 4c 75  ary.    to "SQLu
ce40: 73 22 20 77 61 73 20 61 62 61 6e 64 6f 6e 65 64  s" was abandoned
ce50: 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b 65 65   in favor of kee
ce60: 70 69 6e 67 20 74 68 65 20 22 53 51 4c 69 74 65  ping the "SQLite
ce70: 22 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20 20 62  " name and.    b
ce80: 75 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a 6f 72  umping the major
ce90: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e   version number.
cea0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61  </li>.<li>The pa
ceb0: 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75  ger and btree su
cec0: 62 73 79 73 74 65 6d 73 20 61 64 64 65 64 20 62  bsystems added b
ced0: 61 63 6b 2e 20 54 68 65 79 20 61 72 65 20 6e 6f  ack. They are no
cee0: 77 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20 20 61  w the only.    a
cef0: 76 61 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e 64  vailable backend
cf00: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44  .</li>.<li>The D
cf10: 62 62 65 20 61 62 73 74 72 61 63 74 69 6f 6e 20  bbe abstraction 
cf20: 61 6e 64 20 74 68 65 20 47 44 42 4d 20 61 6e 64  and the GDBM and
cf30: 20 6d 65 6d 6f 72 79 20 64 72 69 76 65 72 73 20   memory drivers 
cf40: 77 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c 2f 6c  were removed.</l
cf50: 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67 68 74  i>.<li>Copyright
cf60: 20 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77 61 73   on all code was
cf70: 20 64 69 73 63 6c 61 69 6d 65 64 2e 20 20 54 68   disclaimed.  Th
cf80: 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 77  e library is now
cf90: 20 69 6e 20 74 68 65 0a 20 20 20 20 70 75 62 6c   in the.    publ
cfa0: 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69 3e 0a  ic domain.</li>.
cfb0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 75  }..chng {2001 Ju
cfc0: 6c 20 32 33 20 28 31 2e 30 2e 33 32 29 7d 20 7b  l 23 (1.0.32)} {
cfd0: 0a 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64 20 62  .<li>Pager and b
cfe0: 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 73 20  tree subsystems 
cff0: 72 65 6d 6f 76 65 64 2e 20 20 54 68 65 73 65 20  removed.  These 
d000: 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 6e 20  will be used in 
d010: 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20 20 20  a follow-on.    
d020: 53 51 4c 20 73 65 72 76 65 72 20 6c 69 62 72 61  SQL server libra
d030: 72 79 20 6e 61 6d 65 64 20 22 53 51 4c 75 73 22  ry named "SQLus"
d040: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
d050: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 75 73  he ability to us
d060: 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73  e quoted strings
d070: 20 61 73 20 74 61 62 6c 65 20 61 6e 64 20 63 6f   as table and co
d080: 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a 20 20  lumn names in.  
d090: 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 3c 2f    expressions.</
d0a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
d0b0: 31 20 41 70 72 20 31 34 20 28 31 2e 30 2e 33 31  1 Apr 14 (1.0.31
d0c0: 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 73  )} {.<li>Pager s
d0d0: 75 62 73 79 73 74 65 6d 20 61 64 64 65 64 20 62  ubsystem added b
d0e0: 75 74 20 6e 6f 74 20 79 65 74 20 75 73 65 64 2e  ut not yet used.
d0f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 72  </li>.<li>More r
d100: 6f 62 75 73 74 20 68 61 6e 64 6c 69 6e 67 20 6f  obust handling o
d110: 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20  f out-of-memory 
d120: 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  errors.</li>.<li
d130: 3e 4e 65 77 20 74 65 73 74 73 20 61 64 64 65 64  >New tests added
d140: 20 74 6f 20 74 68 65 20 74 65 73 74 20 73 75 69   to the test sui
d150: 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  te.</li>.}..chng
d160: 20 7b 32 30 30 31 20 41 70 72 20 36 20 28 31 2e   {2001 Apr 6 (1.
d170: 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52 65 6d  0.30)} {.<li>Rem
d180: 6f 76 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ove the <b>sqlit
d190: 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 54  e_encoding</b> T
d1a0: 43 4c 20 76 61 72 69 61 62 6c 65 20 74 68 61 74  CL variable that
d1b0: 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 0a   was introduced.
d1c0: 20 20 20 20 69 6e 20 74 68 65 20 70 72 65 76 69      in the previ
d1d0: 6f 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f 6c 69  ous version.</li
d1e0: 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69 6f 6e  >.<li>Add option
d1f0: 73 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67 3c 2f  s <b>-encoding</
d200: 62 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c 2d 75  b> and <b>-tcl-u
d210: 73 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f 20 74  ses-utf</b> to t
d220: 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65  he.    <b>sqlite
d230: 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61 6e 64  </b> TCL command
d240: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
d250: 65 73 74 73 20 74 6f 20 6d 61 6b 65 20 73 75 72  ests to make sur
d260: 65 20 74 68 61 74 20 74 63 6c 73 71 6c 69 74 65  e that tclsqlite
d270: 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 75 73   was compiled us
d280: 69 6e 67 20 54 63 6c 20 68 65 61 64 65 72 0a 20  ing Tcl header. 
d290: 20 20 20 66 69 6c 65 73 20 61 6e 64 20 6c 69 62     files and lib
d2a0: 72 61 72 69 65 73 20 74 68 61 74 20 6d 61 74 63  raries that matc
d2b0: 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  h.</li>.}..chng 
d2c0: 7b 32 30 30 31 20 41 70 72 20 35 20 28 31 2e 30  {2001 Apr 5 (1.0
d2d0: 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  .29)} {.<li>The 
d2e0: 6c 69 62 72 61 72 79 20 6e 6f 77 20 61 73 73 75  library now assu
d2f0: 6d 65 73 20 64 61 74 61 20 69 73 20 73 74 6f 72  mes data is stor
d300: 65 64 20 61 73 20 55 54 46 2d 38 20 69 66 20 74  ed as UTF-8 if t
d310: 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74 66 38  he --enable-utf8
d320: 0a 20 20 20 20 6f 70 74 69 6f 6e 20 69 73 20 67  .    option is g
d330: 69 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67 75 72  iven to configur
d340: 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20  e.  The default 
d350: 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20 61  behavior is to a
d360: 73 73 75 6d 65 0a 20 20 20 20 69 73 6f 38 38 35  ssume.    iso885
d370: 39 2d 78 2c 20 61 73 20 69 74 20 68 61 73 20 61  9-x, as it has a
d380: 6c 77 61 79 73 20 64 6f 6e 65 2e 20 20 54 68 69  lways done.  Thi
d390: 73 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61 20 64  s only makes a d
d3a0: 69 66 66 65 72 65 6e 63 65 20 66 6f 72 0a 20 20  ifference for.  
d3b0: 20 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f 42 20    LIKE and GLOB 
d3c0: 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20 74 68  operators and th
d3d0: 65 20 4c 45 4e 47 54 48 20 61 6e 64 20 53 55 42  e LENGTH and SUB
d3e0: 53 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f  STR functions.</
d3f0: 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6c  li>.<li>If the l
d400: 69 62 72 61 72 79 20 69 73 20 6e 6f 74 20 63 6f  ibrary is not co
d410: 6e 66 69 67 75 72 65 64 20 66 6f 72 20 55 54 46  nfigured for UTF
d420: 2d 38 20 61 6e 64 20 74 68 65 20 54 63 6c 20 6c  -8 and the Tcl l
d430: 69 62 72 61 72 79 0a 20 20 20 20 69 73 20 6f 6e  ibrary.    is on
d440: 65 20 6f 66 20 74 68 65 20 6e 65 77 65 72 20 6f  e of the newer o
d450: 6e 65 73 20 74 68 61 74 20 75 73 65 73 20 55 54  nes that uses UT
d460: 46 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79 2c 0a  F-8 internally,.
d470: 20 20 20 20 74 68 65 6e 20 61 20 63 6f 6e 76 65      then a conve
d480: 72 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46 2d 38  rsion from UTF-8
d490: 20 74 6f 20 69 73 6f 38 38 35 39 20 61 6e 64 0a   to iso8859 and.
d4a0: 20 20 20 20 62 61 63 6b 20 61 67 61 69 6e 20 69      back again i
d4b0: 73 20 64 6f 6e 65 20 69 6e 73 69 64 65 20 74 68  s done inside th
d4c0: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e  e TCL interface.
d4d0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
d4e0: 30 30 31 20 41 70 72 20 34 20 28 31 2e 30 2e 32  001 Apr 4 (1.0.2
d4f0: 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  8)} {.<li>Added 
d500: 6c 69 6d 69 74 65 64 20 73 75 70 70 6f 72 74 20  limited support 
d510: 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  for transactions
d520: 2e 20 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74  .  At this point
d530: 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20  , transactions. 
d540: 20 20 20 77 69 6c 6c 20 64 6f 20 74 61 62 6c 65     will do table
d550: 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20   locking on the 
d560: 47 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20 20 54  GDBM backend.  T
d570: 68 65 72 65 20 69 73 20 6e 6f 20 73 75 70 70 6f  here is no suppo
d580: 72 74 20 28 79 65 74 29 0a 20 20 20 20 66 6f 72  rt (yet).    for
d590: 20 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61 74 6f   rollback or ato
d5a0: 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c 69 3e  mic commit.</li>
d5b0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 70 65 63 69  .<li>Added speci
d5c0: 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20  al column names 
d5d0: 52 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e 64 20  ROWID, OID, and 
d5e0: 5f 52 4f 57 49 44 5f 20 74 68 61 74 20 72 65 66  _ROWID_ that ref
d5f0: 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20 75 6e  er to the.    un
d600: 69 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e 74 65  ique random inte
d610: 67 65 72 20 6b 65 79 20 61 73 73 6f 63 69 61 74  ger key associat
d620: 65 64 20 77 69 74 68 20 65 76 65 72 79 20 72 6f  ed with every ro
d630: 77 20 6f 66 20 65 76 65 72 79 20 74 61 62 6c 65  w of every table
d640: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 69 74  .</li>.<li>Addit
d650: 69 6f 6e 61 6c 20 74 65 73 74 73 20 61 64 64 65  ional tests adde
d660: 64 20 74 6f 20 74 68 65 20 72 65 67 72 65 73 73  d to the regress
d670: 69 6f 6e 20 73 75 69 74 65 20 74 6f 20 63 6f 76  ion suite to cov
d680: 65 72 20 74 68 65 20 6e 65 77 20 52 4f 57 49 44  er the new ROWID
d690: 0a 20 20 20 20 66 65 61 74 75 72 65 20 61 6e 64  .    feature and
d6a0: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
d6b0: 63 65 20 62 75 67 73 20 6d 65 6e 74 69 6f 6e 65  ce bugs mentione
d6c0: 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c  d below.</li>.<l
d6d0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74 68 65  i>Changes to the
d6e0: 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20   "lemon" parser 
d6f0: 67 65 6e 65 72 61 74 6f 72 20 74 6f 20 68 65 6c  generator to hel
d700: 70 20 69 74 20 77 6f 72 6b 20 62 65 74 74 65 72  p it work better
d710: 20 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70 69 6c   when.    compil
d720: 65 64 20 75 73 69 6e 67 20 4d 53 56 43 2e 3c 2f  ed using MSVC.</
d730: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 65  li>.<li>Bug fixe
d740: 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69 6e 74  s in the TCL int
d750: 65 72 66 61 63 65 20 69 64 65 6e 74 69 66 69 65  erface identifie
d760: 64 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69 6e 69  d by Oleg Oleini
d770: 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ck.</li>.}..chng
d780: 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20 28 31   {2001 Mar 20 (1
d790: 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e 57 68  .0.27)} {.<li>Wh
d7a0: 65 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54 45 20  en doing DELETE 
d7b0: 61 6e 64 20 55 50 44 41 54 45 2c 20 74 68 65 20  and UPDATE, the 
d7c0: 6c 69 62 72 61 72 79 20 75 73 65 64 20 74 6f 20  library used to 
d7d0: 77 72 69 74 65 20 74 68 65 20 72 65 63 6f 72 64  write the record
d7e0: 0a 20 20 20 20 6e 75 6d 62 65 72 73 20 6f 66 20  .    numbers of 
d7f0: 72 65 63 6f 72 64 73 20 74 6f 20 62 65 20 64 65  records to be de
d800: 6c 65 74 65 64 20 6f 72 20 75 70 64 61 74 65 64  leted or updated
d810: 20 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72 61 72   into a temporar
d820: 79 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 69 73  y file..    This
d830: 20 69 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74   is changed so t
d840: 68 61 74 20 74 68 65 20 72 65 63 6f 72 64 20 6e  hat the record n
d850: 75 6d 62 65 72 73 20 61 72 65 20 68 65 6c 64 20  umbers are held 
d860: 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69 3e 0a  in memory.</li>.
d870: 3c 6c 69 3e 54 68 65 20 44 45 4c 45 54 45 20 63  <li>The DELETE c
d880: 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74 20 61  ommand without a
d890: 20 57 48 49 4c 45 20 63 6c 61 75 73 65 20 6a 75   WHILE clause ju
d8a0: 73 74 20 72 65 6d 6f 76 65 73 20 74 68 65 20 64  st removes the d
d8b0: 61 74 61 62 61 73 65 0a 20 20 20 20 66 69 6c 65  atabase.    file
d8c0: 73 20 66 72 6f 6d 20 74 68 65 20 64 69 73 6b 2c  s from the disk,
d8d0: 20 72 61 74 68 65 72 20 74 68 61 6e 20 67 6f 69   rather than goi
d8e0: 6e 67 20 74 68 72 6f 75 67 68 20 61 6e 64 20 64  ng through and d
d8f0: 65 6c 65 74 69 6e 67 20 72 65 63 6f 72 64 0a 20  eleting record. 
d900: 20 20 20 62 79 20 72 65 63 6f 72 64 2e 3c 2f 6c     by record.</l
d910: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
d920: 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 36 29   Mar 20 (1.0.26)
d930: 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69 6f 75  } {.<li>A seriou
d940: 73 20 62 75 67 20 66 69 78 65 64 20 6f 6e 20 57  s bug fixed on W
d950: 69 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f 77 73  indows.  Windows
d960: 20 75 73 65 72 73 20 73 68 6f 75 6c 64 20 75 70   users should up
d970: 67 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20 69 6d  grade..    No im
d980: 70 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c  pact to Unix.</l
d990: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
d9a0: 20 4d 61 72 20 31 35 20 28 31 2e 30 2e 32 35 29   Mar 15 (1.0.25)
d9b0: 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79 20 74  } {.<li>Modify t
d9c0: 68 65 20 74 65 73 74 20 73 63 72 69 70 74 73 20  he test scripts 
d9d0: 74 6f 20 69 64 65 6e 74 69 66 79 20 74 65 73 74  to identify test
d9e0: 73 20 74 68 61 74 20 64 65 70 65 6e 64 20 6f 6e  s that depend on
d9f0: 20 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f 61 64   system.    load
da00: 20 61 6e 64 20 70 72 6f 63 65 73 73 6f 72 20 73   and processor s
da10: 70 65 65 64 20 61 6e 64 0a 20 20 20 20 74 6f 20  peed and.    to 
da20: 77 61 72 6e 20 74 68 65 20 75 73 65 72 20 74 68  warn the user th
da30: 61 74 20 61 20 66 61 69 6c 75 72 65 20 6f 66 20  at a failure of 
da40: 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 28 72 61  one of those (ra
da50: 72 65 29 20 74 65 73 74 73 20 64 6f 65 73 0a 20  re) tests does. 
da60: 20 20 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69     not necessari
da70: 6c 79 20 6d 65 61 6e 20 74 68 65 20 6c 69 62 72  ly mean the libr
da80: 61 72 79 20 69 73 20 6d 61 6c 66 75 6e 63 74 69  ary is malfuncti
da90: 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61 6e 67  oning.  No chang
daa0: 65 73 20 74 6f 0a 20 20 20 20 63 6f 64 65 2e 0a  es to.    code..
dab0: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
dac0: 67 20 7b 32 30 30 31 20 4d 61 72 20 31 34 20 28  g {2001 Mar 14 (
dad0: 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69 3e 46  1.0.24)} {.<li>F
dae0: 69 78 20 61 20 62 75 67 20 77 68 69 63 68 20 77  ix a bug which w
daf0: 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 74  as causing.    t
db00: 68 65 20 55 50 44 41 54 45 20 63 6f 6d 6d 61 6e  he UPDATE comman
db10: 64 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73 79 73  d to fail on sys
db20: 74 65 6d 73 20 77 68 65 72 65 20 22 6d 61 6c 6c  tems where "mall
db30: 6f 63 28 30 29 22 20 72 65 74 75 72 6e 73 0a 20  oc(0)" returns. 
db40: 20 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20 70 72     NULL.  The pr
db50: 6f 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74 20 61  oblem does not a
db60: 70 70 65 61 72 20 57 69 6e 64 6f 77 73 2c 20 4c  ppear Windows, L
db70: 69 6e 75 78 2c 20 6f 72 20 48 50 55 58 20 62 75  inux, or HPUX bu
db80: 74 20 64 6f 65 73 20 0a 20 20 20 20 63 61 75 73  t does .    caus
db90: 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f  e the library to
dba0: 20 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a 20 20   fail on QNX..  
dbb0: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
dbc0: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
dbd0: 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41 6e 20  0.23)} {.<li>An 
dbe0: 75 6e 72 65 6c 61 74 65 64 20 28 61 6e 64 20 6d  unrelated (and m
dbf0: 69 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d 20 4d  inor) bug from M
dc00: 61 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20 66 69  ark Muranwski fi
dc10: 78 65 64 2e 20 20 54 68 65 20 61 6c 67 6f 72 69  xed.  The algori
dc20: 74 68 6d 0a 20 20 20 20 66 6f 72 20 66 69 67 75  thm.    for figu
dc30: 72 69 6e 67 20 6f 75 74 20 77 68 65 72 65 20 74  ring out where t
dc40: 6f 20 70 75 74 20 74 65 6d 70 6f 72 61 72 79 20  o put temporary 
dc50: 66 69 6c 65 73 20 66 6f 72 20 61 20 22 6d 65 6d  files for a "mem
dc60: 6f 72 79 3a 22 20 64 61 74 61 62 61 73 65 0a 20  ory:" database. 
dc70: 20 20 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69     was not worki
dc80: 6e 67 20 71 75 69 74 65 20 72 69 67 68 74 2e 0a  ng quite right..
dc90: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
dca0: 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28  g {2001 Feb 19 (
dcb0: 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69 3e 54  1.0.22)} {.<li>T
dcc0: 68 65 20 70 72 65 76 69 6f 75 73 20 66 69 78 20  he previous fix 
dcd0: 77 61 73 20 6e 6f 74 20 71 75 69 74 65 20 72 69  was not quite ri
dce0: 67 68 74 2e 20 20 54 68 69 73 20 6f 6e 65 20 73  ght.  This one s
dcf0: 65 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62 65 74  eems to work bet
dd00: 74 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d  ter..    </li>.}
dd10: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62  ..chng {2001 Feb
dd20: 20 31 39 20 28 31 2e 30 2e 32 31 29 7d 20 7b 0a   19 (1.0.21)} {.
dd30: 3c 6c 69 3e 54 68 65 20 55 50 44 41 54 45 20 73  <li>The UPDATE s
dd40: 74 61 74 65 6d 65 6e 74 20 77 61 73 20 6e 6f 74  tatement was not
dd50: 20 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20 74 68   working when th
dd60: 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 63  e WHERE clause c
dd70: 6f 6e 74 61 69 6e 65 64 0a 20 20 20 20 73 6f 6d  ontained.    som
dd80: 65 20 74 65 72 6d 73 20 74 68 61 74 20 63 6f 75  e terms that cou
dd90: 6c 64 20 62 65 20 73 61 74 69 73 66 69 65 64 20  ld be satisfied 
dda0: 75 73 69 6e 67 20 69 6e 64 69 63 65 73 20 61 6e  using indices an
ddb0: 64 20 6f 74 68 65 72 20 74 65 72 6d 73 20 74 68  d other terms th
ddc0: 61 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e 6f 74  at.    could not
ddd0: 2e 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d  .  Fixed.</li>.}
dde0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62  ..chng {2001 Feb
ddf0: 20 31 31 20 28 31 2e 30 2e 32 30 29 7d 20 7b 0a   11 (1.0.20)} {.
de00: 3c 6c 69 3e 4d 65 72 67 65 20 64 65 76 65 6c 6f  <li>Merge develo
de10: 70 6d 65 6e 74 20 63 68 61 6e 67 65 73 20 69 6e  pment changes in
de20: 74 6f 20 74 68 65 20 6d 61 69 6e 20 74 72 75 6e  to the main trun
de30: 6b 2e 20 20 46 75 74 75 72 65 20 77 6f 72 6b 20  k.  Future work 
de40: 74 6f 77 61 72 64 0a 20 20 20 20 75 73 69 6e 67  toward.    using
de50: 20 61 20 42 54 72 65 65 20 66 69 6c 65 20 73 74   a BTree file st
de60: 72 75 63 74 75 72 65 20 77 69 6c 6c 20 75 73 65  ructure will use
de70: 20 61 20 73 65 70 61 72 61 74 65 20 43 56 53 20   a separate CVS 
de80: 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 54 68  source tree.  Th
de90: 69 73 0a 20 20 20 20 43 56 53 20 74 72 65 65 20  is.    CVS tree 
dea0: 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f  will continue to
deb0: 20 73 75 70 70 6f 72 74 20 74 68 65 20 47 44 42   support the GDB
dec0: 4d 20 76 65 72 73 69 6f 6e 20 6f 66 20 53 51 4c  M version of SQL
ded0: 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e 0a 7d  ite only.</li>.}
dee0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62  ..chng {2001 Feb
def0: 20 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b 0a 3c   6 (1.0.19)} {.<
df00: 6c 69 3e 46 69 78 20 61 20 73 74 72 61 6e 67 65  li>Fix a strange
df10: 20 28 62 75 74 20 76 61 6c 69 64 29 20 43 20 64   (but valid) C d
df20: 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61 74 20  eclaration that 
df30: 77 61 73 20 63 61 75 73 69 6e 67 20 70 72 6f 62  was causing prob
df40: 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 51 4e 58  lems.    for QNX
df50: 2e 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20 63 68  .  No logical ch
df60: 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  anges.</li>.}..c
df70: 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20 34 20  hng {2001 Jan 4 
df80: 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.18)} {.<li>
df90: 50 72 69 6e 74 20 74 68 65 20 6f 66 66 65 6e 64  Print the offend
dfa0: 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d 65 6e  ing SQL statemen
dfb0: 74 20 77 68 65 6e 20 61 6e 20 65 72 72 6f 72 20  t when an error 
dfc0: 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  occurs.</li>.<li
dfd0: 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69 72 65 20  >Do not require 
dfe0: 63 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e 20 63  commas between c
dff0: 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 20 43 52  onstraints in CR
e000: 45 41 54 45 20 54 41 42 4c 45 20 73 74 61 74 65  EATE TABLE state
e010: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ments.</li>.<li>
e020: 41 64 64 65 64 20 74 68 65 20 22 2d 65 63 68 6f  Added the "-echo
e030: 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68 65 20  " option to the 
e040: 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  shell.</li>.<li>
e050: 43 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d 6d 65  Changes to comme
e060: 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nts.</li>.}..chn
e070: 67 20 7b 32 30 30 30 20 44 65 63 20 31 30 20 28  g {2000 Dec 10 (
e080: 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69 3e 52  1.0.17)} {.<li>R
e090: 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69 74 65  ewrote <b>sqlite
e0a0: 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20  _complete()</b> 
e0b0: 74 6f 20 6d 61 6b 65 20 69 74 20 66 61 73 74 65  to make it faste
e0c0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f  r.</li>.<li>Mino
e0d0: 72 20 74 77 65 61 6b 73 20 74 6f 20 6f 74 68 65  r tweaks to othe
e0e0: 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20 69  r code to make i
e0f0: 74 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66  t run a little f
e100: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
e110: 41 64 64 65 64 20 6e 65 77 20 74 65 73 74 73 20  Added new tests 
e120: 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f  for <b>sqlite_co
e130: 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61 6e 64  mplete()</b> and
e140: 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65 61 6b   for memory leak
e150: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
e160: 7b 32 30 30 30 20 44 65 63 20 34 20 28 31 2e 30  {2000 Dec 4 (1.0
e170: 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  .16)} {.<li>Docu
e180: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
e190: 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78 69 6e  s.  Mostly fixin
e1a0: 67 20 6f 66 20 74 79 70 6f 73 20 61 6e 64 20 73  g of typos and s
e1b0: 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73 2e 3c  pelling errors.<
e1c0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
e1d0: 30 30 20 4f 63 74 20 32 33 20 28 31 2e 30 2e 31  00 Oct 23 (1.0.1
e1e0: 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65  5)} {.<li>Docume
e1f0: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
e200: 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20 73 61  /li>.<li>Some sa
e210: 6e 69 74 79 20 63 68 65 63 6b 69 6e 67 20 63 6f  nity checking co
e220: 64 65 20 77 61 73 20 72 65 6d 6f 76 65 64 20 66  de was removed f
e230: 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20 6c 6f  rom the inner lo
e240: 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a 20 20 20  op of vdbe.c.   
e250: 20 74 6f 20 68 65 6c 70 20 74 68 65 20 6c 69 62   to help the lib
e260: 72 61 72 79 20 74 6f 20 72 75 6e 20 61 20 6c 69  rary to run a li
e270: 74 74 6c 65 20 66 61 73 74 65 72 2e 20 20 54 68  ttle faster.  Th
e280: 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79 0a 20  e code is only. 
e290: 20 20 20 72 65 6d 6f 76 65 64 20 69 66 20 79 6f     removed if yo
e2a0: 75 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d  u compile with -
e2b0: 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a 7d 0a  DNDEBUG.</li>.}.
e2c0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
e2d0: 31 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b 0a 3c  19 (1.0.14)} {.<
e2e0: 6c 69 3e 41 64 64 65 64 20 61 20 22 6d 65 6d 6f  li>Added a "memo
e2f0: 72 79 3a 22 20 62 61 63 6b 65 6e 64 20 64 72 69  ry:" backend dri
e300: 76 65 72 20 74 68 61 74 20 73 74 6f 72 65 73 20  ver that stores 
e310: 69 74 73 20 64 61 74 61 62 61 73 65 20 69 6e 20  its database in 
e320: 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f 72 79  an.    in-memory
e330: 20 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f 6c 69   hash table.</li
e340: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
e350: 4f 63 74 20 31 38 20 28 31 2e 30 2e 31 33 29 7d  Oct 18 (1.0.13)}
e360: 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f 75 74   {.<li>Break out
e370: 20 74 68 65 20 47 44 42 4d 20 64 72 69 76 65 72   the GDBM driver
e380: 20 69 6e 74 6f 20 61 20 73 65 70 61 72 61 74 65   into a separate
e390: 20 66 69 6c 65 20 69 6e 20 61 6e 74 69 63 69 70   file in anticip
e3a0: 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61 64 64  ation.    to add
e3b0: 65 64 20 6e 65 77 20 64 72 69 76 65 72 73 2e 3c  ed new drivers.<
e3c0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 74  /li>.<li>Allow t
e3d0: 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64 61 74  he name of a dat
e3e0: 61 62 61 73 65 20 74 6f 20 62 65 20 70 72 65 66  abase to be pref
e3f0: 69 78 65 64 20 62 79 20 74 68 65 20 64 72 69 76  ixed by the driv
e400: 65 72 20 74 79 70 65 2e 0a 20 20 20 20 46 6f 72  er type..    For
e410: 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79 20 64   now, the only d
e420: 72 69 76 65 72 20 74 79 70 65 20 69 73 20 22 67  river type is "g
e430: 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  dbm:".</li>.}..c
e440: 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 36  hng {2000 Oct 16
e450: 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c 6c 69   (1.0.12)} {.<li
e460: 3e 46 69 78 65 64 20 61 6e 20 6f 66 66 2d 62 79  >Fixed an off-by
e470: 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68 61 74 20  -one error that 
e480: 77 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f  was causing a co
e490: 72 65 64 75 6d 70 20 69 6e 20 0a 20 20 20 20 74  redump in .    t
e4a0: 68 65 20 27 25 71 27 20 66 6f 72 6d 61 74 20 64  he '%q' format d
e4b0: 69 72 65 63 74 69 76 65 20 6f 66 20 74 68 65 20  irective of the 
e4c0: 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  new.    <b>sqlit
e4d0: 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f  e_..._printf()</
e4e0: 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69  b> routines.</li
e4f0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
e500: 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72  <b>sqlite_interr
e510: 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66  upt()</b> interf
e520: 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e  ace.</li>.<li>In
e530: 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62 3e 73   the shell, <b>s
e540: 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28  qlite_interrupt(
e550: 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b 65 64  )</b> is invoked
e560: 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20 75 73   when the.    us
e570: 65 72 20 70 72 65 73 73 65 73 20 43 6f 6e 74 72  er presses Contr
e580: 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ol-C</li>.<li>Fi
e590: 78 65 64 20 73 6f 6d 65 20 69 6e 73 74 61 6e 63  xed some instanc
e5a0: 65 73 20 77 68 65 72 65 20 3c 62 3e 73 71 6c 69  es where <b>sqli
e5b0: 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 77 61  te_exec()</b> wa
e5c0: 73 0a 20 20 20 20 72 65 74 75 72 6e 69 6e 67 20  s.    returning 
e5d0: 74 68 65 20 77 72 6f 6e 67 20 65 72 72 6f 72 20  the wrong error 
e5e0: 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  code.</li>.}..ch
e5f0: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 31 20  ng {2000 Oct 11 
e600: 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.10)} {.<li>
e610: 41 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e 20 68  Added notes on h
e620: 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20 66 6f  ow to compile fo
e630: 72 20 57 69 6e 64 6f 77 73 39 35 2f 39 38 2e 3c  r Windows95/98.<
e640: 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64  /li>.<li>Removed
e650: 20 61 20 66 65 77 20 76 61 72 69 61 62 6c 65 73   a few variables
e660: 20 74 68 61 74 20 77 65 72 65 20 6e 6f 74 20 62   that were not b
e670: 65 69 6e 67 20 75 73 65 64 2e 20 20 45 74 63 2e  eing used.  Etc.
e680: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
e690: 30 30 30 20 4f 63 74 20 38 20 28 31 2e 30 2e 39  000 Oct 8 (1.0.9
e6a0: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
e6b0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e  he <b>sqlite_...
e6c0: 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 69 6e  _printf()</b> in
e6d0: 74 65 72 66 61 63 65 20 72 6f 75 74 69 6e 65 73  terface routines
e6e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
e6f0: 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ied the <b>sqlit
e700: 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67  e</b> shell prog
e710: 72 61 6d 20 74 6f 20 75 73 65 20 74 68 65 20 6e  ram to use the n
e720: 65 77 20 69 6e 74 65 72 66 61 63 65 20 0a 20 20  ew interface .  
e730: 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e    routines.</li>
e740: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
e750: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
e760: 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f  shell program to
e770: 20 70 72 69 6e 74 20 74 68 65 20 73 63 68 65 6d   print the schem
e780: 61 20 66 6f 72 0a 20 20 20 20 74 68 65 20 62 75  a for.    the bu
e790: 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f 4d 41  ilt-in SQLITE_MA
e7a0: 53 54 45 52 20 74 61 62 6c 65 2c 20 69 66 20 65  STER table, if e
e7b0: 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75 65 73  xplicitly reques
e7c0: 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ted.</li>.}..chn
e7d0: 67 20 7b 32 30 30 30 20 53 65 70 20 33 30 20 28  g {2000 Sep 30 (
e7e0: 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 42 65  1.0.8)} {.<li>Be
e7f0: 67 69 6e 20 77 72 69 74 69 6e 67 20 64 6f 63 75  gin writing docu
e800: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65  mentation on the
e810: 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 2e 3c   TCL interface.<
e820: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
e830: 30 30 20 53 65 70 20 32 39 20 28 4e 6f 74 20 52  00 Sep 29 (Not R
e840: 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e  eleased)} {.<li>
e850: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
e860: 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c  ite_get_table()<
e870: 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69  /b> API</li>.<li
e880: 3e 55 70 64 61 74 65 64 20 74 68 65 20 64 6f 63  >Updated the doc
e890: 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 64  umentation for d
e8a0: 75 65 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20  ue to the above 
e8b0: 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  change.</li>.<li
e8c0: 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62  >Modified the <b
e8d0: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c  >sqlite</b> shel
e8e0: 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65 20 6f 66  l to make use of
e8f0: 20 74 68 65 20 6e 65 77 0a 20 20 20 20 73 71 6c   the new.    sql
e900: 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 20  ite_get_table() 
e910: 41 50 49 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  API in order to 
e920: 70 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66 20  print a list of 
e930: 74 61 62 6c 65 73 0a 20 20 20 20 69 6e 20 6d 75  tables.    in mu
e940: 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73 2c 20  ltiple columns, 
e950: 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 77  similar to the w
e960: 61 79 20 22 6c 73 22 20 70 72 69 6e 74 73 20 66  ay "ls" prints f
e970: 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c  ilenames.</li>.<
e980: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
e990: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
e9a0: 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61 20 73  ell to print a s
e9b0: 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68 65 0a  emicolon at the.
e9c0: 20 20 20 20 65 6e 64 20 6f 66 20 65 61 63 68 20      end of each 
e9d0: 43 52 45 41 54 45 20 73 74 61 74 65 6d 65 6e 74  CREATE statement
e9e0: 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f   in the output o
e9f0: 66 20 74 68 65 20 22 2e 73 63 68 65 6d 61 22 20  f the ".schema" 
ea00: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a  command.</li>.}.
ea10: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
ea20: 32 31 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64  21 (Not Released
ea30: 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  )} {.<li>Change 
ea40: 74 68 65 20 74 63 6c 73 71 6c 69 74 65 20 22 65  the tclsqlite "e
ea50: 76 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f 20 72  val" method to r
ea60: 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20  eturn a list of 
ea70: 72 65 73 75 6c 74 73 20 69 66 0a 20 20 20 20 6e  results if.    n
ea80: 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63 72 69 70  o callback scrip
ea90: 74 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 3c  t is specified.<
eaa0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
eab0: 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 75  tclsqlite.c to u
eac0: 73 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a 20 69  se the Tcl_Obj i
ead0: 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 3c 6c  nterface</li>.<l
eae0: 69 3e 41 64 64 20 74 63 6c 73 71 6c 69 74 65 2e  i>Add tclsqlite.
eaf0: 63 20 74 6f 20 74 68 65 20 6c 69 62 73 71 6c 69  c to the libsqli
eb00: 74 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f 6c 69  te.a library</li
eb10: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
eb20: 53 65 70 20 31 33 20 28 56 65 72 73 69 6f 6e 20  Sep 13 (Version 
eb30: 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 68  1.0.5)} {.<li>Ch
eb40: 61 6e 67 65 64 20 74 68 65 20 70 72 69 6e 74 20  anged the print 
eb50: 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f 61 74  format for float
eb60: 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75 65 73  ing point values
eb70: 20 66 72 6f 6d 20 22 25 67 22 20 74 6f 20 22 25   from "%g" to "%
eb80: 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c 69 3e  .15g"..    </li>
eb90: 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74 68 65  .<li>Changed the
eba0: 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63   comparison func
ebb0: 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e 75 6d  tion so that num
ebc0: 62 65 72 73 20 69 6e 20 65 78 70 6f 6e 65 6e 74  bers in exponent
ebd0: 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20 20 20  ial notation.   
ebe0: 20 28 65 78 3a 20 31 2e 32 33 34 65 2b 30 35 29   (ex: 1.234e+05)
ebf0: 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72 69 63   sort in numeric
ec00: 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 7d  al order.</li>.}
ec10: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
ec20: 20 32 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   28 (Version 1.0
ec30: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .4)} {.<li>Added
ec40: 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 6c 65   functions <b>le
ec50: 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64 20 3c  ngth()</b> and <
ec60: 62 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e 2e 3c  b>substr()</b>.<
ec70: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
ec80: 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 73 71 6c  ug in the <b>sql
ec90: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72  ite</b> shell pr
eca0: 6f 67 72 61 6d 20 74 68 61 74 20 77 61 73 20 63  ogram that was c
ecb0: 61 75 73 69 6e 67 0a 20 20 20 20 61 20 63 6f 72  ausing.    a cor
ecc0: 65 64 75 6d 70 20 77 68 65 6e 20 74 68 65 20 6f  edump when the o
ecd0: 75 74 70 75 74 20 6d 6f 64 65 20 77 61 73 20 22  utput mode was "
ece0: 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68 65 20  column" and the 
ecf0: 66 69 72 73 74 20 72 6f 77 0a 20 20 20 20 6f 66  first row.    of
ed00: 20 64 61 74 61 20 63 6f 6e 74 61 69 6e 65 64 20   data contained 
ed10: 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  a NULL.</li>.}..
ed20: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 32  chng {2000 Aug 2
ed30: 32 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 33  2 (Version 1.0.3
ed40: 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68 65 20  )} {.<li>In the 
ed50: 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 70 72  sqlite shell, pr
ed60: 69 6e 74 20 74 68 65 20 22 44 61 74 61 62 61 73  int the "Databas
ed70: 65 20 6f 70 65 6e 65 64 20 52 45 41 44 20 4f 4e  e opened READ ON
ed80: 4c 59 22 20 6d 65 73 73 61 67 65 0a 20 20 20 20  LY" message.    
ed90: 74 6f 20 73 74 64 65 72 72 20 69 6e 73 74 65 61  to stderr instea
eda0: 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f 6c 69  d of stdout.</li
edb0: 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c  >.<li>In the sql
edc0: 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77 20 70  ite shell, now p
edd0: 72 69 6e 74 20 74 68 65 20 76 65 72 73 69 6f 6e  rint the version
ede0: 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69 74 69   number on initi
edf0: 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c 69 3e  al startup.</li>
ee00: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c 62 3e  .<li>Add the <b>
ee10: 73 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e 5b 5d  sqlite_version[]
ee20: 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f 6e 73  </b> string cons
ee30: 74 61 6e 74 20 74 6f 20 74 68 65 20 6c 69 62 72  tant to the libr
ee40: 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  ary</li>.<li>Mak
ee50: 65 66 69 6c 65 20 75 70 64 61 74 65 73 3c 2f 6c  efile updates</l
ee60: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
ee70: 69 6e 63 6f 72 72 65 63 74 20 56 44 42 45 20 63  incorrect VDBE c
ee80: 6f 64 65 20 77 61 73 20 62 65 69 6e 67 20 67 65  ode was being ge
ee90: 6e 65 72 61 74 65 64 20 66 6f 72 20 74 68 65 20  nerated for the 
eea0: 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20 63 69  following.    ci
eeb0: 72 63 75 6d 73 74 61 6e 63 65 3a 20 61 20 71 75  rcumstance: a qu
eec0: 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65 78 65  ery on an indexe
eed0: 64 20 74 61 62 6c 65 20 63 6f 6e 74 61 69 6e 69  d table containi
eee0: 6e 67 20 61 20 57 48 45 52 45 20 63 6c 61 75 73  ng a WHERE claus
eef0: 65 20 77 69 74 68 0a 20 20 20 20 61 6e 20 49 4e  e with.    an IN
ef00: 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74 20 68   operator that h
ef10: 61 64 20 61 20 73 75 62 71 75 65 72 79 20 6f 6e  ad a subquery on
ef20: 20 69 74 73 20 72 69 67 68 74 2d 68 61 6e 64 20   its right-hand 
ef30: 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  side.</li>.}..ch
ef40: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 38 20  ng {2000 Aug 18 
ef50: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31 29 7d  (Version 1.0.1)}
ef60: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67   {.<li>Fix a bug
ef70: 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67 75 72   in the configur
ef80: 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e 0a 3c  e script.</li>.<
ef90: 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73 69 6f  li>Minor revisio
efa0: 6e 73 20 74 6f 20 74 68 65 20 77 65 62 73 69 74  ns to the websit
efb0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
efc0: 7b 32 30 30 30 20 41 75 67 20 31 37 20 28 56 65  {2000 Aug 17 (Ve
efd0: 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a 3c 6c  rsion 1.0)} {.<l
efe0: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 3c 62 3e  i>Change the <b>
eff0: 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f 67 72  sqlite</b> progr
f000: 61 6d 20 73 6f 20 74 68 61 74 20 69 74 20 63 61  am so that it ca
f010: 6e 20 72 65 61 64 0a 20 20 20 20 64 61 74 61 62  n read.    datab
f020: 61 73 65 73 20 66 6f 72 20 77 68 69 63 68 20 69  ases for which i
f030: 74 20 6c 61 63 6b 73 20 77 72 69 74 65 20 70 65  t lacks write pe
f040: 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74 20 75  rmission.  (It u
f050: 73 65 64 20 74 6f 0a 20 20 20 20 72 65 66 75 73  sed to.    refus
f060: 65 20 61 6c 6c 20 61 63 63 65 73 73 20 69 66 20  e all access if 
f070: 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77 72 69  it could not wri
f080: 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  te.)</li>.}..chn
f090: 67 20 7b 32 30 30 30 20 41 75 67 20 39 7d 20 7b  g {2000 Aug 9} {
f0a0: 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61 72 72 69  .<li>Treat carri
f0b0: 61 67 65 20 72 65 74 75 72 6e 73 20 61 73 20 77  age returns as w
f0c0: 68 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c 69 3e  hite space.</li>
f0d0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
f0e0: 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  ug 8} {.<li>Adde
f0f0: 64 20 70 61 74 74 65 72 6e 20 6d 61 74 63 68 69  d pattern matchi
f100: 6e 67 20 74 6f 20 74 68 65 20 22 2e 74 61 62 6c  ng to the ".tabl
f110: 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68  e" command in th
f120: 65 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d 6d 61  e "sqlite".comma
f130: 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 7d  nd shell.</li>.}
f140: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
f150: 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65   4} {.<li>Docume
f160: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
f170: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 22  /li>.<li>Added "
f180: 62 75 73 79 22 20 61 6e 64 20 22 74 69 6d 65 6f  busy" and "timeo
f190: 75 74 22 20 6d 65 74 68 6f 64 73 20 74 6f 20 74  ut" methods to t
f1a0: 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63 65  he Tcl interface
f1b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f1c0: 30 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c 6c 69  000 Aug 3} {.<li
f1d0: 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 76 65 72  >File format ver
f1e0: 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61 73 20  sion number was 
f1f0: 62 65 69 6e 67 20 73 74 6f 72 65 64 20 69 6e 20  being stored in 
f200: 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e 74 63  sqlite_master.tc
f210: 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 74  l.    multiple t
f220: 69 6d 65 73 2e 20 54 68 69 73 20 77 61 73 20 68  imes. This was h
f230: 61 72 6d 6c 65 73 73 2c 20 62 75 74 20 75 6e 6e  armless, but unn
f240: 65 63 65 73 73 61 72 79 2e 20 49 74 20 69 73 20  ecessary. It is 
f250: 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  now fixed.</li>.
f260: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
f270: 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 66  g 2} {.<li>The f
f280: 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 69  ile format for i
f290: 6e 64 69 63 65 73 20 77 61 73 20 63 68 61 6e 67  ndices was chang
f2a0: 65 64 20 73 6c 69 67 68 74 6c 79 20 69 6e 20 6f  ed slightly in o
f2b0: 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20 20 20  rder to work.   
f2c0: 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65 66 66   around an ineff
f2d0: 69 63 69 65 6e 63 79 20 74 68 61 74 20 63 61 6e  iciency that can
f2e0: 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d 65 20   sometimes come 
f2f0: 75 70 20 77 69 74 68 20 47 44 42 4d 20 77 68 65  up with GDBM whe
f300: 6e 0a 20 20 20 20 74 68 65 72 65 20 61 72 65 20  n.    there are 
f310: 6c 61 72 67 65 20 69 6e 64 69 63 65 73 20 68 61  large indices ha
f320: 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72 69 65  ving many entrie
f330: 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20  s with the same 
f340: 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74 20 63  key..    <font c
f350: 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20 49 6e  olor="red">** In
f360: 63 6f 6d 70 61 74 69 62 6c 65 20 43 68 61 6e 67  compatible Chang
f370: 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c 69 3e  e **</font></li>
f380: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
f390: 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  ug 1} {.<li>The 
f3a0: 70 61 72 73 65 72 27 73 20 73 74 61 63 6b 20 77  parser's stack w
f3b0: 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67 20 6f  as overflowing o
f3c0: 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67 20 55 50  n a very long UP
f3d0: 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 2e 0a  DATE statement..
f3e0: 20 20 20 20 54 68 69 73 20 69 73 20 6e 6f 77 20      This is now 
f3f0: 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  fixed.</li>.}..c
f400: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 33  hng {2000 July 3
f410: 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73 68 20  1} {.<li>Finish 
f420: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62  the <a href="vdb
f430: 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74  e.html">VDBE tut
f440: 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a  orial</a>.</li>.
f450: 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65  <li>Added docume
f460: 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d 70 69  ntation on compi
f470: 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77 73 4e  ling to WindowsN
f480: 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  T.</li>.<li>Fix 
f490: 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  a configuration 
f4a0: 70 72 6f 67 72 61 6d 20 66 6f 72 20 57 69 6e 64  program for Wind
f4b0: 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  owsNT.</li>.<li>
f4c0: 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74  Fix a configurat
f4d0: 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f 72 20  ion problem for 
f4e0: 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  HPUX.</li>.}..ch
f4f0: 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 39  ng {2000 July 29
f500: 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72 20 6c  } {.<li>Better l
f510: 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d 6e 20  abels on column 
f520: 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72 65 73  names of the res
f530: 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ult.</li>.}..chn
f540: 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32 38 7d  g {2000 July 28}
f550: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65   {.<li>Added the
f560: 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f   <b>sqlite_busy_
f570: 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20 0a 20  handler()</b> . 
f580: 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69 74 65     and <b>sqlite
f590: 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c  _busy_timeout()<
f5a0: 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  /b> interface.</
f5b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
f5c0: 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c 6c 69  0 June 23} {.<li
f5d0: 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 74  >Begin writing t
f5e0: 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65  he <a href="vdbe
f5f0: 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75 74 6f  .html">VDBE tuto
f600: 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 7d  rial</a>.</li>.}
f610: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
f620: 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c 65 61  e 21} {.<li>Clea
f630: 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20 61 6e  n up comments an
f640: 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73  d variable names
f650: 2e 20 20 43 68 61 6e 67 65 73 20 74 6f 20 64 6f  .  Changes to do
f660: 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20  cumentation..   
f670: 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c 20 63   No functional c
f680: 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 63 6f  hanges to the co
f690: 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  de.</li>.}..chng
f6a0: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 39 7d 20   {2000 June 19} 
f6b0: 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e 61 6d  {.<li>Column nam
f6c0: 65 73 20 69 6e 20 55 50 44 41 54 45 20 73 74 61  es in UPDATE sta
f6d0: 74 65 6d 65 6e 74 73 20 77 65 72 65 20 63 61 73  tements were cas
f6e0: 65 20 73 65 6e 73 69 74 69 76 65 2e 0a 20 20 20  e sensitive..   
f6f0: 20 54 68 69 73 20 6d 69 73 74 61 6b 65 20 68 61   This mistake ha
f700: 73 20 6e 6f 77 20 62 65 65 6e 20 66 69 78 65 64  s now been fixed
f710: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
f720: 32 30 30 30 20 4a 75 6e 65 20 31 36 7d 20 7b 0a  2000 June 16} {.
f730: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 63 6f  <li>Added the co
f740: 6e 63 61 74 65 6e 61 74 65 20 73 74 72 69 6e 67  ncatenate string
f750: 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29 3c 2f   operator (||)</
f760: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
f770: 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c 6c 69  0 June 12} {.<li
f780: 3e 41 64 64 65 64 20 74 68 65 20 66 63 6e 74 28  >Added the fcnt(
f790: 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 74 68  ) function to th
f7a0: 65 20 53 51 4c 20 69 6e 74 65 72 70 72 65 74 65  e SQL interprete
f7b0: 72 2e 20 20 54 68 65 20 66 63 6e 74 28 29 20 66  r.  The fcnt() f
f7c0: 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65 74 75  unction.    retu
f7d0: 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f  rns the number o
f7e0: 66 20 64 61 74 61 62 61 73 65 20 22 46 65 74 63  f database "Fetc
f7f0: 68 22 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 68  h" operations th
f800: 61 74 20 68 61 76 65 20 6f 63 63 75 72 72 65 64  at have occurred
f810: 2e 0a 20 20 20 20 54 68 69 73 20 66 75 6e 63 74  ..    This funct
f820: 69 6f 6e 20 69 73 20 64 65 73 69 67 6e 65 64 20  ion is designed 
f830: 66 6f 72 20 75 73 65 20 69 6e 20 74 65 73 74 20  for use in test 
f840: 73 63 72 69 70 74 73 20 74 6f 20 76 65 72 69 66  scripts to verif
f850: 79 20 74 68 61 74 0a 20 20 20 20 71 75 65 72 69  y that.    queri
f860: 65 73 20 61 72 65 20 65 66 66 69 63 69 65 6e 74  es are efficient
f870: 20 61 6e 64 20 61 70 70 72 6f 70 72 69 61 74 65   and appropriate
f880: 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20 20 46  ly optimized.  F
f890: 63 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f 74 68  cnt() has no oth
f8a0: 65 72 0a 20 20 20 20 75 73 65 66 75 6c 20 70 75  er.    useful pu
f8b0: 72 70 6f 73 65 2c 20 61 73 20 66 61 72 20 61 73  rpose, as far as
f8c0: 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a 3c 6c   I know.</li>.<l
f8d0: 69 3e 41 64 64 65 64 20 61 20 62 75 6e 63 68 20  i>Added a bunch 
f8e0: 6d 6f 72 65 20 74 65 73 74 73 20 74 68 61 74 20  more tests that 
f8f0: 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f  take advantage o
f900: 66 20 74 68 65 20 6e 65 77 20 66 63 6e 74 28 29  f the new fcnt()
f910: 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 54   function..    T
f920: 68 65 20 6e 65 77 20 74 65 73 74 73 20 64 69 64  he new tests did
f930: 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61 6e 79   not uncover any
f940: 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e 3c 2f   new problems.</
f950: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
f960: 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c 69 3e  0 June 8} {.<li>
f970: 41 64 64 65 64 20 6c 6f 74 73 20 6f 66 20 6e 65  Added lots of ne
f980: 77 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69  w test cases</li
f990: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65 77 20  >.<li>Fix a few 
f9a0: 62 75 67 73 20 64 69 73 63 6f 76 65 72 65 64 20  bugs discovered 
f9b0: 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74 65 73  while adding tes
f9c0: 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  t cases</li>.<li
f9d0: 3e 42 65 67 69 6e 20 61 64 64 69 6e 67 20 6c 6f  >Begin adding lo
f9e0: 74 73 20 6f 66 20 6e 65 77 20 64 6f 63 75 6d 65  ts of new docume
f9f0: 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d 0a 0a  ntation</li>.}..
fa00: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
fa10: 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 63  6} {.<li>Added c
fa20: 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74 20 6f  ompound select o
fa30: 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55 4e 49  perators: <B>UNI
fa40: 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49 4f 4e  ON</b>, <b>UNION
fa50: 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49 4e 54   ALL</B>,.<b>INT
fa60: 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e 64 20  ERSECT</b>, and 
fa70: 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c 2f 6c  <b>EXCEPT</b></l
fa80: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
fa90: 70 6f 72 74 20 66 6f 72 20 75 73 69 6e 67 20 3c  port for using <
faa0: 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29 3c 2f  b>(SELECT ...)</
fab0: 62 3e 20 77 69 74 68 69 6e 20 65 78 70 72 65 73  b> within expres
fac0: 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sions</li>.<li>A
fad0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
fae0: 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64 20 3c   <b>IN</b> and <
faf0: 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20 6f 70  b>BETWEEN</b> op
fb00: 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69  erators</li>.<li
fb10: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
fb20: 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42 59 3c 2f  or <b>GROUP BY</
fb30: 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49 4e 47  b> and <b>HAVING
fb40: 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 55  </b></li>.<li>NU
fb50: 4c 4c 20 76 61 6c 75 65 73 20 61 72 65 20 6e 6f  LL values are no
fb60: 77 20 72 65 70 6f 72 74 65 64 20 74 6f 20 74 68  w reported to th
fb70: 65 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 61 20  e callback as a 
fb80: 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20 20 20  NULL pointer.   
fb90: 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 6e 20   rather than an 
fba0: 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c 2f 6c  empty string.</l
fbb0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
fbc0: 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69 3e 41   June 3} {.<li>A
fbd0: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
fbe0: 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20   default values 
fbf0: 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20 61 20  on columns of a 
fc00: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  table.</li>.<li>
fc10: 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20 63 6f  Improved test co
fc20: 76 65 72 61 67 65 2e 20 20 46 69 78 65 64 20 61  verage.  Fixed a
fc30: 20 66 65 77 20 6f 62 73 63 75 72 65 20 62 75 67   few obscure bug
fc40: 73 20 66 6f 75 6e 64 20 62 79 20 74 68 65 0a 69  s found by the.i
fc50: 6d 70 72 6f 76 65 64 20 74 65 73 74 73 2e 3c 2f  mproved tests.</
fc60: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
fc70: 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c 69 3e  0 June 2} {.<li>
fc80: 41 6c 6c 20 64 61 74 61 62 61 73 65 20 66 69 6c  All database fil
fc90: 65 73 20 74 6f 20 62 65 20 6d 6f 64 69 66 69 65  es to be modifie
fca0: 64 20 62 79 20 61 6e 20 55 50 44 41 54 45 2c 20  d by an UPDATE, 
fcb0: 49 4e 53 45 52 54 20 6f 72 20 44 45 4c 45 54 45  INSERT or DELETE
fcc0: 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b 65 64   are .now locked
fcd0: 20 62 65 66 6f 72 65 20 61 6e 79 20 63 68 61 6e   before any chan
fce0: 67 65 73 20 61 72 65 20 6d 61 64 65 20 74 6f 20  ges are made to 
fcf0: 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54 68 69  any files.  .Thi
fd00: 73 20 6d 61 6b 65 73 20 69 74 20 73 61 66 65 20  s makes it safe 
fd10: 28 49 20 74 68 69 6e 6b 29 20 74 6f 20 61 63 63  (I think) to acc
fd20: 65 73 73 0a 74 68 65 20 73 61 6d 65 20 64 61 74  ess.the same dat
fd30: 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f  abase simultaneo
fd40: 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74 69 70  usly from multip
fd50: 6c 65 20 70 72 6f 63 65 73 73 65 73 2e 3c 2f 6c  le processes.</l
fd60: 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64 65 20  i>.<li>The code 
fd70: 61 70 70 65 61 72 73 20 73 74 61 62 6c 65 20 73  appears stable s
fd80: 6f 20 77 65 20 61 72 65 20 6e 6f 77 20 63 61 6c  o we are now cal
fd90: 6c 69 6e 67 20 69 74 20 22 62 65 74 61 22 2e 3c  ling it "beta".<
fda0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
fdb0: 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c 6c 69  00 June 1} {.<li
fdc0: 3e 42 65 74 74 65 72 20 73 75 70 70 6f 72 74 20  >Better support 
fdd0: 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69 6e 67  for file locking
fde0: 20 73 6f 20 74 68 61 74 20 74 77 6f 20 6f 72 20   so that two or 
fdf0: 6d 6f 72 65 20 70 72 6f 63 65 73 73 65 73 20 0a  more processes .
fe00: 28 6f 72 20 74 68 72 65 61 64 73 29 0a 63 61 6e  (or threads).can
fe10: 20 61 63 63 65 73 73 20 74 68 65 20 73 61 6d 65   access the same
fe20: 20 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74   database simult
fe30: 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72 65 20  aneously.  More 
fe40: 77 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e 0a 74  work needed in.t
fe50: 68 69 73 20 61 72 65 61 2c 20 74 68 6f 75 67 68  his area, though
fe60: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
fe70: 32 30 30 30 20 4d 61 79 20 33 31 7d 20 7b 0a 3c  2000 May 31} {.<
fe80: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
fe90: 20 66 6f 72 20 61 67 67 72 65 67 61 74 65 20 66   for aggregate f
fea0: 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20 3c 62  unctions (Ex: <b
feb0: 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c 20 3c  >COUNT(*)</b>, <
fec0: 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e 29 0a  b>MIN(...)</b>).
fed0: 74 6f 20 74 68 65 20 53 45 4c 45 43 54 20 73 74  to the SELECT st
fee0: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  atement.</li>.<l
fef0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
ff00: 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20 44 49  for <B>SELECT DI
ff10: 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e 3c 2f  STINCT ...</B></
ff20: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
ff30: 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c 69 3e  0 May 30} {.<li>
ff40: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 4c 49 4b  Added the <b>LIK
ff50: 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 2e 3c  E</b> operator.<
ff60: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
ff70: 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f 70 65   <b>GLOB</b> ope
ff80: 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72 20 74  rator: similar t
ff90: 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20 0a 62  o <B>LIKE</B> .b
ffa0: 75 74 20 69 74 20 75 73 65 73 20 55 6e 69 78 20  ut it uses Unix 
ffb0: 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67 20 77  shell globbing w
ffc0: 69 6c 64 63 61 72 64 73 20 69 6e 73 74 65 61 64  ildcards instead
ffd0: 20 6f 66 20 74 68 65 20 27 25 27 20 0a 61 6e 64   of the '%' .and
ffe0: 20 27 5f 27 20 77 69 6c 64 63 61 72 64 73 20 6f   '_' wildcards o
fff0: 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  f SQL.</li>.<li>
10000 41 64 64 65 64 20 74 68 65 20 3c 42 3e 43 4f 50  Added the <B>COP
10010 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 70 61  Y</b> command pa
10020 74 74 65 72 6e 65 64 20 61 66 74 65 72 20 0a 3c  tterned after .<
10030 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77  a href="http://w
10040 77 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e 6f 72  ww.postgresql.or
10050 67 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c 3c 2f  g/">PostgreSQL</
10060 61 3e 20 73 6f 20 74 68 61 74 20 53 51 4c 69 74  a> so that SQLit
10070 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64 20 74  e.can now read t
10080 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65  he output of the
10090 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62 3e 20   <b>pg_dump</b> 
100a0 64 61 74 61 62 61 73 65 20 64 75 6d 70 20 75 74  database dump ut
100b0 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67 72 65  ility.of Postgre
100c0 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  SQL.</li>.<li>Ad
100d0 64 65 64 20 61 20 3c 42 3e 56 41 43 55 55 4d 3c  ded a <B>VACUUM<
100e0 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74  /B> command that
100f0 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65 20   that calls the 
10100 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67 61 6e  .<b>gdbm_reorgan
10110 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69  ize()</b> functi
10120 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65 72 6c  on on the underl
10130 79 69 6e 67 20 64 61 74 61 62 61 73 65 0a 66 69  ying database.fi
10140 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e  les.</li>.<li>An
10150 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62 75 67  d many, many bug
10160 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e 0a 7d   fixes...</li>.}
10170 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79  ..chng {2000 May
10180 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69   29} {.<li>Initi
10190 61 6c 20 50 75 62 6c 69 63 20 52 65 6c 65 61 73  al Public Releas
101a0 65 20 6f 66 20 41 6c 70 68 61 20 63 6f 64 65 3c  e of Alpha code<
101b0 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b 0a 3c  /li>.}..puts {.<
101c0 2f 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20 7b 24  /DL>.}.footer {$
101d0 49 64 3a 7d 0a                                   Id:}.