/ Hex Artifact Content
Login

Artifact d2530398b3f7d12de2dc1083fe6d082309184389:


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 44 4c 3e 0a 7d 0a 0a 0a 70  /h1>..<DL>.}...p
00d0: 72 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64  roc chng {date d
00e0: 65 73 63 7d 20 7b 0a 20 20 70 75 74 73 20 22 3c  esc} {.  puts "<
00f0: 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42 3e 3c  DT><B>$date</B><
0100: 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22 3c 44  /DT>".  puts "<D
0110: 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63 3c 2f  D><P><UL>$desc</
0120: 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a 7d 0a  UL></P></DD>".}.
0130: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
0140: 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c 6c  14 (2.4.2)} {.<l
0150: 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61  i>Bug fix: Fix a
0160: 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c  n assertion fail
0170: 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65  ure that occurre
0180: 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61 73  d when ROWID was
0190: 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69 6e   a column.    in
01a0: 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d   a SELECT statem
01b0: 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c 2f  ent on a view.</
01c0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
01d0: 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69 61   Fix an uninitia
01e0: 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 69  lized variable i
01f0: 6e 20 74 68 65 20 56 44 42 45 20 74 68 61 74 20  n the VDBE that 
0200: 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a 20  would could an. 
0210: 20 20 20 61 73 73 65 72 74 20 66 61 69 6c 75 72     assert failur
0220: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  e.</li>.<li>Make
0230: 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65 72   the os.h header
0240: 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75 73   file more robus
0250: 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20 77  t in detecting w
0260: 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 20  hen the compile 
0270: 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64 6f  is.    for windo
0280: 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20 69  ws and when it i
0290: 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69 3e  s for unix.</li>
02a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
02b0: 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20 7b  ar 13 (2.4.1)} {
02c0: 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75 6e  .<li>Using an un
02d0: 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79 20 69  named subquery i
02e0: 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65 20  n a FROM clause 
02f0: 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73 65  would cause a se
0300: 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69  gfault.</li>.<li
0310: 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77 20  >The parser now 
0320: 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69 6e  insists on seein
0330: 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f 72  g a semicolon or
0340: 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70 75   the end of inpu
0350: 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78 65  t before.    exe
0360: 63 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d 65  cuting a stateme
0370: 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64 73  nt.  This avoids
0380: 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20 64   an accidental d
0390: 69 73 61 73 74 65 72 20 69 66 20 74 68 65 0a 20  isaster if the. 
03a0: 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72 64     WHERE keyword
03b0: 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20 69   is misspelled i
03c0: 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20 44  n an UPDATE or D
03d0: 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 2e  ELETE statement.
03e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20 7b  </li>.}...chng {
03f0: 32 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e 34  2002 Mar 10 (2.4
0400: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
0410: 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68  e the name of th
0420: 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20 50  e sanity_check P
0430: 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74 65  RAGMA to <b>inte
0440: 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e 0a  grity_check</b>.
0450: 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74 20      and make it 
0460: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c 6c  available in all
0470: 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e 0a   compiles.</li>.
0480: 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28 29  <li>SELECT min()
0490: 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e 20   or max() of an 
04a0: 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20 77  indexed column w
04b0: 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72 20  ith no WHERE or 
04c0: 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c 61  GROUP BY.    cla
04d0: 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20 61  use is handled a
04e0: 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73 65  s a special case
04f0: 20 77 68 69 63 68 20 61 76 6f 69 64 73 20 61 20   which avoids a 
0500: 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20 73  complete table s
0510: 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75  can.</li>.<li>Au
0520: 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65  tomatically gene
0530: 72 61 74 65 64 20 52 4f 57 49 44 73 20 61 72 65  rated ROWIDs are
0540: 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c 2e   now sequential.
0550: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
0560: 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d 61   allow dot-comma
0570: 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d 61  nds of the comma
0580: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74 6f  nd-line shell to
0590: 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20 20   occur in the.  
05a0: 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72 65    middle of a re
05b0: 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 3c  al SQL command.<
05c0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 63  /li>.<li>Modific
05d0: 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22 6c  ations to the "l
05e0: 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65 6e  emon" parser gen
05f0: 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20 74  erator so that t
0600: 68 65 20 70 61 72 73 65 72 20 74 61 62 6c 65 73  he parser tables
0610: 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d 65 73  .    are 4 times
0620: 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 3c   smaller.</li>.<
0630: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
0640: 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e 65   for user-define
0650: 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70 6c  d functions impl
0660: 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f 6c  emented in C.</l
0670: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  i>.<li>Added sup
0680: 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75 6e  port for new fun
0690: 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c 65  ctions: <b>coale
06a0: 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c 6f  sce()</b>, <b>lo
06b0: 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20 3c  wer()</b>,.    <
06c0: 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20 61  b>upper()</b>, a
06d0: 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c 2f  nd <b>random()</
06e0: 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70  b>.<li>Added sup
06f0: 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e 3c  port for VIEWs.<
0700: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
0710: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
0720: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65 72  tening optimizer
0730: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
0740: 69 65 64 20 74 68 65 20 42 2d 54 72 65 65 20 61  ied the B-Tree a
0750: 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65 73  nd Pager modules
0760: 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70 61   so that disk pa
0770: 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 0a  ges that do not.
0780: 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61 6c      contain real
0790: 20 64 61 74 61 20 28 66 72 65 65 20 70 61 67 65   data (free page
07a0: 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72 6e  s) are not journ
07b0: 61 6c 6c 65 64 20 61 6e 64 20 61 72 65 20 6e 6f  alled and are no
07c0: 74 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66 72  t.    written fr
07d0: 6f 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20 74  om memory back t
07e0: 6f 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e 20  o the disk when 
07f0: 74 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54 68  they change.  Th
0800: 69 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20 20  is does not .   
0810: 20 69 6d 70 61 63 74 20 64 61 74 61 62 61 73 65   impact database
0820: 20 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e 63   integrity, sinc
0830: 65 20 74 68 65 0a 20 20 20 20 70 61 67 65 73 20  e the.    pages 
0840: 63 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c 20  contain no real 
0850: 64 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f 65  data, but it doe
0860: 73 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e 53  s make large INS
0870: 45 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20  ERT operations. 
0880: 20 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69 6d     about 2.5 tim
0890: 65 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c 61  es faster and la
08a0: 72 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f 75  rge DELETEs abou
08b0: 74 20 35 20 74 69 6d 65 73 20 66 61 73 74 65 72  t 5 times faster
08c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65 20  .</li>.<li>Made 
08d0: 74 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20 70  the CACHE_SIZE p
08e0: 72 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e 74  ragma persistent
08f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0900: 74 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53 20  the SYNCHRONOUS 
0910: 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pragma</li>.<li>
0920: 46 69 78 65 64 20 61 20 62 75 67 20 74 68 61 74  Fixed a bug that
0930: 20 77 61 73 20 63 61 75 73 69 6e 67 20 75 70 64   was causing upd
0940: 61 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e 73  ates to fail ins
0950: 69 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74 69  ide of transacti
0960: 6f 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68 65  ons when.    the
0970: 20 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69   database contai
0980: 6e 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79 20  ned a temporary 
0990: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  table.</li>.}..c
09a0: 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31 38  hng {2002 Feb 18
09b0: 20 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.3.3)} {.<li>
09c0: 41 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65 72  Allow identifier
09d0: 73 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20 69  s to be quoted i
09e0: 6e 20 73 71 75 61 72 65 20 62 72 61 63 6b 65 74  n square bracket
09f0: 73 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69  s, for compatibi
0a00: 6c 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d 53  lity.    with MS
0a10: 2d 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c  -Access.</li>.<l
0a20: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
0a30: 66 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73 20  for sub-queries 
0a40: 69 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61 75  in the FROM clau
0a50: 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e 3c  se of a SELECT.<
0a60: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66  /li>.<li>More ef
0a70: 66 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65 6e  ficient implemen
0a80: 74 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74 65  tation of sqlite
0a90: 46 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e 64  FileExists() und
0aa0: 65 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20 20  er Windows..    
0ab0: 28 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29 3c  (by Joel Luscy)<
0ac0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41 4c  /li>.<li>The VAL
0ad0: 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e  UES clause of an
0ae0: 20 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77 20   INSERT can now 
0af0: 63 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73 69  contain expressi
0b00: 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 20  ons, including. 
0b10: 20 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43 54     scalar SELECT
0b20: 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a 3c   clauses.</li>.<
0b30: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
0b40: 20 66 6f 72 20 43 52 45 41 54 45 20 54 41 42 4c   for CREATE TABL
0b50: 45 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69 3e  E AS SELECT</li>
0b60: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 72  .<li>Bug fix: Cr
0b70: 65 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70 70  eating and dropp
0b80: 69 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c 20  ing a table all 
0b90: 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65 0a  within a single.
0ba0: 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 20      transaction 
0bb0: 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 2e  was not working.
0bc0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0bd0: 30 30 32 20 46 65 62 20 31 34 20 28 32 2e 33 2e  002 Feb 14 (2.3.
0be0: 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  2)} {.<li>Bug fi
0bf0: 78 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e 20  x: There was an 
0c00: 69 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72 74  incorrect assert
0c10: 28 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20 20  () in pager.c.  
0c20: 54 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77 61  The real code wa
0c30: 73 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65 63  s.    all correc
0c40: 74 20 28 61 73 20 66 61 72 20 61 73 20 69 73 20  t (as far as is 
0c50: 6b 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79 74  known) so everyt
0c60: 68 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72 6b  hing should work
0c70: 20 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20 63   OK if you.    c
0c80: 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e 44  ompile with -DND
0c90: 45 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61 73  EBUG=1.  When as
0ca0: 73 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64 69  serts are not di
0cb0: 73 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20 20  sabled, there.  
0cc0: 20 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61 75    could be a fau
0cd0: 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  lt.</li>.}..chng
0ce0: 20 7b 32 30 30 32 20 46 65 62 20 31 33 20 28 32   {2002 Feb 13 (2
0cf0: 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .3.1)} {.<li>Bug
0d00: 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69   fix: An asserti
0d10: 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20 69  on was failing i
0d20: 66 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f 63  f "PRAGMA full_c
0d30: 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b 22  olumn_names=ON;"
0d40: 20 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e 64   was.    set and
0d50: 20 79 6f 75 20 64 69 64 20 61 20 71 75 65 72 79   you did a query
0d60: 20 74 68 61 74 20 75 73 65 64 20 61 20 72 6f 77   that used a row
0d70: 69 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20 20  id, like this:  
0d80: 0a 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f 77  .    "SELECT row
0d90: 69 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22 2e  id, * FROM ...".
0da0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0db0: 30 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33 2e  002 Jan 30 (2.3.
0dc0: 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  0)} {.<li>Fix a 
0dd0: 73 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20 74  serious bug in t
0de0: 68 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61 6e  he INSERT comman
0df0: 64 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  d which was caus
0e00: 69 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a 20  ing data to go. 
0e10: 20 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f 6e     into the wron
0e20: 67 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68 65  g columns if the
0e30: 20 64 61 74 61 20 73 6f 75 72 63 65 20 77 61 73   data source was
0e40: 20 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74 68   a SELECT and th
0e50: 65 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c 61  e INSERT.    cla
0e60: 75 73 65 73 20 73 70 65 63 69 66 69 65 64 20 69  uses specified i
0e70: 74 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73 6f  ts columns in so
0e80: 6d 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20 74  me order other t
0e90: 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e  han the default.
0ea0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0eb0: 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 72  the ability to r
0ec0: 65 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69 6e  esolve constrain
0ed0: 74 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20 77  t conflicts is w
0ee0: 61 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a 20  ays other than. 
0ef0: 20 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64 20     an abort and 
0f00: 72 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20 74  rollback.  See t
0f10: 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  he documentation
0f20: 20 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e 46   on the "ON CONF
0f30: 4c 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73 65  LICT".    clause
0f40: 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f 6c   for details.</l
0f50: 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72 79  i>.<li>Temporary
0f60: 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20 61   files are now a
0f70: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65 6c  utomatically del
0f80: 65 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72  eted by the oper
0f90: 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20 20  ating system.   
0fa0: 20 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20 54   when closed.  T
0fb0: 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72 65  here are no more
0fc0: 20 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f 72   dangling tempor
0fd0: 61 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20 70  ary files on a p
0fe0: 72 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73 68  rogram.    crash
0ff0: 2e 20 20 28 49 66 20 74 68 65 20 4f 53 20 63 72  .  (If the OS cr
1000: 61 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c 6c  ashes, fsck will
1010: 20 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65   delete the file
1020: 20 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a 20   after reboot . 
1030: 20 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20 20     under Unix.  
1040: 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77 68  I do not know wh
1050: 61 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65 72  at happens under
1060: 20 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e 0a   Windows.)</li>.
1070: 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f 6e  <li>NOT NULL con
1080: 73 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f 6e  straints are hon
1090: 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ored.</li>.<li>T
10a0: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 20  he COPY command 
10b0: 70 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63 6f  puts NULLs in co
10c0: 6c 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74 61  lumns whose data
10d0: 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a 3c   is '\N'.</li>.<
10e0: 6c 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20 63  li>In the COPY c
10f0: 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61 73  ommand, backslas
1100: 68 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65  h can now be use
1110: 64 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e 65  d to escape a ne
1120: 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  wline.</li>.<li>
1130: 41 64 64 65 64 20 74 68 65 20 53 41 4e 49 54 59  Added the SANITY
1140: 5f 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c 2f  _CHECK pragma.</
1150: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1160: 32 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35 29  2 Jan 28 (2.2.5)
1170: 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61 6e  } {.<li>Importan
1180: 74 20 62 75 67 20 66 69 78 3a 20 74 68 65 20 49  t bug fix: the I
1190: 4e 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20 6e  N operator was n
11a0: 6f 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65 69  ot working if ei
11b0: 74 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65 66  ther the.    lef
11c0: 74 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74 2d  t-hand or right-
11d0: 68 61 6e 64 20 73 69 64 65 20 77 61 73 20 64 65  hand side was de
11e0: 72 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49 4e  rived from an IN
11f0: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
1200: 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e  Y.</li>.<li>Do n
1210: 6f 74 20 65 73 63 61 70 65 20 74 68 65 20 62 61  ot escape the ba
1220: 63 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61 72  ckslash '\' char
1230: 61 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75 74  acter in the out
1240: 70 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20 3c  put of the.    <
1250: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f 6d  b>sqlite</b> com
1260: 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73 73  mand-line access
1270: 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a 7d   program.</li>.}
1280: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
1290: 20 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c   22 (2.2.4)} {.<
12a0: 6c 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20  li>The label to 
12b0: 74 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20  the right of an 
12c0: 41 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e  AS in the column
12d0: 20 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43   list of a SELEC
12e0: 54 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65  T can now.    be
12f0: 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66   used as part of
1300: 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69   an expression i
1310: 6e 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44  n the WHERE, ORD
1320: 45 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c  ER BY, GROUP BY,
1330: 20 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49   and/or.    HAVI
1340: 4e 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e  NG clauses.</li>
1350: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
1360: 6e 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61  n the <b>-separa
1370: 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d  tor</b> command-
1380: 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74  line option to t
1390: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
13a0: 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c  .    command.</l
13b0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72 6f  i>.<li>Fix a pro
13c0: 62 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73 6f  blem with the so
13d0: 72 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63 6f  rt order when co
13e0: 6d 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63 61  mparing upper-ca
13f0: 73 65 20 73 74 72 69 6e 67 73 20 61 67 61 69 6e  se strings again
1400: 73 74 0a 20 20 20 20 63 68 61 72 61 63 74 65 72  st.    character
1410: 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 27  s greater than '
1420: 5a 27 20 62 75 74 20 6c 65 73 73 20 74 68 61 6e  Z' but less than
1430: 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52   'a'.</li>.<li>R
1440: 65 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20 69  eport an error i
1450: 66 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f 72  f an ORDER BY or
1460: 20 47 52 4f 55 50 20 42 59 20 65 78 70 72 65 73   GROUP BY expres
1470: 73 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e 74  sion is constant
1480: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1490: 32 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e 32  2002 Jan 16 (2.2
14a0: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 77  .3)} {.<li>Fix w
14b0: 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73 20  arning messages 
14c0: 69 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28 50  in VC++ 7.0.  (P
14d0: 61 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63 6f  atches from nico
14e0: 6c 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e 0a  las352001)</li>.
14f0: 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69 62  <li>Make the lib
1500: 72 61 72 79 20 74 68 72 65 61 64 2d 73 61 66 65  rary thread-safe
1510: 2e 20 20 28 54 68 65 20 63 6f 64 65 20 69 73 20  .  (The code is 
1520: 74 68 65 72 65 20 61 6e 64 20 61 70 70 65 61 72  there and appear
1530: 73 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62 75  s to work.    bu
1540: 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73  t has not been s
1550: 74 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a 3c  tressed.)</li>.<
1560: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65 77  li>Added the new
1570: 20 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74 5f   <b>sqlite_last_
1580: 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f  insert_rowid()</
1590: 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 2e  b> API function.
15a0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
15b0: 30 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32 2e  002 Jan 13 (2.2.
15c0: 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  2)} {.<li>Bug fi
15d0: 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: An assertion 
15e0: 77 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65 6e  was failing when
15f0: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62   a temporary tab
1600: 6c 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65 78  le with an index
1610: 0a 20 20 20 20 68 61 64 20 74 68 65 20 73 61 6d  .    had the sam
1620: 65 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72 6d  e name as a perm
1630: 61 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65 61  anent table crea
1640: 74 65 64 20 62 79 20 61 20 73 65 70 61 72 61 74  ted by a separat
1650: 65 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e 0a  e process.</li>.
1660: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70 64  <li>Bug fix: Upd
1670: 61 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20 63  ates to tables c
1680: 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e 54  ontaining an INT
1690: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
16a0: 20 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64 65   and an.    inde
16b0: 78 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f 6c  x could fail.</l
16c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
16d0: 20 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d 20   Jan 9 (2.2.1)} 
16e0: 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41  {.<li>Bug fix: A
16f0: 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65 6c  n attempt to del
1700: 65 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f 77  ete a single row
1710: 20 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74 68   of a table with
1720: 20 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c 61   a WHERE.    cla
1730: 75 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78 22  use of "ROWID=x"
1740: 20 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72 6f   when no such ro
1750: 77 69 64 20 65 78 69 73 74 73 20 77 61 73 20 63  wid exists was c
1760: 61 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72 2e  ausing an error.
1770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
1780: 78 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61 20  x: Passing in a 
1790: 4e 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64 20  NULL as the 3rd 
17a0: 70 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62 3e  parameter to <b>
17b0: 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f 62  sqlite_open()</b
17c0: 3e 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d 65  >.    would some
17d0: 74 69 6d 65 73 20 63 61 75 73 65 20 61 20 63 6f  times cause a co
17e0: 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69  redump.</li>.<li
17f0: 3e 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20 54  >Bug fix: DROP T
1800: 41 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62 79  ABLE followed by
1810: 20 61 20 43 52 45 41 54 45 20 54 41 42 4c 45 20   a CREATE TABLE 
1820: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61  with the same na
1830: 6d 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68 69  me all.    withi
1840: 6e 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73  n a single trans
1850: 61 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73 69  action was causi
1860: 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c 2f  ng a coredump.</
1870: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65  li>.<li>Makefile
1880: 20 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41 2e   updates from A.
1890: 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d   Rottmann</li>.}
18a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
18b0: 20 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a 3c   22 (2.2.0)} {.<
18c0: 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74 79  li>Columns of ty
18d0: 70 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41  pe INTEGER PRIMA
18e0: 52 59 20 4b 45 59 20 61 72 65 20 61 63 74 75 61  RY KEY are actua
18f0: 6c 6c 79 20 75 73 65 64 20 61 73 20 74 68 65 20  lly used as the 
1900: 70 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 20  primary.    key 
1910: 69 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42 2d  in underlying B-
1920: 54 72 65 65 20 72 65 70 72 65 73 65 6e 74 61 74  Tree representat
1930: 69 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c 65  ion of the table
1940: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65 72  .</li>.<li>Sever
1950: 61 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72 65  al obscure, unre
1960: 6c 61 74 65 64 20 62 75 67 73 20 77 65 72 65 20  lated bugs were 
1970: 66 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64 20  found and fixed 
1980: 77 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c 65  while .    imple
1990: 6d 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65 67  mented the integ
19a0: 65 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20 63  er primary key c
19b0: 68 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72 65  hange of the pre
19c0: 76 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f 6c  vious bullet.</l
19d0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
19e0: 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65 63   ability to spec
19f0: 69 66 79 20 22 2a 22 20 61 73 20 70 61 72 74 20  ify "*" as part 
1a00: 6f 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c 75  of a larger colu
1a10: 6d 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20 74  mn list in.    t
1a20: 68 65 20 72 65 73 75 6c 74 20 73 65 63 74 69 6f  he result sectio
1a30: 6e 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73 74  n of a SELECT st
1a40: 61 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65 78  atement.  For ex
1a50: 61 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62 72  ample:.    <nobr
1a60: 3e 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77 69  >"<b>SELECT rowi
1a70: 64 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65 31  d, * FROM table1
1a80: 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f  ;</b>"</nobr>.</
1a90: 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73 20  li>.<li>Updates 
1aa0: 74 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64 20  to comments and 
1ab0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f  documentation.</
1ac0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1ad0: 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37 29  1 Dec 14 (2.1.7)
1ae0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
1af0: 67 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20 54  g in <b>CREATE T
1b00: 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c 2f  EMPORARY TABLE</
1b10: 62 3e 20 77 68 69 63 68 20 77 61 73 20 63 61 75  b> which was cau
1b20: 73 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61 62  sing the.    tab
1b30: 6c 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61 6c  le to be initial
1b40: 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e 20  ly allocated in 
1b50: 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73  the main databas
1b60: 65 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a 20  e file instead. 
1b70: 20 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65 70     of in the sep
1b80: 61 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79 20  arate temporary 
1b90: 66 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67 20  file.  This bug 
1ba0: 63 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65 20  could cause the 
1bb0: 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 73  library.    to s
1bc0: 75 66 66 65 72 20 61 6e 20 61 73 73 65 72 74 69  uffer an asserti
1bd0: 6f 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20 69  on failure and i
1be0: 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22 70  t could cause "p
1bf0: 61 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74 68  age leaks" in th
1c00: 65 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61 62  e.    main datab
1c10: 61 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46 69  ase file..<li>Fi
1c20: 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 62  x a bug in the b
1c30: 2d 74 72 65 65 20 73 75 62 73 79 73 74 65 6d 20  -tree subsystem 
1c40: 74 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65 74  that could somet
1c50: 69 6d 65 73 20 63 61 75 73 65 20 74 68 65 20 66  imes cause the f
1c60: 69 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66 20  irst.    row of 
1c70: 61 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72 65  a table to be re
1c80: 70 65 61 74 65 64 20 64 75 72 69 6e 67 20 61 20  peated during a 
1c90: 64 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c 2f  database scan.</
1ca0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
1cb0: 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36 29  1 Dec 14 (2.1.6)
1cc0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20  } {.<li>Fix the 
1cd0: 6c 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69 73  locking mechanis
1ce0: 6d 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20 70  m yet again to p
1cf0: 72 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73 71  revent.    <b>sq
1d00: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
1d10: 66 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20 53  from returning S
1d20: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20  QLITE_PROTOCOL. 
1d30: 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79     unnecessarily
1d40: 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65  .  This time the
1d50: 20 62 75 67 20 77 61 73 20 61 20 72 61 63 65 20   bug was a race 
1d60: 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20 20  condition in.   
1d70: 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f 64   the locking cod
1d80: 65 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65 20  e.  This change 
1d90: 65 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f 53  effects both POS
1da0: 49 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 75  IX and Windows u
1db0: 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  sers.</li>.}..ch
1dc0: 6e 67 20 7b 32 30 30 31 20 44 65 63 20 36 20 28  ng {2001 Dec 6 (
1dd0: 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.1.5)} {.<li>Fi
1de0: 78 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70 72  x for another pr
1df0: 6f 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65 64  oblem (unrelated
1e00: 20 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78 65   to the one fixe
1e10: 64 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20 20  d in 2.1.4) .   
1e20: 20 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73 20   that sometimes 
1e30: 63 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74 65  causes <b>sqlite
1e40: 5f 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20 72  _exec()</b> to r
1e50: 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52 4f  eturn SQLITE_PRO
1e60: 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63 65  TOCOL.    unnece
1e70: 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20 74  ssarily.  This t
1e80: 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73 0a  ime the bug was.
1e90: 20 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49 58      in the POSIX
1ea0: 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61 6e   locking code an
1eb0: 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66 66  d should not eff
1ec0: 65 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65 72  ect windows user
1ed0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
1ee0: 7b 32 30 30 31 20 44 65 63 20 34 20 28 32 2e 31  {2001 Dec 4 (2.1
1ef0: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65 74  .4)} {.<li>Somet
1f00: 69 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65  imes <b>sqlite_e
1f10: 78 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64 20  xec()</b> would 
1f20: 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52  return SQLITE_PR
1f30: 4f 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a 20  OTOCOL when it. 
1f40: 20 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72     should have r
1f50: 65 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f 42  eturned SQLITE_B
1f60: 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  USY.</li>.<li>Th
1f70: 65 20 66 69 78 20 74 6f 20 74 68 65 20 70 72 65  e fix to the pre
1f80: 76 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76 65  vious bug uncove
1f90: 72 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20 77  red a deadlock w
1fa0: 68 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20 20  hich was also.  
1fb0: 20 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c    fixed.</li>.<l
1fc0: 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74  i>Add the abilit
1fd0: 79 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67 6c  y to put a singl
1fe0: 65 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68  e .command in th
1ff0: 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e  e second argumen
2000: 74 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71 6c  t.    of the sql
2010: 69 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c  ite shell</li>.<
2020: 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74 68  li>Updates to th
2030: 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  e FAQ</li>.}..ch
2040: 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33 20  ng {2001 Nov 23 
2050: 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.3)} {.<li>F
2060: 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 72 20  ix the behavior 
2070: 6f 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f 70  of comparison op
2080: 65 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65 78  erators .    (ex
2090: 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c 20  : "<b>&lt</b>", 
20a0: 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74 63  "<b>==</b>", etc
20b0: 2e 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20 74  .).    so that t
20c0: 68 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74 65  hey are consiste
20d0: 6e 74 20 77 69 74 68 20 74 68 65 20 6f 72 64 65  nt with the orde
20e0: 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20  r of entries in 
20f0: 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c  an index.</li>.<
2100: 6c 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64 6c  li>Correct handl
2110: 69 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73 20  ing of integers 
2120: 69 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69 6f  in SQL expressio
2130: 6e 73 20 74 68 61 74 20 61 72 65 20 6c 61 72 67  ns that are larg
2140: 65 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61 74  er than.    what
2150: 20 63 61 6e 20 62 65 20 72 65 70 72 65 73 65 6e   can be represen
2160: 74 65 64 20 62 79 20 74 68 65 20 6d 61 63 68 69  ted by the machi
2170: 6e 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69 3e  ne integer.</li>
2180: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
2190: 6f 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20 7b  ov 22 (2.1.2)} {
21a0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
21b0: 73 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20 61  support 64-bit a
21c0: 72 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c  rchitectures.</l
21d0: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
21e0: 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20   in the locking 
21f0: 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c  protocol.</li>.<
2200: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61  li>Fix a bug tha
2210: 74 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79 29  t could (rarely)
2220: 20 63 61 75 73 65 20 74 68 65 20 64 61 74 61 62   cause the datab
2230: 61 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a 20  ase to become . 
2240: 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61 66     unreadable af
2250: 74 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c 45  ter a DROP TABLE
2260: 20 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74 69   due to corrupti
2270: 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54 45  on to the SQLITE
2280: 5f 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62 6c  _MASTER.    tabl
2290: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  e.</li>.<li>Chan
22a0: 67 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20 74  ge the code so t
22b0: 68 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31 2e  hat version 2.1.
22c0: 31 20 64 61 74 61 62 61 73 65 73 20 74 68 61 74  1 databases that
22d0: 20 77 65 72 65 20 72 65 6e 64 65 72 65 64 20 0a   were rendered .
22e0: 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 62      unreadable b
22f0: 79 20 74 68 65 20 61 62 6f 76 65 20 62 75 67 20  y the above bug 
2300: 63 61 6e 20 62 65 20 72 65 61 64 20 62 79 20 74  can be read by t
2310: 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20  his version of. 
2320: 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20 65     the library e
2330: 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20 53  ven though the S
2340: 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61 62  QLITE_MASTER tab
2350: 6c 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79 29  le is (slightly)
2360: 0a 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e 3c  .    corrupted.<
2370: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
2380: 30 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e 31  01 Nov 13 (2.1.1
2390: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
23a0: 3a 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62 69  : Sometimes arbi
23b0: 72 61 72 79 20 73 74 72 69 6e 67 73 20 77 65 72  rary strings wer
23c0: 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20  e passed to the 
23d0: 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75 6e  callback.    fun
23e0: 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 61  ction when the a
23f0: 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20 61  ctual value of a
2400: 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c 4c   column was NULL
2410: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2420: 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e 31  2001 Nov 12 (2.1
2430: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
2440: 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  e the format of 
2450: 64 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f 20  data records so 
2460: 74 68 61 74 20 72 65 63 6f 72 64 73 20 75 70 20  that records up 
2470: 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65 0a  to 16MB in size.
2480: 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72 65      can be store
2490: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  d.</li>.<li>Chan
24a0: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
24b0: 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c 6f   indices to allo
24c0: 77 20 66 6f 72 20 62 65 74 74 65 72 20 71 75 65  w for better que
24d0: 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2e  ry optimization.
24e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65 6d  </li>.<li>Implem
24f0: 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20 2e  ent the "LIMIT .
2500: 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20 63  .. OFFSET ..." c
2510: 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54 20  lause on SELECT 
2520: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
2530: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e  .}..chng {2001 N
2540: 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b 0a  ov 3 (2.0.8)} {.
2550: 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74 65  <li>Made selecte
2560: 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 20  d parameters in 
2570: 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62  API functions <b
2580: 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69 73  >const</b>. This
2590: 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20 66   should.    be f
25a0: 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20 63  ully backwards c
25b0: 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e 0a  ompatible.</li>.
25c0: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
25d0: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
25e0: 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65 20  li>Simplify the 
25f0: 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56 44  design of the VD
2600: 42 45 20 62 79 20 72 65 73 74 72 69 63 74 69 6e  BE by restrictin
2610: 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  g the number of 
2620: 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64 20  sorters.    and 
2630: 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20 20  lists to 1..    
2640: 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f 20  In practice, no 
2650: 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73 6f  more than one so
2660: 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69 73  rter and one lis
2670: 74 20 77 61 73 20 65 76 65 72 20 75 73 65 64 20  t was ever used 
2680: 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c 69  anyhow..    </li
2690: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
26a0: 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d 20  Oct 21 (2.0.7)} 
26b0: 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38 20  {.<li>Any UTF-8 
26c0: 63 68 61 72 61 63 74 65 72 20 6f 72 20 49 53 4f  character or ISO
26d0: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 20 63  8859 character c
26e0: 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 70 61  an be used as pa
26f0: 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64 65  rt of.    an ide
2700: 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c  ntifier.</li>.<l
2710: 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20 43  i>Patches from C
2720: 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72 20  hristian Werner 
2730: 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43 20  to improve ODBC 
2740: 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e  compatibility an
2750: 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20 62  d to.    fix a b
2760: 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64 28  ug in the round(
2770: 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  ) function.</li>
2780: 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20 6d  .<li>Plug some m
2790: 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74  emory leaks that
27a0: 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69 66   use to occur if
27b0: 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65 64   malloc() failed
27c0: 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20 62 65  ..    We have be
27d0: 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20  en and continue 
27e0: 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65 61  to be memory lea
27f0: 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20 61  k free as long a
2800: 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20 77  s.    malloc() w
2810: 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  orks.</li>.<li>C
2820: 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20 74  hanges to some t
2830: 65 73 74 20 73 63 72 69 70 74 73 20 73 6f 20 74  est scripts so t
2840: 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f 6e  hat they work on
2850: 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20 20   Windows in.    
2860: 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69 78  addition to Unix
2870: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2880: 32 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e 30  2001 Oct 19 (2.0
2890: 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .6)} {.<li>Added
28a0: 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55 4c   the EMPTY_RESUL
28b0: 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61 67  T_CALLBACKS prag
28c0: 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  ma</li>.<li>Supp
28d0: 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61 6e  ort for UTF-8 an
28e0: 64 20 49 53 4f 38 38 35 39 20 63 68 61 72 61 63  d ISO8859 charac
28f0: 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 61  ters in column a
2900: 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e 3c  nd table names.<
2910: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
2920: 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65 63  : Compute correc
2930: 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77 69  t table names wi
2940: 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55  th the FULL_COLU
2950: 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 0a  MN_NAMES pragma.
2960: 20 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f 6e      is turned on
2970: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2980: 32 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e 30  2001 Oct 14 (2.0
2990: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .5)} {.<li>Added
29a0: 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e 47   the COUNT_CHANG
29b0: 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a  ES pragma.</li>.
29c0: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
29d0: 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e  he FULL_COLUMN_N
29e0: 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20 68  AMES pragma to h
29f0: 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42 43  elp out the ODBC
2a00: 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   driver.</li>.<l
2a10: 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c 45  i>Bug fix: "SELE
2a20: 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61 73  CT count(*)" was
2a30: 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c 20   returning NULL 
2a40: 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65 73  for empty tables
2a50: 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65 74  ..    Now it ret
2a60: 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  urns 0.</li>.}..
2a70: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31  chng {2001 Oct 1
2a80: 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69  3 (2.0.4)} {.<li
2a90: 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 61 62 73  >Bug fix: an abs
2aa0: 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69 76  cure and relativ
2ab0: 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75 67  ely harmless bug
2ac0: 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e 65   was causing one
2ad0: 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73 74   of.    the test
2ae0: 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20 67  s to fail when g
2af0: 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73  cc optimizations
2b00: 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e 20   are turned on. 
2b10: 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20 20   This release.  
2b20: 20 20 66 69 78 65 73 20 74 68 65 20 70 72 6f 62    fixes the prob
2b30: 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  lem.</li>.}..chn
2b40: 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28  g {2001 Oct 13 (
2b50: 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.0.3)} {.<li>Bu
2b60: 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73 71  g fix: the <b>sq
2b70: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
2b80: 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f 6e  t()</b> function
2b90: 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31 30   was delaying 10
2ba0: 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f 6f  00.    times too
2bb0: 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61 69   long before fai
2bc0: 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  ling.</li>.<li>B
2bd0: 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65 72  ug fix: an asser
2be0: 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67  tion was failing
2bf0: 20 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f 6c   if the disk hol
2c00: 64 69 6e 67 20 74 68 65 20 64 61 74 61 62 61 73  ding the databas
2c10: 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61 6d  e.    file becam
2c20: 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70 65  e full or stoppe
2c30: 64 20 61 63 63 65 70 74 69 6e 67 20 77 72 69 74  d accepting writ
2c40: 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68 65  es for some othe
2c50: 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e 65  r reason..    Ne
2c60: 77 20 74 65 73 74 73 20 77 65 72 65 20 61 64 64  w tests were add
2c70: 65 64 20 74 6f 20 64 65 74 65 63 74 20 73 69 6d  ed to detect sim
2c80: 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69 6e  ilar problems in
2c90: 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c 69   the future.</li
2ca0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20  >.<li>Added new 
2cb0: 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26 61  operators: <b>&a
2cc0: 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73 65  mp;</b> (bitwise
2cd0: 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c 2f  -and).    <b>|</
2ce0: 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29 2c  b> (bitwise-or),
2cf0: 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73 2d   <b>~</b> (ones-
2d00: 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20 20  complement),.   
2d10: 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62 3e   <b>&lt;&lt;</b>
2d20: 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20 3c   (shift left), <
2d30: 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20 28  b>&gt;&gt;</b> (
2d40: 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f 6c  shift right).</l
2d50: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
2d60: 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 72   functions: <b>r
2d70: 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20 3c  ound()</b> and <
2d80: 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c 69  b>abs()</b>.</li
2d90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
2da0: 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20 7b  Oct 9 (2.0.2)} {
2db0: 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75 67  .<li>Fix two bug
2dc0: 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  s in the locking
2dd0: 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e 65   protocol.  (One
2de0: 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68 65   was masking the
2df0: 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c   other.)</li>.<l
2e00: 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20 75  i>Removed some u
2e10: 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65 20  nused "#include 
2e20: 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61 74  <unistd.h>" that
2e30: 20 77 65 72 65 20 63 61 75 73 69 6e 67 20 70 72   were causing pr
2e40: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 56  oblems.    for V
2e50: 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  C++.</li>.<li>Fi
2e60: 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68 3c  xed <b>sqlite.h<
2e70: 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20 69  /b> so that it i
2e80: 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43 2b  s usable from C+
2e90: 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  +</li>.<li>Added
2ea0: 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e   the FULL_COLUMN
2eb0: 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20 20  _NAMES pragma.  
2ec0: 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e 22  When set to "ON"
2ed0: 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a 20  , the names of. 
2ee0: 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 72     columns are r
2ef0: 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73 20  eported back as 
2f00: 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e 73  TABLE.COLUMN ins
2f10: 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f 4c  tead of just COL
2f20: 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  UMN.</li>.<li>Ad
2f30: 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49 4e  ded the TABLE_IN
2f40: 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f 49  FO() and INDEX_I
2f50: 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74 6f  NFO() pragmas to
2f60: 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74 68   help support th
2f70: 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65 72  e.    ODBC inter
2f80: 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  face.</li>.<li>A
2f90: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
2fa0: 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c 65   TEMPORARY table
2fb0: 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c 2f  s and indices.</
2fc0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
2fd0: 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29 7d  1 Oct 2 (2.0.1)}
2fe0: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73 6f   {.<li>Remove so
2ff0: 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f 6d  me C++ style com
3000: 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65 65  ments from btree
3010: 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20 77 69  .c so that it wi
3020: 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20 75  ll compile.    u
3030: 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20 6f  sing compilers o
3040: 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c 2f  ther than gcc.</
3050: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64 75  li>.<li>The ".du
3060: 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d 20  mp" output from 
3070: 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20 6e  the shell does n
3080: 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72 65  ot work if there
3090: 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20 20   are embedded.  
30a0: 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77 68    newlines anywh
30b0: 65 72 65 20 69 6e 20 74 68 65 20 64 61 74 61 2e  ere in the data.
30c0: 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c 64    This is an old
30d0: 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61   bug that was ca
30e0: 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61 72  rried.    forwar
30f0: 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20 31  d from version 1
3100: 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c 20  .0.  To fix it, 
3110: 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74 70  the ".dump" outp
3120: 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20 20  ut no longer.   
3130: 20 75 73 65 73 20 74 68 65 20 43 4f 50 59 20 63   uses the COPY c
3140: 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73 74  ommand.  It inst
3150: 65 61 64 20 67 65 6e 65 72 61 74 65 73 20 49 4e  ead generates IN
3160: 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73 2e  SERT statements.
3170: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e 64  </li>.<li>Extend
3180: 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20   the expression 
3190: 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f 72  syntax to suppor
31a0: 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c 4c  t "expr NOT NULL
31b0: 22 20 28 77 69 74 68 20 61 0a 20 20 20 20 73 70  " (with a.    sp
31c0: 61 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20  ace between the 
31d0: 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22 4e  "NOT" and the "N
31e0: 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69 6f  ULL") in additio
31f0: 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e 55  n to "expr NOTNU
3200: 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e 6f  LL".    (with no
3210: 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a   space).</li>.}.
3220: 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20  .chng {2001 Sep 
3230: 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c 6c  28 (2.0.0)} {.<l
3240: 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20  i>Automatically 
3250: 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20 66  build binaries f
3260: 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69 6e  or Linux and Win
3270: 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68 65  dows and put the
3280: 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65 62  m on.    the web
3290: 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  site.</li>.}..ch
32a0: 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38 20  ng {2001 Sep 28 
32b0: 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20 7b  (2.0-alpha-4)} {
32c0: 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74 65  .<li>Incorporate
32d0: 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68 65   makefile patche
32e0: 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d 61  s form A. Rottma
32f0: 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f 4f  nn to use LIBTOO
3300: 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  L</li>.}..chng {
3310: 32 30 30 31 20 53 65 70 20 32 37 20 28 32 2e 30  2001 Sep 27 (2.0
3320: 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c 69  -alpha-3)} {.<li
3330: 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e 6f  >SQLite now hono
3340: 72 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b 65  rs the UNIQUE ke
3350: 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45 20  yword in CREATE 
3360: 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20 50  UNIQUE INDEX.  P
3370: 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73 20  rimary.    keys 
3380: 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20  are required to 
3390: 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e 0a  be unique.</li>.
33a0: 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20  <li>File format 
33b0: 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f 20  changed back to 
33c0: 77 68 61 74 20 69 74 20 77 61 73 20 66 6f 72 20  what it was for 
33d0: 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69  alpha-1</li>.<li
33e0: 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20 72 6f  >Fixes to the ro
33f0: 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b 69  llback and locki
3400: 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69 3e  ng behavior</li>
3410: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53  .}..chng {2001 S
3420: 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68 61  ep 20 (2.0-alpha
3430: 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74 69  -2)} {.<li>Initi
3440: 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76 65  al release of ve
3450: 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65 20  rsion 2.0.  The 
3460: 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e 67  idea of renaming
3470: 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20 20   the library.   
3480: 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73 20   to "SQLus" was 
3490: 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61 76  abandoned in fav
34a0: 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74 68  or of keeping th
34b0: 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65 20  e "SQLite" name 
34c0: 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67 20  and.    bumping 
34d0: 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69 6f  the major versio
34e0: 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c  n number.</li>.<
34f0: 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e 64  li>The pager and
3500: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
3510: 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54 68  s added back. Th
3520: 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20 6f  ey are now the o
3530: 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62 6c  nly.    availabl
3540: 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a  e backend.</li>.
3550: 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62 73  <li>The Dbbe abs
3560: 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68 65  traction and the
3570: 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72 79   GDBM and memory
3580: 20 64 72 69 76 65 72 73 20 77 65 72 65 20 72 65   drivers were re
3590: 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  moved.</li>.<li>
35a0: 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c 6c  Copyright on all
35b0: 20 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c 61   code was discla
35c0: 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72 61  imed.  The libra
35d0: 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68 65  ry is now in the
35e0: 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d 61  .    public doma
35f0: 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  in.</li>.}..chng
3600: 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28 31   {2001 Jul 23 (1
3610: 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50 61  .0.32)} {.<li>Pa
3620: 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73 75  ger and btree su
3630: 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65 64  bsystems removed
3640: 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65  .  These will be
3650: 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f   used in a follo
3660: 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65 72  w-on.    SQL ser
3670: 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d 65  ver library name
3680: 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e 0a  d "SQLus".</li>.
3690: 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c  <li>Add the abil
36a0: 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74 65  ity to use quote
36b0: 64 20 73 74 72 69 6e 67 73 20 61 73 20 74 61 62  d strings as tab
36c0: 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e 61  le and column na
36d0: 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72 65  mes in.    expre
36e0: 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ssions.</li>.}..
36f0: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 31  chng {2001 Apr 1
3700: 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c 6c  4 (1.0.31)} {.<l
3710: 69 3e 50 61 67 65 72 20 73 75 62 73 79 73 74 65  i>Pager subsyste
3720: 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74 20  m added but not 
3730: 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a 3c  yet used.</li>.<
3740: 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20 68  li>More robust h
3750: 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d 6f  andling of out-o
3760: 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73 2e  f-memory errors.
3770: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74 65  </li>.<li>New te
3780: 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68 65  sts added to the
3790: 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c 69   test suite.</li
37a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
37b0: 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d 20  Apr 6 (1.0.30)} 
37c0: 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68 65  {.<li>Remove the
37d0: 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f 64   <b>sqlite_encod
37e0: 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72 69  ing</b> TCL vari
37f0: 61 62 6c 65 20 74 68 61 74 20 77 61 73 20 69 6e  able that was in
3800: 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e 20  troduced.    in 
3810: 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 65 72  the previous ver
3820: 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sion.</li>.<li>A
3830: 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d 65  dd options <b>-e
3840: 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64 20  ncoding</b> and 
3850: 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74 66  <b>-tcl-uses-utf
3860: 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20 20  </b> to the.    
3870: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54 43  <b>sqlite</b> TC
3880: 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  L command.</li>.
3890: 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74 6f  <li>Add tests to
38a0: 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20   make sure that 
38b0: 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63 6f  tclsqlite was co
38c0: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63 6c  mpiled using Tcl
38d0: 20 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c 65   header.    file
38e0: 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 20  s and libraries 
38f0: 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69 3e  that match.</li>
3900: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41  .}..chng {2001 A
3910: 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20 7b  pr 5 (1.0.29)} {
3920: 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72 79  .<li>The library
3930: 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61 74   now assumes dat
3940: 61 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 55  a is stored as U
3950: 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65 6e  TF-8 if the --en
3960: 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f 70  able-utf8.    op
3970: 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74 6f  tion is given to
3980: 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68 65   configure.  The
3990: 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f   default behavio
39a0: 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a 20  r is to assume. 
39b0: 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61 73     iso8859-x, as
39c0: 20 69 74 20 68 61 73 20 61 6c 77 61 79 73 20 64   it has always d
39d0: 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79 20  one.  This only 
39e0: 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72 65 6e  makes a differen
39f0: 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45 20  ce for.    LIKE 
3a00: 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f  and GLOB operato
3a10: 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47 54  rs and the LENGT
3a20: 48 20 61 6e 64 20 53 55 42 53 54 52 20 66 75 6e  H and SUBSTR fun
3a30: 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ctions.</li>.<li
3a40: 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72 79 20  >If the library 
3a50: 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 65  is not configure
3a60: 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64 20  d for UTF-8 and 
3a70: 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79 0a  the Tcl library.
3a80: 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74 68      is one of th
3a90: 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68 61  e newer ones tha
3aa0: 74 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e 74  t uses UTF-8 int
3ab0: 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68 65  ernally,.    the
3ac0: 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66  n a conversion f
3ad0: 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73 6f  rom UTF-8 to iso
3ae0: 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61 63  8859 and.    bac
3af0: 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65 20  k again is done 
3b00: 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20 69  inside the TCL i
3b10: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
3b20: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72  ..chng {2001 Apr
3b30: 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a 3c   4 (1.0.28)} {.<
3b40: 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65 64  li>Added limited
3b50: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72 61   support for tra
3b60: 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20 74  nsactions.  At t
3b70: 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e 73  his point, trans
3b80: 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c 6c  actions.    will
3b90: 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69 6e   do table lockin
3ba0: 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62 61  g on the GDBM ba
3bb0: 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69 73  ckend.  There is
3bc0: 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65 74   no support (yet
3bd0: 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62 61  ).    for rollba
3be0: 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f 6d  ck or atomic com
3bf0: 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  mit.</li>.<li>Ad
3c00: 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c 75  ded special colu
3c10: 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c 20  mn names ROWID, 
3c20: 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44 5f  OID, and _ROWID_
3c30: 20 74 68 61 74 20 72 65 66 65 72 20 74 6f 20 74   that refer to t
3c40: 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72 61  he.    unique ra
3c50: 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65 79  ndom integer key
3c60: 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68   associated with
3c70: 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65 76   every row of ev
3c80: 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  ery table.</li>.
3c90: 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20 74  <li>Additional t
3ca0: 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68  ests added to th
3cb0: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75 69  e regression sui
3cc0: 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65 20  te to cover the 
3cd0: 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66 65  new ROWID.    fe
3ce0: 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 54 43  ature and the TC
3cf0: 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75 67 73  L interface bugs
3d00: 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f 77   mentioned below
3d10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
3d20: 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e  es to the "lemon
3d30: 22 20 70 61 72 73 65 72 20 67 65 6e 65 72 61 74  " parser generat
3d40: 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77 6f  or to help it wo
3d50: 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a 20  rk better when. 
3d60: 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69 6e     compiled usin
3d70: 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69  g MSVC.</li>.<li
3d80: 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74 68  >Bug fixes in th
3d90: 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65 20  e TCL interface 
3da0: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f 6c  identified by Ol
3db0: 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c 69  eg Oleinick.</li
3dc0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
3dd0: 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29 7d  Mar 20 (1.0.27)}
3de0: 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69 6e   {.<li>When doin
3df0: 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44  g DELETE and UPD
3e00: 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72 79  ATE, the library
3e10: 20 75 73 65 64 20 74 6f 20 77 72 69 74 65 20 74   used to write t
3e20: 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e 75  he record.    nu
3e30: 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64 73  mbers of records
3e40: 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20 6f   to be deleted o
3e50: 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20 61  r updated into a
3e60: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e   temporary file.
3e70: 0a 20 20 20 20 54 68 69 73 20 69 73 20 63 68 61  .    This is cha
3e80: 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74 68 65  nged so that the
3e90: 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73 20   record numbers 
3ea0: 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d 6f  are held in memo
3eb0: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ry.</li>.<li>The
3ec0: 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64 20   DELETE command 
3ed0: 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45 20  without a WHILE 
3ee0: 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d 6f  clause just remo
3ef0: 76 65 73 20 74 68 65 20 64 61 74 61 62 61 73 65  ves the database
3f00: 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d 20  .    files from 
3f10: 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65 72  the disk, rather
3f20: 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72 6f   than going thro
3f30: 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e 67  ugh and deleting
3f40: 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20 72   record.    by r
3f50: 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ecord.</li>.}..c
3f60: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30  hng {2001 Mar 20
3f70: 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c 69   (1.0.26)} {.<li
3f80: 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67 20 66  >A serious bug f
3f90: 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 2e  ixed on Windows.
3fa0: 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 20    Windows users 
3fb0: 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e 0a  should upgrade..
3fc0: 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74 6f      No impact to
3fd0: 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   Unix.</li>.}..c
3fe0: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 35  hng {2001 Mar 15
3ff0: 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c 69   (1.0.25)} {.<li
4000: 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73 74  >Modify the test
4010: 20 73 63 72 69 70 74 73 20 74 6f 20 69 64 65 6e   scripts to iden
4020: 74 69 66 79 20 74 65 73 74 73 20 74 68 61 74 20  tify tests that 
4030: 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65 6d  depend on system
4040: 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70 72  .    load and pr
4050: 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20 61 6e  ocessor speed an
4060: 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74 68  d.    to warn th
4070: 65 20 75 73 65 72 20 74 68 61 74 20 61 20 66 61  e user that a fa
4080: 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66 20  ilure of one of 
4090: 74 68 6f 73 65 20 28 72 61 72 65 29 20 74 65 73  those (rare) tes
40a0: 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74 20  ts does.    not 
40b0: 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61 6e  necessarily mean
40c0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73 20   the library is 
40d0: 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e 20  malfunctioning. 
40e0: 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a 20   No changes to. 
40f0: 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f 6c     code..    </l
4100: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
4110: 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34 29   Mar 14 (1.0.24)
4120: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  } {.<li>Fix a bu
4130: 67 20 77 68 69 63 68 20 77 61 73 20 63 61 75 73  g which was caus
4140: 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44 41  ing.    the UPDA
4150: 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66 61  TE command to fa
4160: 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77 68  il on systems wh
4170: 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22 20  ere "malloc(0)" 
4180: 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c 4c  returns.    NULL
4190: 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 64  .  The problem d
41a0: 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 57  oes not appear W
41b0: 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20 6f  indows, Linux, o
41c0: 72 20 48 50 55 58 20 62 75 74 20 64 6f 65 73 20  r HPUX but does 
41d0: 0a 20 20 20 20 63 61 75 73 65 20 74 68 65 20 6c  .    cause the l
41e0: 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20 6f  ibrary to fail o
41f0: 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69 3e  n QNX..    </li>
4200: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
4210: 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d 20  eb 19 (1.0.23)} 
4220: 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61 74  {.<li>An unrelat
4230: 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20 62  ed (and minor) b
4240: 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75 72  ug from Mark Mur
4250: 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20 54  anwski fixed.  T
4260: 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20 20  he algorithm.   
4270: 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f 75   for figuring ou
4280: 74 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74  t where to put t
4290: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66  emporary files f
42a0: 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 64  or a "memory:" d
42b0: 61 74 61 62 61 73 65 0a 20 20 20 20 77 61 73 20  atabase.    was 
42c0: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69 74  not working quit
42d0: 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f 6c  e right..    </l
42e0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
42f0: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32 29   Feb 19 (1.0.22)
4300: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65 76  } {.<li>The prev
4310: 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f 74  ious fix was not
4320: 20 71 75 69 74 65 20 72 69 67 68 74 2e 20 20 54   quite right.  T
4330: 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74 6f  his one seems to
4340: 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20 20   work better..  
4350: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
4360: 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31 2e  {2001 Feb 19 (1.
4370: 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65  0.21)} {.<li>The
4380: 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e   UPDATE statemen
4390: 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e  t was not workin
43a0: 67 20 77 68 65 6e 20 74 68 65 20 57 48 45 52 45  g when the WHERE
43b0: 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e 65   clause containe
43c0: 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d 73  d.    some terms
43d0: 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20 73   that could be s
43e0: 61 74 69 73 66 69 65 64 20 75 73 69 6e 67 20 69  atisfied using i
43f0: 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65 72  ndices and other
4400: 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20 20   terms that.    
4410: 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78 65  could not.  Fixe
4420: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
4430: 7b 32 30 30 31 20 46 65 62 20 31 31 20 28 31 2e  {2001 Feb 11 (1.
4440: 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65 72  0.20)} {.<li>Mer
4450: 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 63  ge development c
4460: 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65 20  hanges into the 
4470: 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75 74  main trunk.  Fut
4480: 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64 0a  ure work toward.
4490: 20 20 20 20 75 73 69 6e 67 20 61 20 42 54 72 65      using a BTre
44a0: 65 20 66 69 6c 65 20 73 74 72 75 63 74 75 72 65  e file structure
44b0: 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70 61   will use a sepa
44c0: 72 61 74 65 20 43 56 53 20 73 6f 75 72 63 65 20  rate CVS source 
44d0: 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20 20  tree.  This.    
44e0: 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63 6f  CVS tree will co
44f0: 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f 72  ntinue to suppor
4500: 74 20 74 68 65 20 47 44 42 4d 20 76 65 72 73 69  t the GDBM versi
4510: 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e 6c  on of SQLite onl
4520: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
4530: 7b 32 30 30 31 20 46 65 62 20 36 20 28 31 2e 30  {2001 Feb 6 (1.0
4540: 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  .19)} {.<li>Fix 
4550: 61 20 73 74 72 61 6e 67 65 20 28 62 75 74 20 76  a strange (but v
4560: 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61 74  alid) C declarat
4570: 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61 75  ion that was cau
4580: 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20 20  sing problems.  
4590: 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20 6c    for QNX.  No l
45a0: 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e 3c  ogical changes.<
45b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
45c0: 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31 38  01 Jan 4 (1.0.18
45d0: 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20 74  )} {.<li>Print t
45e0: 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51 4c  he offending SQL
45f0: 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e 20   statement when 
4600: 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73 2e  an error occurs.
4610: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74  </li>.<li>Do not
4620: 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73 20   require commas 
4630: 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61 69  between constrai
4640: 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20 54 41  nts in CREATE TA
4650: 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c  BLE statements.<
4660: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
4670: 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69 6f  he "-echo" optio
4680: 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c  n to the shell.<
4690: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73  /li>.<li>Changes
46a0: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c   to comments.</l
46b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
46c0: 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37 29   Dec 10 (1.0.17)
46d0: 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65 20  } {.<li>Rewrote 
46e0: 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65  <b>sqlite_comple
46f0: 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b 65  te()</b> to make
4700: 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e   it faster.</li>
4710: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61 6b  .<li>Minor tweak
4720: 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65 20  s to other code 
4730: 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20 61  to make it run a
4740: 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 3c   little faster.<
4750: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  /li>.<li>Added n
4760: 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62 3e  ew tests for <b>
4770: 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28  sqlite_complete(
4780: 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d 65  )</b> and for me
4790: 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69 3e  mory leaks.</li>
47a0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 44  .}..chng {2000 D
47b0: 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20 7b  ec 4 (1.0.16)} {
47c0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
47d0: 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f 73  on updates.  Mos
47e0: 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74 79  tly fixing of ty
47f0: 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e 67  pos and spelling
4800: 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a   errors.</li>.}.
4810: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
4820: 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a 3c  23 (1.0.15)} {.<
4830: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
4840: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
4850: 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63 68  i>Some sanity ch
4860: 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73 20  ecking code was 
4870: 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65  removed from the
4880: 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20 76   inner loop of v
4890: 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65 6c  dbe.c.    to hel
48a0: 70 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 6f  p the library to
48b0: 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66 61   run a little fa
48c0: 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65 20  ster.  The code 
48d0: 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d 6f  is only.    remo
48e0: 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70 69  ved if you compi
48f0: 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55 47  le with -DNDEBUG
4900: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
4910: 32 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e 30  2000 Oct 19 (1.0
4920: 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .14)} {.<li>Adde
4930: 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62 61  d a "memory:" ba
4940: 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68 61  ckend driver tha
4950: 74 20 73 74 6f 72 65 73 20 69 74 73 20 64 61 74  t stores its dat
4960: 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20 20  abase in an.    
4970: 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20 74  in-memory hash t
4980: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  able.</li>.}..ch
4990: 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38 20  ng {2000 Oct 18 
49a0: 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.13)} {.<li>
49b0: 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47 44  Break out the GD
49c0: 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20 61  BM driver into a
49d0: 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20 69   separate file i
49e0: 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a 20  n anticipation. 
49f0: 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77 20     to added new 
4a00: 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c  drivers.</li>.<l
4a10: 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d 65  i>Allow the name
4a20: 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20 74   of a database t
4a30: 6f 20 62 65 20 70 72 65 66 69 78 65 64 20 62 79  o be prefixed by
4a40: 20 74 68 65 20 64 72 69 76 65 72 20 74 79 70 65   the driver type
4a50: 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20 74  ..    For now, t
4a60: 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20 74  he only driver t
4a70: 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e 3c  ype is "gdbm:".<
4a80: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4a90: 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e 31  00 Oct 16 (1.0.1
4aa0: 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64 20  2)} {.<li>Fixed 
4ab0: 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65 72  an off-by-one er
4ac0: 72 6f 72 20 74 68 61 74 20 77 61 73 20 63 61 75  ror that was cau
4ad0: 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 20  sing a coredump 
4ae0: 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71 27  in .    the '%q'
4af0: 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69 76   format directiv
4b00: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
4b10: 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70   <b>sqlite_..._p
4b20: 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75 74  rintf()</b> rout
4b30: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ines.</li>.<li>A
4b40: 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  dded the <b>sqli
4b50: 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c 2f  te_interrupt()</
4b60: 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c  b> interface.</l
4b70: 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73 68  i>.<li>In the sh
4b80: 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f 69  ell, <b>sqlite_i
4b90: 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69  nterrupt()</b> i
4ba0: 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20 74  s invoked when t
4bb0: 68 65 0a 20 20 20 20 75 73 65 72 20 70 72 65 73  he.    user pres
4bc0: 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c  ses Control-C</l
4bd0: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f 6d  i>.<li>Fixed som
4be0: 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65 72  e instances wher
4bf0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  e <b>sqlite_exec
4c00: 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20 72  ()</b> was.    r
4c10: 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72 6f  eturning the wro
4c20: 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c 2f  ng error code.</
4c30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4c40: 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31 30  0 Oct 11 (1.0.10
4c50: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6e  )} {.<li>Added n
4c60: 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20 63  otes on how to c
4c70: 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64 6f  ompile for Windo
4c80: 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c  ws95/98.</li>.<l
4c90: 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77 20  i>Removed a few 
4ca0: 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 77  variables that w
4cb0: 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75 73  ere not being us
4cc0: 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a 7d  ed.  Etc.</li>.}
4cd0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
4ce0: 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c 6c   8 (1.0.9)} {.<l
4cf0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
4d00: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
4d10: 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65  ()</b> interface
4d20: 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a   routines.</li>.
4d30: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
4d40: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73   <b>sqlite</b> s
4d50: 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f 20  hell program to 
4d60: 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74 65  use the new inte
4d70: 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74 69  rface .    routi
4d80: 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  nes.</li>.<li>Mo
4d90: 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71  dified the <b>sq
4da0: 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70  lite</b> shell p
4db0: 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74 20  rogram to print 
4dc0: 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a 20  the schema for. 
4dd0: 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20     the built-in 
4de0: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
4df0: 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69 74  ble, if explicit
4e00: 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f 6c  ly requested.</l
4e10: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
4e20: 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29 7d   Sep 30 (1.0.8)}
4e30: 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69   {.<li>Begin wri
4e40: 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69  ting documentati
4e50: 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69 6e  on on the TCL in
4e60: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
4e70: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
4e80: 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65 64  29 (Not Released
4e90: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  )} {.<li>Added t
4ea0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74  he <b>sqlite_get
4eb0: 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50 49  _table()</b> API
4ec0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
4ed0: 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74  d the documentat
4ee0: 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20 74  ion for due to t
4ef0: 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65 2e  he above change.
4f00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
4f10: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
4f20: 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d 61  </b> shell to ma
4f30: 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e 65  ke use of the ne
4f40: 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65 74  w.    sqlite_get
4f50: 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e 20  _table() API in 
4f60: 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20 61  order to print a
4f70: 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73 0a   list of tables.
4f80: 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65 20      in multiple 
4f90: 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61 72  columns, similar
4fa0: 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73 22   to the way "ls"
4fb0: 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d 65   prints filename
4fc0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  s.</li>.<li>Modi
4fd0: 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69  fied the <b>sqli
4fe0: 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20  te</b> shell to 
4ff0: 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c 6f  print a semicolo
5000: 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e 64  n at the.    end
5010: 20 6f 66 20 65 61 63 68 20 43 52 45 41 54 45 20   of each CREATE 
5020: 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68 65  statement in the
5030: 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 22   output of the "
5040: 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e 64  .schema" command
5050: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
5060: 32 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f 74  2000 Sep 21 (Not
5070: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
5080: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63 6c  i>Change the tcl
5090: 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d 65  sqlite "eval" me
50a0: 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20 61  thod to return a
50b0: 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73   list of results
50c0: 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c 62   if.    no callb
50d0: 61 63 6b 20 73 63 72 69 70 74 20 69 73 20 73 70  ack script is sp
50e0: 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  ecified.</li>.<l
50f0: 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c 69  i>Change tclsqli
5100: 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65 20  te.c to use the 
5110: 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61 63  Tcl_Obj interfac
5120: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74  e</li>.<li>Add t
5130: 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74 68  clsqlite.c to th
5140: 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c 69  e libsqlite.a li
5150: 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  brary</li>.}..ch
5160: 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31 33 20  ng {2000 Sep 13 
5170: 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29 7d  (Version 1.0.5)}
5180: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74   {.<li>Changed t
5190: 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74 20  he print format 
51a0: 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  for floating poi
51b0: 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 22  nt values from "
51c0: 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e 0a  %g" to "%.15g"..
51d0: 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68      </li>.<li>Ch
51e0: 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61 72  anged the compar
51f0: 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73 6f  ison function so
5200: 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69 6e   that numbers in
5210: 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f 74   exponential not
5220: 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20 31  ation.    (ex: 1
5230: 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20 69  .234e+05) sort i
5240: 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64 65  n numerical orde
5250: 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  r.</li>.}..chng 
5260: 7b 32 30 30 30 20 41 75 67 20 32 38 20 28 56 65  {2000 Aug 28 (Ve
5270: 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b 0a  rsion 1.0.4)} {.
5280: 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74 69  <li>Added functi
5290: 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29 3c  ons <b>length()<
52a0: 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73 74  /b> and <b>subst
52b0: 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c  r()</b>.</li>.<l
52c0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
52d0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e  he <b>sqlite</b>
52e0: 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74   shell program t
52f0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 0a  hat was causing.
5300: 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20 77      a coredump w
5310: 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6d  hen the output m
5320: 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e 22  ode was "column"
5330: 20 61 6e 64 20 74 68 65 20 66 69 72 73 74 20 72   and the first r
5340: 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20 63  ow.    of data c
5350: 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c 2e  ontained a NULL.
5360: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
5370: 30 30 30 20 41 75 67 20 32 32 20 28 56 65 72 73  000 Aug 22 (Vers
5380: 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c 6c  ion 1.0.3)} {.<l
5390: 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20  i>In the sqlite 
53a0: 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68 65  shell, print the
53b0: 20 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e 65   "Database opene
53c0: 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65 73  d READ ONLY" mes
53d0: 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64 65  sage.    to stde
53e0: 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73 74  rr instead of st
53f0: 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49  dout.</li>.<li>I
5400: 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65  n the sqlite she
5410: 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74 68  ll, now print th
5420: 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  e version number
5430: 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61 72   on initial star
5440: 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  tup.</li>.<li>Ad
5450: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  d the <b>sqlite_
5460: 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73 74  version[]</b> st
5470: 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74 6f  ring constant to
5480: 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c 69   the library</li
5490: 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75  >.<li>Makefile u
54a0: 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  pdates</li>.<li>
54b0: 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72 65  Bug fix: incorre
54c0: 63 74 20 56 44 42 45 20 63 6f 64 65 20 77 61 73  ct VDBE code was
54d0: 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65 64   being generated
54e0: 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69   for the followi
54f0: 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74 61  ng.    circumsta
5500: 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e 20  nce: a query on 
5510: 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c 65  an indexed table
5520: 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57 48   containing a WH
5530: 45 52 45 20 63 6c 61 75 73 65 20 77 69 74 68 0a  ERE clause with.
5540: 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61 74      an IN operat
5550: 6f 72 20 74 68 61 74 20 68 61 64 20 61 20 73 75  or that had a su
5560: 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72 69  bquery on its ri
5570: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c 2f  ght-hand side.</
5580: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5590: 30 20 41 75 67 20 31 38 20 28 56 65 72 73 69 6f  0 Aug 18 (Versio
55a0: 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.1)} {.<li>
55b0: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
55c0: 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70   configure scrip
55d0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f  t.</li>.<li>Mino
55e0: 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20 74  r revisions to t
55f0: 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69 3e  he website.</li>
5600: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
5610: 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20 31  ug 17 (Version 1
5620: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  .0)} {.<li>Chang
5630: 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  e the <b>sqlite<
5640: 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20 74  /b> program so t
5650: 68 61 74 20 69 74 20 63 61 6e 20 72 65 61 64 0a  hat it can read.
5660: 20 20 20 20 64 61 74 61 62 61 73 65 73 20 66 6f      databases fo
5670: 72 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b 73  r which it lacks
5680: 20 77 72 69 74 65 20 70 65 72 6d 69 73 73 69 6f   write permissio
5690: 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f 0a  n.  (It used to.
56a0: 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20 61      refuse all a
56b0: 63 63 65 73 73 20 69 66 20 69 74 20 63 6f 75 6c  ccess if it coul
56c0: 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f 6c  d not write.)</l
56d0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
56e0: 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54 72   Aug 9} {.<li>Tr
56f0: 65 61 74 20 63 61 72 72 69 61 67 65 20 72 65 74  eat carriage ret
5700: 75 72 6e 73 20 61 73 20 77 68 69 74 65 20 73 70  urns as white sp
5710: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
5720: 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20 7b  g {2000 Aug 8} {
5730: 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74 65  .<li>Added patte
5740: 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20 74  rn matching to t
5750: 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d 6d  he ".table" comm
5760: 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c 69  and in the "sqli
5770: 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65 6c  te".command shel
5780: 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  l.</li>.}..chng 
5790: 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a 3c  {2000 Aug 4} {.<
57a0: 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  li>Documentation
57b0: 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c   updates</li>.<l
57c0: 69 3e 41 64 64 65 64 20 22 62 75 73 79 22 20 61  i>Added "busy" a
57d0: 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65 74  nd "timeout" met
57e0: 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c 20  hods to the Tcl 
57f0: 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a 7d  interface</li>.}
5800: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
5810: 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20 66   3} {.<li>File f
5820: 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e 75  ormat version nu
5830: 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67 20 73  mber was being s
5840: 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65 5f  tored in sqlite_
5850: 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20 6d  master.tcl.    m
5860: 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20 54  ultiple times. T
5870: 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73 73  his was harmless
5880: 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61 72  , but unnecessar
5890: 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69 78  y. It is now fix
58a0: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
58b0: 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b 0a   {2000 Aug 2} {.
58c0: 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f 72  <li>The file for
58d0: 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73 20  mat for indices 
58e0: 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69 67  was changed slig
58f0: 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  htly in order to
5900: 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e 64   work.    around
5910: 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63 79   an inefficiency
5920: 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74 69   that can someti
5930: 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74 68  mes come up with
5940: 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20 74   GDBM when.    t
5950: 68 65 72 65 20 61 72 65 20 6c 61 72 67 65 20 69  here are large i
5960: 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d 61  ndices having ma
5970: 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74 68 20  ny entries with 
5980: 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20 20  the same key..  
5990: 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72    <font color="r
59a0: 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74 69  ed">** Incompati
59b0: 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f 66  ble Change **</f
59c0: 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ont></li>.}..chn
59d0: 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20 7b  g {2000 Aug 1} {
59e0: 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72 27  .<li>The parser'
59f0: 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65 72  s stack was over
5a00: 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65 72  flowing on a ver
5a10: 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73 74  y long UPDATE st
5a20: 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68 69  atement..    Thi
5a30: 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c  s is now fixed.<
5a40: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
5a50: 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c 6c  00 July 31} {.<l
5a60: 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61 20  i>Finish the <a 
5a70: 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22  href="vdbe.html"
5a80: 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f  >VDBE tutorial</
5a90: 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  a>.</li>.<li>Add
5aa0: 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ed documentation
5ab0: 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74 6f   on compiling to
5ac0: 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e   WindowsNT.</li>
5ad0: 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69  .<li>Fix a confi
5ae0: 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61 6d  guration program
5af0: 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e 3c   for WindowsNT.<
5b00: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63  /li>.<li>Fix a c
5b10: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f  onfiguration pro
5b20: 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c 2f  blem for HPUX.</
5b30: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
5b40: 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c 69  0 July 29} {.<li
5b50: 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20 6f  >Better labels o
5b60: 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6f  n column names o
5b70: 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f 6c  f the result.</l
5b80: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
5b90: 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69 3e   July 28} {.<li>
5ba0: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
5bb0: 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65 72  ite_busy_handler
5bc0: 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64 20  ()</b> .    and 
5bd0: 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f 74  <b>sqlite_busy_t
5be0: 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e 74  imeout()</b> int
5bf0: 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  erface.</li>.}..
5c00: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
5c10: 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20  23} {.<li>Begin 
5c20: 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20 68  writing the <a h
5c30: 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22 3e  ref="vdbe.html">
5c40: 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f 61  VDBE tutorial</a
5c50: 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  >.</li>.}..chng 
5c60: 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20 7b  {2000 June 21} {
5c70: 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63 6f  .<li>Clean up co
5c80: 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69 61  mments and varia
5c90: 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61 6e  ble names.  Chan
5ca0: 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74 61  ges to documenta
5cb0: 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75 6e  tion..    No fun
5cc0: 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73 20  ctional changes 
5cd0: 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c 69  to the code.</li
5ce0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
5cf0: 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e 43  June 19} {.<li>C
5d00: 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 55  olumn names in U
5d10: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 73  PDATE statements
5d20: 20 77 65 72 65 20 63 61 73 65 20 73 65 6e 73 69   were case sensi
5d30: 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20 6d  tive..    This m
5d40: 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20 62  istake has now b
5d50: 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  een fixed.</li>.
5d60: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
5d70: 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ne 16} {.<li>Add
5d80: 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61  ed the concatena
5d90: 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61 74  te string operat
5da0: 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a  or (||)</li>.}..
5db0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
5dc0: 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  12} {.<li>Added 
5dd0: 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74  the fcnt() funct
5de0: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20 69  ion to the SQL i
5df0: 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54 68 65  nterpreter.  The
5e00: 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e   fcnt() function
5e10: 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74 68 65  .    returns the
5e20: 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61 62   number of datab
5e30: 61 73 65 20 22 46 65 74 63 68 22 20 6f 70 65 72  ase "Fetch" oper
5e40: 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65  ations that have
5e50: 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20 54   occurred..    T
5e60: 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20  his function is 
5e70: 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65  designed for use
5e80: 20 69 6e 20 74 65 73 74 20 73 63 72 69 70 74 73   in test scripts
5e90: 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74 0a   to verify that.
5ea0: 20 20 20 20 71 75 65 72 69 65 73 20 61 72 65 20      queries are 
5eb0: 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61 70  efficient and ap
5ec0: 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74 69  propriately opti
5ed0: 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20 68  mized.  Fcnt() h
5ee0: 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20 20  as no other.    
5ef0: 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c 20  useful purpose, 
5f00: 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f 77  as far as I know
5f10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
5f20: 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74 65   a bunch more te
5f30: 73 74 73 20 74 68 61 74 20 74 61 6b 65 20 61 64  sts that take ad
5f40: 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 6e  vantage of the n
5f50: 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69  ew fcnt() functi
5f60: 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77 20  on..    The new 
5f70: 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75 6e  tests did not un
5f80: 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70 72  cover any new pr
5f90: 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  oblems.</li>.}..
5fa0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
5fb0: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c  8} {.<li>Added l
5fc0: 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74 20  ots of new test 
5fd0: 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  cases</li>.<li>F
5fe0: 69 78 20 61 20 66 65 77 20 62 75 67 73 20 64 69  ix a few bugs di
5ff0: 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20 61  scovered while a
6000: 64 64 69 6e 67 20 74 65 73 74 20 63 61 73 65 73  dding test cases
6010: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e 20  </li>.<li>Begin 
6020: 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20 6e  adding lots of n
6030: 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e  ew documentation
6040: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6050: 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c 6c  000 June 6} {.<l
6060: 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e 64  i>Added compound
6070: 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f 72   select operator
6080: 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c  s: <B>UNION</b>,
6090: 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 42   <b>UNION ALL</B
60a0: 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54 3c  >,.<b>INTERSECT<
60b0: 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43 45  /b>, and <b>EXCE
60c0: 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  PT</b></li>.<li>
60d0: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
60e0: 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c 45  r using <b>(SELE
60f0: 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74 68  CT ...)</b> with
6100: 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c 2f  in expressions</
6110: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
6120: 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e 3c  pport for <b>IN<
6130: 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57 45  /b> and <b>BETWE
6140: 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 73  EN</b> operators
6150: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
6160: 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 47  support for <b>G
6170: 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64 20  ROUP BY</b> and 
6180: 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f 6c  <b>HAVING</b></l
6190: 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c 75  i>.<li>NULL valu
61a0: 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f 72  es are now repor
61b0: 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  ted to the callb
61c0: 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70 6f  ack as a NULL po
61d0: 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65 72  inter.    rather
61e0: 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20 73   than an empty s
61f0: 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  tring.</li>.}..c
6200: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 33  hng {2000 June 3
6210: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  } {.<li>Added su
6220: 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75 6c  pport for defaul
6230: 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c 75  t values on colu
6240: 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e 3c  mns of a table.<
6250: 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76 65  /li>.<li>Improve
6260: 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65 2e  d test coverage.
6270: 20 20 46 69 78 65 64 20 61 20 66 65 77 20 6f 62    Fixed a few ob
6280: 73 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e 64  scure bugs found
6290: 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65 64   by the.improved
62a0: 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   tests.</li>.}..
62b0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
62c0: 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61 74  2} {.<li>All dat
62d0: 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20 62  abase files to b
62e0: 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61 6e  e modified by an
62f0: 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54 20   UPDATE, INSERT 
6300: 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a 6e  or DELETE are .n
6310: 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72 65  ow locked before
6320: 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72 65   any changes are
6330: 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69 6c   made to any fil
6340: 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65 73  es.  .This makes
6350: 20 69 74 20 73 61 66 65 20 28 49 20 74 68 69 6e   it safe (I thin
6360: 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68 65  k) to access.the
6370: 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73   same database s
6380: 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66 72  imultaneously fr
6390: 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f 63  om multiple proc
63a0: 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  esses.</li>.<li>
63b0: 54 68 65 20 63 6f 64 65 20 61 70 70 65 61 72 73  The code appears
63c0: 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61 72   stable so we ar
63d0: 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69 74  e now calling it
63e0: 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a   "beta".</li>.}.
63f0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
6400: 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72   1} {.<li>Better
6410: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69 6c   support for fil
6420: 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68 61  e locking so tha
6430: 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70 72  t two or more pr
6440: 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68 72  ocesses .(or thr
6450: 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73 73  eads).can access
6460: 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62 61   the same databa
6470: 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c  se simultaneousl
6480: 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e 65  y.  More work ne
6490: 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72 65  eded in.this are
64a0: 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e 0a  a, though.</li>.
64b0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61  }..chng {2000 Ma
64c0: 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  y 31} {.<li>Adde
64d0: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 67  d support for ag
64e0: 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f 6e  gregate function
64f0: 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54 28  s (Ex: <b>COUNT(
6500: 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28 2e  *)</b>, <b>MIN(.
6510: 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65 20  ..)</b>).to the 
6520: 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74  SELECT statement
6530: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
6540: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42 3e   support for <B>
6550: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
6560: 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a  ...</B></li>.}..
6570: 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33  chng {2000 May 3
6580: 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  0} {.<li>Added t
6590: 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20 6f  he <b>LIKE</b> o
65a0: 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  perator.</li>.<l
65b0: 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c 4f  i>Added a <b>GLO
65c0: 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a 20  B</b> operator: 
65d0: 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c 49  similar to <B>LI
65e0: 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20 75  KE</B> .but it u
65f0: 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20 67  ses Unix shell g
6600: 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72 64  lobbing wildcard
6610: 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65  s instead of the
6620: 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77 69   '%' .and '_' wi
6630: 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e 3c  ldcards of SQL.<
6640: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
6650: 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20 63  he <B>COPY</b> c
6660: 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65 64  ommand patterned
6670: 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66 3d   after .<a href=
6680: 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73 74  "http://www.post
6690: 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f 73  gresql.org/">Pos
66a0: 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20 74  tgreSQL</a> so t
66b0: 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20 6e  hat SQLite.can n
66c0: 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75 74 70  ow read the outp
66d0: 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67 5f  ut of the <b>pg_
66e0: 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61 73  dump</b> databas
66f0: 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a 6f  e dump utility.o
6700: 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f 6c  f PostgreSQL.</l
6710: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 3c  i>.<li>Added a <
6720: 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f 6d  B>VACUUM</B> com
6730: 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74 20 63  mand that that c
6740: 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64 62  alls the .<b>gdb
6750: 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c 2f  m_reorganize()</
6760: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74  b> function on t
6770: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64 61  he underlying da
6780: 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f 6c  tabase.files.</l
6790: 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79 2c  i>.<li>And many,
67a0: 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73 2e   many bug fixes.
67b0: 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ..</li>.}..chng 
67c0: 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b 0a  {2000 May 29} {.
67d0: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62 6c  <li>Initial Publ
67e0: 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41 6c  ic Release of Al
67f0: 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a  pha code</li>.}.
6800: 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 3c 70  .puts {.</DL>.<p
6810: 3e 3c 68 72 20 2f 3e 3c 2f 70 3e 0a 3c 70 3e 3c  ><hr /></p>.<p><
6820: 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 68 74  a href="index.ht
6830: 6d 6c 22 3e 3c 69 6d 67 20 73 72 63 3d 22 2f 67  ml"><img src="/g
6840: 6f 62 61 63 6b 2e 6a 70 67 22 20 62 6f 72 64 65  oback.jpg" borde
6850: 72 3d 30 20 2f 3e 0a 42 61 63 6b 20 74 6f 20 74  r=0 />.Back to t
6860: 68 65 20 53 51 4c 69 74 65 20 48 6f 6d 65 20 50  he SQLite Home P
6870: 61 67 65 3c 2f 61 3e 0a 3c 2f 70 3e 0a 0a 3c 2f  age</a>.</p>..</
6880: 62 6f 64 79 3e 3c 2f 68 74 6d 6c 3e 7d 0a        body></html>}.