/ Hex Artifact Content
Login

Artifact 85480df78c2b95afdbee92fdfc01dfda9918a818:


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 70 75  output file.#.pu
0040: 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64  ts {<html>.<head
0050: 3e 0a 20 20 3c 74 69 74 6c 65 3e 53 51 4c 69 74  >.  <title>SQLit
0060: 65 20 43 68 61 6e 67 65 20 4c 6f 67 3c 2f 74 69  e Change Log</ti
0070: 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f  tle>.</head>.<bo
0080: 64 79 20 62 67 63 6f 6c 6f 72 3d 22 77 68 69 74  dy bgcolor="whit
0090: 65 22 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 22 63  e">.<h1 align="c
00a0: 65 6e 74 65 72 22 3e 52 65 63 65 6e 74 20 43 68  enter">Recent Ch
00b0: 61 6e 67 65 73 20 54 6f 20 53 51 4c 69 74 65 3c  anges To SQLite<
00c0: 2f 68 31 3e 0a 0a 3c 70 3e 0a 54 68 69 73 20 66  /h1>..<p>.This f
00d0: 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 68  ile provides a h
00e0: 69 67 68 2d 6c 65 76 65 6c 20 73 75 6d 6d 61 72  igh-level summar
00f0: 79 20 6f 66 20 63 68 61 6e 67 65 73 20 74 6f 20  y of changes to 
0100: 53 51 4c 69 74 65 2e 0a 46 6f 72 20 6d 6f 72 65  SQLite..For more
0110: 20 64 65 74 61 69 6c 2c 20 72 65 66 65 72 20 74   detail, refer t
0120: 68 65 20 74 68 65 20 63 68 65 63 6b 69 6e 20 6c  he the checkin l
0130: 6f 67 73 20 67 65 6e 65 72 61 74 65 64 20 62 79  ogs generated by
0140: 0a 43 56 53 20 61 74 0a 3c 61 20 68 72 65 66 3d  .CVS at.<a href=
0150: 22 68 74 74 70 3a 2f 2f 63 76 73 2e 68 77 61 63  "http://cvs.hwac
0160: 69 2e 63 6f 6d 3a 32 30 38 30 2f 73 71 6c 69 74  i.com:2080/sqlit
0170: 65 2f 74 69 6d 65 6c 69 6e 65 22 3e 0a 68 74 74  e/timeline">.htt
0180: 70 3a 2f 2f 63 76 73 2e 68 77 61 63 69 2e 63 6f  p://cvs.hwaci.co
0190: 6d 3a 32 30 38 30 2f 73 71 6c 69 74 65 2f 74 69  m:2080/sqlite/ti
01a0: 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c 2f 70 3e  meline</a>..</p>
01b0: 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72 6f 63 20  ..<DL>.}...proc 
01c0: 63 68 6e 67 20 7b 64 61 74 65 20 64 65 73 63 7d  chng {date desc}
01d0: 20 7b 0a 20 20 70 75 74 73 20 22 3c 44 54 3e 3c   {.  puts "<DT><
01e0: 42 3e 24 64 61 74 65 3c 2f 42 3e 3c 2f 44 54 3e  B>$date</B></DT>
01f0: 22 0a 20 20 70 75 74 73 20 22 3c 44 44 3e 3c 50  ".  puts "<DD><P
0200: 3e 3c 55 4c 3e 24 64 65 73 63 3c 2f 55 4c 3e 3c  ><UL>$desc</UL><
0210: 2f 50 3e 3c 2f 44 44 3e 22 0a 7d 0a 0a 63 68 6e  /P></DD>".}..chn
0220: 67 20 7b 32 30 30 32 20 4e 6f 76 20 3f 3f 20 28  g {2002 Nov ?? (
0230: 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 44 61  2.7.4)} {.<li>Da
0240: 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 61 6e  tabase files can
0250: 20 6e 6f 77 20 67 72 6f 77 20 74 6f 20 62 65 20   now grow to be 
0260: 75 70 20 74 6f 20 32 5e 34 31 20 62 79 74 65 73  up to 2^41 bytes
0270: 2e 20 20 54 68 65 20 6f 6c 64 20 6c 69 6d 69 74  .  The old limit
0280: 0a 20 20 20 20 77 61 73 20 32 5e 33 31 20 62 79  .    was 2^31 by
0290: 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tes.</li>.}..chn
02a0: 67 20 7b 32 30 30 32 20 4f 63 74 20 33 30 20 28  g {2002 Oct 30 (
02b0: 32 2e 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61  2.7.3)} {.<li>Va
02c0: 72 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72 20 63  rious compiler c
02d0: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 66 69 78  ompatibility fix
02e0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
02f0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 65   a bug in the "e
0300: 78 70 72 20 49 4e 20 28 29 22 20 6f 70 65 72 61  xpr IN ()" opera
0310: 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63  tor.</li>.<li>Ac
0320: 63 65 70 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  cept column name
0330: 73 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73  s in parentheses
0340: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
0350: 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 73 74   problem with st
0360: 72 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61  ring memory mana
0370: 67 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 56 44  gement in the VD
0380: 42 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  BE</li>.<li>Fix 
0390: 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 74 61  a bug in the "ta
03a0: 62 6c 65 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61  ble_info" pragma
03b0: 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72  "</li>.<li>Expor
03c0: 74 20 74 68 65 20 73 71 6c 69 74 65 5f 66 75 6e  t the sqlite_fun
03d0: 63 74 69 6f 6e 5f 74 79 70 65 28 29 20 41 50 49  ction_type() API
03e0: 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65   function in the
03f0: 20 57 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69   Windows DLL</li
0400: 3e 0a 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e  >.<li>Fix lockin
0410: 67 20 62 65 68 61 76 69 6f 72 20 75 6e 64 65 72  g behavior under
0420: 20 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c   windows</li>.<l
0430: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 4c  i>Fix a bug in L
0440: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f  EFT OUTER JOIN</
0450: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
0460: 32 20 53 65 70 20 32 35 20 28 32 2e 37 2e 32 29  2 Sep 25 (2.7.2)
0470: 7d 20 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20  } {.<li>Prevent 
0480: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65  journal file ove
0490: 72 66 6c 6f 77 73 20 6f 6e 20 68 75 67 65 20 74  rflows on huge t
04a0: 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69  ransactions.</li
04b0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f  >.<li>Fix a memo
04c0: 72 79 20 6c 65 61 6b 20 74 68 61 74 20 6f 63 63  ry leak that occ
04d0: 75 72 72 65 64 20 77 68 65 6e 20 73 71 6c 69 74  urred when sqlit
04e0: 65 5f 6f 70 65 6e 28 29 20 66 61 69 6c 65 64 2e  e_open() failed.
04f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20  </li>.<li>Honor 
0500: 74 68 65 20 4f 52 44 45 52 20 42 59 20 61 6e 64  the ORDER BY and
0510: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6f 66   LIMIT clause of
0520: 20 61 20 53 45 4c 45 43 54 20 65 76 65 6e 20 69   a SELECT even i
0530: 66 20 74 68 65 0a 20 20 20 20 72 65 73 75 6c 74  f the.    result
0540: 20 73 65 74 20 69 73 20 75 73 65 64 20 66 6f 72   set is used for
0550: 20 61 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e   an INSERT.</li>
0560: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20  .<li>Do not put 
0570: 77 72 69 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74  write locks on t
0580: 68 65 20 66 69 6c 65 20 75 73 65 64 20 74 6f 20  he file used to 
0590: 68 6f 6c 64 20 54 45 4d 50 20 74 61 62 6c 65 73  hold TEMP tables
05a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
05b0: 20 64 6f 63 75 6d 65 6e 74 69 6f 6e 20 6f 6e 20   documention on 
05c0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
05d0: 61 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c 69 74  and on how SQLit
05e0: 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c 73 2e  e handles NULLs.
05f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
0600: 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77 61 73  problem that was
0610: 20 63 61 75 73 69 6e 67 20 70 6f 6f 72 20 70 65   causing poor pe
0620: 72 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e 20 6d  rformance when m
0630: 61 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a 20 20  any thousands.  
0640: 20 20 6f 66 20 53 51 4c 20 73 74 61 74 65 6d 65    of SQL stateme
0650: 6e 74 73 20 77 65 72 65 20 65 78 65 63 75 74 65  nts were execute
0660: 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73 71  d by a single sq
0670: 6c 69 74 65 5f 65 78 65 63 28 29 20 63 61 6c 6c  lite_exec() call
0680: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
0690: 32 30 30 32 20 41 75 67 20 33 31 20 28 32 2e 37  2002 Aug 31 (2.7
06a0: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .1)} {.<li>Fix a
06b0: 20 62 75 67 20 69 6e 20 74 68 65 20 4f 52 44 45   bug in the ORDE
06c0: 52 20 42 59 20 6c 6f 67 69 63 20 74 68 61 74 20  R BY logic that 
06d0: 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69  was introduced i
06e0: 6e 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e 30 3c  n version 2.7.0<
06f0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79 6c 65  /li>.<li>C-style
0700: 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20 6e 6f   comments are no
0710: 77 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68  w accepted by th
0720: 65 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f 6c 69  e tokenizer.</li
0730: 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72 75 6e  >.<li>INSERT run
0740: 73 20 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65  s a little faste
0750: 72 20 77 68 65 6e 20 74 68 65 20 73 6f 75 72 63  r when the sourc
0760: 65 20 69 73 20 61 20 53 45 4c 45 43 54 20 73 74  e is a SELECT st
0770: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d 0a  atement.</li>.}.
0780: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20  .chng {2002 Aug 
0790: 32 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a 3c 6c  25 (2.7.0)} {.<l
07a0: 69 3e 4d 61 6b 65 20 61 20 64 69 73 74 69 6e 63  i>Make a distinc
07b0: 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e 75 6d  tion between num
07c0: 65 72 69 63 20 61 6e 64 20 74 65 78 74 20 76 61  eric and text va
07d0: 6c 75 65 73 20 77 68 65 6e 20 73 6f 72 74 69 6e  lues when sortin
07e0: 67 2e 0a 20 20 20 20 54 65 78 74 20 76 61 6c 75  g..    Text valu
07f0: 65 73 20 73 6f 72 74 20 61 63 63 6f 72 64 69 6e  es sort accordin
0800: 67 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e 20 20  g to memcmp().  
0810: 4e 75 6d 65 72 69 63 20 76 61 6c 75 65 73 20 73  Numeric values s
0820: 6f 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d 65 72  ort in.    numer
0830: 69 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e 0a 3c  ic order.</li>.<
0840: 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69 70 6c  li>Allow multipl
0850: 65 20 73 69 6d 75 6c 61 74 61 6e 65 6f 75 73 20  e simulataneous 
0860: 72 65 61 64 65 72 73 20 75 6e 64 65 72 20 77 69  readers under wi
0870: 6e 64 6f 77 73 20 62 79 20 73 69 6d 75 6c 61 74  ndows by simulat
0880: 69 6e 67 0a 20 20 20 20 74 68 65 20 72 65 61 64  ing.    the read
0890: 65 72 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b 73  er/writers locks
08a0: 20 74 68 61 74 20 61 72 65 20 6d 69 73 73 69 6e   that are missin
08b0: 67 20 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38 2f  g from Win95/98/
08c0: 4d 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e 20  ME.</li>.<li>An 
08d0: 65 72 72 6f 72 20 69 73 20 6e 6f 77 20 72 65 74  error is now ret
08e0: 75 72 6e 65 64 20 77 68 65 6e 20 74 72 79 69 6e  urned when tryin
08f0: 67 20 74 6f 20 73 74 61 72 74 20 61 20 74 72 61  g to start a tra
0900: 6e 73 61 63 74 69 6f 6e 20 69 66 0a 20 20 20 20  nsaction if.    
0910: 61 6e 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74  another transact
0920: 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20 61  ion is already a
0930: 63 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ctive.</li>.}..c
0940: 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 31 32  hng {2002 Aug 12
0950: 20 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.6.3)} {.<li>
0960: 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20  Add the ability 
0970: 74 6f 20 72 65 61 64 20 62 6f 74 68 20 6c 69 74  to read both lit
0980: 74 6c 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20 62  tle-endian and b
0990: 69 67 2d 65 6e 64 69 61 6e 20 64 61 74 61 62 61  ig-endian databa
09a0: 73 65 73 2e 0a 20 20 20 20 53 6f 20 64 61 74 61  ses..    So data
09b0: 62 61 73 65 20 63 72 65 61 74 65 64 20 75 6e 64  base created und
09c0: 65 72 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63 4f  er SunOS or MacO
09d0: 53 58 20 63 61 6e 20 62 65 20 72 65 61 64 20 61  SX can be read a
09e0: 6e 64 20 77 72 69 74 74 65 6e 0a 20 20 20 20 75  nd written.    u
09f0: 6e 64 65 72 20 4c 69 6e 75 78 20 6f 72 20 57 69  nder Linux or Wi
0a00: 6e 64 6f 77 73 20 61 6e 64 20 76 69 63 65 20 76  ndows and vice v
0a10: 65 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  ersa.</li>.<li>C
0a20: 6f 6e 76 65 72 74 20 74 6f 20 74 68 65 20 6e 65  onvert to the ne
0a30: 77 20 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a  w website: http:
0a40: 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67  //www.sqlite.org
0a50: 2f 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  /</li>.<li>Allow
0a60: 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f   transactions to
0a70: 20 73 70 61 6e 20 4c 69 6e 75 78 20 54 68 72 65   span Linux Thre
0a80: 61 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ads</li>.<li>Bug
0a90: 20 66 69 78 20 69 6e 20 74 68 65 20 70 72 6f 63   fix in the proc
0aa0: 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 4f 52  essing of the OR
0ab0: 44 45 52 20 42 59 20 63 6c 61 75 73 65 20 66 6f  DER BY clause fo
0ac0: 72 20 47 52 4f 55 50 20 42 59 20 71 75 65 72 69  r GROUP BY queri
0ad0: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
0ae0: 7b 32 30 30 32 20 4a 6c 79 20 33 30 20 28 32 2e  {2002 Jly 30 (2.
0af0: 36 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78 74  6.2)} {.<li>Text
0b00: 20 66 69 6c 65 73 20 72 65 61 64 20 62 79 20 74   files read by t
0b10: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20  he COPY command 
0b20: 63 61 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69 6e  can now have lin
0b30: 65 20 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20 20  e terminators.  
0b40: 20 20 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c 20    of LF,  CRLF, 
0b50: 6f 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  or CR.</li>.<li>
0b60: 53 51 4c 49 54 45 5f 42 55 53 59 20 69 73 20 68  SQLITE_BUSY is h
0b70: 61 6e 64 6c 65 64 20 63 6f 72 72 65 63 74 6c 79  andled correctly
0b80: 20 69 66 20 65 6e 63 6f 75 6e 74 65 72 65 64 20   if encountered 
0b90: 64 75 72 69 6e 67 20 64 61 74 61 62 61 73 65 0a  during database.
0ba0: 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 61 74 69      initializati
0bb0: 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  on.</li>.<li>Fix
0bc0: 20 74 6f 20 55 50 44 41 54 45 20 74 72 69 67 67   to UPDATE trigg
0bd0: 65 72 73 20 6f 6e 20 54 45 4d 50 20 74 61 62 6c  ers on TEMP tabl
0be0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  es.</li>.<li>Doc
0bf0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
0c00: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
0c10: 20 7b 32 30 30 32 20 4a 6c 79 20 31 39 20 28 32   {2002 Jly 19 (2
0c20: 2e 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 63  .6.1)} {.<li>Inc
0c30: 6c 75 64 65 20 61 20 73 74 61 74 69 63 20 73 74  lude a static st
0c40: 72 69 6e 67 20 69 6e 20 74 68 65 20 6c 69 62 72  ring in the libr
0c50: 61 72 79 20 74 68 61 74 20 72 65 73 70 6f 6e 64  ary that respond
0c60: 73 20 74 6f 20 74 68 65 20 52 43 53 0a 20 20 20  s to the RCS.   
0c70: 20 22 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e 64   "ident" command
0c80: 20 61 6e 64 20 77 68 69 63 68 20 63 6f 6e 74 61   and which conta
0c90: 69 6e 73 20 74 68 65 20 6c 69 62 72 61 72 79 20  ins the library 
0ca0: 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 3c  version number.<
0cb0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20  /li>.<li>Fix an 
0cc0: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72  assertion failur
0cd0: 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64 20  e that occurred 
0ce0: 77 68 65 6e 20 64 65 6c 65 74 69 6e 67 20 61 6c  when deleting al
0cf0: 6c 20 72 6f 77 73 20 6f 66 0a 20 20 20 20 61 20  l rows of.    a 
0d00: 74 61 62 6c 65 20 77 69 74 68 20 74 68 65 20 22  table with the "
0d10: 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22 20 70  count_changes" p
0d20: 72 61 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e 2e  ragma turned on.
0d30: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65 72  </li>.<li>Better
0d40: 20 65 72 72 6f 72 20 72 65 70 6f 72 74 69 6e 67   error reporting
0d50: 20 77 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20 6f   when problems o
0d60: 63 63 75 72 20 64 75 72 69 6e 67 20 74 68 65 20  ccur during the 
0d70: 61 75 74 6f 6d 61 74 69 63 0a 20 20 20 20 32 2e  automatic.    2.
0d80: 35 2e 36 20 74 6f 20 32 2e 36 2e 30 20 64 61 74  5.6 to 2.6.0 dat
0d90: 61 62 61 73 65 20 66 6f 72 6d 61 74 20 75 70 67  abase format upg
0da0: 72 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  rade.</li>.}..ch
0db0: 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 37 20  ng {2002 Jly 17 
0dc0: 28 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43  (2.6.0)} {.<li>C
0dd0: 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74  hange the format
0de0: 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20 63   of indices to c
0df0: 6f 72 72 65 63 74 20 61 20 64 65 73 69 67 6e 20  orrect a design 
0e00: 66 6c 61 77 20 74 68 65 20 6f 72 69 67 69 6e 61  flaw the origina
0e10: 74 65 64 0a 20 20 20 20 77 69 74 68 20 76 65 72  ted.    with ver
0e20: 73 69 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66 6f  sion 2.1.0.  <fo
0e30: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a  nt color="red">*
0e40: 2a 2a 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e  ** This is an in
0e50: 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20 20 20 66  compatible.    f
0e60: 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67  ile format chang
0e70: 65 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57 68  e ***</font>  Wh
0e80: 65 6e 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e 30  en version 2.6.0
0e90: 20 6f 72 20 6c 61 74 65 72 20 6f 66 20 74 68 65   or later of the
0ea0: 0a 20 20 20 20 6c 69 62 72 61 72 79 20 61 74 74  .    library att
0eb0: 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20 61 20  empts to open a 
0ec0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 63 72  database file cr
0ed0: 65 61 74 65 64 20 62 79 20 76 65 72 73 69 6f 6e  eated by version
0ee0: 20 32 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65 61   2.5.6 or.    ea
0ef0: 72 6c 69 65 72 2c 20 69 74 20 77 69 6c 6c 20 61  rlier, it will a
0f00: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e 64  utomatically and
0f10: 20 69 72 72 65 76 65 72 73 69 62 6c 79 20 63 6f   irreversibly co
0f20: 6e 76 65 72 74 20 74 68 65 20 66 69 6c 65 20 66  nvert the file f
0f30: 6f 72 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d 61  ormat..    <b>Ma
0f40: 6b 65 20 62 61 63 6b 75 70 20 63 6f 70 69 65 73  ke backup copies
0f50: 20 6f 66 20 6f 6c 64 65 72 20 64 61 74 61 62 61   of older databa
0f60: 73 65 20 66 69 6c 65 73 20 62 65 66 6f 72 65 20  se files before 
0f70: 6f 70 65 6e 69 6e 67 20 74 68 65 6d 20 77 69 74  opening them wit
0f80: 68 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 32 2e  h.    version 2.
0f90: 36 2e 30 20 6f 66 20 74 68 65 20 6c 69 62 72 61  6.0 of the libra
0fa0: 72 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c 69  ry.</b>.    </li
0fb0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
0fc0: 4a 6c 79 20 37 20 28 32 2e 35 2e 36 29 7d 20 7b  Jly 7 (2.5.6)} {
0fd0: 0a 3c 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70 72  .<li>Fix more pr
0fe0: 6f 62 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c 6c  oblems with roll
0ff0: 62 61 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20 74  back.  Enhance t
1000: 68 65 20 74 65 73 74 20 73 75 69 74 65 20 74 6f  he test suite to
1010: 20 65 78 65 72 63 69 73 65 0a 20 20 20 20 74 68   exercise.    th
1020: 65 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69 63  e rollback logic
1030: 20 65 78 74 65 6e 73 69 76 65 6c 79 20 69 6e 20   extensively in 
1040: 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e 74  order to prevent
1050: 20 61 6e 79 20 66 75 74 75 72 65 20 70 72 6f 62   any future prob
1060: 6c 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a  lems..    </li>.
1070: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
1080: 79 20 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a 3c  y 6 (2.5.5)} {.<
1090: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69  li>Fix a bug whi
10a0: 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 20 64  ch could cause d
10b0: 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74 69  atabase corrupti
10c0: 6f 6e 20 64 75 72 69 6e 67 20 61 20 72 6f 6c 6c  on during a roll
10d0: 62 61 63 6b 2e 0a 20 20 20 20 54 68 69 73 20 62  back..    This b
10e0: 75 67 73 20 77 61 73 20 69 6e 74 72 6f 64 75 63  ugs was introduc
10f0: 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e  ed in version 2.
1100: 34 2e 30 20 62 79 20 74 68 65 20 66 72 65 65 6c  4.0 by the freel
1110: 69 73 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a 61  ist.    optimiza
1120: 74 69 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e 67  tion of checking
1130: 20 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c 69   [410].</li>.<li
1140: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 61 67  >Fix a bug in ag
1150: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
1160: 73 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c 69  s for VIEWs.</li
1170: 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f  >.<li>Other mino
1180: 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65 6e  r changes and en
1190: 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  hancements.</li>
11a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
11b0: 6c 79 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b 0a  ly 1 (2.5.4)} {.
11c0: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 22 41 53  <li>Make the "AS
11d0: 22 20 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f 6e  " keyword option
11e0: 61 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a 3c  al again.</li>.<
11f0: 6c 69 3e 54 68 65 20 64 61 74 61 74 79 70 65 20  li>The datatype 
1200: 6f 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20 61  of columns now a
1210: 70 70 65 61 72 20 69 6e 20 74 68 65 20 34 74 68  ppear in the 4th
1220: 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65   argument to the
1230: 0a 20 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c 2f  .    callback.</
1240: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
1250: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65 6e  e <b>sqlite_open
1260: 5f 61 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e 20  _aux_file()</b> 
1270: 41 50 49 2c 20 74 68 6f 75 67 68 20 69 74 20 69  API, though it i
1280: 73 20 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73 74  s still.    most
1290: 6c 79 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64 20  ly undocumented 
12a0: 61 6e 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f 6c  and untested.</l
12b0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64 64  i>.<li>Added add
12c0: 69 74 69 6f 6e 61 6c 20 74 65 73 74 20 63 61 73  itional test cas
12d0: 65 73 20 61 6e 64 20 66 69 78 65 64 20 61 20 66  es and fixed a f
12e0: 65 77 20 62 75 67 73 20 74 68 61 74 20 74 68 6f  ew bugs that tho
12f0: 73 65 0a 20 20 20 20 74 65 73 74 20 63 61 73 65  se.    test case
1300: 73 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d 0a  s found.</li>.}.
1310: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20  .chng {2002 Jun 
1320: 32 34 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c 6c  24 (2.5.3)} {.<l
1330: 69 3e 42 75 67 20 66 69 78 3a 20 20 44 61 74 61  i>Bug fix:  Data
1340: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
1350: 63 61 6e 20 6f 63 63 75 72 20 64 75 65 20 74 6f  can occur due to
1360: 20 74 68 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f   the optimizatio
1370: 6e 0a 20 20 20 20 74 68 61 74 20 77 61 73 20 69  n.    that was i
1380: 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65 72  ntroduced in ver
1390: 73 69 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65 63  sion 2.4.0 (chec
13a0: 6b 2d 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54 68  k-in [410]).  Th
13b0: 65 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73 68  e problem.    sh
13c0: 6f 75 6c 64 20 6e 6f 77 20 62 65 20 66 69 78 65  ould now be fixe
13d0: 64 2e 20 20 54 68 65 20 75 73 65 20 6f 66 20 76  d.  The use of v
13e0: 65 72 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74 68  ersions 2.4.0 th
13f0: 72 6f 75 67 68 20 32 2e 35 2e 32 20 69 73 0a 20  rough 2.5.2 is. 
1400: 20 20 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e 64     not recommend
1410: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
1420: 20 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28 32   {2002 Jun 24 (2
1430: 2e 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .5.2)} {.<li>Add
1440: 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 53 51  ed the new <b>SQ
1450: 4c 49 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45 52  LITE_TEMP_MASTER
1460: 3c 2f 62 3e 20 74 61 62 6c 65 20 77 68 69 63 68  </b> table which
1470: 20 72 65 63 6f 72 64 73 20 74 68 65 20 73 63 68   records the sch
1480: 65 6d 61 0a 20 20 20 20 66 6f 72 20 74 65 6d 70  ema.    for temp
1490: 6f 72 61 72 79 20 74 61 62 6c 65 73 20 69 6e 20  orary tables in 
14a0: 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61  the same way tha
14b0: 74 20 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53 54  t <b>SQLITE_MAST
14c0: 45 52 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72 0a  ER</b> does for.
14d0: 20 20 20 20 70 65 72 73 69 73 74 65 6e 74 20 74      persistent t
14e0: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
14f0: 41 64 64 65 64 20 61 6e 20 6f 70 74 69 6d 69 7a  Added an optimiz
1500: 61 74 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20 41  ation to UNION A
1510: 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  LL</li>.<li>Fixe
1520: 64 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 70  d a bug in the p
1530: 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 4c 45 46  rocessing of LEF
1540: 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c 69  T OUTER JOIN</li
1550: 3e 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54 20  >.<li>The LIMIT 
1560: 63 6c 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b 73  clause now works
1570: 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f   on subselects</
1580: 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42 59  li>.<li>ORDER BY
1590: 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65 6c   works on subsel
15a0: 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ects</li>.<li>Th
15b0: 65 72 65 20 69 73 20 61 20 6e 65 77 20 54 79 70  ere is a new Typ
15c0: 65 4f 66 28 29 20 66 75 6e 63 74 69 6f 6e 20 75  eOf() function u
15d0: 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e 65  sed to determine
15e0: 20 69 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f   if an expressio
15f0: 6e 0a 20 20 20 20 69 73 20 6e 75 6d 65 72 69 63  n.    is numeric
1600: 20 6f 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a 3c   or text.</li>.<
1610: 6c 69 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e 74  li>Autoincrement
1620: 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20 49   now works for I
1630: 4e 53 45 52 54 20 66 72 6f 6d 20 61 20 53 45 4c  NSERT from a SEL
1640: 45 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ECT.</li>.}..chn
1650: 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 39 20 28  g {2002 Jun 19 (
1660: 32 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68  2.5.1)} {.<li>Th
1670: 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a 65  e query optimize
1680: 72 20 6e 6f 77 20 61 74 74 65 6d 70 74 73 20 74  r now attempts t
1690: 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65 20  o implement the 
16a0: 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65 0a  ORDER BY clause.
16b0: 20 20 20 20 75 73 69 6e 67 20 61 6e 20 69 6e 64      using an ind
16c0: 65 78 2e 20 20 53 6f 72 74 69 6e 67 20 69 73 20  ex.  Sorting is 
16d0: 73 74 69 6c 6c 20 75 73 65 64 20 69 66 20 6e 6f  still used if no
16e0: 74 20 73 75 69 74 61 62 6c 65 20 69 6e 64 65 78  t suitable index
16f0: 20 69 73 0a 20 20 20 20 61 76 61 69 6c 61 62 6c   is.    availabl
1700: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
1710: 7b 32 30 30 32 20 4a 75 6e 20 31 37 20 28 32 2e  {2002 Jun 17 (2.
1720: 35 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  5.0)} {.<li>Adde
1730: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 6f  d support for ro
1740: 77 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69 3e  w triggers.</li>
1750: 0a 3c 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d 39  .<li>Added SQL-9
1760: 32 20 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e 64  2 compliant hand
1770: 6c 69 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c 2f  ling of NULLs.</
1780: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70  li>.<li>Add supp
1790: 6f 72 74 20 66 6f 72 20 74 68 65 20 66 75 6c 6c  ort for the full
17a0: 20 53 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79 6e   SQL-92 join syn
17b0: 74 61 78 20 61 6e 64 20 4c 45 46 54 20 4f 55 54  tax and LEFT OUT
17c0: 45 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a 3c  ER JOINs.</li>.<
17d0: 6c 69 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65 64  li>Double-quoted
17e0: 20 73 74 72 69 6e 67 73 20 69 6e 74 65 72 70 72   strings interpr
17f0: 65 74 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20 6e  eted as column n
1800: 61 6d 65 73 20 6e 6f 74 20 74 65 78 74 20 6c 69  ames not text li
1810: 74 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  terals.</li>.<li
1820: 3e 50 61 72 73 65 20 28 62 75 74 20 64 6f 20 6e  >Parse (but do n
1830: 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66 6f  ot implement) fo
1840: 72 65 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69 3e  reign keys.</li>
1850: 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65  .<li>Performance
1860: 20 69 6d 70 72 6f 76 65 6d 65 6e 65 74 73 20 69   improvemenets i
1870: 6e 20 74 68 65 20 70 61 72 73 65 72 2c 20 70 61  n the parser, pa
1880: 67 65 72 2c 20 61 6e 64 20 57 48 45 52 45 20 63  ger, and WHERE c
1890: 6c 61 75 73 65 20 63 6f 64 65 0a 20 20 20 20 67  lause code.    g
18a0: 65 6e 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c  enerator.</li>.<
18b0: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49  li>Make the LIMI
18c0: 54 20 63 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e  T clause work on
18d0: 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 28 4f   subqueries.  (O
18e0: 52 44 45 52 20 42 59 20 73 74 69 6c 6c 20 64 6f  RDER BY still do
18f0: 65 73 20 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c  es not.    work,
1900: 20 74 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c   though.)</li>.<
1910: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 25 51  li>Added the "%Q
1920: 22 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73  " expansion to s
1930: 71 6c 69 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29  qlite_*_printf()
1940: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
1950: 69 78 65 73 20 74 6f 6f 20 6e 75 6d 65 72 69 6f  ixes too numerio
1960: 75 73 20 74 6f 20 6d 65 6e 74 69 6f 6e 20 28 73  us to mention (s
1970: 65 65 20 74 68 65 20 63 68 61 6e 67 65 20 6c 6f  ee the change lo
1980: 67 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  g).</li>.}..chng
1990: 20 7b 32 30 30 32 20 4d 61 79 20 30 39 20 28 32   {2002 May 09 (2
19a0: 2e 34 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .4.12)} {.<li>Ad
19b0: 64 65 64 20 6c 6f 67 69 63 20 74 6f 20 64 65 74  ded logic to det
19c0: 65 63 74 20 77 68 65 6e 20 74 68 65 20 6c 69 62  ect when the lib
19d0: 72 61 72 79 20 41 50 49 20 72 6f 75 74 69 6e 65  rary API routine
19e0: 73 20 61 72 65 20 63 61 6c 6c 65 64 20 6f 75 74  s are called out
19f0: 0a 20 20 20 20 6f 66 20 73 65 71 75 65 6e 63 65  .    of sequence
1a00: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1a10: 32 30 30 32 20 4d 61 79 20 30 38 20 28 32 2e 34  2002 May 08 (2.4
1a20: 2e 31 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  .11)} {.<li>Bug 
1a30: 66 69 78 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65  fix: Column name
1a40: 73 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20  s in the result 
1a50: 73 65 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69  set were not bei
1a60: 6e 67 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20  ng generated.   
1a70: 20 63 6f 72 72 65 63 74 6c 79 20 66 6f 72 20 73   correctly for s
1a80: 6f 6d 65 20 28 72 61 74 68 65 72 20 63 6f 6d 70  ome (rather comp
1a90: 6c 65 78 29 20 56 49 45 57 73 2e 20 20 54 68 69  lex) VIEWs.  Thi
1aa0: 73 20 63 6f 75 6c 64 20 63 61 75 73 65 20 61 0a  s could cause a.
1ab0: 20 20 20 20 73 65 67 66 61 75 6c 74 20 75 6e 64      segfault und
1ac0: 65 72 20 63 65 72 74 61 69 6e 20 63 69 72 63 75  er certain circu
1ad0: 6d 73 74 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d  mstances.</li>.}
1ae0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
1af0: 20 30 32 20 28 32 2e 34 2e 31 30 29 7d 20 7b 0a   02 (2.4.10)} {.
1b00: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 47 65 6e  <li>Bug fix: Gen
1b10: 65 72 61 74 65 20 63 6f 72 72 65 63 74 20 63 6f  erate correct co
1b20: 6c 75 6d 6e 20 68 65 61 64 65 72 73 20 77 68 65  lumn headers whe
1b30: 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c  n a compound SEL
1b40: 45 43 54 20 69 73 20 75 73 65 64 0a 20 20 20 20  ECT is used.    
1b50: 61 73 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f  as a subquery.</
1b60: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
1b70: 65 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f  e sqlite_encode_
1b80: 62 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c  binary() and sql
1b90: 69 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72  ite_decode_binar
1ba0: 79 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f  y() functions to
1bb0: 0a 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 20  .    the source 
1bc0: 74 72 65 65 2e 20 20 42 75 74 20 74 68 65 79 20  tree.  But they 
1bd0: 61 72 65 20 6e 6f 74 20 79 65 74 20 6c 69 6e 6b  are not yet link
1be0: 65 64 20 69 6e 74 6f 20 74 68 65 20 6c 69 62 72  ed into the libr
1bf0: 61 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  ary.</li>.<li>Do
1c00: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
1c10: 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78  tes.</li>.<li>Ex
1c20: 70 6f 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f  port the sqlite_
1c30: 63 68 61 6e 67 65 73 28 29 20 66 75 6e 63 74 69  changes() functi
1c40: 6f 6e 20 66 72 6f 6d 20 77 69 6e 64 6f 77 73 20  on from windows 
1c50: 44 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  DLLs.</li>.<li>B
1c60: 75 67 20 66 69 78 3a 20 44 6f 20 6e 6f 74 20 61  ug fix: Do not a
1c70: 74 74 65 6d 70 74 20 74 68 65 20 73 75 62 71 75  ttempt the subqu
1c80: 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f  ery flattening o
1c90: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20 71  ptimization on q
1ca0: 75 65 72 69 65 73 0a 20 20 20 20 74 68 61 74 20  ueries.    that 
1cb0: 6c 61 63 6b 20 61 20 46 52 4f 4d 20 63 6c 61 75  lack a FROM clau
1cc0: 73 65 2e 20 20 54 6f 20 64 6f 20 73 6f 20 63 61  se.  To do so ca
1cd0: 75 73 65 73 20 61 20 73 65 67 66 61 75 6c 74 2e  uses a segfault.
1ce0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
1cf0: 30 30 32 20 41 70 72 20 32 31 20 28 32 2e 34 2e  002 Apr 21 (2.4.
1d00: 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  9)} {.<li>Fix a 
1d10: 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61 75  bug that was cau
1d20: 73 69 6e 67 20 74 68 65 20 70 72 65 63 6f 6d 70  sing the precomp
1d30: 69 6c 65 64 20 62 69 6e 61 72 79 20 6f 66 20 53  iled binary of S
1d40: 51 4c 49 54 45 2e 45 58 45 20 74 6f 0a 20 20 20  QLITE.EXE to.   
1d50: 20 72 65 70 6f 72 74 20 22 6f 75 74 20 6f 66 20   report "out of 
1d60: 6d 65 6d 6f 72 79 22 20 75 6e 64 65 72 20 57 69  memory" under Wi
1d70: 6e 64 6f 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d  ndows 98.</li>.}
1d80: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
1d90: 20 32 30 20 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c   20 (2.4.8)} {.<
1da0: 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20 56 49 45  li>Make sure VIE
1db0: 57 73 20 61 72 65 20 63 72 65 61 74 65 64 20 61  Ws are created a
1dc0: 66 74 65 72 20 74 68 65 69 72 20 63 6f 72 72 65  fter their corre
1dd0: 73 70 6f 6e 64 69 6e 67 20 54 41 42 4c 45 73 20  sponding TABLEs 
1de0: 69 6e 20 74 68 65 0a 20 20 20 20 6f 75 74 70 75  in the.    outpu
1df0: 74 20 6f 66 20 74 68 65 20 3c 62 3e 2e 64 75 6d  t of the <b>.dum
1e00: 70 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e  p</b> command in
1e10: 20 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e   the shell.</li>
1e20: 0a 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f  .<li>Speed impro
1e30: 76 65 6d 65 6e 74 73 3a 20 44 6f 20 6e 6f 74 20  vements: Do not 
1e40: 64 6f 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75  do synchronous u
1e50: 70 64 61 74 65 73 20 6f 6e 20 54 45 4d 50 20 74  pdates on TEMP t
1e60: 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ables.</li>.<li>
1e70: 4d 61 6e 79 20 69 6d 70 72 6f 76 65 6d 65 6e 74  Many improvement
1e80: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
1e90: 74 73 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e  ts to the shell.
1ea0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74  </li>.<li>Make t
1eb0: 68 65 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45  he GLOB and LIKE
1ec0: 20 6f 70 65 72 61 74 6f 72 73 20 66 75 6e 63 74   operators funct
1ed0: 69 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62 65  ions that can be
1ee0: 20 6f 76 65 72 72 69 64 64 65 6e 0a 20 20 20 20   overridden.    
1ef0: 62 79 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 2e  by a programmer.
1f00: 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 2c 20 66    This allows, f
1f10: 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20  or example, the 
1f20: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 74 6f  LIKE operator to
1f30: 0a 20 20 20 20 62 65 20 63 68 61 6e 67 65 64 20  .    be changed 
1f40: 74 6f 20 62 65 20 63 61 73 65 20 73 65 6e 73 69  to be case sensi
1f50: 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  tive.</li>.}..ch
1f60: 6e 67 20 7b 32 30 30 32 20 41 70 72 20 30 36 20  ng {2002 Apr 06 
1f70: 28 32 2e 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.4.7)} {.<li>A
1f80: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
1f90: 6f 20 70 75 74 20 54 41 42 4c 45 2e 2a 20 69 6e  o put TABLE.* in
1fa0: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74   the column list
1fb0: 20 6f 66 20 61 0a 20 20 20 20 53 45 4c 45 43 54   of a.    SELECT
1fc0: 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e   statement.</li>
1fd0: 0a 3c 6c 69 3e 50 65 72 6d 69 74 20 53 45 4c 45  .<li>Permit SELE
1fe0: 43 54 20 73 74 61 74 65 6d 65 6e 74 73 20 77 69  CT statements wi
1ff0: 74 68 6f 75 74 20 61 20 46 52 4f 4d 20 63 6c 61  thout a FROM cla
2000: 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  use.</li>.<li>Ad
2010: 64 65 64 20 74 68 65 20 3c 62 3e 6c 61 73 74 5f  ded the <b>last_
2020: 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f  insert_rowid()</
2030: 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e  b> SQL function.
2040: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
2050: 20 63 6f 75 6e 74 20 72 6f 77 73 20 77 68 65 72   count rows wher
2060: 65 20 74 68 65 20 49 47 4e 4f 52 45 20 63 6f 6e  e the IGNORE con
2070: 66 6c 69 63 74 20 72 65 73 75 6c 74 69 6f 6e 20  flict resultion 
2080: 6f 63 63 75 72 73 20 69 6e 0a 20 20 20 20 74 68  occurs in.    th
2090: 65 20 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69  e row count.</li
20a0: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20  >.<li>Make sure 
20b0: 66 75 6e 63 74 69 6f 6e 73 20 65 78 70 72 65 73  functions expres
20c0: 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 56 41 4c  sions in the VAL
20d0: 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e  UES clause of an
20e0: 20 49 4e 53 45 52 54 0a 20 20 20 20 61 72 65 20   INSERT.    are 
20f0: 63 6f 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c  correct.</li>.<l
2100: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
2110: 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 3c  qlite_changes()<
2120: 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  /b> API function
2130: 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6e   to return the n
2140: 75 6d 62 65 72 0a 20 20 20 20 6f 66 20 72 6f 77  umber.    of row
2150: 20 74 68 61 74 20 63 68 61 6e 67 65 64 20 69 6e   that changed in
2160: 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74   the most recent
2170: 20 6f 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e   operation.</li>
2180: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
2190: 70 72 20 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b  pr 02 (2.4.6)} {
21a0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f  .<li>Bug fix: Co
21b0: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 74  rrectly handle t
21c0: 65 72 6d 73 20 69 6e 20 74 68 65 20 57 48 45 52  erms in the WHER
21d0: 45 20 63 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f  E clause of a jo
21e0: 69 6e 20 74 68 61 74 0a 20 20 20 20 64 6f 20 6e  in that.    do n
21f0: 6f 74 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d  ot contain a com
2200: 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72  parison operator
2210: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2220: 32 30 30 32 20 41 70 72 20 30 31 20 28 32 2e 34  2002 Apr 01 (2.4
2230: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .5)} {.<li>Bug f
2240: 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61  ix: Correctly ha
2250: 6e 64 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74  ndle functions t
2260: 68 61 74 20 61 70 70 65 61 72 20 69 6e 20 74 68  hat appear in th
2270: 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 0a 20  e WHERE clause. 
2280: 20 20 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c     of a join.</l
2290: 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20  i>.<li>When the 
22a0: 50 52 41 47 4d 41 20 76 64 62 65 5f 74 72 61 63  PRAGMA vdbe_trac
22b0: 65 3d 4f 4e 20 69 73 20 73 65 74 2c 20 63 6f 72  e=ON is set, cor
22c0: 72 65 63 74 6c 79 20 70 72 69 6e 74 20 74 68 65  rectly print the
22d0: 20 50 33 20 6f 70 65 72 61 6e 64 0a 20 20 20 20   P3 operand.    
22e0: 76 61 6c 75 65 20 77 68 65 6e 20 69 74 20 69 73  value when it is
22f0: 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20   a pointer to a 
2300: 73 74 72 75 63 74 75 72 65 20 72 61 74 68 65 72  structure rather
2310: 20 74 68 61 6e 20 61 20 70 6f 69 6e 74 65 72 20   than a pointer 
2320: 74 6f 0a 20 20 20 20 61 20 73 74 72 69 6e 67 2e  to.    a string.
2330: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69  </li>.<li>When i
2340: 6e 73 65 72 74 69 6e 67 20 61 6e 20 65 78 70 6c  nserting an expl
2350: 69 63 69 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61  icit NULL into a
2360: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
2370: 59 20 4b 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20  Y KEY, convert. 
2380: 20 20 20 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75     the NULL valu
2390: 65 20 69 6e 74 6f 20 61 20 75 6e 69 71 75 65 20  e into a unique 
23a0: 6b 65 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  key automaticall
23b0: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
23c0: 7b 32 30 30 32 20 4d 61 72 20 32 34 20 28 32 2e  {2002 Mar 24 (2.
23d0: 34 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f  4.4)} {.<li>Allo
23e0: 77 20 22 56 49 45 57 22 20 74 6f 20 62 65 20 61  w "VIEW" to be a
23f0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69   column name</li
2400: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
2410: 6f 72 74 20 66 6f 72 20 43 41 53 45 20 65 78 70  ort for CASE exp
2420: 72 65 73 73 69 6f 6e 73 20 28 70 61 74 63 68 20  ressions (patch 
2430: 66 72 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79  from Dan Kennedy
2440: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  )</li>.<li>Added
2450: 20 52 50 4d 53 20 74 6f 20 74 68 65 20 64 65 6c   RPMS to the del
2460: 69 76 65 72 79 20 28 70 61 74 63 68 65 73 20 66  ivery (patches f
2470: 72 6f 6d 20 44 6f 75 67 20 48 65 6e 72 79 29 3c  rom Doug Henry)<
2480: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70  /li>.<li>Fix typ
2490: 6f 73 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65  os in the docume
24a0: 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69  ntation</li>.<li
24b0: 3e 43 75 74 20 6f 76 65 72 20 63 6f 6e 66 69 67  >Cut over config
24c0: 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65  uration manageme
24d0: 6e 74 20 74 6f 20 61 20 6e 65 77 20 43 56 53 20  nt to a new CVS 
24e0: 72 65 70 6f 73 69 74 6f 72 79 20 77 69 74 68 0a  repository with.
24f0: 20 20 20 20 69 74 73 20 6f 77 6e 20 43 56 53 54      its own CVST
2500: 72 61 63 20 62 75 67 20 74 72 61 63 6b 69 6e 67  rac bug tracking
2510: 20 73 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a   system.</li>.}.
2520: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
2530: 32 32 20 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c  22 (2.4.3)} {.<l
2540: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 53  i>Fix a bug in S
2550: 45 4c 45 43 54 20 74 68 61 74 20 6f 63 63 75 72  ELECT that occur
2560: 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e  s when a compoun
2570: 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64  d SELECT is used
2580: 20 61 73 20 61 0a 20 20 20 20 73 75 62 71 75 65   as a.    subque
2590: 72 79 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f  ry in the FROM o
25a0: 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e  f a SELECT.</li>
25b0: 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69  .<li>The <b>sqli
25c0: 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f  te_get_table()</
25d0: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20  b> function now 
25e0: 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72  returns an error
25f0: 20 69 66 20 79 6f 75 0a 20 20 20 20 67 69 76 65   if you.    give
2600: 20 69 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20   it two or more 
2610: 53 45 4c 45 43 54 73 20 74 68 61 74 20 72 65 74  SELECTs that ret
2620: 75 72 6e 20 64 69 66 66 65 72 65 6e 74 20 6e 75  urn different nu
2630: 6d 62 65 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73  mbers of columns
2640: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2650: 32 30 30 32 20 4d 61 72 20 31 34 20 28 32 2e 34  2002 Mar 14 (2.4
2660: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
2670: 69 78 3a 20 46 69 78 20 61 6e 20 61 73 73 65 72  ix: Fix an asser
2680: 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61  tion failure tha
2690: 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20  t occurred when 
26a0: 52 4f 57 49 44 20 77 61 73 20 61 20 63 6f 6c 75  ROWID was a colu
26b0: 6d 6e 0a 20 20 20 20 69 6e 20 61 20 53 45 4c 45  mn.    in a SELE
26c0: 43 54 20 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20  CT statement on 
26d0: 61 20 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69  a view.</li>.<li
26e0: 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e  >Bug fix: Fix an
26f0: 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76   uninitialized v
2700: 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 56  ariable in the V
2710: 44 42 45 20 74 68 61 74 20 77 6f 75 6c 64 20 63  DBE that would c
2720: 6f 75 6c 64 20 61 6e 0a 20 20 20 20 61 73 73 65  ould an.    asse
2730: 72 74 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e  rt failure.</li>
2740: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73  .<li>Make the os
2750: 2e 68 20 68 65 61 64 65 72 20 66 69 6c 65 20 6d  .h header file m
2760: 6f 72 65 20 72 6f 62 75 73 74 20 69 6e 20 64 65  ore robust in de
2770: 74 65 63 74 69 6e 67 20 77 68 65 6e 20 74 68 65  tecting when the
2780: 20 63 6f 6d 70 69 6c 65 20 69 73 0a 20 20 20 20   compile is.    
2790: 66 6f 72 20 77 69 6e 64 6f 77 73 20 61 6e 64 20  for windows and 
27a0: 77 68 65 6e 20 69 74 20 69 73 20 66 6f 72 20 75  when it is for u
27b0: 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nix.</li>.}..chn
27c0: 67 20 7b 32 30 30 32 20 4d 61 72 20 31 33 20 28  g {2002 Mar 13 (
27d0: 32 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73  2.4.1)} {.<li>Us
27e0: 69 6e 67 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73  ing an unnamed s
27f0: 75 62 71 75 65 72 79 20 69 6e 20 61 20 46 52 4f  ubquery in a FRO
2800: 4d 20 63 6c 61 75 73 65 20 77 6f 75 6c 64 20 63  M clause would c
2810: 61 75 73 65 20 61 20 73 65 67 66 61 75 6c 74 2e  ause a segfault.
2820: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61  </li>.<li>The pa
2830: 72 73 65 72 20 6e 6f 77 20 69 6e 73 69 73 74 73  rser now insists
2840: 20 6f 6e 20 73 65 65 69 6e 67 20 61 20 73 65 6d   on seeing a sem
2850: 69 63 6f 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e  icolon or the en
2860: 64 20 6f 66 20 69 6e 70 75 74 20 62 65 66 6f 72  d of input befor
2870: 65 0a 20 20 20 20 65 78 65 63 75 74 69 6e 67 20  e.    executing 
2880: 61 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 54 68  a statement.  Th
2890: 69 73 20 61 76 6f 69 64 73 20 61 6e 20 61 63 63  is avoids an acc
28a0: 69 64 65 6e 74 61 6c 20 64 69 73 61 73 74 65 72  idental disaster
28b0: 20 69 66 20 74 68 65 0a 20 20 20 20 57 48 45 52   if the.    WHER
28c0: 45 20 6b 65 79 77 6f 72 64 20 69 73 20 6d 69 73  E keyword is mis
28d0: 73 70 65 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50  spelled in an UP
28e0: 44 41 54 45 20 6f 72 20 44 45 4c 45 54 45 20 73  DATE or DELETE s
28f0: 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d  tatement.</li>.}
2900: 0a 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  ...chng {2002 Ma
2910: 72 20 31 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a  r 10 (2.4.0)} {.
2920: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 6e  <li>Change the n
2930: 61 6d 65 20 6f 66 20 74 68 65 20 73 61 6e 69 74  ame of the sanit
2940: 79 5f 63 68 65 63 6b 20 50 52 41 47 4d 41 20 74  y_check PRAGMA t
2950: 6f 20 3c 62 3e 69 6e 74 65 67 72 69 74 79 5f 63  o <b>integrity_c
2960: 68 65 63 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64  heck</b>.    and
2970: 20 6d 61 6b 65 20 69 74 20 61 76 61 69 6c 61 62   make it availab
2980: 6c 65 20 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c  le in all compil
2990: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c  es.</li>.<li>SEL
29a0: 45 43 54 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78  ECT min() or max
29b0: 28 29 20 6f 66 20 61 6e 20 69 6e 64 65 78 65 64  () of an indexed
29c0: 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20   column with no 
29d0: 57 48 45 52 45 20 6f 72 20 47 52 4f 55 50 20 42  WHERE or GROUP B
29e0: 59 0a 20 20 20 20 63 6c 61 75 73 65 20 69 73 20  Y.    clause is 
29f0: 68 61 6e 64 6c 65 64 20 61 73 20 61 20 73 70 65  handled as a spe
2a00: 63 69 61 6c 20 63 61 73 65 20 77 68 69 63 68 20  cial case which 
2a10: 61 76 6f 69 64 73 20 61 20 63 6f 6d 70 6c 65 74  avoids a complet
2a20: 65 20 74 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c  e table scan.</l
2a30: 69 3e 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63  i>.<li>Automatic
2a40: 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 52  ally generated R
2a50: 4f 57 49 44 73 20 61 72 65 20 6e 6f 77 20 73 65  OWIDs are now se
2a60: 71 75 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c  quential.</li>.<
2a70: 6c 69 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20  li>Do not allow 
2a80: 64 6f 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20  dot-commands of 
2a90: 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65  the command-line
2aa0: 20 73 68 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20   shell to occur 
2ab0: 69 6e 20 74 68 65 0a 20 20 20 20 6d 69 64 64 6c  in the.    middl
2ac0: 65 20 6f 66 20 61 20 72 65 61 6c 20 53 51 4c 20  e of a real SQL 
2ad0: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  command.</li>.<l
2ae0: 69 3e 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20  i>Modifications 
2af0: 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70  to the "lemon" p
2b00: 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20  arser generator 
2b10: 73 6f 20 74 68 61 74 20 74 68 65 20 70 61 72 73  so that the pars
2b20: 65 72 20 74 61 62 6c 65 73 0a 20 20 20 20 61 72  er tables.    ar
2b30: 65 20 34 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65  e 4 times smalle
2b40: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  r.</li>.<li>Adde
2b50: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73  d support for us
2b60: 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74  er-defined funct
2b70: 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64  ions implemented
2b80: 20 69 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   in C.</li>.<li>
2b90: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
2ba0: 72 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a  r new functions:
2bb0: 20 3c 62 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f   <b>coalesce()</
2bc0: 62 3e 2c 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f  b>, <b>lower()</
2bd0: 62 3e 2c 0a 20 20 20 20 3c 62 3e 75 70 70 65 72  b>,.    <b>upper
2be0: 28 29 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72  ()</b>, and <b>r
2bf0: 61 6e 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e  andom()</b>.<li>
2c00: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
2c10: 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c  r VIEWs.</li>.<l
2c20: 69 3e 41 64 64 65 64 20 74 68 65 20 73 75 62 71  i>Added the subq
2c30: 75 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20  uery flattening 
2c40: 6f 70 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a  optimizer.</li>.
2c50: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
2c60: 20 42 2d 54 72 65 65 20 61 6e 64 20 50 61 67 65   B-Tree and Page
2c70: 72 20 6d 6f 64 75 6c 65 73 20 73 6f 20 74 68 61  r modules so tha
2c80: 74 20 64 69 73 6b 20 70 61 67 65 73 20 74 68 61  t disk pages tha
2c90: 74 20 64 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e  t do not.    con
2ca0: 74 61 69 6e 20 72 65 61 6c 20 64 61 74 61 20 28  tain real data (
2cb0: 66 72 65 65 20 70 61 67 65 73 29 20 61 72 65 20  free pages) are 
2cc0: 6e 6f 74 20 6a 6f 75 72 6e 61 6c 6c 65 64 20 61  not journalled a
2cd0: 6e 64 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 77  nd are not.    w
2ce0: 72 69 74 74 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f  ritten from memo
2cf0: 72 79 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64  ry back to the d
2d00: 69 73 6b 20 77 68 65 6e 20 74 68 65 79 20 63 68  isk when they ch
2d10: 61 6e 67 65 2e 20 20 54 68 69 73 20 64 6f 65 73  ange.  This does
2d20: 20 6e 6f 74 20 0a 20 20 20 20 69 6d 70 61 63 74   not .    impact
2d30: 20 64 61 74 61 62 61 73 65 20 69 6e 74 65 67 72   database integr
2d40: 69 74 79 2c 20 73 69 6e 63 65 20 74 68 65 0a 20  ity, since the. 
2d50: 20 20 20 70 61 67 65 73 20 63 6f 6e 74 61 69 6e     pages contain
2d60: 20 6e 6f 20 72 65 61 6c 20 64 61 74 61 2c 20 62   no real data, b
2d70: 75 74 20 69 74 20 64 6f 65 73 20 6d 61 6b 65 20  ut it does make 
2d80: 6c 61 72 67 65 20 49 4e 53 45 52 54 20 6f 70 65  large INSERT ope
2d90: 72 61 74 69 6f 6e 73 0a 20 20 20 20 61 62 6f 75  rations.    abou
2da0: 74 20 32 2e 35 20 74 69 6d 65 73 20 66 61 73 74  t 2.5 times fast
2db0: 65 72 20 61 6e 64 20 6c 61 72 67 65 20 44 45 4c  er and large DEL
2dc0: 45 54 45 73 20 61 62 6f 75 74 20 35 20 74 69 6d  ETEs about 5 tim
2dd0: 65 73 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  es faster.</li>.
2de0: 3c 6c 69 3e 4d 61 64 65 20 74 68 65 20 43 41 43  <li>Made the CAC
2df0: 48 45 5f 53 49 5a 45 20 70 72 61 67 6d 61 20 70  HE_SIZE pragma p
2e00: 65 72 73 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c  ersistent</li>.<
2e10: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 53 59 4e  li>Added the SYN
2e20: 43 48 52 4f 4e 4f 55 53 20 70 72 61 67 6d 61 3c  CHRONOUS pragma<
2e30: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61  /li>.<li>Fixed a
2e40: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
2e50: 75 73 69 6e 67 20 75 70 64 61 74 65 73 20 74 6f  using updates to
2e60: 20 66 61 69 6c 20 69 6e 73 69 64 65 20 6f 66 20   fail inside of 
2e70: 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 68 65  transactions whe
2e80: 6e 0a 20 20 20 20 74 68 65 20 64 61 74 61 62 61  n.    the databa
2e90: 73 65 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 74  se contained a t
2ea0: 65 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 2e 3c  emporary table.<
2eb0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2ec0: 30 32 20 46 65 62 20 31 38 20 28 32 2e 33 2e 33  02 Feb 18 (2.3.3
2ed0: 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69  )} {.<li>Allow i
2ee0: 64 65 6e 74 69 66 69 65 72 73 20 74 6f 20 62 65  dentifiers to be
2ef0: 20 71 75 6f 74 65 64 20 69 6e 20 73 71 75 61 72   quoted in squar
2f00: 65 20 62 72 61 63 6b 65 74 73 2c 20 66 6f 72 20  e brackets, for 
2f10: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 20 20  compatibility.  
2f20: 20 20 77 69 74 68 20 4d 53 2d 41 63 63 65 73 73    with MS-Access
2f30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
2f40: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 75 62   support for sub
2f50: 2d 71 75 65 72 69 65 73 20 69 6e 20 74 68 65 20  -queries in the 
2f60: 46 52 4f 4d 20 63 6c 61 75 73 65 20 6f 66 20 61  FROM clause of a
2f70: 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c   SELECT.</li>.<l
2f80: 69 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e 74  i>More efficient
2f90: 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20   implementation 
2fa0: 6f 66 20 73 71 6c 69 74 65 46 69 6c 65 45 78 69  of sqliteFileExi
2fb0: 73 74 73 28 29 20 75 6e 64 65 72 20 57 69 6e 64  sts() under Wind
2fc0: 6f 77 73 2e 0a 20 20 20 20 28 62 79 20 4a 6f 65  ows..    (by Joe
2fd0: 6c 20 4c 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c  l Luscy)</li>.<l
2fe0: 69 3e 54 68 65 20 56 41 4c 55 45 53 20 63 6c 61  i>The VALUES cla
2ff0: 75 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54  use of an INSERT
3000: 20 63 61 6e 20 6e 6f 77 20 63 6f 6e 74 61 69 6e   can now contain
3010: 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 69 6e   expressions, in
3020: 63 6c 75 64 69 6e 67 0a 20 20 20 20 73 63 61 6c  cluding.    scal
3030: 61 72 20 53 45 4c 45 43 54 20 63 6c 61 75 73 65  ar SELECT clause
3040: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  s.</li>.<li>Adde
3050: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 52  d support for CR
3060: 45 41 54 45 20 54 41 42 4c 45 20 41 53 20 53 45  EATE TABLE AS SE
3070: 4c 45 43 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  LECT</li>.<li>Bu
3080: 67 20 66 69 78 3a 20 43 72 65 61 74 69 6e 67 20  g fix: Creating 
3090: 61 6e 64 20 64 72 6f 70 70 69 6e 67 20 61 20 74  and dropping a t
30a0: 61 62 6c 65 20 61 6c 6c 20 77 69 74 68 69 6e 20  able all within 
30b0: 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 74 72 61  a single.    tra
30c0: 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 6e 6f 74  nsaction was not
30d0: 20 77 6f 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d   working.</li>.}
30e0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62  ..chng {2002 Feb
30f0: 20 31 34 20 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c   14 (2.3.2)} {.<
3100: 6c 69 3e 42 75 67 20 66 69 78 3a 20 54 68 65 72  li>Bug fix: Ther
3110: 65 20 77 61 73 20 61 6e 20 69 6e 63 6f 72 72 65  e was an incorre
3120: 63 74 20 61 73 73 65 72 74 28 29 20 69 6e 20 70  ct assert() in p
3130: 61 67 65 72 2e 63 2e 20 20 54 68 65 20 72 65 61  ager.c.  The rea
3140: 6c 20 63 6f 64 65 20 77 61 73 0a 20 20 20 20 61  l code was.    a
3150: 6c 6c 20 63 6f 72 72 65 63 74 20 28 61 73 20 66  ll correct (as f
3160: 61 72 20 61 73 20 69 73 20 6b 6e 6f 77 6e 29 20  ar as is known) 
3170: 73 6f 20 65 76 65 72 79 74 68 69 6e 67 20 73 68  so everything sh
3180: 6f 75 6c 64 20 77 6f 72 6b 20 4f 4b 20 69 66 20  ould work OK if 
3190: 79 6f 75 0a 20 20 20 20 63 6f 6d 70 69 6c 65 20  you.    compile 
31a0: 77 69 74 68 20 2d 44 4e 44 45 42 55 47 3d 31 2e  with -DNDEBUG=1.
31b0: 20 20 57 68 65 6e 20 61 73 73 65 72 74 73 20 61    When asserts a
31c0: 72 65 20 6e 6f 74 20 64 69 73 61 62 6c 65 64 2c  re not disabled,
31d0: 20 74 68 65 72 65 0a 20 20 20 20 63 6f 75 6c 64   there.    could
31e0: 20 62 65 20 61 20 66 61 75 6c 74 2e 3c 2f 6c 69   be a fault.</li
31f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
3200: 46 65 62 20 31 33 20 28 32 2e 33 2e 31 29 7d 20  Feb 13 (2.3.1)} 
3210: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41  {.<li>Bug fix: A
3220: 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20  n assertion was 
3230: 66 61 69 6c 69 6e 67 20 69 66 20 22 50 52 41 47  failing if "PRAG
3240: 4d 41 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e  MA full_column_n
3250: 61 6d 65 73 3d 4f 4e 3b 22 20 77 61 73 0a 20 20  ames=ON;" was.  
3260: 20 20 73 65 74 20 61 6e 64 20 79 6f 75 20 64 69    set and you di
3270: 64 20 61 20 71 75 65 72 79 20 74 68 61 74 20 75  d a query that u
3280: 73 65 64 20 61 20 72 6f 77 69 64 2c 20 6c 69 6b  sed a rowid, lik
3290: 65 20 74 68 69 73 3a 20 20 0a 20 20 20 20 22 53  e this:  .    "S
32a0: 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46  ELECT rowid, * F
32b0: 52 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d  ROM ...".</li>.}
32c0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
32d0: 20 33 30 20 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c   30 (2.3.0)} {.<
32e0: 6c 69 3e 46 69 78 20 61 20 73 65 72 69 6f 75 73  li>Fix a serious
32f0: 20 62 75 67 20 69 6e 20 74 68 65 20 49 4e 53 45   bug in the INSE
3300: 52 54 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68  RT command which
3310: 20 77 61 73 20 63 61 75 73 69 6e 67 20 64 61 74   was causing dat
3320: 61 20 74 6f 20 67 6f 0a 20 20 20 20 69 6e 74 6f  a to go.    into
3330: 20 74 68 65 20 77 72 6f 6e 67 20 63 6f 6c 75 6d   the wrong colum
3340: 6e 73 20 69 66 20 74 68 65 20 64 61 74 61 20 73  ns if the data s
3350: 6f 75 72 63 65 20 77 61 73 20 61 20 53 45 4c 45  ource was a SELE
3360: 43 54 20 61 6e 64 20 74 68 65 20 49 4e 53 45 52  CT and the INSER
3370: 54 0a 20 20 20 20 63 6c 61 75 73 65 73 20 73 70  T.    clauses sp
3380: 65 63 69 66 69 65 64 20 69 74 73 20 63 6f 6c 75  ecified its colu
3390: 6d 6e 73 20 69 6e 20 73 6f 6d 65 20 6f 72 64 65  mns in some orde
33a0: 72 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65  r other than the
33b0: 20 64 65 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c   default.</li>.<
33c0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 61 62 69  li>Added the abi
33d0: 6c 69 74 79 20 74 6f 20 72 65 73 6f 6c 76 65 20  lity to resolve 
33e0: 63 6f 6e 73 74 72 61 69 6e 74 20 63 6f 6e 66 6c  constraint confl
33f0: 69 63 74 73 20 69 73 20 77 61 79 73 20 6f 74 68  icts is ways oth
3400: 65 72 20 74 68 61 6e 0a 20 20 20 20 61 6e 20 61  er than.    an a
3410: 62 6f 72 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63  bort and rollbac
3420: 6b 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 75  k.  See the docu
3430: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65  mentation on the
3440: 20 22 4f 4e 20 43 4f 4e 46 4c 49 43 54 22 0a 20   "ON CONFLICT". 
3450: 20 20 20 63 6c 61 75 73 65 20 66 6f 72 20 64 65     clause for de
3460: 74 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tails.</li>.<li>
3470: 54 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  Temporary files 
3480: 61 72 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69  are now automati
3490: 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 62 79  cally deleted by
34a0: 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73   the operating s
34b0: 79 73 74 65 6d 0a 20 20 20 20 77 68 65 6e 20 63  ystem.    when c
34c0: 6c 6f 73 65 64 2e 20 20 54 68 65 72 65 20 61 72  losed.  There ar
34d0: 65 20 6e 6f 20 6d 6f 72 65 20 64 61 6e 67 6c 69  e no more dangli
34e0: 6e 67 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c  ng temporary fil
34f0: 65 73 20 6f 6e 20 61 20 70 72 6f 67 72 61 6d 0a  es on a program.
3500: 20 20 20 20 63 72 61 73 68 2e 20 20 28 49 66 20      crash.  (If 
3510: 74 68 65 20 4f 53 20 63 72 61 73 68 65 73 2c 20  the OS crashes, 
3520: 66 73 63 6b 20 77 69 6c 6c 20 64 65 6c 65 74 65  fsck will delete
3530: 20 74 68 65 20 66 69 6c 65 20 61 66 74 65 72 20   the file after 
3540: 72 65 62 6f 6f 74 20 0a 20 20 20 20 75 6e 64 65  reboot .    unde
3550: 72 20 55 6e 69 78 2e 20 20 49 20 64 6f 20 6e 6f  r Unix.  I do no
3560: 74 20 6b 6e 6f 77 20 77 68 61 74 20 68 61 70 70  t know what happ
3570: 65 6e 73 20 75 6e 64 65 72 20 57 69 6e 64 6f 77  ens under Window
3580: 73 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54  s.)</li>.<li>NOT
3590: 20 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74   NULL constraint
35a0: 73 20 61 72 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f  s are honored.</
35b0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 43 4f 50 59  li>.<li>The COPY
35c0: 20 63 6f 6d 6d 61 6e 64 20 70 75 74 73 20 4e 55   command puts NU
35d0: 4c 4c 73 20 69 6e 20 63 6f 6c 75 6d 6e 73 20 77  LLs in columns w
35e0: 68 6f 73 65 20 64 61 74 61 20 69 73 20 27 5c 4e  hose data is '\N
35f0: 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74  '.</li>.<li>In t
3600: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c  he COPY command,
3610: 20 62 61 63 6b 73 6c 61 73 68 20 63 61 6e 20 6e   backslash can n
3620: 6f 77 20 62 65 20 75 73 65 64 20 74 6f 20 65 73  ow be used to es
3630: 63 61 70 65 20 61 20 6e 65 77 6c 69 6e 65 2e 3c  cape a newline.<
3640: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
3650: 68 65 20 53 41 4e 49 54 59 5f 43 48 45 43 4b 20  he SANITY_CHECK 
3660: 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  pragma.</li>.}..
3670: 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32  chng {2002 Jan 2
3680: 38 20 28 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69  8 (2.2.5)} {.<li
3690: 3e 49 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66  >Important bug f
36a0: 69 78 3a 20 74 68 65 20 49 4e 20 6f 70 65 72 61  ix: the IN opera
36b0: 74 6f 72 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b  tor was not work
36c0: 69 6e 67 20 69 66 20 65 69 74 68 65 72 20 74 68  ing if either th
36d0: 65 0a 20 20 20 20 6c 65 66 74 2d 68 61 6e 64 20  e.    left-hand 
36e0: 6f 72 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69  or right-hand si
36f0: 64 65 20 77 61 73 20 64 65 72 69 76 65 64 20 66  de was derived f
3700: 72 6f 6d 20 61 6e 20 49 4e 54 45 47 45 52 20 50  rom an INTEGER P
3710: 52 49 4d 41 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e  RIMARY KEY.</li>
3720: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 65 73 63 61  .<li>Do not esca
3730: 70 65 20 74 68 65 20 62 61 63 6b 73 6c 61 73 68  pe the backslash
3740: 20 27 5c 27 20 63 68 61 72 61 63 74 65 72 20 69   '\' character i
3750: 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20  n the output of 
3760: 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74  the.    <b>sqlit
3770: 65 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69  e</b> command-li
3780: 6e 65 20 61 63 63 65 73 73 20 70 72 6f 67 72 61  ne access progra
3790: 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  m.</li>.}..chng 
37a0: 7b 32 30 30 32 20 4a 61 6e 20 32 32 20 28 32 2e  {2002 Jan 22 (2.
37b0: 32 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20  2.4)} {.<li>The 
37c0: 6c 61 62 65 6c 20 74 6f 20 74 68 65 20 72 69 67  label to the rig
37d0: 68 74 20 6f 66 20 61 6e 20 41 53 20 69 6e 20 74  ht of an AS in t
37e0: 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f  he column list o
37f0: 66 20 61 20 53 45 4c 45 43 54 20 63 61 6e 20 6e  f a SELECT can n
3800: 6f 77 0a 20 20 20 20 62 65 20 75 73 65 64 20 61  ow.    be used a
3810: 73 20 70 61 72 74 20 6f 66 20 61 6e 20 65 78 70  s part of an exp
3820: 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 57  ression in the W
3830: 48 45 52 45 2c 20 4f 52 44 45 52 20 42 59 2c 20  HERE, ORDER BY, 
3840: 47 52 4f 55 50 20 42 59 2c 20 61 6e 64 2f 6f 72  GROUP BY, and/or
3850: 0a 20 20 20 20 48 41 56 49 4e 47 20 63 6c 61 75  .    HAVING clau
3860: 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ses.</li>.<li>Fi
3870: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c  x a bug in the <
3880: 62 3e 2d 73 65 70 61 72 61 74 6f 72 3c 2f 62 3e  b>-separator</b>
3890: 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70   command-line op
38a0: 74 69 6f 6e 20 74 6f 20 74 68 65 20 3c 62 3e 73  tion to the <b>s
38b0: 71 6c 69 74 65 3c 2f 62 3e 0a 20 20 20 20 63 6f  qlite</b>.    co
38c0: 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  mmand.</li>.<li>
38d0: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69  Fix a problem wi
38e0: 74 68 20 74 68 65 20 73 6f 72 74 20 6f 72 64 65  th the sort orde
38f0: 72 20 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67  r when comparing
3900: 20 75 70 70 65 72 2d 63 61 73 65 20 73 74 72 69   upper-case stri
3910: 6e 67 73 20 61 67 61 69 6e 73 74 0a 20 20 20 20  ngs against.    
3920: 63 68 61 72 61 63 74 65 72 73 20 67 72 65 61 74  characters great
3930: 65 72 20 74 68 61 6e 20 27 5a 27 20 62 75 74 20  er than 'Z' but 
3940: 6c 65 73 73 20 74 68 61 6e 20 27 61 27 2e 3c 2f  less than 'a'.</
3950: 6c 69 3e 0a 3c 6c 69 3e 52 65 70 6f 72 74 20 61  li>.<li>Report a
3960: 6e 20 65 72 72 6f 72 20 69 66 20 61 6e 20 4f 52  n error if an OR
3970: 44 45 52 20 42 59 20 6f 72 20 47 52 4f 55 50 20  DER BY or GROUP 
3980: 42 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73  BY expression is
3990: 20 63 6f 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a   constant.</li>.
39a0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
39b0: 6e 20 31 36 20 28 32 2e 32 2e 33 29 7d 20 7b 0a  n 16 (2.2.3)} {.
39c0: 3c 6c 69 3e 46 69 78 20 77 61 72 6e 69 6e 67 20  <li>Fix warning 
39d0: 6d 65 73 73 61 67 65 73 20 69 6e 20 56 43 2b 2b  messages in VC++
39e0: 20 37 2e 30 2e 20 20 28 50 61 74 63 68 65 73 20   7.0.  (Patches 
39f0: 66 72 6f 6d 20 6e 69 63 6f 6c 61 73 33 35 32 30  from nicolas3520
3a00: 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  01)</li>.<li>Mak
3a10: 65 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 68  e the library th
3a20: 72 65 61 64 2d 73 61 66 65 2e 20 20 28 54 68 65  read-safe.  (The
3a30: 20 63 6f 64 65 20 69 73 20 74 68 65 72 65 20 61   code is there a
3a40: 6e 64 20 61 70 70 65 61 72 73 20 74 6f 20 77 6f  nd appears to wo
3a50: 72 6b 0a 20 20 20 20 62 75 74 20 68 61 73 20 6e  rk.    but has n
3a60: 6f 74 20 62 65 65 6e 20 73 74 72 65 73 73 65 64  ot been stressed
3a70: 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  .)</li>.<li>Adde
3a80: 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 73 71 6c  d the new <b>sql
3a90: 69 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f  ite_last_insert_
3aa0: 72 6f 77 69 64 28 29 3c 2f 62 3e 20 41 50 49 20  rowid()</b> API 
3ab0: 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  function.</li>.}
3ac0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
3ad0: 20 31 33 20 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c   13 (2.2.2)} {.<
3ae0: 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61  li>Bug fix: An a
3af0: 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69  ssertion was fai
3b00: 6c 69 6e 67 20 77 68 65 6e 20 61 20 74 65 6d 70  ling when a temp
3b10: 6f 72 61 72 79 20 74 61 62 6c 65 20 77 69 74 68  orary table with
3b20: 20 61 6e 20 69 6e 64 65 78 0a 20 20 20 20 68 61   an index.    ha
3b30: 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20  d the same name 
3b40: 61 73 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 74  as a permanent t
3b50: 61 62 6c 65 20 63 72 65 61 74 65 64 20 62 79 20  able created by 
3b60: 61 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65  a separate proce
3b70: 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ss.</li>.<li>Bug
3b80: 20 66 69 78 3a 20 55 70 64 61 74 65 73 20 74 6f   fix: Updates to
3b90: 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69   tables containi
3ba0: 6e 67 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52  ng an INTEGER PR
3bb0: 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 20 61 6e  IMARY KEY and an
3bc0: 0a 20 20 20 20 69 6e 64 65 78 20 63 6f 75 6c 64  .    index could
3bd0: 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fail.</li>.}..c
3be0: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 39 20  hng {2002 Jan 9 
3bf0: 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.2.1)} {.<li>B
3c00: 75 67 20 66 69 78 3a 20 41 6e 20 61 74 74 65 6d  ug fix: An attem
3c10: 70 74 20 74 6f 20 64 65 6c 65 74 65 20 61 20 73  pt to delete a s
3c20: 69 6e 67 6c 65 20 72 6f 77 20 6f 66 20 61 20 74  ingle row of a t
3c30: 61 62 6c 65 20 77 69 74 68 20 61 20 57 48 45 52  able with a WHER
3c40: 45 0a 20 20 20 20 63 6c 61 75 73 65 20 6f 66 20  E.    clause of 
3c50: 22 52 4f 57 49 44 3d 78 22 20 77 68 65 6e 20 6e  "ROWID=x" when n
3c60: 6f 20 73 75 63 68 20 72 6f 77 69 64 20 65 78 69  o such rowid exi
3c70: 73 74 73 20 77 61 73 20 63 61 75 73 69 6e 67 20  sts was causing 
3c80: 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c  an error.</li>.<
3c90: 6c 69 3e 42 75 67 20 66 69 78 3a 20 50 61 73 73  li>Bug fix: Pass
3ca0: 69 6e 67 20 69 6e 20 61 20 4e 55 4c 4c 20 61 73  ing in a NULL as
3cb0: 20 74 68 65 20 33 72 64 20 70 61 72 61 6d 65 74   the 3rd paramet
3cc0: 65 72 20 74 6f 20 3c 62 3e 73 71 6c 69 74 65 5f  er to <b>sqlite_
3cd0: 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20 20 20 20 77  open()</b>.    w
3ce0: 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63  ould sometimes c
3cf0: 61 75 73 65 20 61 20 63 6f 72 65 64 75 6d 70 2e  ause a coredump.
3d00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
3d10: 78 3a 20 44 52 4f 50 20 54 41 42 4c 45 20 66 6f  x: DROP TABLE fo
3d20: 6c 6c 6f 77 65 64 20 62 79 20 61 20 43 52 45 41  llowed by a CREA
3d30: 54 45 20 54 41 42 4c 45 20 77 69 74 68 20 74 68  TE TABLE with th
3d40: 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a  e same name all.
3d50: 20 20 20 20 77 69 74 68 69 6e 20 61 20 73 69 6e      within a sin
3d60: 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20  gle transaction 
3d70: 77 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f  was causing a co
3d80: 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69  redump.</li>.<li
3d90: 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65  >Makefile update
3da0: 73 20 66 72 6f 6d 20 41 2e 20 52 6f 74 74 6d 61  s from A. Rottma
3db0: 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  nn</li>.}..chng 
3dc0: 7b 32 30 30 31 20 44 65 63 20 32 32 20 28 32 2e  {2001 Dec 22 (2.
3dd0: 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75  2.0)} {.<li>Colu
3de0: 6d 6e 73 20 6f 66 20 74 79 70 65 20 49 4e 54 45  mns of type INTE
3df0: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20  GER PRIMARY KEY 
3e00: 61 72 65 20 61 63 74 75 61 6c 6c 79 20 75 73 65  are actually use
3e10: 64 20 61 73 20 74 68 65 20 70 72 69 6d 61 72 79  d as the primary
3e20: 0a 20 20 20 20 6b 65 79 20 69 6e 20 75 6e 64 65  .    key in unde
3e30: 72 6c 79 69 6e 67 20 42 2d 54 72 65 65 20 72 65  rlying B-Tree re
3e40: 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20  presentation of 
3e50: 74 68 65 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  the table.</li>.
3e60: 3c 6c 69 3e 53 65 76 65 72 61 6c 20 6f 62 73 63  <li>Several obsc
3e70: 75 72 65 2c 20 75 6e 72 65 6c 61 74 65 64 20 62  ure, unrelated b
3e80: 75 67 73 20 77 65 72 65 20 66 6f 75 6e 64 20 61  ugs were found a
3e90: 6e 64 20 66 69 78 65 64 20 77 68 69 6c 65 20 0a  nd fixed while .
3ea0: 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20      implemented 
3eb0: 74 68 65 20 69 6e 74 65 67 65 72 20 70 72 69 6d  the integer prim
3ec0: 61 72 79 20 6b 65 79 20 63 68 61 6e 67 65 20 6f  ary key change o
3ed0: 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62  f the previous b
3ee0: 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ullet.</li>.<li>
3ef0: 41 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74  Added the abilit
3f00: 79 20 74 6f 20 73 70 65 63 69 66 79 20 22 2a 22  y to specify "*"
3f10: 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 6c 61   as part of a la
3f20: 72 67 65 72 20 63 6f 6c 75 6d 6e 20 6c 69 73 74  rger column list
3f30: 20 69 6e 0a 20 20 20 20 74 68 65 20 72 65 73 75   in.    the resu
3f40: 6c 74 20 73 65 63 74 69 6f 6e 20 6f 66 20 61 20  lt section of a 
3f50: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
3f60: 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a  .  For example:.
3f70: 20 20 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45      <nobr>"<b>SE
3f80: 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52  LECT rowid, * FR
3f90: 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c  OM table1;</b>"<
3fa0: 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  /nobr>.</li>.<li
3fb0: 3e 55 70 64 61 74 65 73 20 74 6f 20 63 6f 6d 6d  >Updates to comm
3fc0: 65 6e 74 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e  ents and documen
3fd0: 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  tation.</li>.}..
3fe0: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31  chng {2001 Dec 1
3ff0: 34 20 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69  4 (2.1.7)} {.<li
4000: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 3c 62  >Fix a bug in <b
4010: 3e 43 52 45 41 54 45 20 54 45 4d 50 4f 52 41 52  >CREATE TEMPORAR
4020: 59 20 54 41 42 4c 45 3c 2f 62 3e 20 77 68 69 63  Y TABLE</b> whic
4030: 68 20 77 61 73 20 63 61 75 73 69 6e 67 20 74 68  h was causing th
4040: 65 0a 20 20 20 20 74 61 62 6c 65 20 74 6f 20 62  e.    table to b
4050: 65 20 69 6e 69 74 69 61 6c 6c 79 20 61 6c 6c 6f  e initially allo
4060: 63 61 74 65 64 20 69 6e 20 74 68 65 20 6d 61 69  cated in the mai
4070: 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20  n database file 
4080: 69 6e 73 74 65 61 64 0a 20 20 20 20 6f 66 20 69  instead.    of i
4090: 6e 20 74 68 65 20 73 65 70 61 72 61 74 65 20 74  n the separate t
40a0: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 20 20  emporary file.  
40b0: 54 68 69 73 20 62 75 67 20 63 6f 75 6c 64 20 63  This bug could c
40c0: 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79  ause the library
40d0: 0a 20 20 20 20 74 6f 20 73 75 66 66 65 72 20 61  .    to suffer a
40e0: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
40f0: 75 72 65 20 61 6e 64 20 69 74 20 63 6f 75 6c 64  ure and it could
4100: 20 63 61 75 73 65 20 22 70 61 67 65 20 6c 65 61   cause "page lea
4110: 6b 73 22 20 69 6e 20 74 68 65 0a 20 20 20 20 6d  ks" in the.    m
4120: 61 69 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c  ain database fil
4130: 65 2e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  e..<li>Fix a bug
4140: 20 69 6e 20 74 68 65 20 62 2d 74 72 65 65 20 73   in the b-tree s
4150: 75 62 73 79 73 74 65 6d 20 74 68 61 74 20 63 6f  ubsystem that co
4160: 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61  uld sometimes ca
4170: 75 73 65 20 74 68 65 20 66 69 72 73 74 0a 20 20  use the first.  
4180: 20 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65    row of a table
4190: 20 74 6f 20 62 65 20 72 65 70 65 61 74 65 64 20   to be repeated 
41a0: 64 75 72 69 6e 67 20 61 20 64 61 74 61 62 61 73  during a databas
41b0: 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e scan.</li>.}..
41c0: 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31  chng {2001 Dec 1
41d0: 34 20 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69  4 (2.1.6)} {.<li
41e0: 3e 46 69 78 20 74 68 65 20 6c 6f 63 6b 69 6e 67  >Fix the locking
41f0: 20 6d 65 63 68 61 6e 69 73 6d 20 79 65 74 20 61   mechanism yet a
4200: 67 61 69 6e 20 74 6f 20 70 72 65 76 65 6e 74 0a  gain to prevent.
4210: 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78      <b>sqlite_ex
4220: 65 63 28 29 3c 2f 62 3e 20 66 72 6f 6d 20 72 65  ec()</b> from re
4230: 74 75 72 6e 69 6e 67 20 53 51 4c 49 54 45 5f 50  turning SQLITE_P
4240: 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65  ROTOCOL.    unne
4250: 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73  cessarily.  This
4260: 20 74 69 6d 65 20 74 68 65 20 62 75 67 20 77 61   time the bug wa
4270: 73 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69  s a race conditi
4280: 6f 6e 20 69 6e 0a 20 20 20 20 74 68 65 20 6c 6f  on in.    the lo
4290: 63 6b 69 6e 67 20 63 6f 64 65 2e 20 20 54 68 69  cking code.  Thi
42a0: 73 20 63 68 61 6e 67 65 20 65 66 66 65 63 74 73  s change effects
42b0: 20 62 6f 74 68 20 50 4f 53 49 58 20 61 6e 64 20   both POSIX and 
42c0: 57 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f  Windows users.</
42d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
42e0: 31 20 44 65 63 20 36 20 28 32 2e 31 2e 35 29 7d  1 Dec 6 (2.1.5)}
42f0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 66 6f 72 20 61   {.<li>Fix for a
4300: 6e 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 20 28  nother problem (
4310: 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65  unrelated to the
4320: 20 6f 6e 65 20 66 69 78 65 64 20 69 6e 20 32 2e   one fixed in 2.
4330: 31 2e 34 29 20 0a 20 20 20 20 74 68 61 74 20 73  1.4) .    that s
4340: 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 73 20  ometimes causes 
4350: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
4360: 3c 2f 62 3e 20 74 6f 20 72 65 74 75 72 6e 20 53  </b> to return S
4370: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20  QLITE_PROTOCOL. 
4380: 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79     unnecessarily
4390: 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65  .  This time the
43a0: 20 62 75 67 20 77 61 73 0a 20 20 20 20 69 6e 20   bug was.    in 
43b0: 74 68 65 20 50 4f 53 49 58 20 6c 6f 63 6b 69 6e  the POSIX lockin
43c0: 67 20 63 6f 64 65 20 61 6e 64 20 73 68 6f 75 6c  g code and shoul
43d0: 64 20 6e 6f 74 20 65 66 66 65 63 74 20 77 69 6e  d not effect win
43e0: 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e  dows users.</li>
43f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44  .}..chng {2001 D
4400: 65 63 20 34 20 28 32 2e 31 2e 34 29 7d 20 7b 0a  ec 4 (2.1.4)} {.
4410: 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65 73 20 3c 62  <li>Sometimes <b
4420: 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f  >sqlite_exec()</
4430: 62 3e 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20  b> would return 
4440: 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20  SQLITE_PROTOCOL 
4450: 77 68 65 6e 20 69 74 0a 20 20 20 20 73 68 6f 75  when it.    shou
4460: 6c 64 20 68 61 76 65 20 72 65 74 75 72 6e 65 64  ld have returned
4470: 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c   SQLITE_BUSY.</l
4480: 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 69 78 20 74  i>.<li>The fix t
4490: 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62  o the previous b
44a0: 75 67 20 75 6e 63 6f 76 65 72 65 64 20 61 20 64  ug uncovered a d
44b0: 65 61 64 6c 6f 63 6b 20 77 68 69 63 68 20 77 61  eadlock which wa
44c0: 73 20 61 6c 73 6f 0a 20 20 20 20 66 69 78 65 64  s also.    fixed
44d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  .</li>.<li>Add t
44e0: 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75  he ability to pu
44f0: 74 20 61 20 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d  t a single .comm
4500: 61 6e 64 20 69 6e 20 74 68 65 20 73 65 63 6f 6e  and in the secon
4510: 64 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 6f  d argument.    o
4520: 66 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  f the sqlite she
4530: 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61  ll</li>.<li>Upda
4540: 74 65 73 20 74 6f 20 74 68 65 20 46 41 51 3c 2f  tes to the FAQ</
4550: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4560: 31 20 4e 6f 76 20 32 33 20 28 32 2e 31 2e 33 29  1 Nov 23 (2.1.3)
4570: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  } {.<li>Fix the 
4580: 62 65 68 61 76 69 6f 72 20 6f 66 20 63 6f 6d 70  behavior of comp
4590: 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73  arison operators
45a0: 20 0a 20 20 20 20 28 65 78 3a 20 22 3c 62 3e 26   .    (ex: "<b>&
45b0: 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c  lt</b>", "<b>==<
45c0: 2f 62 3e 22 2c 20 65 74 63 2e 29 0a 20 20 20 20  /b>", etc.).    
45d0: 73 6f 20 74 68 61 74 20 74 68 65 79 20 61 72 65  so that they are
45e0: 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68   consistent with
45f0: 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 65 6e   the order of en
4600: 74 72 69 65 73 20 69 6e 20 61 6e 20 69 6e 64 65  tries in an inde
4610: 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72  x.</li>.<li>Corr
4620: 65 63 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ect handling of 
4630: 69 6e 74 65 67 65 72 73 20 69 6e 20 53 51 4c 20  integers in SQL 
4640: 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61 74  expressions that
4650: 20 61 72 65 20 6c 61 72 67 65 72 20 74 68 61 6e   are larger than
4660: 0a 20 20 20 20 77 68 61 74 20 63 61 6e 20 62 65  .    what can be
4670: 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20   represented by 
4680: 74 68 65 20 6d 61 63 68 69 6e 65 20 69 6e 74 65  the machine inte
4690: 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ger.</li>.}..chn
46a0: 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 32 20 28  g {2001 Nov 22 (
46b0: 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68  2.1.2)} {.<li>Ch
46c0: 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f 72 74  anges to support
46d0: 20 36 34 2d 62 69 74 20 61 72 63 68 69 74 65 63   64-bit architec
46e0: 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tures.</li>.<li>
46f0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
4700: 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f   locking protoco
4710: 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  l.</li>.<li>Fix 
4720: 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64  a bug that could
4730: 20 28 72 61 72 65 6c 79 29 20 63 61 75 73 65 20   (rarely) cause 
4740: 74 68 65 20 64 61 74 61 62 61 73 65 20 74 6f 20  the database to 
4750: 62 65 63 6f 6d 65 20 0a 20 20 20 20 75 6e 72 65  become .    unre
4760: 61 64 61 62 6c 65 20 61 66 74 65 72 20 61 20 44  adable after a D
4770: 52 4f 50 20 54 41 42 4c 45 20 64 75 65 20 74 6f  ROP TABLE due to
4780: 20 63 6f 72 72 75 70 74 69 6f 6e 20 74 6f 20 74   corruption to t
4790: 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52  he SQLITE_MASTER
47a0: 0a 20 20 20 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  .    table.</li>
47b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
47c0: 63 6f 64 65 20 73 6f 20 74 68 61 74 20 76 65 72  code so that ver
47d0: 73 69 6f 6e 20 32 2e 31 2e 31 20 64 61 74 61 62  sion 2.1.1 datab
47e0: 61 73 65 73 20 74 68 61 74 20 77 65 72 65 20 72  ases that were r
47f0: 65 6e 64 65 72 65 64 20 0a 20 20 20 20 75 6e 72  endered .    unr
4800: 65 61 64 61 62 6c 65 20 62 79 20 74 68 65 20 61  eadable by the a
4810: 62 6f 76 65 20 62 75 67 20 63 61 6e 20 62 65 20  bove bug can be 
4820: 72 65 61 64 20 62 79 20 74 68 69 73 20 76 65 72  read by this ver
4830: 73 69 6f 6e 20 6f 66 0a 20 20 20 20 74 68 65 20  sion of.    the 
4840: 6c 69 62 72 61 72 79 20 65 76 65 6e 20 74 68 6f  library even tho
4850: 75 67 68 20 74 68 65 20 53 51 4c 49 54 45 5f 4d  ugh the SQLITE_M
4860: 41 53 54 45 52 20 74 61 62 6c 65 20 69 73 20 28  ASTER table is (
4870: 73 6c 69 67 68 74 6c 79 29 0a 20 20 20 20 63 6f  slightly).    co
4880: 72 72 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  rrupted.</li>.}.
4890: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20  .chng {2001 Nov 
48a0: 31 33 20 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c  13 (2.1.1)} {.<l
48b0: 69 3e 42 75 67 20 66 69 78 3a 20 53 6f 6d 65 74  i>Bug fix: Somet
48c0: 69 6d 65 73 20 61 72 62 69 72 61 72 79 20 73 74  imes arbirary st
48d0: 72 69 6e 67 73 20 77 65 72 65 20 70 61 73 73 65  rings were passe
48e0: 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63  d to the callbac
48f0: 6b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 77  k.    function w
4900: 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c 20 76  hen the actual v
4910: 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e  alue of a column
4920: 20 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a   was NULL.</li>.
4930: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
4940: 76 20 31 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a  v 12 (2.1.0)} {.
4950: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66  <li>Change the f
4960: 6f 72 6d 61 74 20 6f 66 20 64 61 74 61 20 72 65  ormat of data re
4970: 63 6f 72 64 73 20 73 6f 20 74 68 61 74 20 72 65  cords so that re
4980: 63 6f 72 64 73 20 75 70 20 74 6f 20 31 36 4d 42  cords up to 16MB
4990: 20 69 6e 20 73 69 7a 65 0a 20 20 20 20 63 61 6e   in size.    can
49a0: 20 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e   be stored.</li>
49b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
49c0: 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65  format of indice
49d0: 73 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62  s to allow for b
49e0: 65 74 74 65 72 20 71 75 65 72 79 20 6f 70 74 69  etter query opti
49f0: 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  mization.</li>.<
4a00: 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65  li>Implement the
4a10: 20 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53   "LIMIT ... OFFS
4a20: 45 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f  ET ..." clause o
4a30: 6e 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  n SELECT stateme
4a40: 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nts.</li>.}..chn
4a50: 67 20 7b 32 30 30 31 20 4e 6f 76 20 33 20 28 32  g {2001 Nov 3 (2
4a60: 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64  .0.8)} {.<li>Mad
4a70: 65 20 73 65 6c 65 63 74 65 64 20 70 61 72 61 6d  e selected param
4a80: 65 74 65 72 73 20 69 6e 20 41 50 49 20 66 75 6e  eters in API fun
4a90: 63 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c  ctions <b>const<
4aa0: 2f 62 3e 2e 20 54 68 69 73 20 73 68 6f 75 6c 64  /b>. This should
4ab0: 0a 20 20 20 20 62 65 20 66 75 6c 6c 79 20 62 61  .    be fully ba
4ac0: 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62  ckwards compatib
4ad0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  le.</li>.<li>Doc
4ae0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
4af0: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70  es</li>.<li>Simp
4b00: 6c 69 66 79 20 74 68 65 20 64 65 73 69 67 6e 20  lify the design 
4b10: 6f 66 20 74 68 65 20 56 44 42 45 20 62 79 20 72  of the VDBE by r
4b20: 65 73 74 72 69 63 74 69 6e 67 20 74 68 65 20 6e  estricting the n
4b30: 75 6d 62 65 72 20 6f 66 20 73 6f 72 74 65 72 73  umber of sorters
4b40: 0a 20 20 20 20 61 6e 64 20 6c 69 73 74 73 20 74  .    and lists t
4b50: 6f 20 31 2e 0a 20 20 20 20 49 6e 20 70 72 61 63  o 1..    In prac
4b60: 74 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68  tice, no more th
4b70: 61 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e  an one sorter an
4b80: 64 20 6f 6e 65 20 6c 69 73 74 20 77 61 73 20 65  d one list was e
4b90: 76 65 72 20 75 73 65 64 20 61 6e 79 68 6f 77 2e  ver used anyhow.
4ba0: 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
4bb0: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32 31 20  ng {2001 Oct 21 
4bc0: 28 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.0.7)} {.<li>A
4bd0: 6e 79 20 55 54 46 2d 38 20 63 68 61 72 61 63 74  ny UTF-8 charact
4be0: 65 72 20 6f 72 20 49 53 4f 38 38 35 39 20 63 68  er or ISO8859 ch
4bf0: 61 72 61 63 74 65 72 20 63 61 6e 20 62 65 20 75  aracter can be u
4c00: 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a 20  sed as part of. 
4c10: 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72     an identifier
4c20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68  .</li>.<li>Patch
4c30: 65 73 20 66 72 6f 6d 20 43 68 72 69 73 74 69 61  es from Christia
4c40: 6e 20 57 65 72 6e 65 72 20 74 6f 20 69 6d 70 72  n Werner to impr
4c50: 6f 76 65 20 4f 44 42 43 20 63 6f 6d 70 61 74 69  ove ODBC compati
4c60: 62 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a 20 20  bility and to.  
4c70: 20 20 66 69 78 20 61 20 62 75 67 20 69 6e 20 74    fix a bug in t
4c80: 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e 63 74  he round() funct
4c90: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c  ion.</li>.<li>Pl
4ca0: 75 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c  ug some memory l
4cb0: 65 61 6b 73 20 74 68 61 74 20 75 73 65 20 74 6f  eaks that use to
4cc0: 20 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63   occur if malloc
4cd0: 28 29 20 66 61 69 6c 65 64 2e 0a 20 20 20 20 57  () failed..    W
4ce0: 65 20 68 61 76 65 20 62 65 65 6e 20 61 6e 64 20  e have been and 
4cf0: 63 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65 20 6d  continue to be m
4d00: 65 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65 65 20  emory leak free 
4d10: 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d  as long as.    m
4d20: 61 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f  alloc() works.</
4d30: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20  li>.<li>Changes 
4d40: 74 6f 20 73 6f 6d 65 20 74 65 73 74 20 73 63 72  to some test scr
4d50: 69 70 74 73 20 73 6f 20 74 68 61 74 20 74 68 65  ipts so that the
4d60: 79 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77  y work on Window
4d70: 73 20 69 6e 0a 20 20 20 20 61 64 64 69 74 69 6f  s in.    additio
4d80: 6e 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a  n to Unix.</li>.
4d90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
4da0: 74 20 31 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a  t 19 (2.0.6)} {.
4db0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45 4d  <li>Added the EM
4dc0: 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42  PTY_RESULT_CALLB
4dd0: 41 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e  ACKS pragma</li>
4de0: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
4df0: 20 55 54 46 2d 38 20 61 6e 64 20 49 53 4f 38 38   UTF-8 and ISO88
4e00: 35 39 20 63 68 61 72 61 63 74 65 72 73 20 69 6e  59 characters in
4e10: 20 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c   column and tabl
4e20: 65 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  e names.</li>.<l
4e30: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d 70 75  i>Bug fix: Compu
4e40: 74 65 20 63 6f 72 72 65 63 74 20 74 61 62 6c 65  te correct table
4e50: 20 6e 61 6d 65 73 20 77 69 74 68 20 74 68 65 20   names with the 
4e60: 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45  FULL_COLUMN_NAME
4e70: 53 20 70 72 61 67 6d 61 0a 20 20 20 20 69 73 20  S pragma.    is 
4e80: 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a  turned on.</li>.
4e90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
4ea0: 74 20 31 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a  t 14 (2.0.5)} {.
4eb0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 43 4f  <li>Added the CO
4ec0: 55 4e 54 5f 43 48 41 4e 47 45 53 20 70 72 61 67  UNT_CHANGES prag
4ed0: 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ma.</li>.<li>Cha
4ee0: 6e 67 65 73 20 74 6f 20 74 68 65 20 46 55 4c 4c  nges to the FULL
4ef0: 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72  _COLUMN_NAMES pr
4f00: 61 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f 75 74  agma to help out
4f10: 20 74 68 65 20 4f 44 42 43 20 64 72 69 76 65 72   the ODBC driver
4f20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
4f30: 69 78 3a 20 22 53 45 4c 45 43 54 20 63 6f 75 6e  ix: "SELECT coun
4f40: 74 28 2a 29 22 20 77 61 73 20 72 65 74 75 72 6e  t(*)" was return
4f50: 69 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70  ing NULL for emp
4f60: 74 79 20 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e  ty tables..    N
4f70: 6f 77 20 69 74 20 72 65 74 75 72 6e 73 20 30 2e  ow it returns 0.
4f80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4f90: 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e  001 Oct 13 (2.0.
4fa0: 34 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  4)} {.<li>Bug fi
4fb0: 78 3a 20 61 6e 20 61 62 73 63 75 72 65 20 61 6e  x: an abscure an
4fc0: 64 20 72 65 6c 61 74 69 76 65 6c 79 20 68 61 72  d relatively har
4fd0: 6d 6c 65 73 73 20 62 75 67 20 77 61 73 20 63 61  mless bug was ca
4fe0: 75 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20  using one of.   
4ff0: 20 74 68 65 20 74 65 73 74 73 20 74 6f 20 66 61   the tests to fa
5000: 69 6c 20 77 68 65 6e 20 67 63 63 20 6f 70 74 69  il when gcc opti
5010: 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 74 75  mizations are tu
5020: 72 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73 20 72  rned on.  This r
5030: 65 6c 65 61 73 65 0a 20 20 20 20 66 69 78 65 73  elease.    fixes
5040: 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c   the problem.</l
5050: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
5060: 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 33 29 7d   Oct 13 (2.0.3)}
5070: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
5080: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75  the <b>sqlite_bu
5090: 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e  sy_timeout()</b>
50a0: 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20 64 65   function was de
50b0: 6c 61 79 69 6e 67 20 31 30 30 30 0a 20 20 20 20  laying 1000.    
50c0: 74 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62  times too long b
50d0: 65 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f  efore failing.</
50e0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
50f0: 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61   an assertion wa
5100: 73 20 66 61 69 6c 69 6e 67 20 69 66 20 74 68 65  s failing if the
5110: 20 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68   disk holding th
5120: 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66  e database.    f
5130: 69 6c 65 20 62 65 63 61 6d 65 20 66 75 6c 6c 20  ile became full 
5140: 6f 72 20 73 74 6f 70 70 65 64 20 61 63 63 65 70  or stopped accep
5150: 74 69 6e 67 20 77 72 69 74 65 73 20 66 6f 72 20  ting writes for 
5160: 73 6f 6d 65 20 6f 74 68 65 72 20 72 65 61 73 6f  some other reaso
5170: 6e 2e 0a 20 20 20 20 4e 65 77 20 74 65 73 74 73  n..    New tests
5180: 20 77 65 72 65 20 61 64 64 65 64 20 74 6f 20 64   were added to d
5190: 65 74 65 63 74 20 73 69 6d 69 6c 61 72 20 70 72  etect similar pr
51a0: 6f 62 6c 65 6d 73 20 69 6e 20 74 68 65 20 66 75  oblems in the fu
51b0: 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ture.</li>.<li>A
51c0: 64 64 65 64 20 6e 65 77 20 6f 70 65 72 61 74 6f  dded new operato
51d0: 72 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e  rs: <b>&amp;</b>
51e0: 20 28 62 69 74 77 69 73 65 2d 61 6e 64 29 0a 20   (bitwise-and). 
51f0: 20 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74     <b>|</b> (bit
5200: 77 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f  wise-or), <b>~</
5210: 62 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d  b> (ones-complem
5220: 65 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74  ent),.    <b>&lt
5230: 3b 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74  ;&lt;</b> (shift
5240: 20 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26   left), <b>&gt;&
5250: 67 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 72  gt;</b> (shift r
5260: 69 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ight).</li>.<li>
5270: 41 64 64 65 64 20 6e 65 77 20 66 75 6e 63 74 69  Added new functi
5280: 6f 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c  ons: <b>round()<
5290: 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73 28 29  /b> and <b>abs()
52a0: 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  </b>.</li>.}..ch
52b0: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 39 20 28  ng {2001 Oct 9 (
52c0: 32 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.0.2)} {.<li>Fi
52d0: 78 20 74 77 6f 20 62 75 67 73 20 69 6e 20 74 68  x two bugs in th
52e0: 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63  e locking protoc
52f0: 6f 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20 6d 61  ol.  (One was ma
5300: 73 6b 69 6e 67 20 74 68 65 20 6f 74 68 65 72 2e  sking the other.
5310: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  )</li>.<li>Remov
5320: 65 64 20 73 6f 6d 65 20 75 6e 75 73 65 64 20 22  ed some unused "
5330: 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64  #include <unistd
5340: 2e 68 3e 22 20 74 68 61 74 20 77 65 72 65 20 63  .h>" that were c
5350: 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a  ausing problems.
5360: 20 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c      for VC++.</l
5370: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e  i>.<li>Fixed <b>
5380: 73 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20  sqlite.h</b> so 
5390: 74 68 61 74 20 69 74 20 69 73 20 75 73 61 62 6c  that it is usabl
53a0: 65 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a  e from C++</li>.
53b0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 46 55  <li>Added the FU
53c0: 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20  LL_COLUMN_NAMES 
53d0: 70 72 61 67 6d 61 2e 20 20 57 68 65 6e 20 73 65  pragma.  When se
53e0: 74 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e  t to "ON", the n
53f0: 61 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75  ames of.    colu
5400: 6d 6e 73 20 61 72 65 20 72 65 70 6f 72 74 65 64  mns are reported
5410: 20 62 61 63 6b 20 61 73 20 54 41 42 4c 45 2e 43   back as TABLE.C
5420: 4f 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66  OLUMN instead of
5430: 20 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c   just COLUMN.</l
5440: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
5450: 20 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e   TABLE_INFO() an
5460: 64 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70  d INDEX_INFO() p
5470: 72 61 67 6d 61 73 20 74 6f 20 68 65 6c 70 20 73  ragmas to help s
5480: 75 70 70 6f 72 74 20 74 68 65 0a 20 20 20 20 4f  upport the.    O
5490: 44 42 43 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  DBC interface.</
54a0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
54b0: 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 4f 52  pport for TEMPOR
54c0: 41 52 59 20 74 61 62 6c 65 73 20 61 6e 64 20 69  ARY tables and i
54d0: 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ndices.</li>.}..
54e0: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32  chng {2001 Oct 2
54f0: 20 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.1)} {.<li>
5500: 52 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20  Remove some C++ 
5510: 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66  style comments f
5520: 72 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f 20 74  rom btree.c so t
5530: 68 61 74 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70  hat it will comp
5540: 69 6c 65 0a 20 20 20 20 75 73 69 6e 67 20 63 6f  ile.    using co
5550: 6d 70 69 6c 65 72 73 20 6f 74 68 65 72 20 74 68  mpilers other th
5560: 61 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69  an gcc.</li>.<li
5570: 3e 54 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74  >The ".dump" out
5580: 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73 68 65  put from the she
5590: 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b  ll does not work
55a0: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 65 6d   if there are em
55b0: 62 65 64 64 65 64 0a 20 20 20 20 6e 65 77 6c 69  bedded.    newli
55c0: 6e 65 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20  nes anywhere in 
55d0: 74 68 65 20 64 61 74 61 2e 20 20 54 68 69 73 20  the data.  This 
55e0: 69 73 20 61 6e 20 6f 6c 64 20 62 75 67 20 74 68  is an old bug th
55f0: 61 74 20 77 61 73 20 63 61 72 72 69 65 64 0a 20  at was carried. 
5600: 20 20 20 66 6f 72 77 61 72 64 20 66 72 6f 6d 20     forward from 
5610: 76 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f  version 1.0.  To
5620: 20 66 69 78 20 69 74 2c 20 74 68 65 20 22 2e 64   fix it, the ".d
5630: 75 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c  ump" output no l
5640: 6f 6e 67 65 72 0a 20 20 20 20 75 73 65 73 20 74  onger.    uses t
5650: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e  he COPY command.
5660: 20 20 49 74 20 69 6e 73 74 65 61 64 20 67 65 6e    It instead gen
5670: 65 72 61 74 65 73 20 49 4e 53 45 52 54 20 73 74  erates INSERT st
5680: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c  atements.</li>.<
5690: 6c 69 3e 45 78 74 65 6e 64 20 74 68 65 20 65 78  li>Extend the ex
56a0: 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61 78 20  pression syntax 
56b0: 74 6f 20 73 75 70 70 6f 72 74 20 22 65 78 70 72  to support "expr
56c0: 20 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69 74 68   NOT NULL" (with
56d0: 20 61 0a 20 20 20 20 73 70 61 63 65 20 62 65 74   a.    space bet
56e0: 77 65 65 6e 20 74 68 65 20 22 4e 4f 54 22 20 61  ween the "NOT" a
56f0: 6e 64 20 74 68 65 20 22 4e 55 4c 4c 22 29 20 69  nd the "NULL") i
5700: 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 22 65  n addition to "e
5710: 78 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20  xpr NOTNULL".   
5720: 20 28 77 69 74 68 20 6e 6f 20 73 70 61 63 65 29   (with no space)
5730: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5740: 32 30 30 31 20 53 65 70 20 32 38 20 28 32 2e 30  2001 Sep 28 (2.0
5750: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d  .0)} {.<li>Autom
5760: 61 74 69 63 61 6c 6c 79 20 62 75 69 6c 64 20 62  atically build b
5770: 69 6e 61 72 69 65 73 20 66 6f 72 20 4c 69 6e 75  inaries for Linu
5780: 78 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e  x and Windows an
5790: 64 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20  d put them on.  
57a0: 20 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f    the website.</
57b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
57c0: 31 20 53 65 70 20 32 38 20 28 32 2e 30 2d 61 6c  1 Sep 28 (2.0-al
57d0: 70 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e  pha-4)} {.<li>In
57e0: 63 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65 66 69  corporate makefi
57f0: 6c 65 20 70 61 74 63 68 65 73 20 66 6f 72 6d 20  le patches form 
5800: 41 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75  A. Rottmann to u
5810: 73 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a  se LIBTOOL</li>.
5820: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65  }..chng {2001 Se
5830: 70 20 32 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d  p 27 (2.0-alpha-
5840: 33 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65  3)} {.<li>SQLite
5850: 20 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68 65 20   now honors the 
5860: 55 4e 49 51 55 45 20 6b 65 79 77 6f 72 64 20 69  UNIQUE keyword i
5870: 6e 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20  n CREATE UNIQUE 
5880: 49 4e 44 45 58 2e 20 20 50 72 69 6d 61 72 79 0a  INDEX.  Primary.
5890: 20 20 20 20 6b 65 79 73 20 61 72 65 20 72 65 71      keys are req
58a0: 75 69 72 65 64 20 74 6f 20 62 65 20 75 6e 69 71  uired to be uniq
58b0: 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c  ue.</li>.<li>Fil
58c0: 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 64  e format changed
58d0: 20 62 61 63 6b 20 74 6f 20 77 68 61 74 20 69 74   back to what it
58e0: 20 77 61 73 20 66 6f 72 20 61 6c 70 68 61 2d 31   was for alpha-1
58f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20  </li>.<li>Fixes 
5900: 74 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20  to the rollback 
5910: 61 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61  and locking beha
5920: 76 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  vior</li>.}..chn
5930: 67 20 7b 32 30 30 31 20 53 65 70 20 32 30 20 28  g {2001 Sep 20 (
5940: 32 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a  2.0-alpha-2)} {.
5950: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65  <li>Initial rele
5960: 61 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 20 32  ase of version 2
5970: 2e 30 2e 20 20 54 68 65 20 69 64 65 61 20 6f 66  .0.  The idea of
5980: 20 72 65 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69   renaming the li
5990: 62 72 61 72 79 0a 20 20 20 20 74 6f 20 22 53 51  brary.    to "SQ
59a0: 4c 75 73 22 20 77 61 73 20 61 62 61 6e 64 6f 6e  Lus" was abandon
59b0: 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b  ed in favor of k
59c0: 65 65 70 69 6e 67 20 74 68 65 20 22 53 51 4c 69  eeping the "SQLi
59d0: 74 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20  te" name and.   
59e0: 20 62 75 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a   bumping the maj
59f0: 6f 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  or version numbe
5a00: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  r.</li>.<li>The 
5a10: 70 61 67 65 72 20 61 6e 64 20 62 74 72 65 65 20  pager and btree 
5a20: 73 75 62 73 79 73 74 65 6d 73 20 61 64 64 65 64  subsystems added
5a30: 20 62 61 63 6b 2e 20 54 68 65 79 20 61 72 65 20   back. They are 
5a40: 6e 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20  now the only.   
5a50: 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63 6b 65   available backe
5a60: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  nd.</li>.<li>The
5a70: 20 44 62 62 65 20 61 62 73 74 72 61 63 74 69 6f   Dbbe abstractio
5a80: 6e 20 61 6e 64 20 74 68 65 20 47 44 42 4d 20 61  n and the GDBM a
5a90: 6e 64 20 6d 65 6d 6f 72 79 20 64 72 69 76 65 72  nd memory driver
5aa0: 73 20 77 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c  s were removed.<
5ab0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67  /li>.<li>Copyrig
5ac0: 68 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77  ht on all code w
5ad0: 61 73 20 64 69 73 63 6c 61 69 6d 65 64 2e 20 20  as disclaimed.  
5ae0: 54 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e  The library is n
5af0: 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20 70 75  ow in the.    pu
5b00: 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69  blic domain.</li
5b10: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
5b20: 4a 75 6c 20 32 33 20 28 31 2e 30 2e 33 32 29 7d  Jul 23 (1.0.32)}
5b30: 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64   {.<li>Pager and
5b40: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
5b50: 73 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 65 73  s removed.  Thes
5b60: 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69  e will be used i
5b70: 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20  n a follow-on.  
5b80: 20 20 53 51 4c 20 73 65 72 76 65 72 20 6c 69 62    SQL server lib
5b90: 72 61 72 79 20 6e 61 6d 65 64 20 22 53 51 4c 75  rary named "SQLu
5ba0: 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  s".</li>.<li>Add
5bb0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
5bc0: 75 73 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e  use quoted strin
5bd0: 67 73 20 61 73 20 74 61 62 6c 65 20 61 6e 64 20  gs as table and 
5be0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a  column names in.
5bf0: 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e      expressions.
5c00: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5c10: 30 30 31 20 41 70 72 20 31 34 20 28 31 2e 30 2e  001 Apr 14 (1.0.
5c20: 33 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72  31)} {.<li>Pager
5c30: 20 73 75 62 73 79 73 74 65 6d 20 61 64 64 65 64   subsystem added
5c40: 20 62 75 74 20 6e 6f 74 20 79 65 74 20 75 73 65   but not yet use
5c50: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65  d.</li>.<li>More
5c60: 20 72 6f 62 75 73 74 20 68 61 6e 64 6c 69 6e 67   robust handling
5c70: 20 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72   of out-of-memor
5c80: 79 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c  y errors.</li>.<
5c90: 6c 69 3e 4e 65 77 20 74 65 73 74 73 20 61 64 64  li>New tests add
5ca0: 65 64 20 74 6f 20 74 68 65 20 74 65 73 74 20 73  ed to the test s
5cb0: 75 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  uite.</li>.}..ch
5cc0: 6e 67 20 7b 32 30 30 31 20 41 70 72 20 36 20 28  ng {2001 Apr 6 (
5cd0: 31 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52  1.0.30)} {.<li>R
5ce0: 65 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73 71 6c  emove the <b>sql
5cf0: 69 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e  ite_encoding</b>
5d00: 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 74 68   TCL variable th
5d10: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
5d20: 64 0a 20 20 20 20 69 6e 20 74 68 65 20 70 72 65  d.    in the pre
5d30: 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f  vious version.</
5d40: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69  li>.<li>Add opti
5d50: 6f 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67  ons <b>-encoding
5d60: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c  </b> and <b>-tcl
5d70: 2d 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f  -uses-utf</b> to
5d80: 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69   the.    <b>sqli
5d90: 74 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61  te</b> TCL comma
5da0: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  nd.</li>.<li>Add
5db0: 20 74 65 73 74 73 20 74 6f 20 6d 61 6b 65 20 73   tests to make s
5dc0: 75 72 65 20 74 68 61 74 20 74 63 6c 73 71 6c 69  ure that tclsqli
5dd0: 74 65 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20  te was compiled 
5de0: 75 73 69 6e 67 20 54 63 6c 20 68 65 61 64 65 72  using Tcl header
5df0: 0a 20 20 20 20 66 69 6c 65 73 20 61 6e 64 20 6c  .    files and l
5e00: 69 62 72 61 72 69 65 73 20 74 68 61 74 20 6d 61  ibraries that ma
5e10: 74 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tch.</li>.}..chn
5e20: 67 20 7b 32 30 30 31 20 41 70 72 20 35 20 28 31  g {2001 Apr 5 (1
5e30: 2e 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .0.29)} {.<li>Th
5e40: 65 20 6c 69 62 72 61 72 79 20 6e 6f 77 20 61 73  e library now as
5e50: 73 75 6d 65 73 20 64 61 74 61 20 69 73 20 73 74  sumes data is st
5e60: 6f 72 65 64 20 61 73 20 55 54 46 2d 38 20 69 66  ored as UTF-8 if
5e70: 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74   the --enable-ut
5e80: 66 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20 69 73  f8.    option is
5e90: 20 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67   given to config
5ea0: 75 72 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c  ure.  The defaul
5eb0: 74 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f  t behavior is to
5ec0: 20 61 73 73 75 6d 65 0a 20 20 20 20 69 73 6f 38   assume.    iso8
5ed0: 38 35 39 2d 78 2c 20 61 73 20 69 74 20 68 61 73  859-x, as it has
5ee0: 20 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20 20 54   always done.  T
5ef0: 68 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61  his only makes a
5f00: 20 64 69 66 66 65 72 65 6e 63 65 20 66 6f 72 0a   difference for.
5f10: 20 20 20 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f      LIKE and GLO
5f20: 42 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20  B operators and 
5f30: 74 68 65 20 4c 45 4e 47 54 48 20 61 6e 64 20 53  the LENGTH and S
5f40: 55 42 53 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e  UBSTR functions.
5f50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65  </li>.<li>If the
5f60: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74 20   library is not 
5f70: 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20 55  configured for U
5f80: 54 46 2d 38 20 61 6e 64 20 74 68 65 20 54 63 6c  TF-8 and the Tcl
5f90: 20 6c 69 62 72 61 72 79 0a 20 20 20 20 69 73 20   library.    is 
5fa0: 6f 6e 65 20 6f 66 20 74 68 65 20 6e 65 77 65 72  one of the newer
5fb0: 20 6f 6e 65 73 20 74 68 61 74 20 75 73 65 73 20   ones that uses 
5fc0: 55 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79  UTF-8 internally
5fd0: 2c 0a 20 20 20 20 74 68 65 6e 20 61 20 63 6f 6e  ,.    then a con
5fe0: 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46  version from UTF
5ff0: 2d 38 20 74 6f 20 69 73 6f 38 38 35 39 20 61 6e  -8 to iso8859 an
6000: 64 0a 20 20 20 20 62 61 63 6b 20 61 67 61 69 6e  d.    back again
6010: 20 69 73 20 64 6f 6e 65 20 69 6e 73 69 64 65 20   is done inside 
6020: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
6030: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
6040: 7b 32 30 30 31 20 41 70 72 20 34 20 28 31 2e 30  {2001 Apr 4 (1.0
6050: 2e 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .28)} {.<li>Adde
6060: 64 20 6c 69 6d 69 74 65 64 20 73 75 70 70 6f 72  d limited suppor
6070: 74 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f  t for transactio
6080: 6e 73 2e 20 20 41 74 20 74 68 69 73 20 70 6f 69  ns.  At this poi
6090: 6e 74 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  nt, transactions
60a0: 0a 20 20 20 20 77 69 6c 6c 20 64 6f 20 74 61 62  .    will do tab
60b0: 6c 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68  le locking on th
60c0: 65 20 47 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20  e GDBM backend. 
60d0: 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73 75 70   There is no sup
60e0: 70 6f 72 74 20 28 79 65 74 29 0a 20 20 20 20 66  port (yet).    f
60f0: 6f 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61  or rollback or a
6100: 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c  tomic commit.</l
6110: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 70 65  i>.<li>Added spe
6120: 63 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  cial column name
6130: 73 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e  s ROWID, OID, an
6140: 64 20 5f 52 4f 57 49 44 5f 20 74 68 61 74 20 72  d _ROWID_ that r
6150: 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20  efer to the.    
6160: 75 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e  unique random in
6170: 74 65 67 65 72 20 6b 65 79 20 61 73 73 6f 63 69  teger key associ
6180: 61 74 65 64 20 77 69 74 68 20 65 76 65 72 79 20  ated with every 
6190: 72 6f 77 20 6f 66 20 65 76 65 72 79 20 74 61 62  row of every tab
61a0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  le.</li>.<li>Add
61b0: 69 74 69 6f 6e 61 6c 20 74 65 73 74 73 20 61 64  itional tests ad
61c0: 64 65 64 20 74 6f 20 74 68 65 20 72 65 67 72 65  ded to the regre
61d0: 73 73 69 6f 6e 20 73 75 69 74 65 20 74 6f 20 63  ssion suite to c
61e0: 6f 76 65 72 20 74 68 65 20 6e 65 77 20 52 4f 57  over the new ROW
61f0: 49 44 0a 20 20 20 20 66 65 61 74 75 72 65 20 61  ID.    feature a
6200: 6e 64 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72  nd the TCL inter
6210: 66 61 63 65 20 62 75 67 73 20 6d 65 6e 74 69 6f  face bugs mentio
6220: 6e 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a  ned below.</li>.
6230: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
6240: 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65  he "lemon" parse
6250: 72 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 20 68  r generator to h
6260: 65 6c 70 20 69 74 20 77 6f 72 6b 20 62 65 74 74  elp it work bett
6270: 65 72 20 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70  er when.    comp
6280: 69 6c 65 64 20 75 73 69 6e 67 20 4d 53 56 43 2e  iled using MSVC.
6290: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
62a0: 78 65 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69  xes in the TCL i
62b0: 6e 74 65 72 66 61 63 65 20 69 64 65 6e 74 69 66  nterface identif
62c0: 69 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69  ied by Oleg Olei
62d0: 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nick.</li>.}..ch
62e0: 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20  ng {2001 Mar 20 
62f0: 28 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.27)} {.<li>
6300: 57 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54  When doing DELET
6310: 45 20 61 6e 64 20 55 50 44 41 54 45 2c 20 74 68  E and UPDATE, th
6320: 65 20 6c 69 62 72 61 72 79 20 75 73 65 64 20 74  e library used t
6330: 6f 20 77 72 69 74 65 20 74 68 65 20 72 65 63 6f  o write the reco
6340: 72 64 0a 20 20 20 20 6e 75 6d 62 65 72 73 20 6f  rd.    numbers o
6350: 66 20 72 65 63 6f 72 64 73 20 74 6f 20 62 65 20  f records to be 
6360: 64 65 6c 65 74 65 64 20 6f 72 20 75 70 64 61 74  deleted or updat
6370: 65 64 20 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72  ed into a tempor
6380: 61 72 79 20 66 69 6c 65 2e 0a 20 20 20 20 54 68  ary file..    Th
6390: 69 73 20 69 73 20 63 68 61 6e 67 65 64 20 73 6f  is is changed so
63a0: 20 74 68 61 74 20 74 68 65 20 72 65 63 6f 72 64   that the record
63b0: 20 6e 75 6d 62 65 72 73 20 61 72 65 20 68 65 6c   numbers are hel
63c0: 64 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69  d in memory.</li
63d0: 3e 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45 54 45  >.<li>The DELETE
63e0: 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74   command without
63f0: 20 61 20 57 48 49 4c 45 20 63 6c 61 75 73 65 20   a WHILE clause 
6400: 6a 75 73 74 20 72 65 6d 6f 76 65 73 20 74 68 65  just removes the
6410: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66 69   database.    fi
6420: 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 64 69 73  les from the dis
6430: 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 67  k, rather than g
6440: 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 61 6e 64  oing through and
6450: 20 64 65 6c 65 74 69 6e 67 20 72 65 63 6f 72 64   deleting record
6460: 0a 20 20 20 20 62 79 20 72 65 63 6f 72 64 2e 3c  .    by record.<
6470: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6480: 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32  01 Mar 20 (1.0.2
6490: 36 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69  6)} {.<li>A seri
64a0: 6f 75 73 20 62 75 67 20 66 69 78 65 64 20 6f 6e  ous bug fixed on
64b0: 20 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f   Windows.  Windo
64c0: 77 73 20 75 73 65 72 73 20 73 68 6f 75 6c 64 20  ws users should 
64d0: 75 70 67 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20  upgrade..    No 
64e0: 69 6d 70 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c  impact to Unix.<
64f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
6500: 30 31 20 4d 61 72 20 31 35 20 28 31 2e 30 2e 32  01 Mar 15 (1.0.2
6510: 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79  5)} {.<li>Modify
6520: 20 74 68 65 20 74 65 73 74 20 73 63 72 69 70 74   the test script
6530: 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 65  s to identify te
6540: 73 74 73 20 74 68 61 74 20 64 65 70 65 6e 64 20  sts that depend 
6550: 6f 6e 20 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f  on system.    lo
6560: 61 64 20 61 6e 64 20 70 72 6f 63 65 73 73 6f 72  ad and processor
6570: 20 73 70 65 65 64 20 61 6e 64 0a 20 20 20 20 74   speed and.    t
6580: 6f 20 77 61 72 6e 20 74 68 65 20 75 73 65 72 20  o warn the user 
6590: 74 68 61 74 20 61 20 66 61 69 6c 75 72 65 20 6f  that a failure o
65a0: 66 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 28  f one of those (
65b0: 72 61 72 65 29 20 74 65 73 74 73 20 64 6f 65 73  rare) tests does
65c0: 0a 20 20 20 20 6e 6f 74 20 6e 65 63 65 73 73 61  .    not necessa
65d0: 72 69 6c 79 20 6d 65 61 6e 20 74 68 65 20 6c 69  rily mean the li
65e0: 62 72 61 72 79 20 69 73 20 6d 61 6c 66 75 6e 63  brary is malfunc
65f0: 74 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61  tioning.  No cha
6600: 6e 67 65 73 20 74 6f 0a 20 20 20 20 63 6f 64 65  nges to.    code
6610: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
6620: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 34  hng {2001 Mar 14
6630: 20 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69   (1.0.24)} {.<li
6640: 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68  >Fix a bug which
6650: 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20   was causing.   
6660: 20 74 68 65 20 55 50 44 41 54 45 20 63 6f 6d 6d   the UPDATE comm
6670: 61 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73  and to fail on s
6680: 79 73 74 65 6d 73 20 77 68 65 72 65 20 22 6d 61  ystems where "ma
6690: 6c 6c 6f 63 28 30 29 22 20 72 65 74 75 72 6e 73  lloc(0)" returns
66a0: 0a 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20  .    NULL.  The 
66b0: 70 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74  problem does not
66c0: 20 61 70 70 65 61 72 20 57 69 6e 64 6f 77 73 2c   appear Windows,
66d0: 20 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55 58 20   Linux, or HPUX 
66e0: 62 75 74 20 64 6f 65 73 20 0a 20 20 20 20 63 61  but does .    ca
66f0: 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 20  use the library 
6700: 74 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a  to fail on QNX..
6710: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
6720: 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28  g {2001 Feb 19 (
6730: 31 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.23)} {.<li>A
6740: 6e 20 75 6e 72 65 6c 61 74 65 64 20 28 61 6e 64  n unrelated (and
6750: 20 6d 69 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d   minor) bug from
6760: 20 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20   Mark Muranwski 
6770: 66 69 78 65 64 2e 20 20 54 68 65 20 61 6c 67 6f  fixed.  The algo
6780: 72 69 74 68 6d 0a 20 20 20 20 66 6f 72 20 66 69  rithm.    for fi
6790: 67 75 72 69 6e 67 20 6f 75 74 20 77 68 65 72 65  guring out where
67a0: 20 74 6f 20 70 75 74 20 74 65 6d 70 6f 72 61 72   to put temporar
67b0: 79 20 66 69 6c 65 73 20 66 6f 72 20 61 20 22 6d  y files for a "m
67c0: 65 6d 6f 72 79 3a 22 20 64 61 74 61 62 61 73 65  emory:" database
67d0: 0a 20 20 20 20 77 61 73 20 6e 6f 74 20 77 6f 72  .    was not wor
67e0: 6b 69 6e 67 20 71 75 69 74 65 20 72 69 67 68 74  king quite right
67f0: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
6800: 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39  hng {2001 Feb 19
6810: 20 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69   (1.0.22)} {.<li
6820: 3e 54 68 65 20 70 72 65 76 69 6f 75 73 20 66 69  >The previous fi
6830: 78 20 77 61 73 20 6e 6f 74 20 71 75 69 74 65 20  x was not quite 
6840: 72 69 67 68 74 2e 20 20 54 68 69 73 20 6f 6e 65  right.  This one
6850: 20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62   seems to work b
6860: 65 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e  etter..    </li>
6870: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
6880: 65 62 20 31 39 20 28 31 2e 30 2e 32 31 29 7d 20  eb 19 (1.0.21)} 
6890: 7b 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41 54 45  {.<li>The UPDATE
68a0: 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73 20 6e   statement was n
68b0: 6f 74 20 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20  ot working when 
68c0: 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65  the WHERE clause
68d0: 20 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20 20 73   contained.    s
68e0: 6f 6d 65 20 74 65 72 6d 73 20 74 68 61 74 20 63  ome terms that c
68f0: 6f 75 6c 64 20 62 65 20 73 61 74 69 73 66 69 65  ould be satisfie
6900: 64 20 75 73 69 6e 67 20 69 6e 64 69 63 65 73 20  d using indices 
6910: 61 6e 64 20 6f 74 68 65 72 20 74 65 72 6d 73 20  and other terms 
6920: 74 68 61 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e  that.    could n
6930: 6f 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e  ot.  Fixed.</li>
6940: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
6950: 65 62 20 31 31 20 28 31 2e 30 2e 32 30 29 7d 20  eb 11 (1.0.20)} 
6960: 7b 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65 76 65  {.<li>Merge deve
6970: 6c 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65 73 20  lopment changes 
6980: 69 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20 74 72  into the main tr
6990: 75 6e 6b 2e 20 20 46 75 74 75 72 65 20 77 6f 72  unk.  Future wor
69a0: 6b 20 74 6f 77 61 72 64 0a 20 20 20 20 75 73 69  k toward.    usi
69b0: 6e 67 20 61 20 42 54 72 65 65 20 66 69 6c 65 20  ng a BTree file 
69c0: 73 74 72 75 63 74 75 72 65 20 77 69 6c 6c 20 75  structure will u
69d0: 73 65 20 61 20 73 65 70 61 72 61 74 65 20 43 56  se a separate CV
69e0: 53 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20  S source tree.  
69f0: 54 68 69 73 0a 20 20 20 20 43 56 53 20 74 72 65  This.    CVS tre
6a00: 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20  e will continue 
6a10: 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20 47  to support the G
6a20: 44 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66 20 53  DBM version of S
6a30: 51 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e  QLite only.</li>
6a40: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
6a50: 65 62 20 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b  eb 6 (1.0.19)} {
6a60: 0a 3c 6c 69 3e 46 69 78 20 61 20 73 74 72 61 6e  .<li>Fix a stran
6a70: 67 65 20 28 62 75 74 20 76 61 6c 69 64 29 20 43  ge (but valid) C
6a80: 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61   declaration tha
6a90: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 70 72  t was causing pr
6aa0: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 51  oblems.    for Q
6ab0: 4e 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20  NX.  No logical 
6ac0: 63 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  changes.</li>.}.
6ad0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20  .chng {2001 Jan 
6ae0: 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c  4 (1.0.18)} {.<l
6af0: 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66 66 65  i>Print the offe
6b00: 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d  nding SQL statem
6b10: 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72 72 6f  ent when an erro
6b20: 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c  r occurs.</li>.<
6b30: 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69 72  li>Do not requir
6b40: 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e  e commas between
6b50: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 20   constraints in 
6b60: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 74 61  CREATE TABLE sta
6b70: 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  tements.</li>.<l
6b80: 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d 65 63  i>Added the "-ec
6b90: 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ho" option to th
6ba0: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
6bb0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d  i>Changes to com
6bc0: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
6bd0: 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 31 30  hng {2000 Dec 10
6be0: 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69   (1.0.17)} {.<li
6bf0: 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69  >Rewrote <b>sqli
6c00: 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62  te_complete()</b
6c10: 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66 61 73  > to make it fas
6c20: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69  ter.</li>.<li>Mi
6c30: 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20 6f 74  nor tweaks to ot
6c40: 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65  her code to make
6c50: 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74 6c 65   it run a little
6c60: 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   faster.</li>.<l
6c70: 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65 73 74  i>Added new test
6c80: 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f  s for <b>sqlite_
6c90: 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61  complete()</b> a
6ca0: 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65  nd for memory le
6cb0: 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  aks.</li>.}..chn
6cc0: 67 20 7b 32 30 30 30 20 44 65 63 20 34 20 28 31  g {2000 Dec 4 (1
6cd0: 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f  .0.16)} {.<li>Do
6ce0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
6cf0: 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78  tes.  Mostly fix
6d00: 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61 6e 64  ing of typos and
6d10: 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73   spelling errors
6d20: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
6d30: 32 30 30 30 20 4f 63 74 20 32 33 20 28 31 2e 30  2000 Oct 23 (1.0
6d40: 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  .15)} {.<li>Docu
6d50: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
6d60: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20  s</li>.<li>Some 
6d70: 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e 67 20  sanity checking 
6d80: 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76 65 64  code was removed
6d90: 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20   from the inner 
6da0: 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a 20  loop of vdbe.c. 
6db0: 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65 20 6c     to help the l
6dc0: 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20 61 20  ibrary to run a 
6dd0: 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 20 20  little faster.  
6de0: 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79  The code is only
6df0: 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69 66 20  .    removed if 
6e00: 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69 74 68  you compile with
6e10: 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a   -DNDEBUG.</li>.
6e20: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
6e30: 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b  t 19 (1.0.14)} {
6e40: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22 6d 65  .<li>Added a "me
6e50: 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64 20 64  mory:" backend d
6e60: 72 69 76 65 72 20 74 68 61 74 20 73 74 6f 72 65  river that store
6e70: 73 20 69 74 73 20 64 61 74 61 62 61 73 65 20 69  s its database i
6e80: 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f  n an.    in-memo
6e90: 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f  ry hash table.</
6ea0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6eb0: 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e 31 33  0 Oct 18 (1.0.13
6ec0: 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f  )} {.<li>Break o
6ed0: 75 74 20 74 68 65 20 47 44 42 4d 20 64 72 69 76  ut the GDBM driv
6ee0: 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61 72 61  er into a separa
6ef0: 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74 69 63  te file in antic
6f00: 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61  ipation.    to a
6f10: 64 64 65 64 20 6e 65 77 20 64 72 69 76 65 72 73  dded new drivers
6f20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
6f30: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64   the name of a d
6f40: 61 74 61 62 61 73 65 20 74 6f 20 62 65 20 70 72  atabase to be pr
6f50: 65 66 69 78 65 64 20 62 79 20 74 68 65 20 64 72  efixed by the dr
6f60: 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20 20 46  iver type..    F
6f70: 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79  or now, the only
6f80: 20 64 72 69 76 65 72 20 74 79 70 65 20 69 73 20   driver type is 
6f90: 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a  "gdbm:".</li>.}.
6fa0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
6fb0: 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c  16 (1.0.12)} {.<
6fc0: 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66 66 2d  li>Fixed an off-
6fd0: 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68 61  by-one error tha
6fe0: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20  t was causing a 
6ff0: 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20 20 20  coredump in .   
7000: 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d 61 74   the '%q' format
7010: 20 64 69 72 65 63 74 69 76 65 20 6f 66 20 74 68   directive of th
7020: 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c  e new.    <b>sql
7030: 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29  ite_..._printf()
7040: 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f  </b> routines.</
7050: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
7060: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65  e <b>sqlite_inte
7070: 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65  rrupt()</b> inte
7080: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
7090: 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62  In the shell, <b
70a0: 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70  >sqlite_interrup
70b0: 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b  t()</b> is invok
70c0: 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20  ed when the.    
70d0: 75 73 65 72 20 70 72 65 73 73 65 73 20 43 6f 6e  user presses Con
70e0: 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e  trol-C</li>.<li>
70f0: 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73 74 61  Fixed some insta
7100: 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e 73 71  nces where <b>sq
7110: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
7120: 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e 69 6e  was.    returnin
7130: 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72 72 6f  g the wrong erro
7140: 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r code.</li>.}..
7150: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
7160: 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c  1 (1.0.10)} {.<l
7170: 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e  i>Added notes on
7180: 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20   how to compile 
7190: 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f 39 38  for Windows95/98
71a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
71b0: 65 64 20 61 20 66 65 77 20 76 61 72 69 61 62 6c  ed a few variabl
71c0: 65 73 20 74 68 61 74 20 77 65 72 65 20 6e 6f 74  es that were not
71d0: 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20 45 74   being used.  Et
71e0: 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  c.</li>.}..chng 
71f0: 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31 2e 30  {2000 Oct 8 (1.0
7200: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .9)} {.<li>Added
7210: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e   the <b>sqlite_.
7220: 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20  .._printf()</b> 
7230: 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69 6e  interface routin
7240: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  es.</li>.<li>Mod
7250: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
7260: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72  ite</b> shell pr
7270: 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74 68 65  ogram to use the
7280: 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65 20 0a   new interface .
7290: 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c      routines.</l
72a0: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
72b0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
72c0: 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20  > shell program 
72d0: 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73 63 68  to print the sch
72e0: 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68 65 20  ema for.    the 
72f0: 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f  built-in SQLITE_
7300: 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20 69 66  MASTER table, if
7310: 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75   explicitly requ
7320: 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ested.</li>.}..c
7330: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 33 30  hng {2000 Sep 30
7340: 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (1.0.8)} {.<li>
7350: 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 64 6f  Begin writing do
7360: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74  cumentation on t
7370: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
7380: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7390: 32 30 30 30 20 53 65 70 20 32 39 20 28 4e 6f 74  2000 Sep 29 (Not
73a0: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
73b0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
73c0: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
73d0: 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c  )</b> API</li>.<
73e0: 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 64  li>Updated the d
73f0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72  ocumentation for
7400: 20 64 75 65 20 74 6f 20 74 68 65 20 61 62 6f 76   due to the abov
7410: 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c  e change.</li>.<
7420: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
7430: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
7440: 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65 20  ell to make use 
7450: 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 73  of the new.    s
7460: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
7470: 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72 20 74  ) API in order t
7480: 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74 20 6f  o print a list o
7490: 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69 6e 20  f tables.    in 
74a0: 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73  multiple columns
74b0: 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65  , similar to the
74c0: 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e 74 73   way "ls" prints
74d0: 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e   filenames.</li>
74e0: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
74f0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
7500: 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61  shell to print a
7510: 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68   semicolon at th
7520: 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65 61 63  e.    end of eac
7530: 68 20 43 52 45 41 54 45 20 73 74 61 74 65 6d 65  h CREATE stateme
7540: 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74  nt in the output
7550: 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65 6d 61   of the ".schema
7560: 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  " command.</li>.
7570: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65  }..chng {2000 Se
7580: 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65 61 73  p 21 (Not Releas
7590: 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  ed)} {.<li>Chang
75a0: 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74 65 20  e the tclsqlite 
75b0: 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f  "eval" method to
75c0: 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f   return a list o
75d0: 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20 20 20  f results if.   
75e0: 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63 72   no callback scr
75f0: 69 70 74 20 69 73 20 73 70 65 63 69 66 69 65 64  ipt is specified
7600: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
7610: 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f  e tclsqlite.c to
7620: 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a   use the Tcl_Obj
7630: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
7640: 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c 69 74  <li>Add tclsqlit
7650: 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62 73 71  e.c to the libsq
7660: 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f  lite.a library</
7670: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7680: 30 20 53 65 70 20 31 33 20 28 56 65 72 73 69 6f  0 Sep 13 (Versio
7690: 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.5)} {.<li>
76a0: 43 68 61 6e 67 65 64 20 74 68 65 20 70 72 69 6e  Changed the prin
76b0: 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f  t format for flo
76c0: 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75  ating point valu
76d0: 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74 6f 20  es from "%g" to 
76e0: 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c  "%.15g"..    </l
76f0: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74  i>.<li>Changed t
7700: 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75  he comparison fu
7710: 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e  nction so that n
7720: 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f 6e 65  umbers in expone
7730: 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20  ntial notation. 
7740: 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65 2b 30     (ex: 1.234e+0
7750: 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72  5) sort in numer
7760: 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e  ical order.</li>
7770: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
7780: 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e 20 31  ug 28 (Version 1
7790: 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.4)} {.<li>Add
77a0: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e  ed functions <b>
77b0: 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64  length()</b> and
77c0: 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e   <b>substr()</b>
77d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
77e0: 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 73   bug in the <b>s
77f0: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
7800: 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77 61 73  program that was
7810: 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61 20 63   causing.    a c
7820: 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74 68 65  oredump when the
7830: 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77 61 73   output mode was
7840: 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68   "column" and th
7850: 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20 20 20  e first row.    
7860: 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69 6e 65  of data containe
7870: 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d  d a NULL.</li>.}
7880: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
7890: 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   22 (Version 1.0
78a0: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68  .3)} {.<li>In th
78b0: 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20  e sqlite shell, 
78c0: 70 72 69 6e 74 20 74 68 65 20 22 44 61 74 61 62  print the "Datab
78d0: 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41 44 20  ase opened READ 
78e0: 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a 20 20  ONLY" message.  
78f0: 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e 73 74    to stderr inst
7900: 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f  ead of stdout.</
7910: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  li>.<li>In the s
7920: 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77  qlite shell, now
7930: 20 70 72 69 6e 74 20 74 68 65 20 76 65 72 73 69   print the versi
7940: 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69  on number on ini
7950: 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c  tial startup.</l
7960: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c  i>.<li>Add the <
7970: 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e  b>sqlite_version
7980: 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f  []</b> string co
7990: 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20 6c 69  nstant to the li
79a0: 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  brary</li>.<li>M
79b0: 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 3c  akefile updates<
79c0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
79d0: 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44 42 45  : incorrect VDBE
79e0: 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e 67 20   code was being 
79f0: 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 74 68  generated for th
7a00: 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20  e following.    
7a10: 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20 61 20  circumstance: a 
7a20: 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65  query on an inde
7a30: 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74 61 69  xed table contai
7a40: 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63 6c 61  ning a WHERE cla
7a50: 75 73 65 20 77 69 74 68 0a 20 20 20 20 61 6e 20  use with.    an 
7a60: 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74  IN operator that
7a70: 20 68 61 64 20 61 20 73 75 62 71 75 65 72 79 20   had a subquery 
7a80: 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68 61 6e  on its right-han
7a90: 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  d side.</li>.}..
7aa0: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31  chng {2000 Aug 1
7ab0: 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31  8 (Version 1.0.1
7ac0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
7ad0: 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67  ug in the config
7ae0: 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e  ure script.</li>
7af0: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73  .<li>Minor revis
7b00: 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65 62 73  ions to the webs
7b10: 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ite.</li>.}..chn
7b20: 67 20 7b 32 30 30 30 20 41 75 67 20 31 37 20 28  g {2000 Aug 17 (
7b30: 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a  Version 1.0)} {.
7b40: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 3c  <li>Change the <
7b50: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f  b>sqlite</b> pro
7b60: 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69 74 20  gram so that it 
7b70: 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64 61 74  can read.    dat
7b80: 61 62 61 73 65 73 20 66 6f 72 20 77 68 69 63 68  abases for which
7b90: 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74 65 20   it lacks write 
7ba0: 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74  permission.  (It
7bb0: 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72 65 66   used to.    ref
7bc0: 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73 20 69  use all access i
7bd0: 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77  f it could not w
7be0: 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rite.)</li>.}..c
7bf0: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 39 7d  hng {2000 Aug 9}
7c00: 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61 72   {.<li>Treat car
7c10: 72 69 61 67 65 20 72 65 74 75 72 6e 73 20 61 73  riage returns as
7c20: 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c   white space.</l
7c30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
7c40: 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64   Aug 8} {.<li>Ad
7c50: 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61 74 63  ded pattern matc
7c60: 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e 74 61  hing to the ".ta
7c70: 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  ble" command in 
7c80: 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d  the "sqlite".com
7c90: 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e  mand shell.</li>
7ca0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
7cb0: 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  ug 4} {.<li>Docu
7cc0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
7cd0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
7ce0: 20 22 62 75 73 79 22 20 61 6e 64 20 22 74 69 6d   "busy" and "tim
7cf0: 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20 74 6f  eout" methods to
7d00: 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61   the Tcl interfa
7d10: 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ce</li>.}..chng 
7d20: 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c  {2000 Aug 3} {.<
7d30: 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 76  li>File format v
7d40: 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61  ersion number wa
7d50: 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64 20 69  s being stored i
7d60: 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e  n sqlite_master.
7d70: 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65  tcl.    multiple
7d80: 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77 61 73   times. This was
7d90: 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74 20 75   harmless, but u
7da0: 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74 20 69  nnecessary. It i
7db0: 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69  s now fixed.</li
7dc0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
7dd0: 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65  Aug 2} {.<li>The
7de0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72   file format for
7df0: 20 69 6e 64 69 63 65 73 20 77 61 73 20 63 68 61   indices was cha
7e00: 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20 69 6e  nged slightly in
7e10: 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20   order to work. 
7e20: 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65     around an ine
7e30: 66 66 69 63 69 65 6e 63 79 20 74 68 61 74 20 63  fficiency that c
7e40: 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d  an sometimes com
7e50: 65 20 75 70 20 77 69 74 68 20 47 44 42 4d 20 77  e up with GDBM w
7e60: 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20 61 72  hen.    there ar
7e70: 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65 73 20  e large indices 
7e80: 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72  having many entr
7e90: 69 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d  ies with the sam
7ea0: 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74  e key..    <font
7eb0: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20   color="red">** 
7ec0: 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 68 61  Incompatible Cha
7ed0: 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c  nge **</font></l
7ee0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
7ef0: 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68   Aug 1} {.<li>Th
7f00: 65 20 70 61 72 73 65 72 27 73 20 73 74 61 63 6b  e parser's stack
7f10: 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67   was overflowing
7f20: 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67 20   on a very long 
7f30: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
7f40: 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 6e 6f  ..    This is no
7f50: 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  w fixed.</li>.}.
7f60: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
7f70: 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73   31} {.<li>Finis
7f80: 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76  h the <a href="v
7f90: 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74  dbe.html">VDBE t
7fa0: 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69  utorial</a>.</li
7fb0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75  >.<li>Added docu
7fc0: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d  mentation on com
7fd0: 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77  piling to Window
7fe0: 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  sNT.</li>.<li>Fi
7ff0: 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  x a configuratio
8000: 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 57 69  n program for Wi
8010: 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c  ndowsNT.</li>.<l
8020: 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72  i>Fix a configur
8030: 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f  ation problem fo
8040: 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r HPUX.</li>.}..
8050: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20  chng {2000 July 
8060: 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72  29} {.<li>Better
8070: 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d   labels on colum
8080: 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72  n names of the r
8090: 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  esult.</li>.}..c
80a0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32  hng {2000 July 2
80b0: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  8} {.<li>Added t
80c0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73  he <b>sqlite_bus
80d0: 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20  y_handler()</b> 
80e0: 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69  .    and <b>sqli
80f0: 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28  te_busy_timeout(
8100: 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e  )</b> interface.
8110: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8120: 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c  000 June 23} {.<
8130: 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67  li>Begin writing
8140: 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64   the <a href="vd
8150: 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75  be.html">VDBE tu
8160: 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e  torial</a>.</li>
8170: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
8180: 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c  une 21} {.<li>Cl
8190: 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20  ean up comments 
81a0: 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d  and variable nam
81b0: 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74 6f 20  es.  Changes to 
81c0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20  documentation.. 
81d0: 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c     No functional
81e0: 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20   changes to the 
81f0: 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  code.</li>.}..ch
8200: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 39  ng {2000 June 19
8210: 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e  } {.<li>Column n
8220: 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45 20 73  ames in UPDATE s
8230: 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20 63  tatements were c
8240: 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 0a 20  ase sensitive.. 
8250: 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b 65 20     This mistake 
8260: 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66 69 78  has now been fix
8270: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
8280: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36 7d 20   {2000 June 16} 
8290: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
82a0: 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74 72 69  concatenate stri
82b0: 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29  ng operator (||)
82c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
82d0: 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c  000 June 12} {.<
82e0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66 63 6e  li>Added the fcn
82f0: 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  t() function to 
8300: 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70 72 65  the SQL interpre
8310: 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74 28 29  ter.  The fcnt()
8320: 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65   function.    re
8330: 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72  turns the number
8340: 20 6f 66 20 64 61 74 61 62 61 73 65 20 22 46 65   of database "Fe
8350: 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e 73 20  tch" operations 
8360: 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72 72  that have occurr
8370: 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66 75 6e  ed..    This fun
8380: 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67 6e 65  ction is designe
8390: 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 65 73  d for use in tes
83a0: 74 20 73 63 72 69 70 74 73 20 74 6f 20 76 65 72  t scripts to ver
83b0: 69 66 79 20 74 68 61 74 0a 20 20 20 20 71 75 65  ify that.    que
83c0: 72 69 65 73 20 61 72 65 20 65 66 66 69 63 69 65  ries are efficie
83d0: 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72 69 61  nt and appropria
83e0: 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20  tely optimized. 
83f0: 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f   Fcnt() has no o
8400: 74 68 65 72 0a 20 20 20 20 75 73 65 66 75 6c 20  ther.    useful 
8410: 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61 72 20  purpose, as far 
8420: 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a  as I know.</li>.
8430: 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75 6e 63  <li>Added a bunc
8440: 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74 68 61  h more tests tha
8450: 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65  t take advantage
8460: 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63 6e 74   of the new fcnt
8470: 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20  () function..   
8480: 20 54 68 65 20 6e 65 77 20 74 65 73 74 73 20 64   The new tests d
8490: 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61  id not uncover a
84a0: 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e  ny new problems.
84b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
84c0: 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c  000 June 8} {.<l
84d0: 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f 66 20  i>Added lots of 
84e0: 6e 65 77 20 74 65 73 74 20 63 61 73 65 73 3c 2f  new test cases</
84f0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65  li>.<li>Fix a fe
8500: 77 20 62 75 67 73 20 64 69 73 63 6f 76 65 72 65  w bugs discovere
8510: 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74  d while adding t
8520: 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c  est cases</li>.<
8530: 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e 67 20  li>Begin adding 
8540: 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f 63 75  lots of new docu
8550: 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d  mentation</li>.}
8560: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
8570: 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  e 6} {.<li>Added
8580: 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74   compound select
8590: 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55   operators: <B>U
85a0: 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49  NION</b>, <b>UNI
85b0: 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49  ON ALL</B>,.<b>I
85c0: 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e  NTERSECT</b>, an
85d0: 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c  d <b>EXCEPT</b><
85e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
85f0: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69 6e 67  upport for using
8600: 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29   <b>(SELECT ...)
8610: 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78 70 72  </b> within expr
8620: 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69  essions</li>.<li
8630: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
8640: 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64  or <b>IN</b> and
8650: 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20   <b>BETWEEN</b> 
8660: 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c  operators</li>.<
8670: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
8680: 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42 59   for <b>GROUP BY
8690: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49  </b> and <b>HAVI
86a0: 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NG</b></li>.<li>
86b0: 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72 65 20  NULL values are 
86c0: 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 74 6f 20  now reported to 
86d0: 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 73 20  the callback as 
86e0: 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20  a NULL pointer. 
86f0: 20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20 61     rather than a
8700: 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c  n empty string.<
8710: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8720: 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69  00 June 3} {.<li
8730: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
8740: 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65  or default value
8750: 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20  s on columns of 
8760: 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  a table.</li>.<l
8770: 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20  i>Improved test 
8780: 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78 65 64  coverage.  Fixed
8790: 20 61 20 66 65 77 20 6f 62 73 63 75 72 65 20 62   a few obscure b
87a0: 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74 68 65  ugs found by the
87b0: 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74 73 2e  .improved tests.
87c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
87d0: 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c  000 June 2} {.<l
87e0: 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65 20 66  i>All database f
87f0: 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64 69 66  iles to be modif
8800: 69 65 64 20 62 79 20 61 6e 20 55 50 44 41 54 45  ied by an UPDATE
8810: 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45 4c 45  , INSERT or DELE
8820: 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b  TE are .now lock
8830: 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 63 68  ed before any ch
8840: 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20 74  anges are made t
8850: 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54  o any files.  .T
8860: 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73 61 66  his makes it saf
8870: 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f 20 61  e (I think) to a
8880: 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65 20 64  ccess.the same d
8890: 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e  atabase simultan
88a0: 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74  eously from mult
88b0: 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73 2e 3c  iple processes.<
88c0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64  /li>.<li>The cod
88d0: 65 20 61 70 70 65 61 72 73 20 73 74 61 62 6c 65  e appears stable
88e0: 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77 20 63   so we are now c
88f0: 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74 61 22  alling it "beta"
8900: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
8910: 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c  2000 June 1} {.<
8920: 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70 6f 72  li>Better suppor
8930: 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69  t for file locki
8940: 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f 20 6f  ng so that two o
8950: 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73 65 73  r more processes
8960: 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29 0a 63   .(or threads).c
8970: 61 6e 20 61 63 63 65 73 73 20 74 68 65 20 73 61  an access the sa
8980: 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d 75  me database simu
8990: 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72  ltaneously.  Mor
89a0: 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e  e work needed in
89b0: 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68 6f 75  .this area, thou
89c0: 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  gh.</li>.}..chng
89d0: 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d 20 7b   {2000 May 31} {
89e0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
89f0: 72 74 20 66 6f 72 20 61 67 67 72 65 67 61 74 65  rt for aggregate
8a00: 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20   functions (Ex: 
8a10: 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c  <b>COUNT(*)</b>,
8a20: 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e   <b>MIN(...)</b>
8a30: 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43 54 20  ).to the SELECT 
8a40: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
8a50: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
8a60: 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20  t for <B>SELECT 
8a70: 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e  DISTINCT ...</B>
8a80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8a90: 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c  000 May 30} {.<l
8aa0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 4c  i>Added the <b>L
8ab0: 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72  IKE</b> operator
8ac0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
8ad0: 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f   a <b>GLOB</b> o
8ae0: 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72  perator: similar
8af0: 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20   to <B>LIKE</B> 
8b00: 0a 62 75 74 20 69 74 20 75 73 65 73 20 55 6e 69  .but it uses Uni
8b10: 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67  x shell globbing
8b20: 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73 74 65   wildcards inste
8b30: 61 64 20 6f 66 20 74 68 65 20 27 25 27 20 0a 61  ad of the '%' .a
8b40: 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72 64 73  nd '_' wildcards
8b50: 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c   of SQL.</li>.<l
8b60: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42 3e 43  i>Added the <B>C
8b70: 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20  OPY</b> command 
8b80: 70 61 74 74 65 72 6e 65 64 20 61 66 74 65 72 20  patterned after 
8b90: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
8ba0: 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e  /www.postgresql.
8bb0: 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c  org/">PostgreSQL
8bc0: 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53 51 4c  </a> so that SQL
8bd0: 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64  ite.can now read
8be0: 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74   the output of t
8bf0: 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62  he <b>pg_dump</b
8c00: 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d 70 20  > database dump 
8c10: 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67  utility.of Postg
8c20: 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  reSQL.</li>.<li>
8c30: 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43 55 55  Added a <B>VACUU
8c40: 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68  M</B> command th
8c50: 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68  at that calls th
8c60: 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67  e .<b>gdbm_reorg
8c70: 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63  anize()</b> func
8c80: 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65  tion on the unde
8c90: 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73 65 0a  rlying database.
8ca0: 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  files.</li>.<li>
8cb0: 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62  And many, many b
8cc0: 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e  ug fixes...</li>
8cd0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d  .}..chng {2000 M
8ce0: 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69  ay 29} {.<li>Ini
8cf0: 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65 6c 65  tial Public Rele
8d00: 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63 6f 64  ase of Alpha cod
8d10: 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b  e</li>.}..puts {
8d20: 0a 3c 2f 44 4c 3e 0a 3c 70 3e 3c 68 72 20 2f 3e  .</DL>.<p><hr />
8d30: 3c 2f 70 3e 0a 3c 70 3e 3c 61 20 68 72 65 66 3d  </p>.<p><a href=
8d40: 22 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 3c 69 6d  "index.html"><im
8d50: 67 20 73 72 63 3d 22 2f 67 6f 62 61 63 6b 2e 6a  g src="/goback.j
8d60: 70 67 22 20 62 6f 72 64 65 72 3d 30 20 2f 3e 0a  pg" border=0 />.
8d70: 42 61 63 6b 20 74 6f 20 74 68 65 20 53 51 4c 69  Back to the SQLi
8d80: 74 65 20 48 6f 6d 65 20 50 61 67 65 3c 2f 61 3e  te Home Page</a>
8d90: 0a 3c 2f 70 3e 0a 0a 3c 2f 62 6f 64 79 3e 3c 2f  .</p>..</body></
8da0: 68 74 6d 6c 3e 7d 0a                             html>}.