/ Hex Artifact Content
Login

Artifact 546f966c8df2c872d1117da0c6e5c8304b0e9577:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 73 63 72  #.# Run this scr
0010: 69 70 74 20 74 6f 20 67 65 6e 65 72 61 74 65 64  ipt to generated
0020: 20 61 20 63 68 61 6e 67 65 73 2e 68 74 6d 6c 20   a changes.html 
0030: 6f 75 74 70 75 74 20 66 69 6c 65 0a 23 0a 70 75  output file.#.pu
0040: 74 73 20 7b 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64  ts {<html>.<head
0050: 3e 0a 20 20 3c 74 69 74 6c 65 3e 53 51 4c 69 74  >.  <title>SQLit
0060: 65 20 43 68 61 6e 67 65 20 4c 6f 67 3c 2f 74 69  e Change Log</ti
0070: 74 6c 65 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f  tle>.</head>.<bo
0080: 64 79 20 62 67 63 6f 6c 6f 72 3d 22 77 68 69 74  dy bgcolor="whit
0090: 65 22 3e 0a 3c 68 31 20 61 6c 69 67 6e 3d 22 63  e">.<h1 align="c
00a0: 65 6e 74 65 72 22 3e 52 65 63 65 6e 74 20 43 68  enter">Recent Ch
00b0: 61 6e 67 65 73 20 54 6f 20 53 51 4c 69 74 65 3c  anges To SQLite<
00c0: 2f 68 31 3e 0a 0a 3c 70 3e 0a 54 68 69 73 20 66  /h1>..<p>.This f
00d0: 69 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 68  ile provides a h
00e0: 69 67 68 2d 6c 65 76 65 6c 20 73 75 6d 6d 61 72  igh-level summar
00f0: 79 20 6f 66 20 63 68 61 6e 67 65 73 20 74 6f 20  y of changes to 
0100: 53 51 4c 69 74 65 2e 0a 46 6f 72 20 6d 6f 72 65  SQLite..For more
0110: 20 64 65 74 61 69 6c 2c 20 72 65 66 65 72 20 74   detail, refer t
0120: 68 65 20 74 68 65 20 63 68 65 63 6b 69 6e 20 6c  he the checkin l
0130: 6f 67 73 20 67 65 6e 65 72 61 74 65 64 20 62 79  ogs generated by
0140: 0a 43 56 53 20 61 74 0a 3c 61 20 68 72 65 66 3d  .CVS at.<a href=
0150: 22 68 74 74 70 3a 2f 2f 63 76 73 2e 68 77 61 63  "http://cvs.hwac
0160: 69 2e 63 6f 6d 3a 32 30 38 30 2f 73 71 6c 69 74  i.com:2080/sqlit
0170: 65 2f 74 69 6d 65 6c 69 6e 65 22 3e 0a 68 74 74  e/timeline">.htt
0180: 70 3a 2f 2f 63 76 73 2e 68 77 61 63 69 2e 63 6f  p://cvs.hwaci.co
0190: 6d 3a 32 30 38 30 2f 73 71 6c 69 74 65 2f 74 69  m:2080/sqlite/ti
01a0: 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c 2f 70 3e  meline</a>..</p>
01b0: 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72 6f 63 20  ..<DL>.}...proc 
01c0: 63 68 6e 67 20 7b 64 61 74 65 20 64 65 73 63 7d  chng {date desc}
01d0: 20 7b 0a 20 20 70 75 74 73 20 22 3c 44 54 3e 3c   {.  puts "<DT><
01e0: 42 3e 24 64 61 74 65 3c 2f 42 3e 3c 2f 44 54 3e  B>$date</B></DT>
01f0: 22 0a 20 20 70 75 74 73 20 22 3c 44 44 3e 3c 50  ".  puts "<DD><P
0200: 3e 3c 55 4c 3e 24 64 65 73 63 3c 2f 55 4c 3e 3c  ><UL>$desc</UL><
0210: 2f 50 3e 3c 2f 44 44 3e 22 0a 7d 0a 0a 63 68 6e  /P></DD>".}..chn
0220: 67 20 7b 32 30 30 33 20 46 65 62 20 31 34 20 28  g {2003 Feb 14 (
0230: 32 2e 38 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f  2.8.0)} {.<li>Mo
0240: 64 69 66 69 65 64 20 74 68 65 20 6a 6f 75 72 6e  dified the journ
0250: 61 6c 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 74  al file format t
0260: 6f 20 6d 61 6b 65 20 69 74 20 6d 6f 72 65 20 72  o make it more r
0270: 65 73 69 73 74 61 6e 74 20 74 6f 20 63 6f 72 72  esistant to corr
0280: 75 70 74 69 6f 6e 0a 20 20 20 20 74 68 61 74 20  uption.    that 
0290: 63 61 6e 20 6f 63 63 75 72 20 61 66 74 65 72 20  can occur after 
02a0: 61 6e 20 4f 53 20 63 72 61 73 68 20 6f 72 20 70  an OS crash or p
02b0: 6f 77 65 72 20 66 61 69 6c 75 72 65 2e 3c 2f 6c  ower failure.</l
02c0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 6e  i>.<li>Added a n
02d0: 65 77 20 43 2f 43 2b 2b 20 41 50 49 20 74 68 61  ew C/C++ API tha
02e0: 74 20 64 6f 65 73 20 6e 6f 74 20 75 73 65 20 63  t does not use c
02f0: 61 6c 6c 62 61 63 6b 20 66 6f 72 20 72 65 74 75  allback for retu
0300: 72 6e 69 6e 67 20 64 61 74 61 2e 3c 2f 6c 69 3e  rning data.</li>
0310: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20 4a  .}..chng {2003 J
0320: 61 6e 20 32 35 20 28 32 2e 37 2e 36 29 7d 20 7b  an 25 (2.7.6)} {
0330: 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63 65  .<li>Performance
0340: 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 2e 20 20   improvements.  
0350: 54 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e  The library is n
0360: 6f 77 20 6d 75 63 68 20 66 61 73 74 65 72 2e 3c  ow much faster.<
0370: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
0380: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 73 65 74  he <b>sqlite_set
0390: 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 3c 2f 62  _authorizer()</b
03a0: 3e 20 41 50 49 2e 20 20 46 6f 72 6d 61 6c 20 64  > API.  Formal d
03b0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 68 61 73  ocumentation has
03c0: 0a 20 20 20 20 6e 6f 74 20 62 65 65 6e 20 77 72  .    not been wr
03d0: 69 74 74 65 6e 20 2d 20 73 65 65 20 74 68 65 20  itten - see the 
03e0: 73 6f 75 72 63 65 20 63 6f 64 65 20 63 6f 6d 6d  source code comm
03f0: 65 6e 74 73 20 66 6f 72 20 69 6e 73 74 72 75 63  ents for instruc
0400: 74 69 6f 6e 73 20 6f 6e 0a 20 20 20 20 68 6f 77  tions on.    how
0410: 20 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e   to use this fun
0420: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ction.</li>.<li>
0430: 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65  Fix a bug in the
0440: 20 47 4c 4f 42 20 6f 70 65 72 61 74 6f 72 20 74   GLOB operator t
0450: 68 61 74 20 77 61 73 20 70 72 65 76 65 6e 74 69  hat was preventi
0460: 6e 67 20 69 74 20 66 72 6f 6d 20 77 6f 72 6b 69  ng it from worki
0470: 6e 67 0a 20 20 20 20 77 69 74 68 20 75 70 70 65  ng.    with uppe
0480: 72 2d 63 61 73 65 20 6c 65 74 74 65 72 73 2e 3c  r-case letters.<
0490: 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73  /li>.<li>Various
04a0: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
04b0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
04c0: 32 30 30 32 20 44 65 63 20 32 37 20 28 32 2e 37  2002 Dec 27 (2.7
04d0: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .5)} {.<li>Fix a
04e0: 6e 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20  n uninitialized 
04f0: 76 61 72 69 61 62 6c 65 20 69 6e 20 70 61 67 65  variable in page
0500: 72 2e 63 20 77 68 69 63 68 20 63 6f 75 6c 64 20  r.c which could 
0510: 28 77 69 74 68 20 61 20 70 72 6f 62 61 62 69 6c  (with a probabil
0520: 69 74 79 0a 20 20 20 20 6f 66 20 61 62 6f 75 74  ity.    of about
0530: 20 31 20 69 6e 20 34 20 62 69 6c 6c 69 6f 6e 29   1 in 4 billion)
0540: 20 72 65 73 75 6c 74 20 69 6e 20 61 20 63 6f 72   result in a cor
0550: 72 75 70 74 65 64 20 64 61 74 61 62 61 73 65 2e  rupted database.
0560: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0570: 30 30 32 20 44 65 63 20 31 37 20 28 32 2e 37 2e  002 Dec 17 (2.7.
0580: 34 29 7d 20 7b 0a 3c 6c 69 3e 44 61 74 61 62 61  4)} {.<li>Databa
0590: 73 65 20 66 69 6c 65 73 20 63 61 6e 20 6e 6f 77  se files can now
05a0: 20 67 72 6f 77 20 74 6f 20 62 65 20 75 70 20 74   grow to be up t
05b0: 6f 20 32 5e 34 31 20 62 79 74 65 73 2e 20 20 54  o 2^41 bytes.  T
05c0: 68 65 20 6f 6c 64 20 6c 69 6d 69 74 0a 20 20 20  he old limit.   
05d0: 20 77 61 73 20 32 5e 33 31 20 62 79 74 65 73 2e   was 2^31 bytes.
05e0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70  </li>.<li>The op
05f0: 74 69 6d 69 7a 65 72 20 77 69 6c 6c 20 6e 6f 77  timizer will now
0600: 20 73 63 61 6e 20 74 61 62 6c 65 73 20 69 6e 20   scan tables in 
0610: 74 68 65 20 72 65 76 65 72 73 65 20 69 66 20 64  the reverse if d
0620: 6f 69 6e 67 20 73 6f 20 77 69 6c 6c 0a 20 20 20  oing so will.   
0630: 20 73 61 74 69 73 66 79 20 61 6e 20 4f 52 44 45   satisfy an ORDE
0640: 52 20 42 59 20 2e 2e 2e 20 44 45 53 43 20 63 6c  R BY ... DESC cl
0650: 61 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ause.</li>.<li>T
0660: 68 65 20 66 75 6c 6c 20 70 61 74 68 6e 61 6d 65  he full pathname
0670: 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73 65   of the database
0680: 20 66 69 6c 65 20 69 73 20 6e 6f 77 20 72 65 6d   file is now rem
0690: 65 6d 62 65 72 65 64 20 65 76 65 6e 20 69 66 0a  embered even if.
06a0: 20 20 20 20 61 20 72 65 6c 61 74 69 76 65 20 70      a relative p
06b0: 61 74 68 20 69 73 20 70 61 73 73 65 64 20 69 6e  ath is passed in
06c0: 74 6f 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29  to sqlite_open()
06d0: 2e 20 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 0a  .  This allows .
06e0: 20 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20      the library 
06f0: 74 6f 20 63 6f 6e 74 69 6e 75 65 20 6f 70 65 72  to continue oper
0700: 61 74 69 6e 67 20 63 6f 72 72 65 63 74 6c 79 20  ating correctly 
0710: 61 66 74 65 72 20 61 20 63 68 64 69 72 28 29 2e  after a chdir().
0720: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20  </li>.<li>Speed 
0730: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e 20  improvements in 
0740: 74 68 65 20 56 44 42 45 2e 3c 2f 6c 69 3e 0a 3c  the VDBE.</li>.<
0750: 6c 69 3e 4c 6f 74 73 20 6f 66 20 6c 69 74 74 6c  li>Lots of littl
0760: 65 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69  e bug fixes.</li
0770: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
0780: 4f 63 74 20 33 30 20 28 32 2e 37 2e 33 29 7d 20  Oct 30 (2.7.3)} 
0790: 7b 0a 3c 6c 69 3e 56 61 72 69 6f 75 73 20 63 6f  {.<li>Various co
07a0: 6d 70 69 6c 65 72 20 63 6f 6d 70 61 74 69 62 69  mpiler compatibi
07b0: 6c 69 74 79 20 66 69 78 65 73 2e 3c 2f 6c 69 3e  lity fixes.</li>
07c0: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69  .<li>Fix a bug i
07d0: 6e 20 74 68 65 20 22 65 78 70 72 20 49 4e 20 28  n the "expr IN (
07e0: 29 22 20 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69  )" operator.</li
07f0: 3e 0a 3c 6c 69 3e 41 63 63 65 70 74 20 63 6f 6c  >.<li>Accept col
0800: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 70 61 72  umn names in par
0810: 65 6e 74 68 65 73 65 73 2e 3c 2f 6c 69 3e 0a 3c  entheses.</li>.<
0820: 6c 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d  li>Fix a problem
0830: 20 77 69 74 68 20 73 74 72 69 6e 67 20 6d 65 6d   with string mem
0840: 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 20 69  ory management i
0850: 6e 20 74 68 65 20 56 44 42 45 3c 2f 6c 69 3e 0a  n the VDBE</li>.
0860: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
0870: 20 74 68 65 20 22 74 61 62 6c 65 5f 69 6e 66 6f   the "table_info
0880: 22 20 70 72 61 67 6d 61 22 3c 2f 6c 69 3e 0a 3c  " pragma"</li>.<
0890: 6c 69 3e 45 78 70 6f 72 74 20 74 68 65 20 73 71  li>Export the sq
08a0: 6c 69 74 65 5f 66 75 6e 63 74 69 6f 6e 5f 74 79  lite_function_ty
08b0: 70 65 28 29 20 41 50 49 20 66 75 6e 63 74 69 6f  pe() API functio
08c0: 6e 20 69 6e 20 74 68 65 20 57 69 6e 64 6f 77 73  n in the Windows
08d0: 20 44 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69   DLL</li>.<li>Fi
08e0: 78 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61 76 69  x locking behavi
08f0: 6f 72 20 75 6e 64 65 72 20 77 69 6e 64 6f 77 73  or under windows
0900: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
0910: 62 75 67 20 69 6e 20 4c 45 46 54 20 4f 55 54 45  bug in LEFT OUTE
0920: 52 20 4a 4f 49 4e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  R JOIN</li>.}..c
0930: 68 6e 67 20 7b 32 30 30 32 20 53 65 70 20 32 35  hng {2002 Sep 25
0940: 20 28 32 2e 37 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.7.2)} {.<li>
0950: 50 72 65 76 65 6e 74 20 6a 6f 75 72 6e 61 6c 20  Prevent journal 
0960: 66 69 6c 65 20 6f 76 65 72 66 6c 6f 77 73 20 6f  file overflows o
0970: 6e 20 68 75 67 65 20 74 72 61 6e 73 61 63 74 69  n huge transacti
0980: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ons.</li>.<li>Fi
0990: 78 20 61 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20  x a memory leak 
09a0: 74 68 61 74 20 6f 63 63 75 72 72 65 64 20 77 68  that occurred wh
09b0: 65 6e 20 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29  en sqlite_open()
09c0: 20 66 61 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c   failed.</li>.<l
09d0: 69 3e 48 6f 6e 6f 72 20 74 68 65 20 4f 52 44 45  i>Honor the ORDE
09e0: 52 20 42 59 20 61 6e 64 20 4c 49 4d 49 54 20 63  R BY and LIMIT c
09f0: 6c 61 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43  lause of a SELEC
0a00: 54 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20  T even if the.  
0a10: 20 20 72 65 73 75 6c 74 20 73 65 74 20 69 73 20    result set is 
0a20: 75 73 65 64 20 66 6f 72 20 61 6e 20 49 4e 53 45  used for an INSE
0a30: 52 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20  RT.</li>.<li>Do 
0a40: 6e 6f 74 20 70 75 74 20 77 72 69 74 65 20 6c 6f  not put write lo
0a50: 63 6b 73 20 6f 6e 20 74 68 65 20 66 69 6c 65 20  cks on the file 
0a60: 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 54 45 4d  used to hold TEM
0a70: 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c  P tables.</li>.<
0a80: 6c 69 3e 41 64 64 65 64 20 64 6f 63 75 6d 65 6e  li>Added documen
0a90: 74 69 6f 6e 20 6f 6e 20 53 45 4c 45 43 54 20 44  tion on SELECT D
0aa0: 49 53 54 49 4e 43 54 20 61 6e 64 20 6f 6e 20 68  ISTINCT and on h
0ab0: 6f 77 20 53 51 4c 69 74 65 20 68 61 6e 64 6c 65  ow SQLite handle
0ac0: 73 20 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  s NULLs.</li>.<l
0ad0: 69 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20  i>Fix a problem 
0ae0: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
0af0: 20 70 6f 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63   poor performanc
0b00: 65 20 77 68 65 6e 20 6d 61 6e 79 20 74 68 6f 75  e when many thou
0b10: 73 61 6e 64 73 0a 20 20 20 20 6f 66 20 53 51 4c  sands.    of SQL
0b20: 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65   statements were
0b30: 20 65 78 65 63 75 74 65 64 20 62 79 20 61 20 73   executed by a s
0b40: 69 6e 67 6c 65 20 73 71 6c 69 74 65 5f 65 78 65  ingle sqlite_exe
0b50: 63 28 29 20 63 61 6c 6c 2e 3c 2f 6c 69 3e 0a 7d  c() call.</li>.}
0b60: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67  ..chng {2002 Aug
0b70: 20 33 31 20 28 32 2e 37 2e 31 29 7d 20 7b 0a 3c   31 (2.7.1)} {.<
0b80: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
0b90: 74 68 65 20 4f 52 44 45 52 20 42 59 20 6c 6f 67  the ORDER BY log
0ba0: 69 63 20 74 68 61 74 20 77 61 73 20 69 6e 74 72  ic that was intr
0bb0: 6f 64 75 63 65 64 20 69 6e 20 76 65 72 73 69 6f  oduced in versio
0bc0: 6e 20 32 2e 37 2e 30 3c 2f 6c 69 3e 0a 3c 6c 69  n 2.7.0</li>.<li
0bd0: 3e 43 2d 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74  >C-style comment
0be0: 73 20 61 72 65 20 6e 6f 77 20 61 63 63 65 70 74  s are now accept
0bf0: 65 64 20 62 79 20 74 68 65 20 74 6f 6b 65 6e 69  ed by the tokeni
0c00: 7a 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 4e  zer.</li>.<li>IN
0c10: 53 45 52 54 20 72 75 6e 73 20 61 20 6c 69 74 74  SERT runs a litt
0c20: 6c 65 20 66 61 73 74 65 72 20 77 68 65 6e 20 74  le faster when t
0c30: 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 53  he source is a S
0c40: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e  ELECT statement.
0c50: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0c60: 30 30 32 20 41 75 67 20 32 35 20 28 32 2e 37 2e  002 Aug 25 (2.7.
0c70: 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 61  0)} {.<li>Make a
0c80: 20 64 69 73 74 69 6e 63 74 69 6f 6e 20 62 65 74   distinction bet
0c90: 77 65 65 6e 20 6e 75 6d 65 72 69 63 20 61 6e 64  ween numeric and
0ca0: 20 74 65 78 74 20 76 61 6c 75 65 73 20 77 68 65   text values whe
0cb0: 6e 20 73 6f 72 74 69 6e 67 2e 0a 20 20 20 20 54  n sorting..    T
0cc0: 65 78 74 20 76 61 6c 75 65 73 20 73 6f 72 74 20  ext values sort 
0cd0: 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6d 65 6d  according to mem
0ce0: 63 6d 70 28 29 2e 20 20 4e 75 6d 65 72 69 63 20  cmp().  Numeric 
0cf0: 76 61 6c 75 65 73 20 73 6f 72 74 20 69 6e 0a 20  values sort in. 
0d00: 20 20 20 6e 75 6d 65 72 69 63 20 6f 72 64 65 72     numeric order
0d10: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
0d20: 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d 75 6c 61   multiple simula
0d30: 74 61 6e 65 6f 75 73 20 72 65 61 64 65 72 73 20  taneous readers 
0d40: 75 6e 64 65 72 20 77 69 6e 64 6f 77 73 20 62 79  under windows by
0d50: 20 73 69 6d 75 6c 61 74 69 6e 67 0a 20 20 20 20   simulating.    
0d60: 74 68 65 20 72 65 61 64 65 72 2f 77 72 69 74 65  the reader/write
0d70: 72 73 20 6c 6f 63 6b 73 20 74 68 61 74 20 61 72  rs locks that ar
0d80: 65 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 57  e missing from W
0d90: 69 6e 39 35 2f 39 38 2f 4d 45 2e 3c 2f 6c 69 3e  in95/98/ME.</li>
0da0: 0a 3c 6c 69 3e 41 6e 20 65 72 72 6f 72 20 69 73  .<li>An error is
0db0: 20 6e 6f 77 20 72 65 74 75 72 6e 65 64 20 77 68   now returned wh
0dc0: 65 6e 20 74 72 79 69 6e 67 20 74 6f 20 73 74 61  en trying to sta
0dd0: 72 74 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e  rt a transaction
0de0: 20 69 66 0a 20 20 20 20 61 6e 6f 74 68 65 72 20   if.    another 
0df0: 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 61  transaction is a
0e00: 6c 72 65 61 64 79 20 61 63 74 69 76 65 2e 3c 2f  lready active.</
0e10: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
0e20: 32 20 41 75 67 20 31 32 20 28 32 2e 36 2e 33 29  2 Aug 12 (2.6.3)
0e30: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  } {.<li>Add the 
0e40: 61 62 69 6c 69 74 79 20 74 6f 20 72 65 61 64 20  ability to read 
0e50: 62 6f 74 68 20 6c 69 74 74 6c 65 2d 65 6e 64 69  both little-endi
0e60: 61 6e 20 61 6e 64 20 62 69 67 2d 65 6e 64 69 61  an and big-endia
0e70: 6e 20 64 61 74 61 62 61 73 65 73 2e 0a 20 20 20  n databases..   
0e80: 20 53 6f 20 64 61 74 61 62 61 73 65 20 63 72 65   So database cre
0e90: 61 74 65 64 20 75 6e 64 65 72 20 53 75 6e 4f 53  ated under SunOS
0ea0: 20 6f 72 20 4d 61 63 4f 53 58 20 63 61 6e 20 62   or MacOSX can b
0eb0: 65 20 72 65 61 64 20 61 6e 64 20 77 72 69 74 74  e read and writt
0ec0: 65 6e 0a 20 20 20 20 75 6e 64 65 72 20 4c 69 6e  en.    under Lin
0ed0: 75 78 20 6f 72 20 57 69 6e 64 6f 77 73 20 61 6e  ux or Windows an
0ee0: 64 20 76 69 63 65 20 76 65 72 73 61 2e 3c 2f 6c  d vice versa.</l
0ef0: 69 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 74  i>.<li>Convert t
0f00: 6f 20 74 68 65 20 6e 65 77 20 77 65 62 73 69 74  o the new websit
0f10: 65 3a 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  e: http://www.sq
0f20: 6c 69 74 65 2e 6f 72 67 2f 3c 2f 6c 69 3e 0a 3c  lite.org/</li>.<
0f30: 6c 69 3e 41 6c 6c 6f 77 20 74 72 61 6e 73 61 63  li>Allow transac
0f40: 74 69 6f 6e 73 20 74 6f 20 73 70 61 6e 20 4c 69  tions to span Li
0f50: 6e 75 78 20 54 68 72 65 61 64 73 3c 2f 6c 69 3e  nux Threads</li>
0f60: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 20 69 6e 20  .<li>Bug fix in 
0f70: 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f  the processing o
0f80: 66 20 74 68 65 20 4f 52 44 45 52 20 42 59 20 63  f the ORDER BY c
0f90: 6c 61 75 73 65 20 66 6f 72 20 47 52 4f 55 50 20  lause for GROUP 
0fa0: 42 59 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a  BY queries</li>.
0fb0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 6c  }..chng {2002 Jl
0fc0: 79 20 33 30 20 28 32 2e 36 2e 32 29 7d 20 7b 0a  y 30 (2.6.2)} {.
0fd0: 3c 6c 69 3e 54 65 78 74 20 66 69 6c 65 73 20 72  <li>Text files r
0fe0: 65 61 64 20 62 79 20 74 68 65 20 43 4f 50 59 20  ead by the COPY 
0ff0: 63 6f 6d 6d 61 6e 64 20 63 61 6e 20 6e 6f 77 20  command can now 
1000: 68 61 76 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e  have line termin
1010: 61 74 6f 72 73 0a 20 20 20 20 6f 66 20 4c 46 2c  ators.    of LF,
1020: 20 20 43 52 4c 46 2c 20 6f 72 20 43 52 2e 3c 2f    CRLF, or CR.</
1030: 6c 69 3e 0a 3c 6c 69 3e 53 51 4c 49 54 45 5f 42  li>.<li>SQLITE_B
1040: 55 53 59 20 69 73 20 68 61 6e 64 6c 65 64 20 63  USY is handled c
1050: 6f 72 72 65 63 74 6c 79 20 69 66 20 65 6e 63 6f  orrectly if enco
1060: 75 6e 74 65 72 65 64 20 64 75 72 69 6e 67 20 64  untered during d
1070: 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e 69 74  atabase.    init
1080: 69 61 6c 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  ialization.</li>
1090: 0a 3c 6c 69 3e 46 69 78 20 74 6f 20 55 50 44 41  .<li>Fix to UPDA
10a0: 54 45 20 74 72 69 67 67 65 72 73 20 6f 6e 20 54  TE triggers on T
10b0: 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e  EMP tables.</li>
10c0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
10d0: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
10e0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
10f0: 6c 79 20 31 39 20 28 32 2e 36 2e 31 29 7d 20 7b  ly 19 (2.6.1)} {
1100: 0a 3c 6c 69 3e 49 6e 63 6c 75 64 65 20 61 20 73  .<li>Include a s
1110: 74 61 74 69 63 20 73 74 72 69 6e 67 20 69 6e 20  tatic string in 
1120: 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 61 74  the library that
1130: 20 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65   responds to the
1140: 20 52 43 53 0a 20 20 20 20 22 69 64 65 6e 74 22   RCS.    "ident"
1150: 20 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 77 68 69   command and whi
1160: 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20  ch contains the 
1170: 6c 69 62 72 61 72 79 20 76 65 72 73 69 6f 6e 20  library version 
1180: 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  number.</li>.<li
1190: 3e 46 69 78 20 61 6e 20 61 73 73 65 72 74 69 6f  >Fix an assertio
11a0: 6e 20 66 61 69 6c 75 72 65 20 74 68 61 74 20 6f  n failure that o
11b0: 63 63 75 72 72 65 64 20 77 68 65 6e 20 64 65 6c  ccurred when del
11c0: 65 74 69 6e 67 20 61 6c 6c 20 72 6f 77 73 20 6f  eting all rows o
11d0: 66 0a 20 20 20 20 61 20 74 61 62 6c 65 20 77 69  f.    a table wi
11e0: 74 68 20 74 68 65 20 22 63 6f 75 6e 74 5f 63 68  th the "count_ch
11f0: 61 6e 67 65 73 22 20 70 72 61 67 6d 61 20 74 75  anges" pragma tu
1200: 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  rned on.</li>.<l
1210: 69 3e 42 65 74 74 65 72 20 65 72 72 6f 72 20 72  i>Better error r
1220: 65 70 6f 72 74 69 6e 67 20 77 68 65 6e 20 70 72  eporting when pr
1230: 6f 62 6c 65 6d 73 20 6f 63 63 75 72 20 64 75 72  oblems occur dur
1240: 69 6e 67 20 74 68 65 20 61 75 74 6f 6d 61 74 69  ing the automati
1250: 63 0a 20 20 20 20 32 2e 35 2e 36 20 74 6f 20 32  c.    2.5.6 to 2
1260: 2e 36 2e 30 20 64 61 74 61 62 61 73 65 20 66 6f  .6.0 database fo
1270: 72 6d 61 74 20 75 70 67 72 61 64 65 2e 3c 2f 6c  rmat upgrade.</l
1280: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
1290: 20 4a 6c 79 20 31 37 20 28 32 2e 36 2e 30 29 7d   Jly 17 (2.6.0)}
12a0: 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68   {.<li>Change th
12b0: 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69  e format of indi
12c0: 63 65 73 20 74 6f 20 63 6f 72 72 65 63 74 20 61  ces to correct a
12d0: 20 64 65 73 69 67 6e 20 66 6c 61 77 20 74 68 65   design flaw the
12e0: 20 6f 72 69 67 69 6e 61 74 65 64 0a 20 20 20 20   originated.    
12f0: 77 69 74 68 20 76 65 72 73 69 6f 6e 20 32 2e 31  with version 2.1
1300: 2e 30 2e 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  .0.  <font color
1310: 3d 22 72 65 64 22 3e 2a 2a 2a 20 54 68 69 73 20  ="red">*** This 
1320: 69 73 20 61 6e 20 69 6e 63 6f 6d 70 61 74 69 62  is an incompatib
1330: 6c 65 0a 20 20 20 20 66 69 6c 65 20 66 6f 72 6d  le.    file form
1340: 61 74 20 63 68 61 6e 67 65 20 2a 2a 2a 3c 2f 66  at change ***</f
1350: 6f 6e 74 3e 20 20 57 68 65 6e 20 76 65 72 73 69  ont>  When versi
1360: 6f 6e 20 32 2e 36 2e 30 20 6f 72 20 6c 61 74 65  on 2.6.0 or late
1370: 72 20 6f 66 20 74 68 65 0a 20 20 20 20 6c 69 62  r of the.    lib
1380: 72 61 72 79 20 61 74 74 65 6d 70 74 73 20 74 6f  rary attempts to
1390: 20 6f 70 65 6e 20 61 20 64 61 74 61 62 61 73 65   open a database
13a0: 20 66 69 6c 65 20 63 72 65 61 74 65 64 20 62 79   file created by
13b0: 20 76 65 72 73 69 6f 6e 20 32 2e 35 2e 36 20 6f   version 2.5.6 o
13c0: 72 0a 20 20 20 20 65 61 72 6c 69 65 72 2c 20 69  r.    earlier, i
13d0: 74 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63  t will automatic
13e0: 61 6c 6c 79 20 61 6e 64 20 69 72 72 65 76 65 72  ally and irrever
13f0: 73 69 62 6c 79 20 63 6f 6e 76 65 72 74 20 74 68  sibly convert th
1400: 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 2e 0a 20  e file format.. 
1410: 20 20 20 3c 62 3e 4d 61 6b 65 20 62 61 63 6b 75     <b>Make backu
1420: 70 20 63 6f 70 69 65 73 20 6f 66 20 6f 6c 64 65  p copies of olde
1430: 72 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 73  r database files
1440: 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 20   before opening 
1450: 74 68 65 6d 20 77 69 74 68 0a 20 20 20 20 76 65  them with.    ve
1460: 72 73 69 6f 6e 20 32 2e 36 2e 30 20 6f 66 20 74  rsion 2.6.0 of t
1470: 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 62 3e 0a  he library.</b>.
1480: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
1490: 67 20 7b 32 30 30 32 20 4a 6c 79 20 37 20 28 32  g {2002 Jly 7 (2
14a0: 2e 35 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .5.6)} {.<li>Fix
14b0: 20 6d 6f 72 65 20 70 72 6f 62 6c 65 6d 73 20 77   more problems w
14c0: 69 74 68 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 45  ith rollback.  E
14d0: 6e 68 61 6e 63 65 20 74 68 65 20 74 65 73 74 20  nhance the test 
14e0: 73 75 69 74 65 20 74 6f 20 65 78 65 72 63 69 73  suite to exercis
14f0: 65 0a 20 20 20 20 74 68 65 20 72 6f 6c 6c 62 61  e.    the rollba
1500: 63 6b 20 6c 6f 67 69 63 20 65 78 74 65 6e 73 69  ck logic extensi
1510: 76 65 6c 79 20 69 6e 20 6f 72 64 65 72 20 74 6f  vely in order to
1520: 20 70 72 65 76 65 6e 74 20 61 6e 79 20 66 75 74   prevent any fut
1530: 75 72 65 20 70 72 6f 62 6c 65 6d 73 2e 0a 20 20  ure problems..  
1540: 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20    </li>.}..chng 
1550: 7b 32 30 30 32 20 4a 6c 79 20 36 20 28 32 2e 35  {2002 Jly 6 (2.5
1560: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .5)} {.<li>Fix a
1570: 20 62 75 67 20 77 68 69 63 68 20 63 6f 75 6c 64   bug which could
1580: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
1590: 63 6f 72 72 75 70 74 69 6f 6e 20 64 75 72 69 6e  corruption durin
15a0: 67 20 61 20 72 6f 6c 6c 62 61 63 6b 2e 0a 20 20  g a rollback..  
15b0: 20 20 54 68 69 73 20 62 75 67 73 20 77 61 73 20    This bugs was 
15c0: 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65  introduced in ve
15d0: 72 73 69 6f 6e 20 32 2e 34 2e 30 20 62 79 20 74  rsion 2.4.0 by t
15e0: 68 65 20 66 72 65 65 6c 69 73 74 0a 20 20 20 20  he freelist.    
15f0: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20  optimization of 
1600: 63 68 65 63 6b 69 6e 67 20 5b 34 31 30 5d 2e 3c  checking [410].<
1610: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  /li>.<li>Fix a b
1620: 75 67 20 69 6e 20 61 67 67 72 65 67 61 74 65 20  ug in aggregate 
1630: 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 56 49  functions for VI
1640: 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74  EWs.</li>.<li>Ot
1650: 68 65 72 20 6d 69 6e 6f 72 20 63 68 61 6e 67 65  her minor change
1660: 73 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e  s and enhancemen
1670: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
1680: 20 7b 32 30 30 32 20 4a 6c 79 20 31 20 28 32 2e   {2002 Jly 1 (2.
1690: 35 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65  5.4)} {.<li>Make
16a0: 20 74 68 65 20 22 41 53 22 20 6b 65 79 77 6f 72   the "AS" keywor
16b0: 64 20 6f 70 74 69 6f 6e 61 6c 20 61 67 61 69 6e  d optional again
16c0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 64  .</li>.<li>The d
16d0: 61 74 61 74 79 70 65 20 6f 66 20 63 6f 6c 75 6d  atatype of colum
16e0: 6e 73 20 6e 6f 77 20 61 70 70 65 61 72 20 69 6e  ns now appear in
16f0: 20 74 68 65 20 34 74 68 20 61 72 67 75 6d 65 6e   the 4th argumen
1700: 74 20 74 6f 20 74 68 65 0a 20 20 20 20 63 61 6c  t to the.    cal
1710: 6c 62 61 63 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  lback.</li>.<li>
1720: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
1730: 69 74 65 5f 6f 70 65 6e 5f 61 75 78 5f 66 69 6c  ite_open_aux_fil
1740: 65 28 29 3c 2f 62 3e 20 41 50 49 2c 20 74 68 6f  e()</b> API, tho
1750: 75 67 68 20 69 74 20 69 73 20 73 74 69 6c 6c 0a  ugh it is still.
1760: 20 20 20 20 6d 6f 73 74 6c 79 20 75 6e 64 6f 63      mostly undoc
1770: 75 6d 65 6e 74 65 64 20 61 6e 64 20 75 6e 74 65  umented and unte
1780: 73 74 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  sted.</li>.<li>A
1790: 64 64 65 64 20 61 64 64 69 74 69 6f 6e 61 6c 20  dded additional 
17a0: 74 65 73 74 20 63 61 73 65 73 20 61 6e 64 20 66  test cases and f
17b0: 69 78 65 64 20 61 20 66 65 77 20 62 75 67 73 20  ixed a few bugs 
17c0: 74 68 61 74 20 74 68 6f 73 65 0a 20 20 20 20 74  that those.    t
17d0: 65 73 74 20 63 61 73 65 73 20 66 6f 75 6e 64 2e  est cases found.
17e0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
17f0: 30 30 32 20 4a 75 6e 20 32 34 20 28 32 2e 35 2e  002 Jun 24 (2.5.
1800: 33 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  3)} {.<li>Bug fi
1810: 78 3a 20 20 44 61 74 61 62 61 73 65 20 63 6f 72  x:  Database cor
1820: 72 75 70 74 69 6f 6e 20 63 61 6e 20 6f 63 63 75  ruption can occu
1830: 72 20 64 75 65 20 74 6f 20 74 68 65 20 6f 70 74  r due to the opt
1840: 69 6d 69 7a 61 74 69 6f 6e 0a 20 20 20 20 74 68  imization.    th
1850: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
1860: 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34  d in version 2.4
1870: 2e 30 20 28 63 68 65 63 6b 2d 69 6e 20 5b 34 31  .0 (check-in [41
1880: 30 5d 29 2e 20 20 54 68 65 20 70 72 6f 62 6c 65  0]).  The proble
1890: 6d 0a 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 77  m.    should now
18a0: 20 62 65 20 66 69 78 65 64 2e 20 20 54 68 65 20   be fixed.  The 
18b0: 75 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 73 20  use of versions 
18c0: 32 2e 34 2e 30 20 74 68 72 6f 75 67 68 20 32 2e  2.4.0 through 2.
18d0: 35 2e 32 20 69 73 0a 20 20 20 20 6e 6f 74 20 72  5.2 is.    not r
18e0: 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 6c 69 3e  ecommended.</li>
18f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
1900: 75 6e 20 32 34 20 28 32 2e 35 2e 32 29 7d 20 7b  un 24 (2.5.2)} {
1910: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e  .<li>Added the n
1920: 65 77 20 3c 62 3e 53 51 4c 49 54 45 5f 54 45 4d  ew <b>SQLITE_TEM
1930: 50 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 74 61 62  P_MASTER</b> tab
1940: 6c 65 20 77 68 69 63 68 20 72 65 63 6f 72 64 73  le which records
1950: 20 74 68 65 20 73 63 68 65 6d 61 0a 20 20 20 20   the schema.    
1960: 66 6f 72 20 74 65 6d 70 6f 72 61 72 79 20 74 61  for temporary ta
1970: 62 6c 65 73 20 69 6e 20 74 68 65 20 73 61 6d 65  bles in the same
1980: 20 77 61 79 20 74 68 61 74 20 3c 62 3e 53 51 4c   way that <b>SQL
1990: 49 54 45 5f 4d 41 53 54 45 52 3c 2f 62 3e 20 64  ITE_MASTER</b> d
19a0: 6f 65 73 20 66 6f 72 0a 20 20 20 20 70 65 72 73  oes for.    pers
19b0: 69 73 74 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f  istent tables.</
19c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 6e  li>.<li>Added an
19d0: 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 74 6f   optimization to
19e0: 20 55 4e 49 4f 4e 20 41 4c 4c 3c 2f 6c 69 3e 0a   UNION ALL</li>.
19f0: 3c 6c 69 3e 46 69 78 65 64 20 61 20 62 75 67 20  <li>Fixed a bug 
1a00: 69 6e 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e  in the processin
1a10: 67 20 6f 66 20 4c 45 46 54 20 4f 55 54 45 52 20  g of LEFT OUTER 
1a20: 4a 4f 49 4e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  JOIN</li>.<li>Th
1a30: 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6e  e LIMIT clause n
1a40: 6f 77 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73  ow works on subs
1a50: 65 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  elects</li>.<li>
1a60: 4f 52 44 45 52 20 42 59 20 77 6f 72 6b 73 20 6f  ORDER BY works o
1a70: 6e 20 73 75 62 73 65 6c 65 63 74 73 3c 2f 6c 69  n subselects</li
1a80: 3e 0a 3c 6c 69 3e 54 68 65 72 65 20 69 73 20 61  >.<li>There is a
1a90: 20 6e 65 77 20 54 79 70 65 4f 66 28 29 20 66 75   new TypeOf() fu
1aa0: 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 64  nction used to d
1ab0: 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 65  etermine if an e
1ac0: 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 69 73  xpression.    is
1ad0: 20 6e 75 6d 65 72 69 63 20 6f 72 20 74 65 78 74   numeric or text
1ae0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 75 74 6f 69  .</li>.<li>Autoi
1af0: 6e 63 72 65 6d 65 6e 74 20 6e 6f 77 20 77 6f 72  ncrement now wor
1b00: 6b 73 20 66 6f 72 20 49 4e 53 45 52 54 20 66 72  ks for INSERT fr
1b10: 6f 6d 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69  om a SELECT.</li
1b20: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
1b30: 4a 75 6e 20 31 39 20 28 32 2e 35 2e 31 29 7d 20  Jun 19 (2.5.1)} 
1b40: 7b 0a 3c 6c 69 3e 54 68 65 20 71 75 65 72 79 20  {.<li>The query 
1b50: 6f 70 74 69 6d 69 7a 65 72 20 6e 6f 77 20 61 74  optimizer now at
1b60: 74 65 6d 70 74 73 20 74 6f 20 69 6d 70 6c 65 6d  tempts to implem
1b70: 65 6e 74 20 74 68 65 20 4f 52 44 45 52 20 42 59  ent the ORDER BY
1b80: 20 63 6c 61 75 73 65 0a 20 20 20 20 75 73 69 6e   clause.    usin
1b90: 67 20 61 6e 20 69 6e 64 65 78 2e 20 20 53 6f 72  g an index.  Sor
1ba0: 74 69 6e 67 20 69 73 20 73 74 69 6c 6c 20 75 73  ting is still us
1bb0: 65 64 20 69 66 20 6e 6f 74 20 73 75 69 74 61 62  ed if not suitab
1bc0: 6c 65 20 69 6e 64 65 78 20 69 73 0a 20 20 20 20  le index is.    
1bd0: 61 76 61 69 6c 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  available.</li>.
1be0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75  }..chng {2002 Ju
1bf0: 6e 20 31 37 20 28 32 2e 35 2e 30 29 7d 20 7b 0a  n 17 (2.5.0)} {.
1c00: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
1c10: 74 20 66 6f 72 20 72 6f 77 20 74 72 69 67 67 65  t for row trigge
1c20: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
1c30: 65 64 20 53 51 4c 2d 39 32 20 63 6f 6d 70 6c 69  ed SQL-92 compli
1c40: 61 6e 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20  ant handling of 
1c50: 4e 55 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NULLs.</li>.<li>
1c60: 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  Add support for 
1c70: 74 68 65 20 66 75 6c 6c 20 53 51 4c 2d 39 32 20  the full SQL-92 
1c80: 6a 6f 69 6e 20 73 79 6e 74 61 78 20 61 6e 64 20  join syntax and 
1c90: 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73  LEFT OUTER JOINs
1ca0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 75 62 6c  .</li>.<li>Doubl
1cb0: 65 2d 71 75 6f 74 65 64 20 73 74 72 69 6e 67 73  e-quoted strings
1cc0: 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20   interpreted as 
1cd0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 6e 6f 74  column names not
1ce0: 20 74 65 78 74 20 6c 69 74 65 72 61 6c 73 2e 3c   text literals.<
1cf0: 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 72 73 65 20 28  /li>.<li>Parse (
1d00: 62 75 74 20 64 6f 20 6e 6f 74 20 69 6d 70 6c 65  but do not imple
1d10: 6d 65 6e 74 29 20 66 6f 72 65 69 67 6e 20 6b 65  ment) foreign ke
1d20: 79 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  ys.</li>.<li>Per
1d30: 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65  formance improve
1d40: 6d 65 6e 65 74 73 20 69 6e 20 74 68 65 20 70 61  menets in the pa
1d50: 72 73 65 72 2c 20 70 61 67 65 72 2c 20 61 6e 64  rser, pager, and
1d60: 20 57 48 45 52 45 20 63 6c 61 75 73 65 20 63 6f   WHERE clause co
1d70: 64 65 0a 20 20 20 20 67 65 6e 65 72 61 74 6f 72  de.    generator
1d80: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20  .</li>.<li>Make 
1d90: 74 68 65 20 4c 49 4d 49 54 20 63 6c 61 75 73 65  the LIMIT clause
1da0: 20 77 6f 72 6b 20 6f 6e 20 73 75 62 71 75 65 72   work on subquer
1db0: 69 65 73 2e 20 20 28 4f 52 44 45 52 20 42 59 20  ies.  (ORDER BY 
1dc0: 73 74 69 6c 6c 20 64 6f 65 73 20 6e 6f 74 0a 20  still does not. 
1dd0: 20 20 20 77 6f 72 6b 2c 20 74 68 6f 75 67 68 2e     work, though.
1de0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  )</li>.<li>Added
1df0: 20 74 68 65 20 22 25 51 22 20 65 78 70 61 6e 73   the "%Q" expans
1e00: 69 6f 6e 20 74 6f 20 73 71 6c 69 74 65 5f 2a 5f  ion to sqlite_*_
1e10: 70 72 69 6e 74 66 28 29 2e 3c 2f 6c 69 3e 0a 3c  printf().</li>.<
1e20: 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f 6f  li>Bug fixes too
1e30: 20 6e 75 6d 65 72 69 6f 75 73 20 74 6f 20 6d 65   numerious to me
1e40: 6e 74 69 6f 6e 20 28 73 65 65 20 74 68 65 20 63  ntion (see the c
1e50: 68 61 6e 67 65 20 6c 6f 67 29 2e 3c 2f 6c 69 3e  hange log).</li>
1e60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d  .}..chng {2002 M
1e70: 61 79 20 30 39 20 28 32 2e 34 2e 31 32 29 7d 20  ay 09 (2.4.12)} 
1e80: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 67 69  {.<li>Added logi
1e90: 63 20 74 6f 20 64 65 74 65 63 74 20 77 68 65 6e  c to detect when
1ea0: 20 74 68 65 20 6c 69 62 72 61 72 79 20 41 50 49   the library API
1eb0: 20 72 6f 75 74 69 6e 65 73 20 61 72 65 20 63 61   routines are ca
1ec0: 6c 6c 65 64 20 6f 75 74 0a 20 20 20 20 6f 66 20  lled out.    of 
1ed0: 73 65 71 75 65 6e 63 65 2e 3c 2f 6c 69 3e 0a 7d  sequence.</li>.}
1ee0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79  ..chng {2002 May
1ef0: 20 30 38 20 28 32 2e 34 2e 31 31 29 7d 20 7b 0a   08 (2.4.11)} {.
1f00: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6c  <li>Bug fix: Col
1f10: 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20 74 68 65  umn names in the
1f20: 20 72 65 73 75 6c 74 20 73 65 74 20 77 65 72 65   result set were
1f30: 20 6e 6f 74 20 62 65 69 6e 67 20 67 65 6e 65 72   not being gener
1f40: 61 74 65 64 0a 20 20 20 20 63 6f 72 72 65 63 74  ated.    correct
1f50: 6c 79 20 66 6f 72 20 73 6f 6d 65 20 28 72 61 74  ly for some (rat
1f60: 68 65 72 20 63 6f 6d 70 6c 65 78 29 20 56 49 45  her complex) VIE
1f70: 57 73 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20  Ws.  This could 
1f80: 63 61 75 73 65 20 61 0a 20 20 20 20 73 65 67 66  cause a.    segf
1f90: 61 75 6c 74 20 75 6e 64 65 72 20 63 65 72 74 61  ault under certa
1fa0: 69 6e 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73  in circumstances
1fb0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1fc0: 32 30 30 32 20 4d 61 79 20 30 32 20 28 32 2e 34  2002 May 02 (2.4
1fd0: 2e 31 30 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  .10)} {.<li>Bug 
1fe0: 66 69 78 3a 20 47 65 6e 65 72 61 74 65 20 63 6f  fix: Generate co
1ff0: 72 72 65 63 74 20 63 6f 6c 75 6d 6e 20 68 65 61  rrect column hea
2000: 64 65 72 73 20 77 68 65 6e 20 61 20 63 6f 6d 70  ders when a comp
2010: 6f 75 6e 64 20 53 45 4c 45 43 54 20 69 73 20 75  ound SELECT is u
2020: 73 65 64 0a 20 20 20 20 61 73 20 61 20 73 75 62  sed.    as a sub
2030: 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  query.</li>.<li>
2040: 41 64 64 65 64 20 74 68 65 20 73 71 6c 69 74 65  Added the sqlite
2050: 5f 65 6e 63 6f 64 65 5f 62 69 6e 61 72 79 28 29  _encode_binary()
2060: 20 61 6e 64 20 73 71 6c 69 74 65 5f 64 65 63 6f   and sqlite_deco
2070: 64 65 5f 62 69 6e 61 72 79 28 29 20 66 75 6e 63  de_binary() func
2080: 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 74 68 65  tions to.    the
2090: 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20 42   source tree.  B
20a0: 75 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20  ut they are not 
20b0: 79 65 74 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20  yet linked into 
20c0: 74 68 65 20 6c 69 62 72 61 72 79 2e 3c 2f 6c 69  the library.</li
20d0: 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  >.<li>Documentat
20e0: 69 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69  ion updates.</li
20f0: 3e 0a 3c 6c 69 3e 45 78 70 6f 72 74 20 74 68 65  >.<li>Export the
2100: 20 73 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28   sqlite_changes(
2110: 29 20 66 75 6e 63 74 69 6f 6e 20 66 72 6f 6d 20  ) function from 
2120: 77 69 6e 64 6f 77 73 20 44 4c 4c 73 2e 3c 2f 6c  windows DLLs.</l
2130: 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20  i>.<li>Bug fix: 
2140: 44 6f 20 6e 6f 74 20 61 74 74 65 6d 70 74 20 74  Do not attempt t
2150: 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61 74  he subquery flat
2160: 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 61 74  tening optimizat
2170: 69 6f 6e 20 6f 6e 20 71 75 65 72 69 65 73 0a 20  ion on queries. 
2180: 20 20 20 74 68 61 74 20 6c 61 63 6b 20 61 20 46     that lack a F
2190: 52 4f 4d 20 63 6c 61 75 73 65 2e 20 20 54 6f 20  ROM clause.  To 
21a0: 64 6f 20 73 6f 20 63 61 75 73 65 73 20 61 20 73  do so causes a s
21b0: 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a  egfault.</li>.}.
21c0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
21d0: 32 31 20 28 32 2e 34 2e 39 29 7d 20 7b 0a 3c 6c  21 (2.4.9)} {.<l
21e0: 69 3e 46 69 78 20 61 20 62 75 67 20 74 68 61 74  i>Fix a bug that
21f0: 20 77 61 73 20 63 61 75 73 69 6e 67 20 74 68 65   was causing the
2200: 20 70 72 65 63 6f 6d 70 69 6c 65 64 20 62 69 6e   precompiled bin
2210: 61 72 79 20 6f 66 20 53 51 4c 49 54 45 2e 45 58  ary of SQLITE.EX
2220: 45 20 74 6f 0a 20 20 20 20 72 65 70 6f 72 74 20  E to.    report 
2230: 22 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 22 20  "out of memory" 
2240: 75 6e 64 65 72 20 57 69 6e 64 6f 77 73 20 39 38  under Windows 98
2250: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2260: 32 30 30 32 20 41 70 72 20 32 30 20 28 32 2e 34  2002 Apr 20 (2.4
2270: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20  .8)} {.<li>Make 
2280: 73 75 72 65 20 56 49 45 57 73 20 61 72 65 20 63  sure VIEWs are c
2290: 72 65 61 74 65 64 20 61 66 74 65 72 20 74 68 65  reated after the
22a0: 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67  ir corresponding
22b0: 20 54 41 42 4c 45 73 20 69 6e 20 74 68 65 0a 20   TABLEs in the. 
22c0: 20 20 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65     output of the
22d0: 20 3c 62 3e 2e 64 75 6d 70 3c 2f 62 3e 20 63 6f   <b>.dump</b> co
22e0: 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73 68 65  mmand in the she
22f0: 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65  ll.</li>.<li>Spe
2300: 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 3a  ed improvements:
2310: 20 44 6f 20 6e 6f 74 20 64 6f 20 73 79 6e 63 68   Do not do synch
2320: 72 6f 6e 6f 75 73 20 75 70 64 61 74 65 73 20 6f  ronous updates o
2330: 6e 20 54 45 4d 50 20 74 61 62 6c 65 73 2e 3c 2f  n TEMP tables.</
2340: 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 69 6d 70  li>.<li>Many imp
2350: 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64 20 65 6e  rovements and en
2360: 68 61 6e 63 65 6d 65 6e 74 73 20 74 6f 20 74 68  hancements to th
2370: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
2380: 69 3e 4d 61 6b 65 20 74 68 65 20 47 4c 4f 42 20  i>Make the GLOB 
2390: 61 6e 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f  and LIKE operato
23a0: 72 73 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61  rs functions tha
23b0: 74 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64  t can be overrid
23c0: 64 65 6e 0a 20 20 20 20 62 79 20 61 20 70 72 6f  den.    by a pro
23d0: 67 72 61 6d 6d 65 72 2e 20 20 54 68 69 73 20 61  grammer.  This a
23e0: 6c 6c 6f 77 73 2c 20 66 6f 72 20 65 78 61 6d 70  llows, for examp
23f0: 6c 65 2c 20 74 68 65 20 4c 49 4b 45 20 6f 70 65  le, the LIKE ope
2400: 72 61 74 6f 72 20 74 6f 0a 20 20 20 20 62 65 20  rator to.    be 
2410: 63 68 61 6e 67 65 64 20 74 6f 20 62 65 20 63 61  changed to be ca
2420: 73 65 20 73 65 6e 73 69 74 69 76 65 2e 3c 2f 6c  se sensitive.</l
2430: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
2440: 20 41 70 72 20 30 36 20 28 32 2e 34 2e 37 29 7d   Apr 06 (2.4.7)}
2450: 20 7b 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61   {.<li>Add the a
2460: 62 69 6c 69 74 79 20 74 6f 20 70 75 74 20 54 41  bility to put TA
2470: 42 4c 45 2e 2a 20 69 6e 20 74 68 65 20 63 6f 6c  BLE.* in the col
2480: 75 6d 6e 20 6c 69 73 74 20 6f 66 20 61 0a 20 20  umn list of a.  
2490: 20 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65    SELECT stateme
24a0: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72  nt.</li>.<li>Per
24b0: 6d 69 74 20 53 45 4c 45 43 54 20 73 74 61 74 65  mit SELECT state
24c0: 6d 65 6e 74 73 20 77 69 74 68 6f 75 74 20 61 20  ments without a 
24d0: 46 52 4f 4d 20 63 6c 61 75 73 65 2e 3c 2f 6c 69  FROM clause.</li
24e0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
24f0: 3c 62 3e 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72  <b>last_insert_r
2500: 6f 77 69 64 28 29 3c 2f 62 3e 20 53 51 4c 20 66  owid()</b> SQL f
2510: 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c  unction.</li>.<l
2520: 69 3e 44 6f 20 6e 6f 74 20 63 6f 75 6e 74 20 72  i>Do not count r
2530: 6f 77 73 20 77 68 65 72 65 20 74 68 65 20 49 47  ows where the IG
2540: 4e 4f 52 45 20 63 6f 6e 66 6c 69 63 74 20 72 65  NORE conflict re
2550: 73 75 6c 74 69 6f 6e 20 6f 63 63 75 72 73 20 69  sultion occurs i
2560: 6e 0a 20 20 20 20 74 68 65 20 72 6f 77 20 63 6f  n.    the row co
2570: 75 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61  unt.</li>.<li>Ma
2580: 6b 65 20 73 75 72 65 20 66 75 6e 63 74 69 6f 6e  ke sure function
2590: 73 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e  s expressions in
25a0: 20 74 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75   the VALUES clau
25b0: 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 0a  se of an INSERT.
25c0: 20 20 20 20 61 72 65 20 63 6f 72 72 65 63 74 2e      are correct.
25d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
25e0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 63 68  the <b>sqlite_ch
25f0: 61 6e 67 65 73 28 29 3c 2f 62 3e 20 41 50 49 20  anges()</b> API 
2600: 66 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75  function to retu
2610: 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20  rn the number.  
2620: 20 20 6f 66 20 72 6f 77 20 74 68 61 74 20 63 68    of row that ch
2630: 61 6e 67 65 64 20 69 6e 20 74 68 65 20 6d 6f 73  anged in the mos
2640: 74 20 72 65 63 65 6e 74 20 6f 70 65 72 61 74 69  t recent operati
2650: 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  on.</li>.}..chng
2660: 20 7b 32 30 30 32 20 41 70 72 20 30 32 20 28 32   {2002 Apr 02 (2
2670: 2e 34 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67  .4.6)} {.<li>Bug
2680: 20 66 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20   fix: Correctly 
2690: 68 61 6e 64 6c 65 20 74 65 72 6d 73 20 69 6e 20  handle terms in 
26a0: 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65  the WHERE clause
26b0: 20 6f 66 20 61 20 6a 6f 69 6e 20 74 68 61 74 0a   of a join that.
26c0: 20 20 20 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61      do not conta
26d0: 69 6e 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20  in a comparison 
26e0: 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 7d  operator.</li>.}
26f0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72  ..chng {2002 Apr
2700: 20 30 31 20 28 32 2e 34 2e 35 29 7d 20 7b 0a 3c   01 (2.4.5)} {.<
2710: 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 72 72  li>Bug fix: Corr
2720: 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 66 75 6e  ectly handle fun
2730: 63 74 69 6f 6e 73 20 74 68 61 74 20 61 70 70 65  ctions that appe
2740: 61 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20  ar in the WHERE 
2750: 63 6c 61 75 73 65 0a 20 20 20 20 6f 66 20 61 20  clause.    of a 
2760: 6a 6f 69 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57  join.</li>.<li>W
2770: 68 65 6e 20 74 68 65 20 50 52 41 47 4d 41 20 76  hen the PRAGMA v
2780: 64 62 65 5f 74 72 61 63 65 3d 4f 4e 20 69 73 20  dbe_trace=ON is 
2790: 73 65 74 2c 20 63 6f 72 72 65 63 74 6c 79 20 70  set, correctly p
27a0: 72 69 6e 74 20 74 68 65 20 50 33 20 6f 70 65 72  rint the P3 oper
27b0: 61 6e 64 0a 20 20 20 20 76 61 6c 75 65 20 77 68  and.    value wh
27c0: 65 6e 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74  en it is a point
27d0: 65 72 20 74 6f 20 61 20 73 74 72 75 63 74 75 72  er to a structur
27e0: 65 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20  e rather than a 
27f0: 70 6f 69 6e 74 65 72 20 74 6f 0a 20 20 20 20 61  pointer to.    a
2800: 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c   string.</li>.<l
2810: 69 3e 57 68 65 6e 20 69 6e 73 65 72 74 69 6e 67  i>When inserting
2820: 20 61 6e 20 65 78 70 6c 69 63 69 74 20 4e 55 4c   an explicit NUL
2830: 4c 20 69 6e 74 6f 20 61 6e 20 49 4e 54 45 47 45  L into an INTEGE
2840: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63  R PRIMARY KEY, c
2850: 6f 6e 76 65 72 74 0a 20 20 20 20 74 68 65 20 4e  onvert.    the N
2860: 55 4c 4c 20 76 61 6c 75 65 20 69 6e 74 6f 20 61  ULL value into a
2870: 20 75 6e 69 71 75 65 20 6b 65 79 20 61 75 74 6f   unique key auto
2880: 6d 61 74 69 63 61 6c 6c 79 2e 3c 2f 6c 69 3e 0a  matically.</li>.
2890: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  }..chng {2002 Ma
28a0: 72 20 32 34 20 28 32 2e 34 2e 34 29 7d 20 7b 0a  r 24 (2.4.4)} {.
28b0: 3c 6c 69 3e 41 6c 6c 6f 77 20 22 56 49 45 57 22  <li>Allow "VIEW"
28c0: 20 74 6f 20 62 65 20 61 20 63 6f 6c 75 6d 6e 20   to be a column 
28d0: 6e 61 6d 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  name</li>.<li>Ad
28e0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
28f0: 43 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e 73  CASE expressions
2900: 20 28 70 61 74 63 68 20 66 72 6f 6d 20 44 61 6e   (patch from Dan
2910: 20 4b 65 6e 6e 65 64 79 29 3c 2f 6c 69 3e 0a 3c   Kennedy)</li>.<
2920: 6c 69 3e 41 64 64 65 64 20 52 50 4d 53 20 74 6f  li>Added RPMS to
2930: 20 74 68 65 20 64 65 6c 69 76 65 72 79 20 28 70   the delivery (p
2940: 61 74 63 68 65 73 20 66 72 6f 6d 20 44 6f 75 67  atches from Doug
2950: 20 48 65 6e 72 79 29 3c 2f 6c 69 3e 0a 3c 6c 69   Henry)</li>.<li
2960: 3e 46 69 78 20 74 79 70 6f 73 20 69 6e 20 74 68  >Fix typos in th
2970: 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c  e documentation<
2980: 2f 6c 69 3e 0a 3c 6c 69 3e 43 75 74 20 6f 76 65  /li>.<li>Cut ove
2990: 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20  r configuration 
29a0: 6d 61 6e 61 67 65 6d 65 6e 74 20 74 6f 20 61 20  management to a 
29b0: 6e 65 77 20 43 56 53 20 72 65 70 6f 73 69 74 6f  new CVS reposito
29c0: 72 79 20 77 69 74 68 0a 20 20 20 20 69 74 73 20  ry with.    its 
29d0: 6f 77 6e 20 43 56 53 54 72 61 63 20 62 75 67 20  own CVSTrac bug 
29e0: 74 72 61 63 6b 69 6e 67 20 73 79 73 74 65 6d 2e  tracking system.
29f0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2a00: 30 30 32 20 4d 61 72 20 32 32 20 28 32 2e 34 2e  002 Mar 22 (2.4.
2a10: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  3)} {.<li>Fix a 
2a20: 62 75 67 20 69 6e 20 53 45 4c 45 43 54 20 74 68  bug in SELECT th
2a30: 61 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 61  at occurs when a
2a40: 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54   compound SELECT
2a50: 20 69 73 20 75 73 65 64 20 61 73 20 61 0a 20 20   is used as a.  
2a60: 20 20 73 75 62 71 75 65 72 79 20 69 6e 20 74 68    subquery in th
2a70: 65 20 46 52 4f 4d 20 6f 66 20 61 20 53 45 4c 45  e FROM of a SELE
2a80: 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  CT.</li>.<li>The
2a90: 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74   <b>sqlite_get_t
2aa0: 61 62 6c 65 28 29 3c 2f 62 3e 20 66 75 6e 63 74  able()</b> funct
2ab0: 69 6f 6e 20 6e 6f 77 20 72 65 74 75 72 6e 73 20  ion now returns 
2ac0: 61 6e 20 65 72 72 6f 72 20 69 66 20 79 6f 75 0a  an error if you.
2ad0: 20 20 20 20 67 69 76 65 20 69 74 20 74 77 6f 20      give it two 
2ae0: 6f 72 20 6d 6f 72 65 20 53 45 4c 45 43 54 73 20  or more SELECTs 
2af0: 74 68 61 74 20 72 65 74 75 72 6e 20 64 69 66 66  that return diff
2b00: 65 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66  erent numbers of
2b10: 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 7d   columns.</li>.}
2b20: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72  ..chng {2002 Mar
2b30: 20 31 34 20 28 32 2e 34 2e 32 29 7d 20 7b 0a 3c   14 (2.4.2)} {.<
2b40: 6c 69 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20  li>Bug fix: Fix 
2b50: 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69  an assertion fai
2b60: 6c 75 72 65 20 74 68 61 74 20 6f 63 63 75 72 72  lure that occurr
2b70: 65 64 20 77 68 65 6e 20 52 4f 57 49 44 20 77 61  ed when ROWID wa
2b80: 73 20 61 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 69  s a column.    i
2b90: 6e 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65  n a SELECT state
2ba0: 6d 65 6e 74 20 6f 6e 20 61 20 76 69 65 77 2e 3c  ment on a view.<
2bb0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
2bc0: 3a 20 46 69 78 20 61 6e 20 75 6e 69 6e 69 74 69  : Fix an uniniti
2bd0: 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20  alized variable 
2be0: 69 6e 20 74 68 65 20 56 44 42 45 20 74 68 61 74  in the VDBE that
2bf0: 20 77 6f 75 6c 64 20 63 6f 75 6c 64 20 61 6e 0a   would could an.
2c00: 20 20 20 20 61 73 73 65 72 74 20 66 61 69 6c 75      assert failu
2c10: 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b  re.</li>.<li>Mak
2c20: 65 20 74 68 65 20 6f 73 2e 68 20 68 65 61 64 65  e the os.h heade
2c30: 72 20 66 69 6c 65 20 6d 6f 72 65 20 72 6f 62 75  r file more robu
2c40: 73 74 20 69 6e 20 64 65 74 65 63 74 69 6e 67 20  st in detecting 
2c50: 77 68 65 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65  when the compile
2c60: 20 69 73 0a 20 20 20 20 66 6f 72 20 77 69 6e 64   is.    for wind
2c70: 6f 77 73 20 61 6e 64 20 77 68 65 6e 20 69 74 20  ows and when it 
2c80: 69 73 20 66 6f 72 20 75 6e 69 78 2e 3c 2f 6c 69  is for unix.</li
2c90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
2ca0: 4d 61 72 20 31 33 20 28 32 2e 34 2e 31 29 7d 20  Mar 13 (2.4.1)} 
2cb0: 7b 0a 3c 6c 69 3e 55 73 69 6e 67 20 61 6e 20 75  {.<li>Using an u
2cc0: 6e 6e 61 6d 65 64 20 73 75 62 71 75 65 72 79 20  nnamed subquery 
2cd0: 69 6e 20 61 20 46 52 4f 4d 20 63 6c 61 75 73 65  in a FROM clause
2ce0: 20 77 6f 75 6c 64 20 63 61 75 73 65 20 61 20 73   would cause a s
2cf0: 65 67 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c  egfault.</li>.<l
2d00: 69 3e 54 68 65 20 70 61 72 73 65 72 20 6e 6f 77  i>The parser now
2d10: 20 69 6e 73 69 73 74 73 20 6f 6e 20 73 65 65 69   insists on seei
2d20: 6e 67 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 6f  ng a semicolon o
2d30: 72 20 74 68 65 20 65 6e 64 20 6f 66 20 69 6e 70  r the end of inp
2d40: 75 74 20 62 65 66 6f 72 65 0a 20 20 20 20 65 78  ut before.    ex
2d50: 65 63 75 74 69 6e 67 20 61 20 73 74 61 74 65 6d  ecuting a statem
2d60: 65 6e 74 2e 20 20 54 68 69 73 20 61 76 6f 69 64  ent.  This avoid
2d70: 73 20 61 6e 20 61 63 63 69 64 65 6e 74 61 6c 20  s an accidental 
2d80: 64 69 73 61 73 74 65 72 20 69 66 20 74 68 65 0a  disaster if the.
2d90: 20 20 20 20 57 48 45 52 45 20 6b 65 79 77 6f 72      WHERE keywor
2da0: 64 20 69 73 20 6d 69 73 73 70 65 6c 6c 65 64 20  d is misspelled 
2db0: 69 6e 20 61 6e 20 55 50 44 41 54 45 20 6f 72 20  in an UPDATE or 
2dc0: 44 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74  DELETE statement
2dd0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 0a 63 68 6e 67 20  .</li>.}...chng 
2de0: 7b 32 30 30 32 20 4d 61 72 20 31 30 20 28 32 2e  {2002 Mar 10 (2.
2df0: 34 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  4.0)} {.<li>Chan
2e00: 67 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  ge the name of t
2e10: 68 65 20 73 61 6e 69 74 79 5f 63 68 65 63 6b 20  he sanity_check 
2e20: 50 52 41 47 4d 41 20 74 6f 20 3c 62 3e 69 6e 74  PRAGMA to <b>int
2e30: 65 67 72 69 74 79 5f 63 68 65 63 6b 3c 2f 62 3e  egrity_check</b>
2e40: 0a 20 20 20 20 61 6e 64 20 6d 61 6b 65 20 69 74  .    and make it
2e50: 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6c   available in al
2e60: 6c 20 63 6f 6d 70 69 6c 65 73 2e 3c 2f 6c 69 3e  l compiles.</li>
2e70: 0a 3c 6c 69 3e 53 45 4c 45 43 54 20 6d 69 6e 28  .<li>SELECT min(
2e80: 29 20 6f 72 20 6d 61 78 28 29 20 6f 66 20 61 6e  ) or max() of an
2e90: 20 69 6e 64 65 78 65 64 20 63 6f 6c 75 6d 6e 20   indexed column 
2ea0: 77 69 74 68 20 6e 6f 20 57 48 45 52 45 20 6f 72  with no WHERE or
2eb0: 20 47 52 4f 55 50 20 42 59 0a 20 20 20 20 63 6c   GROUP BY.    cl
2ec0: 61 75 73 65 20 69 73 20 68 61 6e 64 6c 65 64 20  ause is handled 
2ed0: 61 73 20 61 20 73 70 65 63 69 61 6c 20 63 61 73  as a special cas
2ee0: 65 20 77 68 69 63 68 20 61 76 6f 69 64 73 20 61  e which avoids a
2ef0: 20 63 6f 6d 70 6c 65 74 65 20 74 61 62 6c 65 20   complete table 
2f00: 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  scan.</li>.<li>A
2f10: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e  utomatically gen
2f20: 65 72 61 74 65 64 20 52 4f 57 49 44 73 20 61 72  erated ROWIDs ar
2f30: 65 20 6e 6f 77 20 73 65 71 75 65 6e 74 69 61 6c  e now sequential
2f40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
2f50: 74 20 61 6c 6c 6f 77 20 64 6f 74 2d 63 6f 6d 6d  t allow dot-comm
2f60: 61 6e 64 73 20 6f 66 20 74 68 65 20 63 6f 6d 6d  ands of the comm
2f70: 61 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 20 74  and-line shell t
2f80: 6f 20 6f 63 63 75 72 20 69 6e 20 74 68 65 0a 20  o occur in the. 
2f90: 20 20 20 6d 69 64 64 6c 65 20 6f 66 20 61 20 72     middle of a r
2fa0: 65 61 6c 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e  eal SQL command.
2fb0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69  </li>.<li>Modifi
2fc0: 63 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 22  cations to the "
2fd0: 6c 65 6d 6f 6e 22 20 70 61 72 73 65 72 20 67 65  lemon" parser ge
2fe0: 6e 65 72 61 74 6f 72 20 73 6f 20 74 68 61 74 20  nerator so that 
2ff0: 74 68 65 20 70 61 72 73 65 72 20 74 61 62 6c 65  the parser table
3000: 73 0a 20 20 20 20 61 72 65 20 34 20 74 69 6d 65  s.    are 4 time
3010: 73 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a  s smaller.</li>.
3020: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
3030: 74 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e  t for user-defin
3040: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6d 70  ed functions imp
3050: 6c 65 6d 65 6e 74 65 64 20 69 6e 20 43 2e 3c 2f  lemented in C.</
3060: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
3070: 70 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 66 75  pport for new fu
3080: 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e 63 6f 61 6c  nctions: <b>coal
3090: 65 73 63 65 28 29 3c 2f 62 3e 2c 20 3c 62 3e 6c  esce()</b>, <b>l
30a0: 6f 77 65 72 28 29 3c 2f 62 3e 2c 0a 20 20 20 20  ower()</b>,.    
30b0: 3c 62 3e 75 70 70 65 72 28 29 3c 2f 62 3e 2c 20  <b>upper()</b>, 
30c0: 61 6e 64 20 3c 62 3e 72 61 6e 64 6f 6d 28 29 3c  and <b>random()<
30d0: 2f 62 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  /b>.<li>Added su
30e0: 70 70 6f 72 74 20 66 6f 72 20 56 49 45 57 73 2e  pport for VIEWs.
30f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
3100: 74 68 65 20 73 75 62 71 75 65 72 79 20 66 6c 61  the subquery fla
3110: 74 74 65 6e 69 6e 67 20 6f 70 74 69 6d 69 7a 65  ttening optimize
3120: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69  r.</li>.<li>Modi
3130: 66 69 65 64 20 74 68 65 20 42 2d 54 72 65 65 20  fied the B-Tree 
3140: 61 6e 64 20 50 61 67 65 72 20 6d 6f 64 75 6c 65  and Pager module
3150: 73 20 73 6f 20 74 68 61 74 20 64 69 73 6b 20 70  s so that disk p
3160: 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74  ages that do not
3170: 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20 72 65 61  .    contain rea
3180: 6c 20 64 61 74 61 20 28 66 72 65 65 20 70 61 67  l data (free pag
3190: 65 73 29 20 61 72 65 20 6e 6f 74 20 6a 6f 75 72  es) are not jour
31a0: 6e 61 6c 6c 65 64 20 61 6e 64 20 61 72 65 20 6e  nalled and are n
31b0: 6f 74 0a 20 20 20 20 77 72 69 74 74 65 6e 20 66  ot.    written f
31c0: 72 6f 6d 20 6d 65 6d 6f 72 79 20 62 61 63 6b 20  rom memory back 
31d0: 74 6f 20 74 68 65 20 64 69 73 6b 20 77 68 65 6e  to the disk when
31e0: 20 74 68 65 79 20 63 68 61 6e 67 65 2e 20 20 54   they change.  T
31f0: 68 69 73 20 64 6f 65 73 20 6e 6f 74 20 0a 20 20  his does not .  
3200: 20 20 69 6d 70 61 63 74 20 64 61 74 61 62 61 73    impact databas
3210: 65 20 69 6e 74 65 67 72 69 74 79 2c 20 73 69 6e  e integrity, sin
3220: 63 65 20 74 68 65 0a 20 20 20 20 70 61 67 65 73  ce the.    pages
3230: 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 72 65 61 6c   contain no real
3240: 20 64 61 74 61 2c 20 62 75 74 20 69 74 20 64 6f   data, but it do
3250: 65 73 20 6d 61 6b 65 20 6c 61 72 67 65 20 49 4e  es make large IN
3260: 53 45 52 54 20 6f 70 65 72 61 74 69 6f 6e 73 0a  SERT operations.
3270: 20 20 20 20 61 62 6f 75 74 20 32 2e 35 20 74 69      about 2.5 ti
3280: 6d 65 73 20 66 61 73 74 65 72 20 61 6e 64 20 6c  mes faster and l
3290: 61 72 67 65 20 44 45 4c 45 54 45 73 20 61 62 6f  arge DELETEs abo
32a0: 75 74 20 35 20 74 69 6d 65 73 20 66 61 73 74 65  ut 5 times faste
32b0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 64 65  r.</li>.<li>Made
32c0: 20 74 68 65 20 43 41 43 48 45 5f 53 49 5a 45 20   the CACHE_SIZE 
32d0: 70 72 61 67 6d 61 20 70 65 72 73 69 73 74 65 6e  pragma persisten
32e0: 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  t</li>.<li>Added
32f0: 20 74 68 65 20 53 59 4e 43 48 52 4f 4e 4f 55 53   the SYNCHRONOUS
3300: 20 70 72 61 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69   pragma</li>.<li
3310: 3e 46 69 78 65 64 20 61 20 62 75 67 20 74 68 61  >Fixed a bug tha
3320: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 75 70  t was causing up
3330: 64 61 74 65 73 20 74 6f 20 66 61 69 6c 20 69 6e  dates to fail in
3340: 73 69 64 65 20 6f 66 20 74 72 61 6e 73 61 63 74  side of transact
3350: 69 6f 6e 73 20 77 68 65 6e 0a 20 20 20 20 74 68  ions when.    th
3360: 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e 74 61  e database conta
3370: 69 6e 65 64 20 61 20 74 65 6d 70 6f 72 61 72 79  ined a temporary
3380: 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   table.</li>.}..
3390: 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20 31  chng {2002 Feb 1
33a0: 38 20 28 32 2e 33 2e 33 29 7d 20 7b 0a 3c 6c 69  8 (2.3.3)} {.<li
33b0: 3e 41 6c 6c 6f 77 20 69 64 65 6e 74 69 66 69 65  >Allow identifie
33c0: 72 73 20 74 6f 20 62 65 20 71 75 6f 74 65 64 20  rs to be quoted 
33d0: 69 6e 20 73 71 75 61 72 65 20 62 72 61 63 6b 65  in square bracke
33e0: 74 73 2c 20 66 6f 72 20 63 6f 6d 70 61 74 69 62  ts, for compatib
33f0: 69 6c 69 74 79 0a 20 20 20 20 77 69 74 68 20 4d  ility.    with M
3400: 53 2d 41 63 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c  S-Access.</li>.<
3410: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
3420: 20 66 6f 72 20 73 75 62 2d 71 75 65 72 69 65 73   for sub-queries
3430: 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 63 6c 61   in the FROM cla
3440: 75 73 65 20 6f 66 20 61 20 53 45 4c 45 43 54 2e  use of a SELECT.
3450: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65 20 65  </li>.<li>More e
3460: 66 66 69 63 69 65 6e 74 20 69 6d 70 6c 65 6d 65  fficient impleme
3470: 6e 74 61 74 69 6f 6e 20 6f 66 20 73 71 6c 69 74  ntation of sqlit
3480: 65 46 69 6c 65 45 78 69 73 74 73 28 29 20 75 6e  eFileExists() un
3490: 64 65 72 20 57 69 6e 64 6f 77 73 2e 0a 20 20 20  der Windows..   
34a0: 20 28 62 79 20 4a 6f 65 6c 20 4c 75 73 63 79 29   (by Joel Luscy)
34b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 56 41  </li>.<li>The VA
34c0: 4c 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61  LUES clause of a
34d0: 6e 20 49 4e 53 45 52 54 20 63 61 6e 20 6e 6f 77  n INSERT can now
34e0: 20 63 6f 6e 74 61 69 6e 20 65 78 70 72 65 73 73   contain express
34f0: 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 0a  ions, including.
3500: 20 20 20 20 73 63 61 6c 61 72 20 53 45 4c 45 43      scalar SELEC
3510: 54 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  T clauses.</li>.
3520: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
3530: 74 20 66 6f 72 20 43 52 45 41 54 45 20 54 41 42  t for CREATE TAB
3540: 4c 45 20 41 53 20 53 45 4c 45 43 54 3c 2f 6c 69  LE AS SELECT</li
3550: 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43  >.<li>Bug fix: C
3560: 72 65 61 74 69 6e 67 20 61 6e 64 20 64 72 6f 70  reating and drop
3570: 70 69 6e 67 20 61 20 74 61 62 6c 65 20 61 6c 6c  ping a table all
3580: 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67 6c 65   within a single
3590: 0a 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e  .    transaction
35a0: 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69 6e 67   was not working
35b0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
35c0: 32 30 30 32 20 46 65 62 20 31 34 20 28 32 2e 33  2002 Feb 14 (2.3
35d0: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
35e0: 69 78 3a 20 54 68 65 72 65 20 77 61 73 20 61 6e  ix: There was an
35f0: 20 69 6e 63 6f 72 72 65 63 74 20 61 73 73 65 72   incorrect asser
3600: 74 28 29 20 69 6e 20 70 61 67 65 72 2e 63 2e 20  t() in pager.c. 
3610: 20 54 68 65 20 72 65 61 6c 20 63 6f 64 65 20 77   The real code w
3620: 61 73 0a 20 20 20 20 61 6c 6c 20 63 6f 72 72 65  as.    all corre
3630: 63 74 20 28 61 73 20 66 61 72 20 61 73 20 69 73  ct (as far as is
3640: 20 6b 6e 6f 77 6e 29 20 73 6f 20 65 76 65 72 79   known) so every
3650: 74 68 69 6e 67 20 73 68 6f 75 6c 64 20 77 6f 72  thing should wor
3660: 6b 20 4f 4b 20 69 66 20 79 6f 75 0a 20 20 20 20  k OK if you.    
3670: 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 2d 44 4e  compile with -DN
3680: 44 45 42 55 47 3d 31 2e 20 20 57 68 65 6e 20 61  DEBUG=1.  When a
3690: 73 73 65 72 74 73 20 61 72 65 20 6e 6f 74 20 64  sserts are not d
36a0: 69 73 61 62 6c 65 64 2c 20 74 68 65 72 65 0a 20  isabled, there. 
36b0: 20 20 20 63 6f 75 6c 64 20 62 65 20 61 20 66 61     could be a fa
36c0: 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ult.</li>.}..chn
36d0: 67 20 7b 32 30 30 32 20 46 65 62 20 31 33 20 28  g {2002 Feb 13 (
36e0: 32 2e 33 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.3.1)} {.<li>Bu
36f0: 67 20 66 69 78 3a 20 41 6e 20 61 73 73 65 72 74  g fix: An assert
3700: 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e 67 20  ion was failing 
3710: 69 66 20 22 50 52 41 47 4d 41 20 66 75 6c 6c 5f  if "PRAGMA full_
3720: 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3d 4f 4e 3b  column_names=ON;
3730: 22 20 77 61 73 0a 20 20 20 20 73 65 74 20 61 6e  " was.    set an
3740: 64 20 79 6f 75 20 64 69 64 20 61 20 71 75 65 72  d you did a quer
3750: 79 20 74 68 61 74 20 75 73 65 64 20 61 20 72 6f  y that used a ro
3760: 77 69 64 2c 20 6c 69 6b 65 20 74 68 69 73 3a 20  wid, like this: 
3770: 20 0a 20 20 20 20 22 53 45 4c 45 43 54 20 72 6f   .    "SELECT ro
3780: 77 69 64 2c 20 2a 20 46 52 4f 4d 20 2e 2e 2e 22  wid, * FROM ..."
3790: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
37a0: 32 30 30 32 20 4a 61 6e 20 33 30 20 28 32 2e 33  2002 Jan 30 (2.3
37b0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .0)} {.<li>Fix a
37c0: 20 73 65 72 69 6f 75 73 20 62 75 67 20 69 6e 20   serious bug in 
37d0: 74 68 65 20 49 4e 53 45 52 54 20 63 6f 6d 6d 61  the INSERT comma
37e0: 6e 64 20 77 68 69 63 68 20 77 61 73 20 63 61 75  nd which was cau
37f0: 73 69 6e 67 20 64 61 74 61 20 74 6f 20 67 6f 0a  sing data to go.
3800: 20 20 20 20 69 6e 74 6f 20 74 68 65 20 77 72 6f      into the wro
3810: 6e 67 20 63 6f 6c 75 6d 6e 73 20 69 66 20 74 68  ng columns if th
3820: 65 20 64 61 74 61 20 73 6f 75 72 63 65 20 77 61  e data source wa
3830: 73 20 61 20 53 45 4c 45 43 54 20 61 6e 64 20 74  s a SELECT and t
3840: 68 65 20 49 4e 53 45 52 54 0a 20 20 20 20 63 6c  he INSERT.    cl
3850: 61 75 73 65 73 20 73 70 65 63 69 66 69 65 64 20  auses specified 
3860: 69 74 73 20 63 6f 6c 75 6d 6e 73 20 69 6e 20 73  its columns in s
3870: 6f 6d 65 20 6f 72 64 65 72 20 6f 74 68 65 72 20  ome order other 
3880: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74  than the default
3890: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
38a0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
38b0: 72 65 73 6f 6c 76 65 20 63 6f 6e 73 74 72 61 69  resolve constrai
38c0: 6e 74 20 63 6f 6e 66 6c 69 63 74 73 20 69 73 20  nt conflicts is 
38d0: 77 61 79 73 20 6f 74 68 65 72 20 74 68 61 6e 0a  ways other than.
38e0: 20 20 20 20 61 6e 20 61 62 6f 72 74 20 61 6e 64      an abort and
38f0: 20 72 6f 6c 6c 62 61 63 6b 2e 20 20 53 65 65 20   rollback.  See 
3900: 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  the documentatio
3910: 6e 20 6f 6e 20 74 68 65 20 22 4f 4e 20 43 4f 4e  n on the "ON CON
3920: 46 4c 49 43 54 22 0a 20 20 20 20 63 6c 61 75 73  FLICT".    claus
3930: 65 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 3c 2f  e for details.</
3940: 6c 69 3e 0a 3c 6c 69 3e 54 65 6d 70 6f 72 61 72  li>.<li>Temporar
3950: 79 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 77 20  y files are now 
3960: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 65  automatically de
3970: 6c 65 74 65 64 20 62 79 20 74 68 65 20 6f 70 65  leted by the ope
3980: 72 61 74 69 6e 67 20 73 79 73 74 65 6d 0a 20 20  rating system.  
3990: 20 20 77 68 65 6e 20 63 6c 6f 73 65 64 2e 20 20    when closed.  
39a0: 54 68 65 72 65 20 61 72 65 20 6e 6f 20 6d 6f 72  There are no mor
39b0: 65 20 64 61 6e 67 6c 69 6e 67 20 74 65 6d 70 6f  e dangling tempo
39c0: 72 61 72 79 20 66 69 6c 65 73 20 6f 6e 20 61 20  rary files on a 
39d0: 70 72 6f 67 72 61 6d 0a 20 20 20 20 63 72 61 73  program.    cras
39e0: 68 2e 20 20 28 49 66 20 74 68 65 20 4f 53 20 63  h.  (If the OS c
39f0: 72 61 73 68 65 73 2c 20 66 73 63 6b 20 77 69 6c  rashes, fsck wil
3a00: 6c 20 64 65 6c 65 74 65 20 74 68 65 20 66 69 6c  l delete the fil
3a10: 65 20 61 66 74 65 72 20 72 65 62 6f 6f 74 20 0a  e after reboot .
3a20: 20 20 20 20 75 6e 64 65 72 20 55 6e 69 78 2e 20      under Unix. 
3a30: 20 49 20 64 6f 20 6e 6f 74 20 6b 6e 6f 77 20 77   I do not know w
3a40: 68 61 74 20 68 61 70 70 65 6e 73 20 75 6e 64 65  hat happens unde
3a50: 72 20 57 69 6e 64 6f 77 73 2e 29 3c 2f 6c 69 3e  r Windows.)</li>
3a60: 0a 3c 6c 69 3e 4e 4f 54 20 4e 55 4c 4c 20 63 6f  .<li>NOT NULL co
3a70: 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 68 6f  nstraints are ho
3a80: 6e 6f 72 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nored.</li>.<li>
3a90: 54 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64  The COPY command
3aa0: 20 70 75 74 73 20 4e 55 4c 4c 73 20 69 6e 20 63   puts NULLs in c
3ab0: 6f 6c 75 6d 6e 73 20 77 68 6f 73 65 20 64 61 74  olumns whose dat
3ac0: 61 20 69 73 20 27 5c 4e 27 2e 3c 2f 6c 69 3e 0a  a is '\N'.</li>.
3ad0: 3c 6c 69 3e 49 6e 20 74 68 65 20 43 4f 50 59 20  <li>In the COPY 
3ae0: 63 6f 6d 6d 61 6e 64 2c 20 62 61 63 6b 73 6c 61  command, backsla
3af0: 73 68 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73  sh can now be us
3b00: 65 64 20 74 6f 20 65 73 63 61 70 65 20 61 20 6e  ed to escape a n
3b10: 65 77 6c 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ewline.</li>.<li
3b20: 3e 41 64 64 65 64 20 74 68 65 20 53 41 4e 49 54  >Added the SANIT
3b30: 59 5f 43 48 45 43 4b 20 70 72 61 67 6d 61 2e 3c  Y_CHECK pragma.<
3b40: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
3b50: 30 32 20 4a 61 6e 20 32 38 20 28 32 2e 32 2e 35  02 Jan 28 (2.2.5
3b60: 29 7d 20 7b 0a 3c 6c 69 3e 49 6d 70 6f 72 74 61  )} {.<li>Importa
3b70: 6e 74 20 62 75 67 20 66 69 78 3a 20 74 68 65 20  nt bug fix: the 
3b80: 49 4e 20 6f 70 65 72 61 74 6f 72 20 77 61 73 20  IN operator was 
3b90: 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 69 66 20 65  not working if e
3ba0: 69 74 68 65 72 20 74 68 65 0a 20 20 20 20 6c 65  ither the.    le
3bb0: 66 74 2d 68 61 6e 64 20 6f 72 20 72 69 67 68 74  ft-hand or right
3bc0: 2d 68 61 6e 64 20 73 69 64 65 20 77 61 73 20 64  -hand side was d
3bd0: 65 72 69 76 65 64 20 66 72 6f 6d 20 61 6e 20 49  erived from an I
3be0: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b  NTEGER PRIMARY K
3bf0: 45 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20  EY.</li>.<li>Do 
3c00: 6e 6f 74 20 65 73 63 61 70 65 20 74 68 65 20 62  not escape the b
3c10: 61 63 6b 73 6c 61 73 68 20 27 5c 27 20 63 68 61  ackslash '\' cha
3c20: 72 61 63 74 65 72 20 69 6e 20 74 68 65 20 6f 75  racter in the ou
3c30: 74 70 75 74 20 6f 66 20 74 68 65 0a 20 20 20 20  tput of the.    
3c40: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 63 6f  <b>sqlite</b> co
3c50: 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 65 73  mmand-line acces
3c60: 73 20 70 72 6f 67 72 61 6d 2e 3c 2f 6c 69 3e 0a  s program.</li>.
3c70: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61  }..chng {2002 Ja
3c80: 6e 20 32 32 20 28 32 2e 32 2e 34 29 7d 20 7b 0a  n 22 (2.2.4)} {.
3c90: 3c 6c 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f  <li>The label to
3ca0: 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e   the right of an
3cb0: 20 41 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d   AS in the colum
3cc0: 6e 20 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45  n list of a SELE
3cd0: 43 54 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62  CT can now.    b
3ce0: 65 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f  e used as part o
3cf0: 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20  f an expression 
3d00: 69 6e 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52  in the WHERE, OR
3d10: 44 45 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59  DER BY, GROUP BY
3d20: 2c 20 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56  , and/or.    HAV
3d30: 49 4e 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69  ING clauses.</li
3d40: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
3d50: 69 6e 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72  in the <b>-separ
3d60: 61 74 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64  ator</b> command
3d70: 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20  -line option to 
3d80: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
3d90: 3e 0a 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f  >.    command.</
3da0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  li>.<li>Fix a pr
3db0: 6f 62 6c 65 6d 20 77 69 74 68 20 74 68 65 20 73  oblem with the s
3dc0: 6f 72 74 20 6f 72 64 65 72 20 77 68 65 6e 20 63  ort order when c
3dd0: 6f 6d 70 61 72 69 6e 67 20 75 70 70 65 72 2d 63  omparing upper-c
3de0: 61 73 65 20 73 74 72 69 6e 67 73 20 61 67 61 69  ase strings agai
3df0: 6e 73 74 0a 20 20 20 20 63 68 61 72 61 63 74 65  nst.    characte
3e00: 72 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20  rs greater than 
3e10: 27 5a 27 20 62 75 74 20 6c 65 73 73 20 74 68 61  'Z' but less tha
3e20: 6e 20 27 61 27 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n 'a'.</li>.<li>
3e30: 52 65 70 6f 72 74 20 61 6e 20 65 72 72 6f 72 20  Report an error 
3e40: 69 66 20 61 6e 20 4f 52 44 45 52 20 42 59 20 6f  if an ORDER BY o
3e50: 72 20 47 52 4f 55 50 20 42 59 20 65 78 70 72 65  r GROUP BY expre
3e60: 73 73 69 6f 6e 20 69 73 20 63 6f 6e 73 74 61 6e  ssion is constan
3e70: 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  t.</li>.}..chng 
3e80: 7b 32 30 30 32 20 4a 61 6e 20 31 36 20 28 32 2e  {2002 Jan 16 (2.
3e90: 32 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.3)} {.<li>Fix 
3ea0: 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73  warning messages
3eb0: 20 69 6e 20 56 43 2b 2b 20 37 2e 30 2e 20 20 28   in VC++ 7.0.  (
3ec0: 50 61 74 63 68 65 73 20 66 72 6f 6d 20 6e 69 63  Patches from nic
3ed0: 6f 6c 61 73 33 35 32 30 30 31 29 3c 2f 6c 69 3e  olas352001)</li>
3ee0: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6c 69  .<li>Make the li
3ef0: 62 72 61 72 79 20 74 68 72 65 61 64 2d 73 61 66  brary thread-saf
3f00: 65 2e 20 20 28 54 68 65 20 63 6f 64 65 20 69 73  e.  (The code is
3f10: 20 74 68 65 72 65 20 61 6e 64 20 61 70 70 65 61   there and appea
3f20: 72 73 20 74 6f 20 77 6f 72 6b 0a 20 20 20 20 62  rs to work.    b
3f30: 75 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20  ut has not been 
3f40: 73 74 72 65 73 73 65 64 2e 29 3c 2f 6c 69 3e 0a  stressed.)</li>.
3f50: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 6e 65  <li>Added the ne
3f60: 77 20 3c 62 3e 73 71 6c 69 74 65 5f 6c 61 73 74  w <b>sqlite_last
3f70: 5f 69 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c  _insert_rowid()<
3f80: 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  /b> API function
3f90: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
3fa0: 32 30 30 32 20 4a 61 6e 20 31 33 20 28 32 2e 32  2002 Jan 13 (2.2
3fb0: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
3fc0: 69 78 3a 20 41 6e 20 61 73 73 65 72 74 69 6f 6e  ix: An assertion
3fd0: 20 77 61 73 20 66 61 69 6c 69 6e 67 20 77 68 65   was failing whe
3fe0: 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 74 61  n a temporary ta
3ff0: 62 6c 65 20 77 69 74 68 20 61 6e 20 69 6e 64 65  ble with an inde
4000: 78 0a 20 20 20 20 68 61 64 20 74 68 65 20 73 61  x.    had the sa
4010: 6d 65 20 6e 61 6d 65 20 61 73 20 61 20 70 65 72  me name as a per
4020: 6d 61 6e 65 6e 74 20 74 61 62 6c 65 20 63 72 65  manent table cre
4030: 61 74 65 64 20 62 79 20 61 20 73 65 70 61 72 61  ated by a separa
4040: 74 65 20 70 72 6f 63 65 73 73 2e 3c 2f 6c 69 3e  te process.</li>
4050: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 55 70  .<li>Bug fix: Up
4060: 64 61 74 65 73 20 74 6f 20 74 61 62 6c 65 73 20  dates to tables 
4070: 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6e 20 49 4e  containing an IN
4080: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
4090: 59 20 61 6e 64 20 61 6e 0a 20 20 20 20 69 6e 64  Y and an.    ind
40a0: 65 78 20 63 6f 75 6c 64 20 66 61 69 6c 2e 3c 2f  ex could fail.</
40b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
40c0: 32 20 4a 61 6e 20 39 20 28 32 2e 32 2e 31 29 7d  2 Jan 9 (2.2.1)}
40d0: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
40e0: 41 6e 20 61 74 74 65 6d 70 74 20 74 6f 20 64 65  An attempt to de
40f0: 6c 65 74 65 20 61 20 73 69 6e 67 6c 65 20 72 6f  lete a single ro
4100: 77 20 6f 66 20 61 20 74 61 62 6c 65 20 77 69 74  w of a table wit
4110: 68 20 61 20 57 48 45 52 45 0a 20 20 20 20 63 6c  h a WHERE.    cl
4120: 61 75 73 65 20 6f 66 20 22 52 4f 57 49 44 3d 78  ause of "ROWID=x
4130: 22 20 77 68 65 6e 20 6e 6f 20 73 75 63 68 20 72  " when no such r
4140: 6f 77 69 64 20 65 78 69 73 74 73 20 77 61 73 20  owid exists was 
4150: 63 61 75 73 69 6e 67 20 61 6e 20 65 72 72 6f 72  causing an error
4160: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
4170: 69 78 3a 20 50 61 73 73 69 6e 67 20 69 6e 20 61  ix: Passing in a
4180: 20 4e 55 4c 4c 20 61 73 20 74 68 65 20 33 72 64   NULL as the 3rd
4190: 20 70 61 72 61 6d 65 74 65 72 20 74 6f 20 3c 62   parameter to <b
41a0: 3e 73 71 6c 69 74 65 5f 6f 70 65 6e 28 29 3c 2f  >sqlite_open()</
41b0: 62 3e 0a 20 20 20 20 77 6f 75 6c 64 20 73 6f 6d  b>.    would som
41c0: 65 74 69 6d 65 73 20 63 61 75 73 65 20 61 20 63  etimes cause a c
41d0: 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c  oredump.</li>.<l
41e0: 69 3e 42 75 67 20 66 69 78 3a 20 44 52 4f 50 20  i>Bug fix: DROP 
41f0: 54 41 42 4c 45 20 66 6f 6c 6c 6f 77 65 64 20 62  TABLE followed b
4200: 79 20 61 20 43 52 45 41 54 45 20 54 41 42 4c 45  y a CREATE TABLE
4210: 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e   with the same n
4220: 61 6d 65 20 61 6c 6c 0a 20 20 20 20 77 69 74 68  ame all.    with
4230: 69 6e 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e  in a single tran
4240: 73 61 63 74 69 6f 6e 20 77 61 73 20 63 61 75 73  saction was caus
4250: 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c  ing a coredump.<
4260: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c  /li>.<li>Makefil
4270: 65 20 75 70 64 61 74 65 73 20 66 72 6f 6d 20 41  e updates from A
4280: 2e 20 52 6f 74 74 6d 61 6e 6e 3c 2f 6c 69 3e 0a  . Rottmann</li>.
4290: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65  }..chng {2001 De
42a0: 63 20 32 32 20 28 32 2e 32 2e 30 29 7d 20 7b 0a  c 22 (2.2.0)} {.
42b0: 3c 6c 69 3e 43 6f 6c 75 6d 6e 73 20 6f 66 20 74  <li>Columns of t
42c0: 79 70 65 20 49 4e 54 45 47 45 52 20 50 52 49 4d  ype INTEGER PRIM
42d0: 41 52 59 20 4b 45 59 20 61 72 65 20 61 63 74 75  ARY KEY are actu
42e0: 61 6c 6c 79 20 75 73 65 64 20 61 73 20 74 68 65  ally used as the
42f0: 20 70 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79   primary.    key
4300: 20 69 6e 20 75 6e 64 65 72 6c 79 69 6e 67 20 42   in underlying B
4310: 2d 54 72 65 65 20 72 65 70 72 65 73 65 6e 74 61  -Tree representa
4320: 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 61 62 6c  tion of the tabl
4330: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 65 76 65  e.</li>.<li>Seve
4340: 72 61 6c 20 6f 62 73 63 75 72 65 2c 20 75 6e 72  ral obscure, unr
4350: 65 6c 61 74 65 64 20 62 75 67 73 20 77 65 72 65  elated bugs were
4360: 20 66 6f 75 6e 64 20 61 6e 64 20 66 69 78 65 64   found and fixed
4370: 20 77 68 69 6c 65 20 0a 20 20 20 20 69 6d 70 6c   while .    impl
4380: 65 6d 65 6e 74 65 64 20 74 68 65 20 69 6e 74 65  emented the inte
4390: 67 65 72 20 70 72 69 6d 61 72 79 20 6b 65 79 20  ger primary key 
43a0: 63 68 61 6e 67 65 20 6f 66 20 74 68 65 20 70 72  change of the pr
43b0: 65 76 69 6f 75 73 20 62 75 6c 6c 65 74 2e 3c 2f  evious bullet.</
43c0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
43d0: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 70 65  e ability to spe
43e0: 63 69 66 79 20 22 2a 22 20 61 73 20 70 61 72 74  cify "*" as part
43f0: 20 6f 66 20 61 20 6c 61 72 67 65 72 20 63 6f 6c   of a larger col
4400: 75 6d 6e 20 6c 69 73 74 20 69 6e 0a 20 20 20 20  umn list in.    
4410: 74 68 65 20 72 65 73 75 6c 74 20 73 65 63 74 69  the result secti
4420: 6f 6e 20 6f 66 20 61 20 53 45 4c 45 43 54 20 73  on of a SELECT s
4430: 74 61 74 65 6d 65 6e 74 2e 20 20 46 6f 72 20 65  tatement.  For e
4440: 78 61 6d 70 6c 65 3a 0a 20 20 20 20 3c 6e 6f 62  xample:.    <nob
4450: 72 3e 22 3c 62 3e 53 45 4c 45 43 54 20 72 6f 77  r>"<b>SELECT row
4460: 69 64 2c 20 2a 20 46 52 4f 4d 20 74 61 62 6c 65  id, * FROM table
4470: 31 3b 3c 2f 62 3e 22 3c 2f 6e 6f 62 72 3e 2e 3c  1;</b>"</nobr>.<
4480: 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 73  /li>.<li>Updates
4490: 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 20 61 6e 64   to comments and
44a0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c   documentation.<
44b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
44c0: 30 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 37  01 Dec 14 (2.1.7
44d0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
44e0: 75 67 20 69 6e 20 3c 62 3e 43 52 45 41 54 45 20  ug in <b>CREATE 
44f0: 54 45 4d 50 4f 52 41 52 59 20 54 41 42 4c 45 3c  TEMPORARY TABLE<
4500: 2f 62 3e 20 77 68 69 63 68 20 77 61 73 20 63 61  /b> which was ca
4510: 75 73 69 6e 67 20 74 68 65 0a 20 20 20 20 74 61  using the.    ta
4520: 62 6c 65 20 74 6f 20 62 65 20 69 6e 69 74 69 61  ble to be initia
4530: 6c 6c 79 20 61 6c 6c 6f 63 61 74 65 64 20 69 6e  lly allocated in
4540: 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61   the main databa
4550: 73 65 20 66 69 6c 65 20 69 6e 73 74 65 61 64 0a  se file instead.
4560: 20 20 20 20 6f 66 20 69 6e 20 74 68 65 20 73 65      of in the se
4570: 70 61 72 61 74 65 20 74 65 6d 70 6f 72 61 72 79  parate temporary
4580: 20 66 69 6c 65 2e 20 20 54 68 69 73 20 62 75 67   file.  This bug
4590: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 74 68 65   could cause the
45a0: 20 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20   library.    to 
45b0: 73 75 66 66 65 72 20 61 6e 20 61 73 73 65 72 74  suffer an assert
45c0: 69 6f 6e 20 66 61 69 6c 75 72 65 20 61 6e 64 20  ion failure and 
45d0: 69 74 20 63 6f 75 6c 64 20 63 61 75 73 65 20 22  it could cause "
45e0: 70 61 67 65 20 6c 65 61 6b 73 22 20 69 6e 20 74  page leaks" in t
45f0: 68 65 0a 20 20 20 20 6d 61 69 6e 20 64 61 74 61  he.    main data
4600: 62 61 73 65 20 66 69 6c 65 2e 0a 3c 6c 69 3e 46  base file..<li>F
4610: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
4620: 62 2d 74 72 65 65 20 73 75 62 73 79 73 74 65 6d  b-tree subsystem
4630: 20 74 68 61 74 20 63 6f 75 6c 64 20 73 6f 6d 65   that could some
4640: 74 69 6d 65 73 20 63 61 75 73 65 20 74 68 65 20  times cause the 
4650: 66 69 72 73 74 0a 20 20 20 20 72 6f 77 20 6f 66  first.    row of
4660: 20 61 20 74 61 62 6c 65 20 74 6f 20 62 65 20 72   a table to be r
4670: 65 70 65 61 74 65 64 20 64 75 72 69 6e 67 20 61  epeated during a
4680: 20 64 61 74 61 62 61 73 65 20 73 63 61 6e 2e 3c   database scan.<
4690: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
46a0: 30 31 20 44 65 63 20 31 34 20 28 32 2e 31 2e 36  01 Dec 14 (2.1.6
46b0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65  )} {.<li>Fix the
46c0: 20 6c 6f 63 6b 69 6e 67 20 6d 65 63 68 61 6e 69   locking mechani
46d0: 73 6d 20 79 65 74 20 61 67 61 69 6e 20 74 6f 20  sm yet again to 
46e0: 70 72 65 76 65 6e 74 0a 20 20 20 20 3c 62 3e 73  prevent.    <b>s
46f0: 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e  qlite_exec()</b>
4700: 20 66 72 6f 6d 20 72 65 74 75 72 6e 69 6e 67 20   from returning 
4710: 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a  SQLITE_PROTOCOL.
4720: 20 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c      unnecessaril
4730: 79 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74 68  y.  This time th
4740: 65 20 62 75 67 20 77 61 73 20 61 20 72 61 63 65  e bug was a race
4750: 20 63 6f 6e 64 69 74 69 6f 6e 20 69 6e 0a 20 20   condition in.  
4760: 20 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20 63 6f    the locking co
4770: 64 65 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65  de.  This change
4780: 20 65 66 66 65 63 74 73 20 62 6f 74 68 20 50 4f   effects both PO
4790: 53 49 58 20 61 6e 64 20 57 69 6e 64 6f 77 73 20  SIX and Windows 
47a0: 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  users.</li>.}..c
47b0: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 36 20  hng {2001 Dec 6 
47c0: 28 32 2e 31 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46  (2.1.5)} {.<li>F
47d0: 69 78 20 66 6f 72 20 61 6e 6f 74 68 65 72 20 70  ix for another p
47e0: 72 6f 62 6c 65 6d 20 28 75 6e 72 65 6c 61 74 65  roblem (unrelate
47f0: 64 20 74 6f 20 74 68 65 20 6f 6e 65 20 66 69 78  d to the one fix
4800: 65 64 20 69 6e 20 32 2e 31 2e 34 29 20 0a 20 20  ed in 2.1.4) .  
4810: 20 20 74 68 61 74 20 73 6f 6d 65 74 69 6d 65 73    that sometimes
4820: 20 63 61 75 73 65 73 20 3c 62 3e 73 71 6c 69 74   causes <b>sqlit
4830: 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20 74 6f 20  e_exec()</b> to 
4840: 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50 52  return SQLITE_PR
4850: 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63  OTOCOL.    unnec
4860: 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20  essarily.  This 
4870: 74 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73  time the bug was
4880: 0a 20 20 20 20 69 6e 20 74 68 65 20 50 4f 53 49  .    in the POSI
4890: 58 20 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 20 61  X locking code a
48a0: 6e 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 66  nd should not ef
48b0: 66 65 63 74 20 77 69 6e 64 6f 77 73 20 75 73 65  fect windows use
48c0: 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  rs.</li>.}..chng
48d0: 20 7b 32 30 30 31 20 44 65 63 20 34 20 28 32 2e   {2001 Dec 4 (2.
48e0: 31 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 53 6f 6d 65  1.4)} {.<li>Some
48f0: 74 69 6d 65 73 20 3c 62 3e 73 71 6c 69 74 65 5f  times <b>sqlite_
4900: 65 78 65 63 28 29 3c 2f 62 3e 20 77 6f 75 6c 64  exec()</b> would
4910: 20 72 65 74 75 72 6e 20 53 51 4c 49 54 45 5f 50   return SQLITE_P
4920: 52 4f 54 4f 43 4f 4c 20 77 68 65 6e 20 69 74 0a  ROTOCOL when it.
4930: 20 20 20 20 73 68 6f 75 6c 64 20 68 61 76 65 20      should have 
4940: 72 65 74 75 72 6e 65 64 20 53 51 4c 49 54 45 5f  returned SQLITE_
4950: 42 55 53 59 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  BUSY.</li>.<li>T
4960: 68 65 20 66 69 78 20 74 6f 20 74 68 65 20 70 72  he fix to the pr
4970: 65 76 69 6f 75 73 20 62 75 67 20 75 6e 63 6f 76  evious bug uncov
4980: 65 72 65 64 20 61 20 64 65 61 64 6c 6f 63 6b 20  ered a deadlock 
4990: 77 68 69 63 68 20 77 61 73 20 61 6c 73 6f 0a 20  which was also. 
49a0: 20 20 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 3c     fixed.</li>.<
49b0: 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69  li>Add the abili
49c0: 74 79 20 74 6f 20 70 75 74 20 61 20 73 69 6e 67  ty to put a sing
49d0: 6c 65 20 2e 63 6f 6d 6d 61 6e 64 20 69 6e 20 74  le .command in t
49e0: 68 65 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65  he second argume
49f0: 6e 74 0a 20 20 20 20 6f 66 20 74 68 65 20 73 71  nt.    of the sq
4a00: 6c 69 74 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a  lite shell</li>.
4a10: 3c 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 74  <li>Updates to t
4a20: 68 65 20 46 41 51 3c 2f 6c 69 3e 0a 7d 0a 0a 63  he FAQ</li>.}..c
4a30: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 33  hng {2001 Nov 23
4a40: 20 28 32 2e 31 2e 33 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.3)} {.<li>
4a50: 46 69 78 20 74 68 65 20 62 65 68 61 76 69 6f 72  Fix the behavior
4a60: 20 6f 66 20 63 6f 6d 70 61 72 69 73 6f 6e 20 6f   of comparison o
4a70: 70 65 72 61 74 6f 72 73 20 0a 20 20 20 20 28 65  perators .    (e
4a80: 78 3a 20 22 3c 62 3e 26 6c 74 3c 2f 62 3e 22 2c  x: "<b>&lt</b>",
4a90: 20 22 3c 62 3e 3d 3d 3c 2f 62 3e 22 2c 20 65 74   "<b>==</b>", et
4aa0: 63 2e 29 0a 20 20 20 20 73 6f 20 74 68 61 74 20  c.).    so that 
4ab0: 74 68 65 79 20 61 72 65 20 63 6f 6e 73 69 73 74  they are consist
4ac0: 65 6e 74 20 77 69 74 68 20 74 68 65 20 6f 72 64  ent with the ord
4ad0: 65 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e  er of entries in
4ae0: 20 61 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a   an index.</li>.
4af0: 3c 6c 69 3e 43 6f 72 72 65 63 74 20 68 61 6e 64  <li>Correct hand
4b00: 6c 69 6e 67 20 6f 66 20 69 6e 74 65 67 65 72 73  ling of integers
4b10: 20 69 6e 20 53 51 4c 20 65 78 70 72 65 73 73 69   in SQL expressi
4b20: 6f 6e 73 20 74 68 61 74 20 61 72 65 20 6c 61 72  ons that are lar
4b30: 67 65 72 20 74 68 61 6e 0a 20 20 20 20 77 68 61  ger than.    wha
4b40: 74 20 63 61 6e 20 62 65 20 72 65 70 72 65 73 65  t can be represe
4b50: 6e 74 65 64 20 62 79 20 74 68 65 20 6d 61 63 68  nted by the mach
4b60: 69 6e 65 20 69 6e 74 65 67 65 72 2e 3c 2f 6c 69  ine integer.</li
4b70: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
4b80: 4e 6f 76 20 32 32 20 28 32 2e 31 2e 32 29 7d 20  Nov 22 (2.1.2)} 
4b90: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  {.<li>Changes to
4ba0: 20 73 75 70 70 6f 72 74 20 36 34 2d 62 69 74 20   support 64-bit 
4bb0: 61 72 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f  architectures.</
4bc0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
4bd0: 67 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e 67  g in the locking
4be0: 20 70 72 6f 74 6f 63 6f 6c 2e 3c 2f 6c 69 3e 0a   protocol.</li>.
4bf0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74 68  <li>Fix a bug th
4c00: 61 74 20 63 6f 75 6c 64 20 28 72 61 72 65 6c 79  at could (rarely
4c10: 29 20 63 61 75 73 65 20 74 68 65 20 64 61 74 61  ) cause the data
4c20: 62 61 73 65 20 74 6f 20 62 65 63 6f 6d 65 20 0a  base to become .
4c30: 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20 61      unreadable a
4c40: 66 74 65 72 20 61 20 44 52 4f 50 20 54 41 42 4c  fter a DROP TABL
4c50: 45 20 64 75 65 20 74 6f 20 63 6f 72 72 75 70 74  E due to corrupt
4c60: 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 49 54  ion to the SQLIT
4c70: 45 5f 4d 41 53 54 45 52 0a 20 20 20 20 74 61 62  E_MASTER.    tab
4c80: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  le.</li>.<li>Cha
4c90: 6e 67 65 20 74 68 65 20 63 6f 64 65 20 73 6f 20  nge the code so 
4ca0: 74 68 61 74 20 76 65 72 73 69 6f 6e 20 32 2e 31  that version 2.1
4cb0: 2e 31 20 64 61 74 61 62 61 73 65 73 20 74 68 61  .1 databases tha
4cc0: 74 20 77 65 72 65 20 72 65 6e 64 65 72 65 64 20  t were rendered 
4cd0: 0a 20 20 20 20 75 6e 72 65 61 64 61 62 6c 65 20  .    unreadable 
4ce0: 62 79 20 74 68 65 20 61 62 6f 76 65 20 62 75 67  by the above bug
4cf0: 20 63 61 6e 20 62 65 20 72 65 61 64 20 62 79 20   can be read by 
4d00: 74 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 0a  this version of.
4d10: 20 20 20 20 74 68 65 20 6c 69 62 72 61 72 79 20      the library 
4d20: 65 76 65 6e 20 74 68 6f 75 67 68 20 74 68 65 20  even though the 
4d30: 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74 61  SQLITE_MASTER ta
4d40: 62 6c 65 20 69 73 20 28 73 6c 69 67 68 74 6c 79  ble is (slightly
4d50: 29 0a 20 20 20 20 63 6f 72 72 75 70 74 65 64 2e  ).    corrupted.
4d60: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
4d70: 30 30 31 20 4e 6f 76 20 31 33 20 28 32 2e 31 2e  001 Nov 13 (2.1.
4d80: 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  1)} {.<li>Bug fi
4d90: 78 3a 20 53 6f 6d 65 74 69 6d 65 73 20 61 72 62  x: Sometimes arb
4da0: 69 72 61 72 79 20 73 74 72 69 6e 67 73 20 77 65  irary strings we
4db0: 72 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65  re passed to the
4dc0: 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 66 75   callback.    fu
4dd0: 6e 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20  nction when the 
4de0: 61 63 74 75 61 6c 20 76 61 6c 75 65 20 6f 66 20  actual value of 
4df0: 61 20 63 6f 6c 75 6d 6e 20 77 61 73 20 4e 55 4c  a column was NUL
4e00: 4c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  L.</li>.}..chng 
4e10: 7b 32 30 30 31 20 4e 6f 76 20 31 32 20 28 32 2e  {2001 Nov 12 (2.
4e20: 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  1.0)} {.<li>Chan
4e30: 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66  ge the format of
4e40: 20 64 61 74 61 20 72 65 63 6f 72 64 73 20 73 6f   data records so
4e50: 20 74 68 61 74 20 72 65 63 6f 72 64 73 20 75 70   that records up
4e60: 20 74 6f 20 31 36 4d 42 20 69 6e 20 73 69 7a 65   to 16MB in size
4e70: 0a 20 20 20 20 63 61 6e 20 62 65 20 73 74 6f 72  .    can be stor
4e80: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ed.</li>.<li>Cha
4e90: 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 20 6f  nge the format o
4ea0: 66 20 69 6e 64 69 63 65 73 20 74 6f 20 61 6c 6c  f indices to all
4eb0: 6f 77 20 66 6f 72 20 62 65 74 74 65 72 20 71 75  ow for better qu
4ec0: 65 72 79 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ery optimization
4ed0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 6c 65  .</li>.<li>Imple
4ee0: 6d 65 6e 74 20 74 68 65 20 22 4c 49 4d 49 54 20  ment the "LIMIT 
4ef0: 2e 2e 2e 20 4f 46 46 53 45 54 20 2e 2e 2e 22 20  ... OFFSET ..." 
4f00: 63 6c 61 75 73 65 20 6f 6e 20 53 45 4c 45 43 54  clause on SELECT
4f10: 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69   statements.</li
4f20: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
4f30: 4e 6f 76 20 33 20 28 32 2e 30 2e 38 29 7d 20 7b  Nov 3 (2.0.8)} {
4f40: 0a 3c 6c 69 3e 4d 61 64 65 20 73 65 6c 65 63 74  .<li>Made select
4f50: 65 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e  ed parameters in
4f60: 20 41 50 49 20 66 75 6e 63 74 69 6f 6e 73 20 3c   API functions <
4f70: 62 3e 63 6f 6e 73 74 3c 2f 62 3e 2e 20 54 68 69  b>const</b>. Thi
4f80: 73 20 73 68 6f 75 6c 64 0a 20 20 20 20 62 65 20  s should.    be 
4f90: 66 75 6c 6c 79 20 62 61 63 6b 77 61 72 64 73 20  fully backwards 
4fa0: 63 6f 6d 70 61 74 69 62 6c 65 2e 3c 2f 6c 69 3e  compatible.</li>
4fb0: 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69  .<li>Documentati
4fc0: 6f 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a  on updates</li>.
4fd0: 3c 6c 69 3e 53 69 6d 70 6c 69 66 79 20 74 68 65  <li>Simplify the
4fe0: 20 64 65 73 69 67 6e 20 6f 66 20 74 68 65 20 56   design of the V
4ff0: 44 42 45 20 62 79 20 72 65 73 74 72 69 63 74 69  DBE by restricti
5000: 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  ng the number of
5010: 20 73 6f 72 74 65 72 73 0a 20 20 20 20 61 6e 64   sorters.    and
5020: 20 6c 69 73 74 73 20 74 6f 20 31 2e 0a 20 20 20   lists to 1..   
5030: 20 49 6e 20 70 72 61 63 74 69 63 65 2c 20 6e 6f   In practice, no
5040: 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 73   more than one s
5050: 6f 72 74 65 72 20 61 6e 64 20 6f 6e 65 20 6c 69  orter and one li
5060: 73 74 20 77 61 73 20 65 76 65 72 20 75 73 65 64  st was ever used
5070: 20 61 6e 79 68 6f 77 2e 0a 20 20 20 20 3c 2f 6c   anyhow..    </l
5080: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
5090: 20 4f 63 74 20 32 31 20 28 32 2e 30 2e 37 29 7d   Oct 21 (2.0.7)}
50a0: 20 7b 0a 3c 6c 69 3e 41 6e 79 20 55 54 46 2d 38   {.<li>Any UTF-8
50b0: 20 63 68 61 72 61 63 74 65 72 20 6f 72 20 49 53   character or IS
50c0: 4f 38 38 35 39 20 63 68 61 72 61 63 74 65 72 20  O8859 character 
50d0: 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 70  can be used as p
50e0: 61 72 74 20 6f 66 0a 20 20 20 20 61 6e 20 69 64  art of.    an id
50f0: 65 6e 74 69 66 69 65 72 2e 3c 2f 6c 69 3e 0a 3c  entifier.</li>.<
5100: 6c 69 3e 50 61 74 63 68 65 73 20 66 72 6f 6d 20  li>Patches from 
5110: 43 68 72 69 73 74 69 61 6e 20 57 65 72 6e 65 72  Christian Werner
5120: 20 74 6f 20 69 6d 70 72 6f 76 65 20 4f 44 42 43   to improve ODBC
5130: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61   compatibility a
5140: 6e 64 20 74 6f 0a 20 20 20 20 66 69 78 20 61 20  nd to.    fix a 
5150: 62 75 67 20 69 6e 20 74 68 65 20 72 6f 75 6e 64  bug in the round
5160: 28 29 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69  () function.</li
5170: 3e 0a 3c 6c 69 3e 50 6c 75 67 20 73 6f 6d 65 20  >.<li>Plug some 
5180: 6d 65 6d 6f 72 79 20 6c 65 61 6b 73 20 74 68 61  memory leaks tha
5190: 74 20 75 73 65 20 74 6f 20 6f 63 63 75 72 20 69  t use to occur i
51a0: 66 20 6d 61 6c 6c 6f 63 28 29 20 66 61 69 6c 65  f malloc() faile
51b0: 64 2e 0a 20 20 20 20 57 65 20 68 61 76 65 20 62  d..    We have b
51c0: 65 65 6e 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65  een and continue
51d0: 20 74 6f 20 62 65 20 6d 65 6d 6f 72 79 20 6c 65   to be memory le
51e0: 61 6b 20 66 72 65 65 20 61 73 20 6c 6f 6e 67 20  ak free as long 
51f0: 61 73 0a 20 20 20 20 6d 61 6c 6c 6f 63 28 29 20  as.    malloc() 
5200: 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  works.</li>.<li>
5210: 43 68 61 6e 67 65 73 20 74 6f 20 73 6f 6d 65 20  Changes to some 
5220: 74 65 73 74 20 73 63 72 69 70 74 73 20 73 6f 20  test scripts so 
5230: 74 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 6f  that they work o
5240: 6e 20 57 69 6e 64 6f 77 73 20 69 6e 0a 20 20 20  n Windows in.   
5250: 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 55 6e 69   addition to Uni
5260: 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  x.</li>.}..chng 
5270: 7b 32 30 30 31 20 4f 63 74 20 31 39 20 28 32 2e  {2001 Oct 19 (2.
5280: 30 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  0.6)} {.<li>Adde
5290: 64 20 74 68 65 20 45 4d 50 54 59 5f 52 45 53 55  d the EMPTY_RESU
52a0: 4c 54 5f 43 41 4c 4c 42 41 43 4b 53 20 70 72 61  LT_CALLBACKS pra
52b0: 67 6d 61 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70  gma</li>.<li>Sup
52c0: 70 6f 72 74 20 66 6f 72 20 55 54 46 2d 38 20 61  port for UTF-8 a
52d0: 6e 64 20 49 53 4f 38 38 35 39 20 63 68 61 72 61  nd ISO8859 chara
52e0: 63 74 65 72 73 20 69 6e 20 63 6f 6c 75 6d 6e 20  cters in column 
52f0: 61 6e 64 20 74 61 62 6c 65 20 6e 61 6d 65 73 2e  and table names.
5300: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
5310: 78 3a 20 43 6f 6d 70 75 74 65 20 63 6f 72 72 65  x: Compute corre
5320: 63 74 20 74 61 62 6c 65 20 6e 61 6d 65 73 20 77  ct table names w
5330: 69 74 68 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c  ith the FULL_COL
5340: 55 4d 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61  UMN_NAMES pragma
5350: 0a 20 20 20 20 69 73 20 74 75 72 6e 65 64 20 6f  .    is turned o
5360: 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  n.</li>.}..chng 
5370: 7b 32 30 30 31 20 4f 63 74 20 31 34 20 28 32 2e  {2001 Oct 14 (2.
5380: 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  0.5)} {.<li>Adde
5390: 64 20 74 68 65 20 43 4f 55 4e 54 5f 43 48 41 4e  d the COUNT_CHAN
53a0: 47 45 53 20 70 72 61 67 6d 61 2e 3c 2f 6c 69 3e  GES pragma.</li>
53b0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20  .<li>Changes to 
53c0: 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f  the FULL_COLUMN_
53d0: 4e 41 4d 45 53 20 70 72 61 67 6d 61 20 74 6f 20  NAMES pragma to 
53e0: 68 65 6c 70 20 6f 75 74 20 74 68 65 20 4f 44 42  help out the ODB
53f0: 43 20 64 72 69 76 65 72 2e 3c 2f 6c 69 3e 0a 3c  C driver.</li>.<
5400: 6c 69 3e 42 75 67 20 66 69 78 3a 20 22 53 45 4c  li>Bug fix: "SEL
5410: 45 43 54 20 63 6f 75 6e 74 28 2a 29 22 20 77 61  ECT count(*)" wa
5420: 73 20 72 65 74 75 72 6e 69 6e 67 20 4e 55 4c 4c  s returning NULL
5430: 20 66 6f 72 20 65 6d 70 74 79 20 74 61 62 6c 65   for empty table
5440: 73 2e 0a 20 20 20 20 4e 6f 77 20 69 74 20 72 65  s..    Now it re
5450: 74 75 72 6e 73 20 30 2e 3c 2f 6c 69 3e 0a 7d 0a  turns 0.</li>.}.
5460: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20  .chng {2001 Oct 
5470: 31 33 20 28 32 2e 30 2e 34 29 7d 20 7b 0a 3c 6c  13 (2.0.4)} {.<l
5480: 69 3e 42 75 67 20 66 69 78 3a 20 61 6e 20 61 62  i>Bug fix: an ab
5490: 73 63 75 72 65 20 61 6e 64 20 72 65 6c 61 74 69  scure and relati
54a0: 76 65 6c 79 20 68 61 72 6d 6c 65 73 73 20 62 75  vely harmless bu
54b0: 67 20 77 61 73 20 63 61 75 73 69 6e 67 20 6f 6e  g was causing on
54c0: 65 20 6f 66 0a 20 20 20 20 74 68 65 20 74 65 73  e of.    the tes
54d0: 74 73 20 74 6f 20 66 61 69 6c 20 77 68 65 6e 20  ts to fail when 
54e0: 67 63 63 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  gcc optimization
54f0: 73 20 61 72 65 20 74 75 72 6e 65 64 20 6f 6e 2e  s are turned on.
5500: 20 20 54 68 69 73 20 72 65 6c 65 61 73 65 0a 20    This release. 
5510: 20 20 20 66 69 78 65 73 20 74 68 65 20 70 72 6f     fixes the pro
5520: 62 6c 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  blem.</li>.}..ch
5530: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 31 33 20  ng {2001 Oct 13 
5540: 28 32 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 42  (2.0.3)} {.<li>B
5550: 75 67 20 66 69 78 3a 20 74 68 65 20 3c 62 3e 73  ug fix: the <b>s
5560: 71 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f  qlite_busy_timeo
5570: 75 74 28 29 3c 2f 62 3e 20 66 75 6e 63 74 69 6f  ut()</b> functio
5580: 6e 20 77 61 73 20 64 65 6c 61 79 69 6e 67 20 31  n was delaying 1
5590: 30 30 30 0a 20 20 20 20 74 69 6d 65 73 20 74 6f  000.    times to
55a0: 6f 20 6c 6f 6e 67 20 62 65 66 6f 72 65 20 66 61  o long before fa
55b0: 69 6c 69 6e 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  iling.</li>.<li>
55c0: 42 75 67 20 66 69 78 3a 20 61 6e 20 61 73 73 65  Bug fix: an asse
55d0: 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c 69 6e  rtion was failin
55e0: 67 20 69 66 20 74 68 65 20 64 69 73 6b 20 68 6f  g if the disk ho
55f0: 6c 64 69 6e 67 20 74 68 65 20 64 61 74 61 62 61  lding the databa
5600: 73 65 0a 20 20 20 20 66 69 6c 65 20 62 65 63 61  se.    file beca
5610: 6d 65 20 66 75 6c 6c 20 6f 72 20 73 74 6f 70 70  me full or stopp
5620: 65 64 20 61 63 63 65 70 74 69 6e 67 20 77 72 69  ed accepting wri
5630: 74 65 73 20 66 6f 72 20 73 6f 6d 65 20 6f 74 68  tes for some oth
5640: 65 72 20 72 65 61 73 6f 6e 2e 0a 20 20 20 20 4e  er reason..    N
5650: 65 77 20 74 65 73 74 73 20 77 65 72 65 20 61 64  ew tests were ad
5660: 64 65 64 20 74 6f 20 64 65 74 65 63 74 20 73 69  ded to detect si
5670: 6d 69 6c 61 72 20 70 72 6f 62 6c 65 6d 73 20 69  milar problems i
5680: 6e 20 74 68 65 20 66 75 74 75 72 65 2e 3c 2f 6c  n the future.</l
5690: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77  i>.<li>Added new
56a0: 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 62 3e 26   operators: <b>&
56b0: 61 6d 70 3b 3c 2f 62 3e 20 28 62 69 74 77 69 73  amp;</b> (bitwis
56c0: 65 2d 61 6e 64 29 0a 20 20 20 20 3c 62 3e 7c 3c  e-and).    <b>|<
56d0: 2f 62 3e 20 28 62 69 74 77 69 73 65 2d 6f 72 29  /b> (bitwise-or)
56e0: 2c 20 3c 62 3e 7e 3c 2f 62 3e 20 28 6f 6e 65 73  , <b>~</b> (ones
56f0: 2d 63 6f 6d 70 6c 65 6d 65 6e 74 29 2c 0a 20 20  -complement),.  
5700: 20 20 3c 62 3e 26 6c 74 3b 26 6c 74 3b 3c 2f 62    <b>&lt;&lt;</b
5710: 3e 20 28 73 68 69 66 74 20 6c 65 66 74 29 2c 20  > (shift left), 
5720: 3c 62 3e 26 67 74 3b 26 67 74 3b 3c 2f 62 3e 20  <b>&gt;&gt;</b> 
5730: 28 73 68 69 66 74 20 72 69 67 68 74 29 2e 3c 2f  (shift right).</
5740: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 6e 65  li>.<li>Added ne
5750: 77 20 66 75 6e 63 74 69 6f 6e 73 3a 20 3c 62 3e  w functions: <b>
5760: 72 6f 75 6e 64 28 29 3c 2f 62 3e 20 61 6e 64 20  round()</b> and 
5770: 3c 62 3e 61 62 73 28 29 3c 2f 62 3e 2e 3c 2f 6c  <b>abs()</b>.</l
5780: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
5790: 20 4f 63 74 20 39 20 28 32 2e 30 2e 32 29 7d 20   Oct 9 (2.0.2)} 
57a0: 7b 0a 3c 6c 69 3e 46 69 78 20 74 77 6f 20 62 75  {.<li>Fix two bu
57b0: 67 73 20 69 6e 20 74 68 65 20 6c 6f 63 6b 69 6e  gs in the lockin
57c0: 67 20 70 72 6f 74 6f 63 6f 6c 2e 20 20 28 4f 6e  g protocol.  (On
57d0: 65 20 77 61 73 20 6d 61 73 6b 69 6e 67 20 74 68  e was masking th
57e0: 65 20 6f 74 68 65 72 2e 29 3c 2f 6c 69 3e 0a 3c  e other.)</li>.<
57f0: 6c 69 3e 52 65 6d 6f 76 65 64 20 73 6f 6d 65 20  li>Removed some 
5800: 75 6e 75 73 65 64 20 22 23 69 6e 63 6c 75 64 65  unused "#include
5810: 20 3c 75 6e 69 73 74 64 2e 68 3e 22 20 74 68 61   <unistd.h>" tha
5820: 74 20 77 65 72 65 20 63 61 75 73 69 6e 67 20 70  t were causing p
5830: 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20  roblems.    for 
5840: 56 43 2b 2b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  VC++.</li>.<li>F
5850: 69 78 65 64 20 3c 62 3e 73 71 6c 69 74 65 2e 68  ixed <b>sqlite.h
5860: 3c 2f 62 3e 20 73 6f 20 74 68 61 74 20 69 74 20  </b> so that it 
5870: 69 73 20 75 73 61 62 6c 65 20 66 72 6f 6d 20 43  is usable from C
5880: 2b 2b 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ++</li>.<li>Adde
5890: 64 20 74 68 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d  d the FULL_COLUM
58a0: 4e 5f 4e 41 4d 45 53 20 70 72 61 67 6d 61 2e 20  N_NAMES pragma. 
58b0: 20 57 68 65 6e 20 73 65 74 20 74 6f 20 22 4f 4e   When set to "ON
58c0: 22 2c 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 0a  ", the names of.
58d0: 20 20 20 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20      columns are 
58e0: 72 65 70 6f 72 74 65 64 20 62 61 63 6b 20 61 73  reported back as
58f0: 20 54 41 42 4c 45 2e 43 4f 4c 55 4d 4e 20 69 6e   TABLE.COLUMN in
5900: 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 43 4f  stead of just CO
5910: 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  LUMN.</li>.<li>A
5920: 64 64 65 64 20 74 68 65 20 54 41 42 4c 45 5f 49  dded the TABLE_I
5930: 4e 46 4f 28 29 20 61 6e 64 20 49 4e 44 45 58 5f  NFO() and INDEX_
5940: 49 4e 46 4f 28 29 20 70 72 61 67 6d 61 73 20 74  INFO() pragmas t
5950: 6f 20 68 65 6c 70 20 73 75 70 70 6f 72 74 20 74  o help support t
5960: 68 65 0a 20 20 20 20 4f 44 42 43 20 69 6e 74 65  he.    ODBC inte
5970: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
5980: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
5990: 72 20 54 45 4d 50 4f 52 41 52 59 20 74 61 62 6c  r TEMPORARY tabl
59a0: 65 73 20 61 6e 64 20 69 6e 64 69 63 65 73 2e 3c  es and indices.<
59b0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
59c0: 30 31 20 4f 63 74 20 32 20 28 32 2e 30 2e 31 29  01 Oct 2 (2.0.1)
59d0: 7d 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 73  } {.<li>Remove s
59e0: 6f 6d 65 20 43 2b 2b 20 73 74 79 6c 65 20 63 6f  ome C++ style co
59f0: 6d 6d 65 6e 74 73 20 66 72 6f 6d 20 62 74 72 65  mments from btre
5a00: 65 2e 63 20 73 6f 20 74 68 61 74 20 69 74 20 77  e.c so that it w
5a10: 69 6c 6c 20 63 6f 6d 70 69 6c 65 0a 20 20 20 20  ill compile.    
5a20: 75 73 69 6e 67 20 63 6f 6d 70 69 6c 65 72 73 20  using compilers 
5a30: 6f 74 68 65 72 20 74 68 61 6e 20 67 63 63 2e 3c  other than gcc.<
5a40: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 22 2e 64  /li>.<li>The ".d
5a50: 75 6d 70 22 20 6f 75 74 70 75 74 20 66 72 6f 6d  ump" output from
5a60: 20 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 20   the shell does 
5a70: 6e 6f 74 20 77 6f 72 6b 20 69 66 20 74 68 65 72  not work if ther
5a80: 65 20 61 72 65 20 65 6d 62 65 64 64 65 64 0a 20  e are embedded. 
5a90: 20 20 20 6e 65 77 6c 69 6e 65 73 20 61 6e 79 77     newlines anyw
5aa0: 68 65 72 65 20 69 6e 20 74 68 65 20 64 61 74 61  here in the data
5ab0: 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 6f 6c  .  This is an ol
5ac0: 64 20 62 75 67 20 74 68 61 74 20 77 61 73 20 63  d bug that was c
5ad0: 61 72 72 69 65 64 0a 20 20 20 20 66 6f 72 77 61  arried.    forwa
5ae0: 72 64 20 66 72 6f 6d 20 76 65 72 73 69 6f 6e 20  rd from version 
5af0: 31 2e 30 2e 20 20 54 6f 20 66 69 78 20 69 74 2c  1.0.  To fix it,
5b00: 20 74 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74   the ".dump" out
5b10: 70 75 74 20 6e 6f 20 6c 6f 6e 67 65 72 0a 20 20  put no longer.  
5b20: 20 20 75 73 65 73 20 74 68 65 20 43 4f 50 59 20    uses the COPY 
5b30: 63 6f 6d 6d 61 6e 64 2e 20 20 49 74 20 69 6e 73  command.  It ins
5b40: 74 65 61 64 20 67 65 6e 65 72 61 74 65 73 20 49  tead generates I
5b50: 4e 53 45 52 54 20 73 74 61 74 65 6d 65 6e 74 73  NSERT statements
5b60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 74 65 6e  .</li>.<li>Exten
5b70: 64 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e  d the expression
5b80: 20 73 79 6e 74 61 78 20 74 6f 20 73 75 70 70 6f   syntax to suppo
5b90: 72 74 20 22 65 78 70 72 20 4e 4f 54 20 4e 55 4c  rt "expr NOT NUL
5ba0: 4c 22 20 28 77 69 74 68 20 61 0a 20 20 20 20 73  L" (with a.    s
5bb0: 70 61 63 65 20 62 65 74 77 65 65 6e 20 74 68 65  pace between the
5bc0: 20 22 4e 4f 54 22 20 61 6e 64 20 74 68 65 20 22   "NOT" and the "
5bd0: 4e 55 4c 4c 22 29 20 69 6e 20 61 64 64 69 74 69  NULL") in additi
5be0: 6f 6e 20 74 6f 20 22 65 78 70 72 20 4e 4f 54 4e  on to "expr NOTN
5bf0: 55 4c 4c 22 0a 20 20 20 20 28 77 69 74 68 20 6e  ULL".    (with n
5c00: 6f 20 73 70 61 63 65 29 2e 3c 2f 6c 69 3e 0a 7d  o space).</li>.}
5c10: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65 70  ..chng {2001 Sep
5c20: 20 32 38 20 28 32 2e 30 2e 30 29 7d 20 7b 0a 3c   28 (2.0.0)} {.<
5c30: 6c 69 3e 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79  li>Automatically
5c40: 20 62 75 69 6c 64 20 62 69 6e 61 72 69 65 73 20   build binaries 
5c50: 66 6f 72 20 4c 69 6e 75 78 20 61 6e 64 20 57 69  for Linux and Wi
5c60: 6e 64 6f 77 73 20 61 6e 64 20 70 75 74 20 74 68  ndows and put th
5c70: 65 6d 20 6f 6e 0a 20 20 20 20 74 68 65 20 77 65  em on.    the we
5c80: 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  bsite.</li>.}..c
5c90: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 38  hng {2001 Sep 28
5ca0: 20 28 32 2e 30 2d 61 6c 70 68 61 2d 34 29 7d 20   (2.0-alpha-4)} 
5cb0: 7b 0a 3c 6c 69 3e 49 6e 63 6f 72 70 6f 72 61 74  {.<li>Incorporat
5cc0: 65 20 6d 61 6b 65 66 69 6c 65 20 70 61 74 63 68  e makefile patch
5cd0: 65 73 20 66 6f 72 6d 20 41 2e 20 52 6f 74 74 6d  es form A. Rottm
5ce0: 61 6e 6e 20 74 6f 20 75 73 65 20 4c 49 42 54 4f  ann to use LIBTO
5cf0: 4f 4c 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  OL</li>.}..chng 
5d00: 7b 32 30 30 31 20 53 65 70 20 32 37 20 28 32 2e  {2001 Sep 27 (2.
5d10: 30 2d 61 6c 70 68 61 2d 33 29 7d 20 7b 0a 3c 6c  0-alpha-3)} {.<l
5d20: 69 3e 53 51 4c 69 74 65 20 6e 6f 77 20 68 6f 6e  i>SQLite now hon
5d30: 6f 72 73 20 74 68 65 20 55 4e 49 51 55 45 20 6b  ors the UNIQUE k
5d40: 65 79 77 6f 72 64 20 69 6e 20 43 52 45 41 54 45  eyword in CREATE
5d50: 20 55 4e 49 51 55 45 20 49 4e 44 45 58 2e 20 20   UNIQUE INDEX.  
5d60: 50 72 69 6d 61 72 79 0a 20 20 20 20 6b 65 79 73  Primary.    keys
5d70: 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f   are required to
5d80: 20 62 65 20 75 6e 69 71 75 65 2e 3c 2f 6c 69 3e   be unique.</li>
5d90: 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74  .<li>File format
5da0: 20 63 68 61 6e 67 65 64 20 62 61 63 6b 20 74 6f   changed back to
5db0: 20 77 68 61 74 20 69 74 20 77 61 73 20 66 6f 72   what it was for
5dc0: 20 61 6c 70 68 61 2d 31 3c 2f 6c 69 3e 0a 3c 6c   alpha-1</li>.<l
5dd0: 69 3e 46 69 78 65 73 20 74 6f 20 74 68 65 20 72  i>Fixes to the r
5de0: 6f 6c 6c 62 61 63 6b 20 61 6e 64 20 6c 6f 63 6b  ollback and lock
5df0: 69 6e 67 20 62 65 68 61 76 69 6f 72 3c 2f 6c 69  ing behavior</li
5e00: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
5e10: 53 65 70 20 32 30 20 28 32 2e 30 2d 61 6c 70 68  Sep 20 (2.0-alph
5e20: 61 2d 32 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 69 74  a-2)} {.<li>Init
5e30: 69 61 6c 20 72 65 6c 65 61 73 65 20 6f 66 20 76  ial release of v
5e40: 65 72 73 69 6f 6e 20 32 2e 30 2e 20 20 54 68 65  ersion 2.0.  The
5e50: 20 69 64 65 61 20 6f 66 20 72 65 6e 61 6d 69 6e   idea of renamin
5e60: 67 20 74 68 65 20 6c 69 62 72 61 72 79 0a 20 20  g the library.  
5e70: 20 20 74 6f 20 22 53 51 4c 75 73 22 20 77 61 73    to "SQLus" was
5e80: 20 61 62 61 6e 64 6f 6e 65 64 20 69 6e 20 66 61   abandoned in fa
5e90: 76 6f 72 20 6f 66 20 6b 65 65 70 69 6e 67 20 74  vor of keeping t
5ea0: 68 65 20 22 53 51 4c 69 74 65 22 20 6e 61 6d 65  he "SQLite" name
5eb0: 20 61 6e 64 0a 20 20 20 20 62 75 6d 70 69 6e 67   and.    bumping
5ec0: 20 74 68 65 20 6d 61 6a 6f 72 20 76 65 72 73 69   the major versi
5ed0: 6f 6e 20 6e 75 6d 62 65 72 2e 3c 2f 6c 69 3e 0a  on number.</li>.
5ee0: 3c 6c 69 3e 54 68 65 20 70 61 67 65 72 20 61 6e  <li>The pager an
5ef0: 64 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65  d btree subsyste
5f00: 6d 73 20 61 64 64 65 64 20 62 61 63 6b 2e 20 54  ms added back. T
5f10: 68 65 79 20 61 72 65 20 6e 6f 77 20 74 68 65 20  hey are now the 
5f20: 6f 6e 6c 79 0a 20 20 20 20 61 76 61 69 6c 61 62  only.    availab
5f30: 6c 65 20 62 61 63 6b 65 6e 64 2e 3c 2f 6c 69 3e  le backend.</li>
5f40: 0a 3c 6c 69 3e 54 68 65 20 44 62 62 65 20 61 62  .<li>The Dbbe ab
5f50: 73 74 72 61 63 74 69 6f 6e 20 61 6e 64 20 74 68  straction and th
5f60: 65 20 47 44 42 4d 20 61 6e 64 20 6d 65 6d 6f 72  e GDBM and memor
5f70: 79 20 64 72 69 76 65 72 73 20 77 65 72 65 20 72  y drivers were r
5f80: 65 6d 6f 76 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  emoved.</li>.<li
5f90: 3e 43 6f 70 79 72 69 67 68 74 20 6f 6e 20 61 6c  >Copyright on al
5fa0: 6c 20 63 6f 64 65 20 77 61 73 20 64 69 73 63 6c  l code was discl
5fb0: 61 69 6d 65 64 2e 20 20 54 68 65 20 6c 69 62 72  aimed.  The libr
5fc0: 61 72 79 20 69 73 20 6e 6f 77 20 69 6e 20 74 68  ary is now in th
5fd0: 65 0a 20 20 20 20 70 75 62 6c 69 63 20 64 6f 6d  e.    public dom
5fe0: 61 69 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ain.</li>.}..chn
5ff0: 67 20 7b 32 30 30 31 20 4a 75 6c 20 32 33 20 28  g {2001 Jul 23 (
6000: 31 2e 30 2e 33 32 29 7d 20 7b 0a 3c 6c 69 3e 50  1.0.32)} {.<li>P
6010: 61 67 65 72 20 61 6e 64 20 62 74 72 65 65 20 73  ager and btree s
6020: 75 62 73 79 73 74 65 6d 73 20 72 65 6d 6f 76 65  ubsystems remove
6030: 64 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62  d.  These will b
6040: 65 20 75 73 65 64 20 69 6e 20 61 20 66 6f 6c 6c  e used in a foll
6050: 6f 77 2d 6f 6e 0a 20 20 20 20 53 51 4c 20 73 65  ow-on.    SQL se
6060: 72 76 65 72 20 6c 69 62 72 61 72 79 20 6e 61 6d  rver library nam
6070: 65 64 20 22 53 51 4c 75 73 22 2e 3c 2f 6c 69 3e  ed "SQLus".</li>
6080: 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62 69  .<li>Add the abi
6090: 6c 69 74 79 20 74 6f 20 75 73 65 20 71 75 6f 74  lity to use quot
60a0: 65 64 20 73 74 72 69 6e 67 73 20 61 73 20 74 61  ed strings as ta
60b0: 62 6c 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 6e  ble and column n
60c0: 61 6d 65 73 20 69 6e 0a 20 20 20 20 65 78 70 72  ames in.    expr
60d0: 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a  essions.</li>.}.
60e0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20  .chng {2001 Apr 
60f0: 31 34 20 28 31 2e 30 2e 33 31 29 7d 20 7b 0a 3c  14 (1.0.31)} {.<
6100: 6c 69 3e 50 61 67 65 72 20 73 75 62 73 79 73 74  li>Pager subsyst
6110: 65 6d 20 61 64 64 65 64 20 62 75 74 20 6e 6f 74  em added but not
6120: 20 79 65 74 20 75 73 65 64 2e 3c 2f 6c 69 3e 0a   yet used.</li>.
6130: 3c 6c 69 3e 4d 6f 72 65 20 72 6f 62 75 73 74 20  <li>More robust 
6140: 68 61 6e 64 6c 69 6e 67 20 6f 66 20 6f 75 74 2d  handling of out-
6150: 6f 66 2d 6d 65 6d 6f 72 79 20 65 72 72 6f 72 73  of-memory errors
6160: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 74  .</li>.<li>New t
6170: 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74 68  ests added to th
6180: 65 20 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 6c  e test suite.</l
6190: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
61a0: 20 41 70 72 20 36 20 28 31 2e 30 2e 33 30 29 7d   Apr 6 (1.0.30)}
61b0: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 20 74 68   {.<li>Remove th
61c0: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 6e 63 6f  e <b>sqlite_enco
61d0: 64 69 6e 67 3c 2f 62 3e 20 54 43 4c 20 76 61 72  ding</b> TCL var
61e0: 69 61 62 6c 65 20 74 68 61 74 20 77 61 73 20 69  iable that was i
61f0: 6e 74 72 6f 64 75 63 65 64 0a 20 20 20 20 69 6e  ntroduced.    in
6200: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 76 65   the previous ve
6210: 72 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rsion.</li>.<li>
6220: 41 64 64 20 6f 70 74 69 6f 6e 73 20 3c 62 3e 2d  Add options <b>-
6230: 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e 20 61 6e 64  encoding</b> and
6240: 20 3c 62 3e 2d 74 63 6c 2d 75 73 65 73 2d 75 74   <b>-tcl-uses-ut
6250: 66 3c 2f 62 3e 20 74 6f 20 74 68 65 0a 20 20 20  f</b> to the.   
6260: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 54   <b>sqlite</b> T
6270: 43 4c 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e  CL command.</li>
6280: 0a 3c 6c 69 3e 41 64 64 20 74 65 73 74 73 20 74  .<li>Add tests t
6290: 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74  o make sure that
62a0: 20 74 63 6c 73 71 6c 69 74 65 20 77 61 73 20 63   tclsqlite was c
62b0: 6f 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 54 63  ompiled using Tc
62c0: 6c 20 68 65 61 64 65 72 0a 20 20 20 20 66 69 6c  l header.    fil
62d0: 65 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73  es and libraries
62e0: 20 74 68 61 74 20 6d 61 74 63 68 2e 3c 2f 6c 69   that match.</li
62f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
6300: 41 70 72 20 35 20 28 31 2e 30 2e 32 39 29 7d 20  Apr 5 (1.0.29)} 
6310: 7b 0a 3c 6c 69 3e 54 68 65 20 6c 69 62 72 61 72  {.<li>The librar
6320: 79 20 6e 6f 77 20 61 73 73 75 6d 65 73 20 64 61  y now assumes da
6330: 74 61 20 69 73 20 73 74 6f 72 65 64 20 61 73 20  ta is stored as 
6340: 55 54 46 2d 38 20 69 66 20 74 68 65 20 2d 2d 65  UTF-8 if the --e
6350: 6e 61 62 6c 65 2d 75 74 66 38 0a 20 20 20 20 6f  nable-utf8.    o
6360: 70 74 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 74  ption is given t
6370: 6f 20 63 6f 6e 66 69 67 75 72 65 2e 20 20 54 68  o configure.  Th
6380: 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69  e default behavi
6390: 6f 72 20 69 73 20 74 6f 20 61 73 73 75 6d 65 0a  or is to assume.
63a0: 20 20 20 20 69 73 6f 38 38 35 39 2d 78 2c 20 61      iso8859-x, a
63b0: 73 20 69 74 20 68 61 73 20 61 6c 77 61 79 73 20  s it has always 
63c0: 64 6f 6e 65 2e 20 20 54 68 69 73 20 6f 6e 6c 79  done.  This only
63d0: 20 6d 61 6b 65 73 20 61 20 64 69 66 66 65 72 65   makes a differe
63e0: 6e 63 65 20 66 6f 72 0a 20 20 20 20 4c 49 4b 45  nce for.    LIKE
63f0: 20 61 6e 64 20 47 4c 4f 42 20 6f 70 65 72 61 74   and GLOB operat
6400: 6f 72 73 20 61 6e 64 20 74 68 65 20 4c 45 4e 47  ors and the LENG
6410: 54 48 20 61 6e 64 20 53 55 42 53 54 52 20 66 75  TH and SUBSTR fu
6420: 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c  nctions.</li>.<l
6430: 69 3e 49 66 20 74 68 65 20 6c 69 62 72 61 72 79  i>If the library
6440: 20 69 73 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72   is not configur
6450: 65 64 20 66 6f 72 20 55 54 46 2d 38 20 61 6e 64  ed for UTF-8 and
6460: 20 74 68 65 20 54 63 6c 20 6c 69 62 72 61 72 79   the Tcl library
6470: 0a 20 20 20 20 69 73 20 6f 6e 65 20 6f 66 20 74  .    is one of t
6480: 68 65 20 6e 65 77 65 72 20 6f 6e 65 73 20 74 68  he newer ones th
6490: 61 74 20 75 73 65 73 20 55 54 46 2d 38 20 69 6e  at uses UTF-8 in
64a0: 74 65 72 6e 61 6c 6c 79 2c 0a 20 20 20 20 74 68  ternally,.    th
64b0: 65 6e 20 61 20 63 6f 6e 76 65 72 73 69 6f 6e 20  en a conversion 
64c0: 66 72 6f 6d 20 55 54 46 2d 38 20 74 6f 20 69 73  from UTF-8 to is
64d0: 6f 38 38 35 39 20 61 6e 64 0a 20 20 20 20 62 61  o8859 and.    ba
64e0: 63 6b 20 61 67 61 69 6e 20 69 73 20 64 6f 6e 65  ck again is done
64f0: 20 69 6e 73 69 64 65 20 74 68 65 20 54 43 4c 20   inside the TCL 
6500: 69 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a  interface.</li>.
6510: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 41 70  }..chng {2001 Ap
6520: 72 20 34 20 28 31 2e 30 2e 32 38 29 7d 20 7b 0a  r 4 (1.0.28)} {.
6530: 3c 6c 69 3e 41 64 64 65 64 20 6c 69 6d 69 74 65  <li>Added limite
6540: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 72  d support for tr
6550: 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 41 74 20  ansactions.  At 
6560: 74 68 69 73 20 70 6f 69 6e 74 2c 20 74 72 61 6e  this point, tran
6570: 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 77 69 6c  sactions.    wil
6580: 6c 20 64 6f 20 74 61 62 6c 65 20 6c 6f 63 6b 69  l do table locki
6590: 6e 67 20 6f 6e 20 74 68 65 20 47 44 42 4d 20 62  ng on the GDBM b
65a0: 61 63 6b 65 6e 64 2e 20 20 54 68 65 72 65 20 69  ackend.  There i
65b0: 73 20 6e 6f 20 73 75 70 70 6f 72 74 20 28 79 65  s no support (ye
65c0: 74 29 0a 20 20 20 20 66 6f 72 20 72 6f 6c 6c 62  t).    for rollb
65d0: 61 63 6b 20 6f 72 20 61 74 6f 6d 69 63 20 63 6f  ack or atomic co
65e0: 6d 6d 69 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  mmit.</li>.<li>A
65f0: 64 64 65 64 20 73 70 65 63 69 61 6c 20 63 6f 6c  dded special col
6600: 75 6d 6e 20 6e 61 6d 65 73 20 52 4f 57 49 44 2c  umn names ROWID,
6610: 20 4f 49 44 2c 20 61 6e 64 20 5f 52 4f 57 49 44   OID, and _ROWID
6620: 5f 20 74 68 61 74 20 72 65 66 65 72 20 74 6f 20  _ that refer to 
6630: 74 68 65 0a 20 20 20 20 75 6e 69 71 75 65 20 72  the.    unique r
6640: 61 6e 64 6f 6d 20 69 6e 74 65 67 65 72 20 6b 65  andom integer ke
6650: 79 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74  y associated wit
6660: 68 20 65 76 65 72 79 20 72 6f 77 20 6f 66 20 65  h every row of e
6670: 76 65 72 79 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e  very table.</li>
6680: 0a 3c 6c 69 3e 41 64 64 69 74 69 6f 6e 61 6c 20  .<li>Additional 
6690: 74 65 73 74 73 20 61 64 64 65 64 20 74 6f 20 74  tests added to t
66a0: 68 65 20 72 65 67 72 65 73 73 69 6f 6e 20 73 75  he regression su
66b0: 69 74 65 20 74 6f 20 63 6f 76 65 72 20 74 68 65  ite to cover the
66c0: 20 6e 65 77 20 52 4f 57 49 44 0a 20 20 20 20 66   new ROWID.    f
66d0: 65 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 54  eature and the T
66e0: 43 4c 20 69 6e 74 65 72 66 61 63 65 20 62 75 67  CL interface bug
66f0: 73 20 6d 65 6e 74 69 6f 6e 65 64 20 62 65 6c 6f  s mentioned belo
6700: 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  w.</li>.<li>Chan
6710: 67 65 73 20 74 6f 20 74 68 65 20 22 6c 65 6d 6f  ges to the "lemo
6720: 6e 22 20 70 61 72 73 65 72 20 67 65 6e 65 72 61  n" parser genera
6730: 74 6f 72 20 74 6f 20 68 65 6c 70 20 69 74 20 77  tor to help it w
6740: 6f 72 6b 20 62 65 74 74 65 72 20 77 68 65 6e 0a  ork better when.
6750: 20 20 20 20 63 6f 6d 70 69 6c 65 64 20 75 73 69      compiled usi
6760: 6e 67 20 4d 53 56 43 2e 3c 2f 6c 69 3e 0a 3c 6c  ng MSVC.</li>.<l
6770: 69 3e 42 75 67 20 66 69 78 65 73 20 69 6e 20 74  i>Bug fixes in t
6780: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
6790: 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 4f   identified by O
67a0: 6c 65 67 20 4f 6c 65 69 6e 69 63 6b 2e 3c 2f 6c  leg Oleinick.</l
67b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
67c0: 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32 37 29   Mar 20 (1.0.27)
67d0: 7d 20 7b 0a 3c 6c 69 3e 57 68 65 6e 20 64 6f 69  } {.<li>When doi
67e0: 6e 67 20 44 45 4c 45 54 45 20 61 6e 64 20 55 50  ng DELETE and UP
67f0: 44 41 54 45 2c 20 74 68 65 20 6c 69 62 72 61 72  DATE, the librar
6800: 79 20 75 73 65 64 20 74 6f 20 77 72 69 74 65 20  y used to write 
6810: 74 68 65 20 72 65 63 6f 72 64 0a 20 20 20 20 6e  the record.    n
6820: 75 6d 62 65 72 73 20 6f 66 20 72 65 63 6f 72 64  umbers of record
6830: 73 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 20  s to be deleted 
6840: 6f 72 20 75 70 64 61 74 65 64 20 69 6e 74 6f 20  or updated into 
6850: 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65  a temporary file
6860: 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 63 68  ..    This is ch
6870: 61 6e 67 65 64 20 73 6f 20 74 68 61 74 20 74 68  anged so that th
6880: 65 20 72 65 63 6f 72 64 20 6e 75 6d 62 65 72 73  e record numbers
6890: 20 61 72 65 20 68 65 6c 64 20 69 6e 20 6d 65 6d   are held in mem
68a0: 6f 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ory.</li>.<li>Th
68b0: 65 20 44 45 4c 45 54 45 20 63 6f 6d 6d 61 6e 64  e DELETE command
68c0: 20 77 69 74 68 6f 75 74 20 61 20 57 48 49 4c 45   without a WHILE
68d0: 20 63 6c 61 75 73 65 20 6a 75 73 74 20 72 65 6d   clause just rem
68e0: 6f 76 65 73 20 74 68 65 20 64 61 74 61 62 61 73  oves the databas
68f0: 65 0a 20 20 20 20 66 69 6c 65 73 20 66 72 6f 6d  e.    files from
6900: 20 74 68 65 20 64 69 73 6b 2c 20 72 61 74 68 65   the disk, rathe
6910: 72 20 74 68 61 6e 20 67 6f 69 6e 67 20 74 68 72  r than going thr
6920: 6f 75 67 68 20 61 6e 64 20 64 65 6c 65 74 69 6e  ough and deletin
6930: 67 20 72 65 63 6f 72 64 0a 20 20 20 20 62 79 20  g record.    by 
6940: 72 65 63 6f 72 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  record.</li>.}..
6950: 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32  chng {2001 Mar 2
6960: 30 20 28 31 2e 30 2e 32 36 29 7d 20 7b 0a 3c 6c  0 (1.0.26)} {.<l
6970: 69 3e 41 20 73 65 72 69 6f 75 73 20 62 75 67 20  i>A serious bug 
6980: 66 69 78 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73  fixed on Windows
6990: 2e 20 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73  .  Windows users
69a0: 20 73 68 6f 75 6c 64 20 75 70 67 72 61 64 65 2e   should upgrade.
69b0: 0a 20 20 20 20 4e 6f 20 69 6d 70 61 63 74 20 74  .    No impact t
69c0: 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  o Unix.</li>.}..
69d0: 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31  chng {2001 Mar 1
69e0: 35 20 28 31 2e 30 2e 32 35 29 7d 20 7b 0a 3c 6c  5 (1.0.25)} {.<l
69f0: 69 3e 4d 6f 64 69 66 79 20 74 68 65 20 74 65 73  i>Modify the tes
6a00: 74 20 73 63 72 69 70 74 73 20 74 6f 20 69 64 65  t scripts to ide
6a10: 6e 74 69 66 79 20 74 65 73 74 73 20 74 68 61 74  ntify tests that
6a20: 20 64 65 70 65 6e 64 20 6f 6e 20 73 79 73 74 65   depend on syste
6a30: 6d 0a 20 20 20 20 6c 6f 61 64 20 61 6e 64 20 70  m.    load and p
6a40: 72 6f 63 65 73 73 6f 72 20 73 70 65 65 64 20 61  rocessor speed a
6a50: 6e 64 0a 20 20 20 20 74 6f 20 77 61 72 6e 20 74  nd.    to warn t
6a60: 68 65 20 75 73 65 72 20 74 68 61 74 20 61 20 66  he user that a f
6a70: 61 69 6c 75 72 65 20 6f 66 20 6f 6e 65 20 6f 66  ailure of one of
6a80: 20 74 68 6f 73 65 20 28 72 61 72 65 29 20 74 65   those (rare) te
6a90: 73 74 73 20 64 6f 65 73 0a 20 20 20 20 6e 6f 74  sts does.    not
6aa0: 20 6e 65 63 65 73 73 61 72 69 6c 79 20 6d 65 61   necessarily mea
6ab0: 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 69 73  n the library is
6ac0: 20 6d 61 6c 66 75 6e 63 74 69 6f 6e 69 6e 67 2e   malfunctioning.
6ad0: 20 20 4e 6f 20 63 68 61 6e 67 65 73 20 74 6f 0a    No changes to.
6ae0: 20 20 20 20 63 6f 64 65 2e 0a 20 20 20 20 3c 2f      code..    </
6af0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6b00: 31 20 4d 61 72 20 31 34 20 28 31 2e 30 2e 32 34  1 Mar 14 (1.0.24
6b10: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
6b20: 75 67 20 77 68 69 63 68 20 77 61 73 20 63 61 75  ug which was cau
6b30: 73 69 6e 67 0a 20 20 20 20 74 68 65 20 55 50 44  sing.    the UPD
6b40: 41 54 45 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 66  ATE command to f
6b50: 61 69 6c 20 6f 6e 20 73 79 73 74 65 6d 73 20 77  ail on systems w
6b60: 68 65 72 65 20 22 6d 61 6c 6c 6f 63 28 30 29 22  here "malloc(0)"
6b70: 20 72 65 74 75 72 6e 73 0a 20 20 20 20 4e 55 4c   returns.    NUL
6b80: 4c 2e 20 20 54 68 65 20 70 72 6f 62 6c 65 6d 20  L.  The problem 
6b90: 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20  does not appear 
6ba0: 57 69 6e 64 6f 77 73 2c 20 4c 69 6e 75 78 2c 20  Windows, Linux, 
6bb0: 6f 72 20 48 50 55 58 20 62 75 74 20 64 6f 65 73  or HPUX but does
6bc0: 20 0a 20 20 20 20 63 61 75 73 65 20 74 68 65 20   .    cause the 
6bd0: 6c 69 62 72 61 72 79 20 74 6f 20 66 61 69 6c 20  library to fail 
6be0: 6f 6e 20 51 4e 58 2e 0a 20 20 20 20 3c 2f 6c 69  on QNX..    </li
6bf0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
6c00: 46 65 62 20 31 39 20 28 31 2e 30 2e 32 33 29 7d  Feb 19 (1.0.23)}
6c10: 20 7b 0a 3c 6c 69 3e 41 6e 20 75 6e 72 65 6c 61   {.<li>An unrela
6c20: 74 65 64 20 28 61 6e 64 20 6d 69 6e 6f 72 29 20  ted (and minor) 
6c30: 62 75 67 20 66 72 6f 6d 20 4d 61 72 6b 20 4d 75  bug from Mark Mu
6c40: 72 61 6e 77 73 6b 69 20 66 69 78 65 64 2e 20 20  ranwski fixed.  
6c50: 54 68 65 20 61 6c 67 6f 72 69 74 68 6d 0a 20 20  The algorithm.  
6c60: 20 20 66 6f 72 20 66 69 67 75 72 69 6e 67 20 6f    for figuring o
6c70: 75 74 20 77 68 65 72 65 20 74 6f 20 70 75 74 20  ut where to put 
6c80: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  temporary files 
6c90: 66 6f 72 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20  for a "memory:" 
6ca0: 64 61 74 61 62 61 73 65 0a 20 20 20 20 77 61 73  database.    was
6cb0: 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 71 75 69   not working qui
6cc0: 74 65 20 72 69 67 68 74 2e 0a 20 20 20 20 3c 2f  te right..    </
6cd0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
6ce0: 31 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 32  1 Feb 19 (1.0.22
6cf0: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 70 72 65  )} {.<li>The pre
6d00: 76 69 6f 75 73 20 66 69 78 20 77 61 73 20 6e 6f  vious fix was no
6d10: 74 20 71 75 69 74 65 20 72 69 67 68 74 2e 20 20  t quite right.  
6d20: 54 68 69 73 20 6f 6e 65 20 73 65 65 6d 73 20 74  This one seems t
6d30: 6f 20 77 6f 72 6b 20 62 65 74 74 65 72 2e 0a 20  o work better.. 
6d40: 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67     </li>.}..chng
6d50: 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28 31   {2001 Feb 19 (1
6d60: 2e 30 2e 32 31 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .0.21)} {.<li>Th
6d70: 65 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  e UPDATE stateme
6d80: 6e 74 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69  nt was not worki
6d90: 6e 67 20 77 68 65 6e 20 74 68 65 20 57 48 45 52  ng when the WHER
6da0: 45 20 63 6c 61 75 73 65 20 63 6f 6e 74 61 69 6e  E clause contain
6db0: 65 64 0a 20 20 20 20 73 6f 6d 65 20 74 65 72 6d  ed.    some term
6dc0: 73 20 74 68 61 74 20 63 6f 75 6c 64 20 62 65 20  s that could be 
6dd0: 73 61 74 69 73 66 69 65 64 20 75 73 69 6e 67 20  satisfied using 
6de0: 69 6e 64 69 63 65 73 20 61 6e 64 20 6f 74 68 65  indices and othe
6df0: 72 20 74 65 72 6d 73 20 74 68 61 74 0a 20 20 20  r terms that.   
6e00: 20 63 6f 75 6c 64 20 6e 6f 74 2e 20 20 46 69 78   could not.  Fix
6e10: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
6e20: 20 7b 32 30 30 31 20 46 65 62 20 31 31 20 28 31   {2001 Feb 11 (1
6e30: 2e 30 2e 32 30 29 7d 20 7b 0a 3c 6c 69 3e 4d 65  .0.20)} {.<li>Me
6e40: 72 67 65 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20  rge development 
6e50: 63 68 61 6e 67 65 73 20 69 6e 74 6f 20 74 68 65  changes into the
6e60: 20 6d 61 69 6e 20 74 72 75 6e 6b 2e 20 20 46 75   main trunk.  Fu
6e70: 74 75 72 65 20 77 6f 72 6b 20 74 6f 77 61 72 64  ture work toward
6e80: 0a 20 20 20 20 75 73 69 6e 67 20 61 20 42 54 72  .    using a BTr
6e90: 65 65 20 66 69 6c 65 20 73 74 72 75 63 74 75 72  ee file structur
6ea0: 65 20 77 69 6c 6c 20 75 73 65 20 61 20 73 65 70  e will use a sep
6eb0: 61 72 61 74 65 20 43 56 53 20 73 6f 75 72 63 65  arate CVS source
6ec0: 20 74 72 65 65 2e 20 20 54 68 69 73 0a 20 20 20   tree.  This.   
6ed0: 20 43 56 53 20 74 72 65 65 20 77 69 6c 6c 20 63   CVS tree will c
6ee0: 6f 6e 74 69 6e 75 65 20 74 6f 20 73 75 70 70 6f  ontinue to suppo
6ef0: 72 74 20 74 68 65 20 47 44 42 4d 20 76 65 72 73  rt the GDBM vers
6f00: 69 6f 6e 20 6f 66 20 53 51 4c 69 74 65 20 6f 6e  ion of SQLite on
6f10: 6c 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ly.</li>.}..chng
6f20: 20 7b 32 30 30 31 20 46 65 62 20 36 20 28 31 2e   {2001 Feb 6 (1.
6f30: 30 2e 31 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  0.19)} {.<li>Fix
6f40: 20 61 20 73 74 72 61 6e 67 65 20 28 62 75 74 20   a strange (but 
6f50: 76 61 6c 69 64 29 20 43 20 64 65 63 6c 61 72 61  valid) C declara
6f60: 74 69 6f 6e 20 74 68 61 74 20 77 61 73 20 63 61  tion that was ca
6f70: 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a 20  using problems. 
6f80: 20 20 20 66 6f 72 20 51 4e 58 2e 20 20 4e 6f 20     for QNX.  No 
6f90: 6c 6f 67 69 63 61 6c 20 63 68 61 6e 67 65 73 2e  logical changes.
6fa0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
6fb0: 30 30 31 20 4a 61 6e 20 34 20 28 31 2e 30 2e 31  001 Jan 4 (1.0.1
6fc0: 38 29 7d 20 7b 0a 3c 6c 69 3e 50 72 69 6e 74 20  8)} {.<li>Print 
6fd0: 74 68 65 20 6f 66 66 65 6e 64 69 6e 67 20 53 51  the offending SQ
6fe0: 4c 20 73 74 61 74 65 6d 65 6e 74 20 77 68 65 6e  L statement when
6ff0: 20 61 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 73   an error occurs
7000: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f  .</li>.<li>Do no
7010: 74 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 73  t require commas
7020: 20 62 65 74 77 65 65 6e 20 63 6f 6e 73 74 72 61   between constra
7030: 69 6e 74 73 20 69 6e 20 43 52 45 41 54 45 20 54  ints in CREATE T
7040: 41 42 4c 45 20 73 74 61 74 65 6d 65 6e 74 73 2e  ABLE statements.
7050: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
7060: 74 68 65 20 22 2d 65 63 68 6f 22 20 6f 70 74 69  the "-echo" opti
7070: 6f 6e 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e  on to the shell.
7080: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
7090: 73 20 74 6f 20 63 6f 6d 6d 65 6e 74 73 2e 3c 2f  s to comments.</
70a0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
70b0: 30 20 44 65 63 20 31 30 20 28 31 2e 30 2e 31 37  0 Dec 10 (1.0.17
70c0: 29 7d 20 7b 0a 3c 6c 69 3e 52 65 77 72 6f 74 65  )} {.<li>Rewrote
70d0: 20 3c 62 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c   <b>sqlite_compl
70e0: 65 74 65 28 29 3c 2f 62 3e 20 74 6f 20 6d 61 6b  ete()</b> to mak
70f0: 65 20 69 74 20 66 61 73 74 65 72 2e 3c 2f 6c 69  e it faster.</li
7100: 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 74 77 65 61  >.<li>Minor twea
7110: 6b 73 20 74 6f 20 6f 74 68 65 72 20 63 6f 64 65  ks to other code
7120: 20 74 6f 20 6d 61 6b 65 20 69 74 20 72 75 6e 20   to make it run 
7130: 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e  a little faster.
7140: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
7150: 6e 65 77 20 74 65 73 74 73 20 66 6f 72 20 3c 62  new tests for <b
7160: 3e 73 71 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65  >sqlite_complete
7170: 28 29 3c 2f 62 3e 20 61 6e 64 20 66 6f 72 20 6d  ()</b> and for m
7180: 65 6d 6f 72 79 20 6c 65 61 6b 73 2e 3c 2f 6c 69  emory leaks.</li
7190: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
71a0: 44 65 63 20 34 20 28 31 2e 30 2e 31 36 29 7d 20  Dec 4 (1.0.16)} 
71b0: 7b 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  {.<li>Documentat
71c0: 69 6f 6e 20 75 70 64 61 74 65 73 2e 20 20 4d 6f  ion updates.  Mo
71d0: 73 74 6c 79 20 66 69 78 69 6e 67 20 6f 66 20 74  stly fixing of t
71e0: 79 70 6f 73 20 61 6e 64 20 73 70 65 6c 6c 69 6e  ypos and spellin
71f0: 67 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 7d  g errors.</li>.}
7200: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
7210: 20 32 33 20 28 31 2e 30 2e 31 35 29 7d 20 7b 0a   23 (1.0.15)} {.
7220: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
7230: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
7240: 6c 69 3e 53 6f 6d 65 20 73 61 6e 69 74 79 20 63  li>Some sanity c
7250: 68 65 63 6b 69 6e 67 20 63 6f 64 65 20 77 61 73  hecking code was
7260: 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68   removed from th
7270: 65 20 69 6e 6e 65 72 20 6c 6f 6f 70 20 6f 66 20  e inner loop of 
7280: 76 64 62 65 2e 63 0a 20 20 20 20 74 6f 20 68 65  vdbe.c.    to he
7290: 6c 70 20 74 68 65 20 6c 69 62 72 61 72 79 20 74  lp the library t
72a0: 6f 20 72 75 6e 20 61 20 6c 69 74 74 6c 65 20 66  o run a little f
72b0: 61 73 74 65 72 2e 20 20 54 68 65 20 63 6f 64 65  aster.  The code
72c0: 20 69 73 20 6f 6e 6c 79 0a 20 20 20 20 72 65 6d   is only.    rem
72d0: 6f 76 65 64 20 69 66 20 79 6f 75 20 63 6f 6d 70  oved if you comp
72e0: 69 6c 65 20 77 69 74 68 20 2d 44 4e 44 45 42 55  ile with -DNDEBU
72f0: 47 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  G.</li>.}..chng 
7300: 7b 32 30 30 30 20 4f 63 74 20 31 39 20 28 31 2e  {2000 Oct 19 (1.
7310: 30 2e 31 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  0.14)} {.<li>Add
7320: 65 64 20 61 20 22 6d 65 6d 6f 72 79 3a 22 20 62  ed a "memory:" b
7330: 61 63 6b 65 6e 64 20 64 72 69 76 65 72 20 74 68  ackend driver th
7340: 61 74 20 73 74 6f 72 65 73 20 69 74 73 20 64 61  at stores its da
7350: 74 61 62 61 73 65 20 69 6e 20 61 6e 0a 20 20 20  tabase in an.   
7360: 20 69 6e 2d 6d 65 6d 6f 72 79 20 68 61 73 68 20   in-memory hash 
7370: 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  table.</li>.}..c
7380: 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31 38  hng {2000 Oct 18
7390: 20 28 31 2e 30 2e 31 33 29 7d 20 7b 0a 3c 6c 69   (1.0.13)} {.<li
73a0: 3e 42 72 65 61 6b 20 6f 75 74 20 74 68 65 20 47  >Break out the G
73b0: 44 42 4d 20 64 72 69 76 65 72 20 69 6e 74 6f 20  DBM driver into 
73c0: 61 20 73 65 70 61 72 61 74 65 20 66 69 6c 65 20  a separate file 
73d0: 69 6e 20 61 6e 74 69 63 69 70 61 74 69 6f 6e 0a  in anticipation.
73e0: 20 20 20 20 74 6f 20 61 64 64 65 64 20 6e 65 77      to added new
73f0: 20 64 72 69 76 65 72 73 2e 3c 2f 6c 69 3e 0a 3c   drivers.</li>.<
7400: 6c 69 3e 41 6c 6c 6f 77 20 74 68 65 20 6e 61 6d  li>Allow the nam
7410: 65 20 6f 66 20 61 20 64 61 74 61 62 61 73 65 20  e of a database 
7420: 74 6f 20 62 65 20 70 72 65 66 69 78 65 64 20 62  to be prefixed b
7430: 79 20 74 68 65 20 64 72 69 76 65 72 20 74 79 70  y the driver typ
7440: 65 2e 0a 20 20 20 20 46 6f 72 20 6e 6f 77 2c 20  e..    For now, 
7450: 74 68 65 20 6f 6e 6c 79 20 64 72 69 76 65 72 20  the only driver 
7460: 74 79 70 65 20 69 73 20 22 67 64 62 6d 3a 22 2e  type is "gdbm:".
7470: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
7480: 30 30 30 20 4f 63 74 20 31 36 20 28 31 2e 30 2e  000 Oct 16 (1.0.
7490: 31 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 65 64  12)} {.<li>Fixed
74a0: 20 61 6e 20 6f 66 66 2d 62 79 2d 6f 6e 65 20 65   an off-by-one e
74b0: 72 72 6f 72 20 74 68 61 74 20 77 61 73 20 63 61  rror that was ca
74c0: 75 73 69 6e 67 20 61 20 63 6f 72 65 64 75 6d 70  using a coredump
74d0: 20 69 6e 20 0a 20 20 20 20 74 68 65 20 27 25 71   in .    the '%q
74e0: 27 20 66 6f 72 6d 61 74 20 64 69 72 65 63 74 69  ' format directi
74f0: 76 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20  ve of the new.  
7500: 20 20 3c 62 3e 73 71 6c 69 74 65 5f 2e 2e 2e 5f    <b>sqlite_..._
7510: 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20 72 6f 75  printf()</b> rou
7520: 74 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tines.</li>.<li>
7530: 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  Added the <b>sql
7540: 69 74 65 5f 69 6e 74 65 72 72 75 70 74 28 29 3c  ite_interrupt()<
7550: 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  /b> interface.</
7560: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  li>.<li>In the s
7570: 68 65 6c 6c 2c 20 3c 62 3e 73 71 6c 69 74 65 5f  hell, <b>sqlite_
7580: 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20  interrupt()</b> 
7590: 69 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e 20  is invoked when 
75a0: 74 68 65 0a 20 20 20 20 75 73 65 72 20 70 72 65  the.    user pre
75b0: 73 73 65 73 20 43 6f 6e 74 72 6f 6c 2d 43 3c 2f  sses Control-C</
75c0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 73 6f  li>.<li>Fixed so
75d0: 6d 65 20 69 6e 73 74 61 6e 63 65 73 20 77 68 65  me instances whe
75e0: 72 65 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65  re <b>sqlite_exe
75f0: 63 28 29 3c 2f 62 3e 20 77 61 73 0a 20 20 20 20  c()</b> was.    
7600: 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 77 72  returning the wr
7610: 6f 6e 67 20 65 72 72 6f 72 20 63 6f 64 65 2e 3c  ong error code.<
7620: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7630: 30 30 20 4f 63 74 20 31 31 20 28 31 2e 30 2e 31  00 Oct 11 (1.0.1
7640: 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  0)} {.<li>Added 
7650: 6e 6f 74 65 73 20 6f 6e 20 68 6f 77 20 74 6f 20  notes on how to 
7660: 63 6f 6d 70 69 6c 65 20 66 6f 72 20 57 69 6e 64  compile for Wind
7670: 6f 77 73 39 35 2f 39 38 2e 3c 2f 6c 69 3e 0a 3c  ows95/98.</li>.<
7680: 6c 69 3e 52 65 6d 6f 76 65 64 20 61 20 66 65 77  li>Removed a few
7690: 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20   variables that 
76a0: 77 65 72 65 20 6e 6f 74 20 62 65 69 6e 67 20 75  were not being u
76b0: 73 65 64 2e 20 20 45 74 63 2e 3c 2f 6c 69 3e 0a  sed.  Etc.</li>.
76c0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
76d0: 74 20 38 20 28 31 2e 30 2e 39 29 7d 20 7b 0a 3c  t 8 (1.0.9)} {.<
76e0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e  li>Added the <b>
76f0: 73 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74  sqlite_..._print
7700: 66 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63  f()</b> interfac
7710: 65 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c 69 3e  e routines.</li>
7720: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
7730: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
7740: 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20 74 6f  shell program to
7750: 20 75 73 65 20 74 68 65 20 6e 65 77 20 69 6e 74   use the new int
7760: 65 72 66 61 63 65 20 0a 20 20 20 20 72 6f 75 74  erface .    rout
7770: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ines.</li>.<li>M
7780: 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73  odified the <b>s
7790: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
77a0: 70 72 6f 67 72 61 6d 20 74 6f 20 70 72 69 6e 74  program to print
77b0: 20 74 68 65 20 73 63 68 65 6d 61 20 66 6f 72 0a   the schema for.
77c0: 20 20 20 20 74 68 65 20 62 75 69 6c 74 2d 69 6e      the built-in
77d0: 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 20 74   SQLITE_MASTER t
77e0: 61 62 6c 65 2c 20 69 66 20 65 78 70 6c 69 63 69  able, if explici
77f0: 74 6c 79 20 72 65 71 75 65 73 74 65 64 2e 3c 2f  tly requested.</
7800: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7810: 30 20 53 65 70 20 33 30 20 28 31 2e 30 2e 38 29  0 Sep 30 (1.0.8)
7820: 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72  } {.<li>Begin wr
7830: 69 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74  iting documentat
7840: 69 6f 6e 20 6f 6e 20 74 68 65 20 54 43 4c 20 69  ion on the TCL i
7850: 6e 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d  nterface.</li>.}
7860: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70  ..chng {2000 Sep
7870: 20 32 39 20 28 4e 6f 74 20 52 65 6c 65 61 73 65   29 (Not Release
7880: 64 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  d)} {.<li>Added 
7890: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 67 65  the <b>sqlite_ge
78a0: 74 5f 74 61 62 6c 65 28 29 3c 2f 62 3e 20 41 50  t_table()</b> AP
78b0: 49 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  I</li>.<li>Updat
78c0: 65 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61  ed the documenta
78d0: 74 69 6f 6e 20 66 6f 72 20 64 75 65 20 74 6f 20  tion for due to 
78e0: 74 68 65 20 61 62 6f 76 65 20 63 68 61 6e 67 65  the above change
78f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66  .</li>.<li>Modif
7900: 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74  ied the <b>sqlit
7910: 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f 20 6d  e</b> shell to m
7920: 61 6b 65 20 75 73 65 20 6f 66 20 74 68 65 20 6e  ake use of the n
7930: 65 77 0a 20 20 20 20 73 71 6c 69 74 65 5f 67 65  ew.    sqlite_ge
7940: 74 5f 74 61 62 6c 65 28 29 20 41 50 49 20 69 6e  t_table() API in
7950: 20 6f 72 64 65 72 20 74 6f 20 70 72 69 6e 74 20   order to print 
7960: 61 20 6c 69 73 74 20 6f 66 20 74 61 62 6c 65 73  a list of tables
7970: 0a 20 20 20 20 69 6e 20 6d 75 6c 74 69 70 6c 65  .    in multiple
7980: 20 63 6f 6c 75 6d 6e 73 2c 20 73 69 6d 69 6c 61   columns, simila
7990: 72 20 74 6f 20 74 68 65 20 77 61 79 20 22 6c 73  r to the way "ls
79a0: 22 20 70 72 69 6e 74 73 20 66 69 6c 65 6e 61 6d  " prints filenam
79b0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  es.</li>.<li>Mod
79c0: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
79d0: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 74 6f  ite</b> shell to
79e0: 20 70 72 69 6e 74 20 61 20 73 65 6d 69 63 6f 6c   print a semicol
79f0: 6f 6e 20 61 74 20 74 68 65 0a 20 20 20 20 65 6e  on at the.    en
7a00: 64 20 6f 66 20 65 61 63 68 20 43 52 45 41 54 45  d of each CREATE
7a10: 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 74 68   statement in th
7a20: 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20  e output of the 
7a30: 22 2e 73 63 68 65 6d 61 22 20 63 6f 6d 6d 61 6e  ".schema" comman
7a40: 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  d.</li>.}..chng 
7a50: 7b 32 30 30 30 20 53 65 70 20 32 31 20 28 4e 6f  {2000 Sep 21 (No
7a60: 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c  t Released)} {.<
7a70: 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 74 63  li>Change the tc
7a80: 6c 73 71 6c 69 74 65 20 22 65 76 61 6c 22 20 6d  lsqlite "eval" m
7a90: 65 74 68 6f 64 20 74 6f 20 72 65 74 75 72 6e 20  ethod to return 
7aa0: 61 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74  a list of result
7ab0: 73 20 69 66 0a 20 20 20 20 6e 6f 20 63 61 6c 6c  s if.    no call
7ac0: 62 61 63 6b 20 73 63 72 69 70 74 20 69 73 20 73  back script is s
7ad0: 70 65 63 69 66 69 65 64 2e 3c 2f 6c 69 3e 0a 3c  pecified.</li>.<
7ae0: 6c 69 3e 43 68 61 6e 67 65 20 74 63 6c 73 71 6c  li>Change tclsql
7af0: 69 74 65 2e 63 20 74 6f 20 75 73 65 20 74 68 65  ite.c to use the
7b00: 20 54 63 6c 5f 4f 62 6a 20 69 6e 74 65 72 66 61   Tcl_Obj interfa
7b10: 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20  ce</li>.<li>Add 
7b20: 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f 20 74  tclsqlite.c to t
7b30: 68 65 20 6c 69 62 73 71 6c 69 74 65 2e 61 20 6c  he libsqlite.a l
7b40: 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ibrary</li>.}..c
7b50: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 31 33  hng {2000 Sep 13
7b60: 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 35 29   (Version 1.0.5)
7b70: 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20  } {.<li>Changed 
7b80: 74 68 65 20 70 72 69 6e 74 20 66 6f 72 6d 61 74  the print format
7b90: 20 66 6f 72 20 66 6c 6f 61 74 69 6e 67 20 70 6f   for floating po
7ba0: 69 6e 74 20 76 61 6c 75 65 73 20 66 72 6f 6d 20  int values from 
7bb0: 22 25 67 22 20 74 6f 20 22 25 2e 31 35 67 22 2e  "%g" to "%.15g".
7bc0: 0a 20 20 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  .    </li>.<li>C
7bd0: 68 61 6e 67 65 64 20 74 68 65 20 63 6f 6d 70 61  hanged the compa
7be0: 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 73  rison function s
7bf0: 6f 20 74 68 61 74 20 6e 75 6d 62 65 72 73 20 69  o that numbers i
7c00: 6e 20 65 78 70 6f 6e 65 6e 74 69 61 6c 20 6e 6f  n exponential no
7c10: 74 61 74 69 6f 6e 0a 20 20 20 20 28 65 78 3a 20  tation.    (ex: 
7c20: 31 2e 32 33 34 65 2b 30 35 29 20 73 6f 72 74 20  1.234e+05) sort 
7c30: 69 6e 20 6e 75 6d 65 72 69 63 61 6c 20 6f 72 64  in numerical ord
7c40: 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  er.</li>.}..chng
7c50: 20 7b 32 30 30 30 20 41 75 67 20 32 38 20 28 56   {2000 Aug 28 (V
7c60: 65 72 73 69 6f 6e 20 31 2e 30 2e 34 29 7d 20 7b  ersion 1.0.4)} {
7c70: 0a 3c 6c 69 3e 41 64 64 65 64 20 66 75 6e 63 74  .<li>Added funct
7c80: 69 6f 6e 73 20 3c 62 3e 6c 65 6e 67 74 68 28 29  ions <b>length()
7c90: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 73 75 62 73  </b> and <b>subs
7ca0: 74 72 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 3c  tr()</b>.</li>.<
7cb0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
7cc0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
7cd0: 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20  > shell program 
7ce0: 74 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67  that was causing
7cf0: 0a 20 20 20 20 61 20 63 6f 72 65 64 75 6d 70 20  .    a coredump 
7d00: 77 68 65 6e 20 74 68 65 20 6f 75 74 70 75 74 20  when the output 
7d10: 6d 6f 64 65 20 77 61 73 20 22 63 6f 6c 75 6d 6e  mode was "column
7d20: 22 20 61 6e 64 20 74 68 65 20 66 69 72 73 74 20  " and the first 
7d30: 72 6f 77 0a 20 20 20 20 6f 66 20 64 61 74 61 20  row.    of data 
7d40: 63 6f 6e 74 61 69 6e 65 64 20 61 20 4e 55 4c 4c  contained a NULL
7d50: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
7d60: 32 30 30 30 20 41 75 67 20 32 32 20 28 56 65 72  2000 Aug 22 (Ver
7d70: 73 69 6f 6e 20 31 2e 30 2e 33 29 7d 20 7b 0a 3c  sion 1.0.3)} {.<
7d80: 6c 69 3e 49 6e 20 74 68 65 20 73 71 6c 69 74 65  li>In the sqlite
7d90: 20 73 68 65 6c 6c 2c 20 70 72 69 6e 74 20 74 68   shell, print th
7da0: 65 20 22 44 61 74 61 62 61 73 65 20 6f 70 65 6e  e "Database open
7db0: 65 64 20 52 45 41 44 20 4f 4e 4c 59 22 20 6d 65  ed READ ONLY" me
7dc0: 73 73 61 67 65 0a 20 20 20 20 74 6f 20 73 74 64  ssage.    to std
7dd0: 65 72 72 20 69 6e 73 74 65 61 64 20 6f 66 20 73  err instead of s
7de0: 74 64 6f 75 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tdout.</li>.<li>
7df0: 49 6e 20 74 68 65 20 73 71 6c 69 74 65 20 73 68  In the sqlite sh
7e00: 65 6c 6c 2c 20 6e 6f 77 20 70 72 69 6e 74 20 74  ell, now print t
7e10: 68 65 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  he version numbe
7e20: 72 20 6f 6e 20 69 6e 69 74 69 61 6c 20 73 74 61  r on initial sta
7e30: 72 74 75 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  rtup.</li>.<li>A
7e40: 64 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  dd the <b>sqlite
7e50: 5f 76 65 72 73 69 6f 6e 5b 5d 3c 2f 62 3e 20 73  _version[]</b> s
7e60: 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 74  tring constant t
7e70: 6f 20 74 68 65 20 6c 69 62 72 61 72 79 3c 2f 6c  o the library</l
7e80: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 66 69 6c 65 20  i>.<li>Makefile 
7e90: 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  updates</li>.<li
7ea0: 3e 42 75 67 20 66 69 78 3a 20 69 6e 63 6f 72 72  >Bug fix: incorr
7eb0: 65 63 74 20 56 44 42 45 20 63 6f 64 65 20 77 61  ect VDBE code wa
7ec0: 73 20 62 65 69 6e 67 20 67 65 6e 65 72 61 74 65  s being generate
7ed0: 64 20 66 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77  d for the follow
7ee0: 69 6e 67 0a 20 20 20 20 63 69 72 63 75 6d 73 74  ing.    circumst
7ef0: 61 6e 63 65 3a 20 61 20 71 75 65 72 79 20 6f 6e  ance: a query on
7f00: 20 61 6e 20 69 6e 64 65 78 65 64 20 74 61 62 6c   an indexed tabl
7f10: 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 57  e containing a W
7f20: 48 45 52 45 20 63 6c 61 75 73 65 20 77 69 74 68  HERE clause with
7f30: 0a 20 20 20 20 61 6e 20 49 4e 20 6f 70 65 72 61  .    an IN opera
7f40: 74 6f 72 20 74 68 61 74 20 68 61 64 20 61 20 73  tor that had a s
7f50: 75 62 71 75 65 72 79 20 6f 6e 20 69 74 73 20 72  ubquery on its r
7f60: 69 67 68 74 2d 68 61 6e 64 20 73 69 64 65 2e 3c  ight-hand side.<
7f70: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
7f80: 30 30 20 41 75 67 20 31 38 20 28 56 65 72 73 69  00 Aug 18 (Versi
7f90: 6f 6e 20 31 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69  on 1.0.1)} {.<li
7fa0: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74 68  >Fix a bug in th
7fb0: 65 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69  e configure scri
7fc0: 70 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 6e  pt.</li>.<li>Min
7fd0: 6f 72 20 72 65 76 69 73 69 6f 6e 73 20 74 6f 20  or revisions to 
7fe0: 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f 6c 69  the website.</li
7ff0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
8000: 41 75 67 20 31 37 20 28 56 65 72 73 69 6f 6e 20  Aug 17 (Version 
8010: 31 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e  1.0)} {.<li>Chan
8020: 67 65 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ge the <b>sqlite
8030: 3c 2f 62 3e 20 70 72 6f 67 72 61 6d 20 73 6f 20  </b> program so 
8040: 74 68 61 74 20 69 74 20 63 61 6e 20 72 65 61 64  that it can read
8050: 0a 20 20 20 20 64 61 74 61 62 61 73 65 73 20 66  .    databases f
8060: 6f 72 20 77 68 69 63 68 20 69 74 20 6c 61 63 6b  or which it lack
8070: 73 20 77 72 69 74 65 20 70 65 72 6d 69 73 73 69  s write permissi
8080: 6f 6e 2e 20 20 28 49 74 20 75 73 65 64 20 74 6f  on.  (It used to
8090: 0a 20 20 20 20 72 65 66 75 73 65 20 61 6c 6c 20  .    refuse all 
80a0: 61 63 63 65 73 73 20 69 66 20 69 74 20 63 6f 75  access if it cou
80b0: 6c 64 20 6e 6f 74 20 77 72 69 74 65 2e 29 3c 2f  ld not write.)</
80c0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
80d0: 30 20 41 75 67 20 39 7d 20 7b 0a 3c 6c 69 3e 54  0 Aug 9} {.<li>T
80e0: 72 65 61 74 20 63 61 72 72 69 61 67 65 20 72 65  reat carriage re
80f0: 74 75 72 6e 73 20 61 73 20 77 68 69 74 65 20 73  turns as white s
8100: 70 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  pace.</li>.}..ch
8110: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 38 7d 20  ng {2000 Aug 8} 
8120: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 70 61 74 74  {.<li>Added patt
8130: 65 72 6e 20 6d 61 74 63 68 69 6e 67 20 74 6f 20  ern matching to 
8140: 74 68 65 20 22 2e 74 61 62 6c 65 22 20 63 6f 6d  the ".table" com
8150: 6d 61 6e 64 20 69 6e 20 74 68 65 20 22 73 71 6c  mand in the "sql
8160: 69 74 65 22 0a 63 6f 6d 6d 61 6e 64 20 73 68 65  ite".command she
8170: 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ll.</li>.}..chng
8180: 20 7b 32 30 30 30 20 41 75 67 20 34 7d 20 7b 0a   {2000 Aug 4} {.
8190: 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f  <li>Documentatio
81a0: 6e 20 75 70 64 61 74 65 73 3c 2f 6c 69 3e 0a 3c  n updates</li>.<
81b0: 6c 69 3e 41 64 64 65 64 20 22 62 75 73 79 22 20  li>Added "busy" 
81c0: 61 6e 64 20 22 74 69 6d 65 6f 75 74 22 20 6d 65  and "timeout" me
81d0: 74 68 6f 64 73 20 74 6f 20 74 68 65 20 54 63 6c  thods to the Tcl
81e0: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
81f0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75  }..chng {2000 Au
8200: 67 20 33 7d 20 7b 0a 3c 6c 69 3e 46 69 6c 65 20  g 3} {.<li>File 
8210: 66 6f 72 6d 61 74 20 76 65 72 73 69 6f 6e 20 6e  format version n
8220: 75 6d 62 65 72 20 77 61 73 20 62 65 69 6e 67 20  umber was being 
8230: 73 74 6f 72 65 64 20 69 6e 20 73 71 6c 69 74 65  stored in sqlite
8240: 5f 6d 61 73 74 65 72 2e 74 63 6c 0a 20 20 20 20  _master.tcl.    
8250: 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 20  multiple times. 
8260: 54 68 69 73 20 77 61 73 20 68 61 72 6d 6c 65 73  This was harmles
8270: 73 2c 20 62 75 74 20 75 6e 6e 65 63 65 73 73 61  s, but unnecessa
8280: 72 79 2e 20 49 74 20 69 73 20 6e 6f 77 20 66 69  ry. It is now fi
8290: 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xed.</li>.}..chn
82a0: 67 20 7b 32 30 30 30 20 41 75 67 20 32 7d 20 7b  g {2000 Aug 2} {
82b0: 0a 3c 6c 69 3e 54 68 65 20 66 69 6c 65 20 66 6f  .<li>The file fo
82c0: 72 6d 61 74 20 66 6f 72 20 69 6e 64 69 63 65 73  rmat for indices
82d0: 20 77 61 73 20 63 68 61 6e 67 65 64 20 73 6c 69   was changed sli
82e0: 67 68 74 6c 79 20 69 6e 20 6f 72 64 65 72 20 74  ghtly in order t
82f0: 6f 20 77 6f 72 6b 0a 20 20 20 20 61 72 6f 75 6e  o work.    aroun
8300: 64 20 61 6e 20 69 6e 65 66 66 69 63 69 65 6e 63  d an inefficienc
8310: 79 20 74 68 61 74 20 63 61 6e 20 73 6f 6d 65 74  y that can somet
8320: 69 6d 65 73 20 63 6f 6d 65 20 75 70 20 77 69 74  imes come up wit
8330: 68 20 47 44 42 4d 20 77 68 65 6e 0a 20 20 20 20  h GDBM when.    
8340: 74 68 65 72 65 20 61 72 65 20 6c 61 72 67 65 20  there are large 
8350: 69 6e 64 69 63 65 73 20 68 61 76 69 6e 67 20 6d  indices having m
8360: 61 6e 79 20 65 6e 74 72 69 65 73 20 77 69 74 68  any entries with
8370: 20 74 68 65 20 73 61 6d 65 20 6b 65 79 2e 0a 20   the same key.. 
8380: 20 20 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22     <font color="
8390: 72 65 64 22 3e 2a 2a 20 49 6e 63 6f 6d 70 61 74  red">** Incompat
83a0: 69 62 6c 65 20 43 68 61 6e 67 65 20 2a 2a 3c 2f  ible Change **</
83b0: 66 6f 6e 74 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  font></li>.}..ch
83c0: 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 7d 20  ng {2000 Aug 1} 
83d0: 7b 0a 3c 6c 69 3e 54 68 65 20 70 61 72 73 65 72  {.<li>The parser
83e0: 27 73 20 73 74 61 63 6b 20 77 61 73 20 6f 76 65  's stack was ove
83f0: 72 66 6c 6f 77 69 6e 67 20 6f 6e 20 61 20 76 65  rflowing on a ve
8400: 72 79 20 6c 6f 6e 67 20 55 50 44 41 54 45 20 73  ry long UPDATE s
8410: 74 61 74 65 6d 65 6e 74 2e 0a 20 20 20 20 54 68  tatement..    Th
8420: 69 73 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e  is is now fixed.
8430: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8440: 30 30 30 20 4a 75 6c 79 20 33 31 7d 20 7b 0a 3c  000 July 31} {.<
8450: 6c 69 3e 46 69 6e 69 73 68 20 74 68 65 20 3c 61  li>Finish the <a
8460: 20 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c   href="vdbe.html
8470: 22 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c  ">VDBE tutorial<
8480: 2f 61 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  /a>.</li>.<li>Ad
8490: 64 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ded documentatio
84a0: 6e 20 6f 6e 20 63 6f 6d 70 69 6c 69 6e 67 20 74  n on compiling t
84b0: 6f 20 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69  o WindowsNT.</li
84c0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66  >.<li>Fix a conf
84d0: 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 67 72 61  iguration progra
84e0: 6d 20 66 6f 72 20 57 69 6e 64 6f 77 73 4e 54 2e  m for WindowsNT.
84f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
8500: 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72  configuration pr
8510: 6f 62 6c 65 6d 20 66 6f 72 20 48 50 55 58 2e 3c  oblem for HPUX.<
8520: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8530: 30 30 20 4a 75 6c 79 20 32 39 7d 20 7b 0a 3c 6c  00 July 29} {.<l
8540: 69 3e 42 65 74 74 65 72 20 6c 61 62 65 6c 73 20  i>Better labels 
8550: 6f 6e 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20  on column names 
8560: 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2e 3c 2f  of the result.</
8570: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
8580: 30 20 4a 75 6c 79 20 32 38 7d 20 7b 0a 3c 6c 69  0 July 28} {.<li
8590: 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
85a0: 6c 69 74 65 5f 62 75 73 79 5f 68 61 6e 64 6c 65  lite_busy_handle
85b0: 72 28 29 3c 2f 62 3e 20 0a 20 20 20 20 61 6e 64  r()</b> .    and
85c0: 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73 79 5f   <b>sqlite_busy_
85d0: 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e 20 69 6e  timeout()</b> in
85e0: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a  terface.</li>.}.
85f0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
8600: 20 32 33 7d 20 7b 0a 3c 6c 69 3e 42 65 67 69 6e   23} {.<li>Begin
8610: 20 77 72 69 74 69 6e 67 20 74 68 65 20 3c 61 20   writing the <a 
8620: 68 72 65 66 3d 22 76 64 62 65 2e 68 74 6d 6c 22  href="vdbe.html"
8630: 3e 56 44 42 45 20 74 75 74 6f 72 69 61 6c 3c 2f  >VDBE tutorial</
8640: 61 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  a>.</li>.}..chng
8650: 20 7b 32 30 30 30 20 4a 75 6e 65 20 32 31 7d 20   {2000 June 21} 
8660: 7b 0a 3c 6c 69 3e 43 6c 65 61 6e 20 75 70 20 63  {.<li>Clean up c
8670: 6f 6d 6d 65 6e 74 73 20 61 6e 64 20 76 61 72 69  omments and vari
8680: 61 62 6c 65 20 6e 61 6d 65 73 2e 20 20 43 68 61  able names.  Cha
8690: 6e 67 65 73 20 74 6f 20 64 6f 63 75 6d 65 6e 74  nges to document
86a0: 61 74 69 6f 6e 2e 0a 20 20 20 20 4e 6f 20 66 75  ation..    No fu
86b0: 6e 63 74 69 6f 6e 61 6c 20 63 68 61 6e 67 65 73  nctional changes
86c0: 20 74 6f 20 74 68 65 20 63 6f 64 65 2e 3c 2f 6c   to the code.</l
86d0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
86e0: 20 4a 75 6e 65 20 31 39 7d 20 7b 0a 3c 6c 69 3e   June 19} {.<li>
86f0: 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 20  Column names in 
8700: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
8710: 73 20 77 65 72 65 20 63 61 73 65 20 73 65 6e 73  s were case sens
8720: 69 74 69 76 65 2e 0a 20 20 20 20 54 68 69 73 20  itive..    This 
8730: 6d 69 73 74 61 6b 65 20 68 61 73 20 6e 6f 77 20  mistake has now 
8740: 62 65 65 6e 20 66 69 78 65 64 2e 3c 2f 6c 69 3e  been fixed.</li>
8750: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
8760: 75 6e 65 20 31 36 7d 20 7b 0a 3c 6c 69 3e 41 64  une 16} {.<li>Ad
8770: 64 65 64 20 74 68 65 20 63 6f 6e 63 61 74 65 6e  ded the concaten
8780: 61 74 65 20 73 74 72 69 6e 67 20 6f 70 65 72 61  ate string opera
8790: 74 6f 72 20 28 7c 7c 29 3c 2f 6c 69 3e 0a 7d 0a  tor (||)</li>.}.
87a0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
87b0: 20 31 32 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   12} {.<li>Added
87c0: 20 74 68 65 20 66 63 6e 74 28 29 20 66 75 6e 63   the fcnt() func
87d0: 74 69 6f 6e 20 74 6f 20 74 68 65 20 53 51 4c 20  tion to the SQL 
87e0: 69 6e 74 65 72 70 72 65 74 65 72 2e 20 20 54 68  interpreter.  Th
87f0: 65 20 66 63 6e 74 28 29 20 66 75 6e 63 74 69 6f  e fcnt() functio
8800: 6e 0a 20 20 20 20 72 65 74 75 72 6e 73 20 74 68  n.    returns th
8810: 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 74 61  e number of data
8820: 62 61 73 65 20 22 46 65 74 63 68 22 20 6f 70 65  base "Fetch" ope
8830: 72 61 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76  rations that hav
8840: 65 20 6f 63 63 75 72 72 65 64 2e 0a 20 20 20 20  e occurred..    
8850: 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73  This function is
8860: 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 75 73   designed for us
8870: 65 20 69 6e 20 74 65 73 74 20 73 63 72 69 70 74  e in test script
8880: 73 20 74 6f 20 76 65 72 69 66 79 20 74 68 61 74  s to verify that
8890: 0a 20 20 20 20 71 75 65 72 69 65 73 20 61 72 65  .    queries are
88a0: 20 65 66 66 69 63 69 65 6e 74 20 61 6e 64 20 61   efficient and a
88b0: 70 70 72 6f 70 72 69 61 74 65 6c 79 20 6f 70 74  ppropriately opt
88c0: 69 6d 69 7a 65 64 2e 20 20 46 63 6e 74 28 29 20  imized.  Fcnt() 
88d0: 68 61 73 20 6e 6f 20 6f 74 68 65 72 0a 20 20 20  has no other.   
88e0: 20 75 73 65 66 75 6c 20 70 75 72 70 6f 73 65 2c   useful purpose,
88f0: 20 61 73 20 66 61 72 20 61 73 20 49 20 6b 6e 6f   as far as I kno
8900: 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  w.</li>.<li>Adde
8910: 64 20 61 20 62 75 6e 63 68 20 6d 6f 72 65 20 74  d a bunch more t
8920: 65 73 74 73 20 74 68 61 74 20 74 61 6b 65 20 61  ests that take a
8930: 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20  dvantage of the 
8940: 6e 65 77 20 66 63 6e 74 28 29 20 66 75 6e 63 74  new fcnt() funct
8950: 69 6f 6e 2e 0a 20 20 20 20 54 68 65 20 6e 65 77  ion..    The new
8960: 20 74 65 73 74 73 20 64 69 64 20 6e 6f 74 20 75   tests did not u
8970: 6e 63 6f 76 65 72 20 61 6e 79 20 6e 65 77 20 70  ncover any new p
8980: 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69 3e 0a 7d 0a  roblems.</li>.}.
8990: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
89a0: 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20   8} {.<li>Added 
89b0: 6c 6f 74 73 20 6f 66 20 6e 65 77 20 74 65 73 74  lots of new test
89c0: 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e   cases</li>.<li>
89d0: 46 69 78 20 61 20 66 65 77 20 62 75 67 73 20 64  Fix a few bugs d
89e0: 69 73 63 6f 76 65 72 65 64 20 77 68 69 6c 65 20  iscovered while 
89f0: 61 64 64 69 6e 67 20 74 65 73 74 20 63 61 73 65  adding test case
8a00: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 67 69 6e  s</li>.<li>Begin
8a10: 20 61 64 64 69 6e 67 20 6c 6f 74 73 20 6f 66 20   adding lots of 
8a20: 6e 65 77 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f  new documentatio
8a30: 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  n</li>.}..chng {
8a40: 32 30 30 30 20 4a 75 6e 65 20 36 7d 20 7b 0a 3c  2000 June 6} {.<
8a50: 6c 69 3e 41 64 64 65 64 20 63 6f 6d 70 6f 75 6e  li>Added compoun
8a60: 64 20 73 65 6c 65 63 74 20 6f 70 65 72 61 74 6f  d select operato
8a70: 72 73 3a 20 3c 42 3e 55 4e 49 4f 4e 3c 2f 62 3e  rs: <B>UNION</b>
8a80: 2c 20 3c 62 3e 55 4e 49 4f 4e 20 41 4c 4c 3c 2f  , <b>UNION ALL</
8a90: 42 3e 2c 0a 3c 62 3e 49 4e 54 45 52 53 45 43 54  B>,.<b>INTERSECT
8aa0: 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 45 58 43  </b>, and <b>EXC
8ab0: 45 50 54 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69  EPT</b></li>.<li
8ac0: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
8ad0: 6f 72 20 75 73 69 6e 67 20 3c 62 3e 28 53 45 4c  or using <b>(SEL
8ae0: 45 43 54 20 2e 2e 2e 29 3c 2f 62 3e 20 77 69 74  ECT ...)</b> wit
8af0: 68 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 3c  hin expressions<
8b00: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
8b10: 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e 49 4e  upport for <b>IN
8b20: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 42 45 54 57  </b> and <b>BETW
8b30: 45 45 4e 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72  EEN</b> operator
8b40: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
8b50: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 62 3e   support for <b>
8b60: 47 52 4f 55 50 20 42 59 3c 2f 62 3e 20 61 6e 64  GROUP BY</b> and
8b70: 20 3c 62 3e 48 41 56 49 4e 47 3c 2f 62 3e 3c 2f   <b>HAVING</b></
8b80: 6c 69 3e 0a 3c 6c 69 3e 4e 55 4c 4c 20 76 61 6c  li>.<li>NULL val
8b90: 75 65 73 20 61 72 65 20 6e 6f 77 20 72 65 70 6f  ues are now repo
8ba0: 72 74 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c  rted to the call
8bb0: 62 61 63 6b 20 61 73 20 61 20 4e 55 4c 4c 20 70  back as a NULL p
8bc0: 6f 69 6e 74 65 72 0a 20 20 20 20 72 61 74 68 65  ointer.    rathe
8bd0: 72 20 74 68 61 6e 20 61 6e 20 65 6d 70 74 79 20  r than an empty 
8be0: 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  string.</li>.}..
8bf0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
8c00: 33 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73  3} {.<li>Added s
8c10: 75 70 70 6f 72 74 20 66 6f 72 20 64 65 66 61 75  upport for defau
8c20: 6c 74 20 76 61 6c 75 65 73 20 6f 6e 20 63 6f 6c  lt values on col
8c30: 75 6d 6e 73 20 6f 66 20 61 20 74 61 62 6c 65 2e  umns of a table.
8c40: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
8c50: 65 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65  ed test coverage
8c60: 2e 20 20 46 69 78 65 64 20 61 20 66 65 77 20 6f  .  Fixed a few o
8c70: 62 73 63 75 72 65 20 62 75 67 73 20 66 6f 75 6e  bscure bugs foun
8c80: 64 20 62 79 20 74 68 65 0a 69 6d 70 72 6f 76 65  d by the.improve
8c90: 64 20 74 65 73 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  d tests.</li>.}.
8ca0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65  .chng {2000 June
8cb0: 20 32 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 20 64 61   2} {.<li>All da
8cc0: 74 61 62 61 73 65 20 66 69 6c 65 73 20 74 6f 20  tabase files to 
8cd0: 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 61  be modified by a
8ce0: 6e 20 55 50 44 41 54 45 2c 20 49 4e 53 45 52 54  n UPDATE, INSERT
8cf0: 20 6f 72 20 44 45 4c 45 54 45 20 61 72 65 20 0a   or DELETE are .
8d00: 6e 6f 77 20 6c 6f 63 6b 65 64 20 62 65 66 6f 72  now locked befor
8d10: 65 20 61 6e 79 20 63 68 61 6e 67 65 73 20 61 72  e any changes ar
8d20: 65 20 6d 61 64 65 20 74 6f 20 61 6e 79 20 66 69  e made to any fi
8d30: 6c 65 73 2e 20 20 0a 54 68 69 73 20 6d 61 6b 65  les.  .This make
8d40: 73 20 69 74 20 73 61 66 65 20 28 49 20 74 68 69  s it safe (I thi
8d50: 6e 6b 29 20 74 6f 20 61 63 63 65 73 73 0a 74 68  nk) to access.th
8d60: 65 20 73 61 6d 65 20 64 61 74 61 62 61 73 65 20  e same database 
8d70: 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 66  simultaneously f
8d80: 72 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 70 72 6f  rom multiple pro
8d90: 63 65 73 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  cesses.</li>.<li
8da0: 3e 54 68 65 20 63 6f 64 65 20 61 70 70 65 61 72  >The code appear
8db0: 73 20 73 74 61 62 6c 65 20 73 6f 20 77 65 20 61  s stable so we a
8dc0: 72 65 20 6e 6f 77 20 63 61 6c 6c 69 6e 67 20 69  re now calling i
8dd0: 74 20 22 62 65 74 61 22 2e 3c 2f 6c 69 3e 0a 7d  t "beta".</li>.}
8de0: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
8df0: 65 20 31 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65  e 1} {.<li>Bette
8e00: 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 69  r support for fi
8e10: 6c 65 20 6c 6f 63 6b 69 6e 67 20 73 6f 20 74 68  le locking so th
8e20: 61 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20 70  at two or more p
8e30: 72 6f 63 65 73 73 65 73 20 0a 28 6f 72 20 74 68  rocesses .(or th
8e40: 72 65 61 64 73 29 0a 63 61 6e 20 61 63 63 65 73  reads).can acces
8e50: 73 20 74 68 65 20 73 61 6d 65 20 64 61 74 61 62  s the same datab
8e60: 61 73 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73  ase simultaneous
8e70: 6c 79 2e 20 20 4d 6f 72 65 20 77 6f 72 6b 20 6e  ly.  More work n
8e80: 65 65 64 65 64 20 69 6e 0a 74 68 69 73 20 61 72  eeded in.this ar
8e90: 65 61 2c 20 74 68 6f 75 67 68 2e 3c 2f 6c 69 3e  ea, though.</li>
8ea0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d  .}..chng {2000 M
8eb0: 61 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 41 64 64  ay 31} {.<li>Add
8ec0: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61  ed support for a
8ed0: 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f  ggregate functio
8ee0: 6e 73 20 28 45 78 3a 20 3c 62 3e 43 4f 55 4e 54  ns (Ex: <b>COUNT
8ef0: 28 2a 29 3c 2f 62 3e 2c 20 3c 62 3e 4d 49 4e 28  (*)</b>, <b>MIN(
8f00: 2e 2e 2e 29 3c 2f 62 3e 29 0a 74 6f 20 74 68 65  ...)</b>).to the
8f10: 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e   SELECT statemen
8f20: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  t.</li>.<li>Adde
8f30: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 3c 42  d support for <B
8f40: 3e 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  >SELECT DISTINCT
8f50: 20 2e 2e 2e 3c 2f 42 3e 3c 2f 6c 69 3e 0a 7d 0a   ...</B></li>.}.
8f60: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d 61 79 20  .chng {2000 May 
8f70: 33 30 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20  30} {.<li>Added 
8f80: 74 68 65 20 3c 62 3e 4c 49 4b 45 3c 2f 62 3e 20  the <b>LIKE</b> 
8f90: 6f 70 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c  operator.</li>.<
8fa0: 6c 69 3e 41 64 64 65 64 20 61 20 3c 62 3e 47 4c  li>Added a <b>GL
8fb0: 4f 42 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72 3a  OB</b> operator:
8fc0: 20 73 69 6d 69 6c 61 72 20 74 6f 20 3c 42 3e 4c   similar to <B>L
8fd0: 49 4b 45 3c 2f 42 3e 20 0a 62 75 74 20 69 74 20  IKE</B> .but it 
8fe0: 75 73 65 73 20 55 6e 69 78 20 73 68 65 6c 6c 20  uses Unix shell 
8ff0: 67 6c 6f 62 62 69 6e 67 20 77 69 6c 64 63 61 72  globbing wildcar
9000: 64 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68  ds instead of th
9010: 65 20 27 25 27 20 0a 61 6e 64 20 27 5f 27 20 77  e '%' .and '_' w
9020: 69 6c 64 63 61 72 64 73 20 6f 66 20 53 51 4c 2e  ildcards of SQL.
9030: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
9040: 74 68 65 20 3c 42 3e 43 4f 50 59 3c 2f 62 3e 20  the <B>COPY</b> 
9050: 63 6f 6d 6d 61 6e 64 20 70 61 74 74 65 72 6e 65  command patterne
9060: 64 20 61 66 74 65 72 20 0a 3c 61 20 68 72 65 66  d after .<a href
9070: 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 70 6f 73  ="http://www.pos
9080: 74 67 72 65 73 71 6c 2e 6f 72 67 2f 22 3e 50 6f  tgresql.org/">Po
9090: 73 74 67 72 65 53 51 4c 3c 2f 61 3e 20 73 6f 20  stgreSQL</a> so 
90a0: 74 68 61 74 20 53 51 4c 69 74 65 0a 63 61 6e 20  that SQLite.can 
90b0: 6e 6f 77 20 72 65 61 64 20 74 68 65 20 6f 75 74  now read the out
90c0: 70 75 74 20 6f 66 20 74 68 65 20 3c 62 3e 70 67  put of the <b>pg
90d0: 5f 64 75 6d 70 3c 2f 62 3e 20 64 61 74 61 62 61  _dump</b> databa
90e0: 73 65 20 64 75 6d 70 20 75 74 69 6c 69 74 79 0a  se dump utility.
90f0: 6f 66 20 50 6f 73 74 67 72 65 53 51 4c 2e 3c 2f  of PostgreSQL.</
9100: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20  li>.<li>Added a 
9110: 3c 42 3e 56 41 43 55 55 4d 3c 2f 42 3e 20 63 6f  <B>VACUUM</B> co
9120: 6d 6d 61 6e 64 20 74 68 61 74 20 74 68 61 74 20  mmand that that 
9130: 63 61 6c 6c 73 20 74 68 65 20 0a 3c 62 3e 67 64  calls the .<b>gd
9140: 62 6d 5f 72 65 6f 72 67 61 6e 69 7a 65 28 29 3c  bm_reorganize()<
9150: 2f 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20  /b> function on 
9160: 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 64  the underlying d
9170: 61 74 61 62 61 73 65 0a 66 69 6c 65 73 2e 3c 2f  atabase.files.</
9180: 6c 69 3e 0a 3c 6c 69 3e 41 6e 64 20 6d 61 6e 79  li>.<li>And many
9190: 2c 20 6d 61 6e 79 20 62 75 67 20 66 69 78 65 73  , many bug fixes
91a0: 2e 2e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ...</li>.}..chng
91b0: 20 7b 32 30 30 30 20 4d 61 79 20 32 39 7d 20 7b   {2000 May 29} {
91c0: 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 50 75 62  .<li>Initial Pub
91d0: 6c 69 63 20 52 65 6c 65 61 73 65 20 6f 66 20 41  lic Release of A
91e0: 6c 70 68 61 20 63 6f 64 65 3c 2f 6c 69 3e 0a 7d  lpha code</li>.}
91f0: 0a 0a 70 75 74 73 20 7b 0a 3c 2f 44 4c 3e 0a 3c  ..puts {.</DL>.<
9200: 70 3e 3c 68 72 20 2f 3e 3c 2f 70 3e 0a 3c 70 3e  p><hr /></p>.<p>
9210: 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 68  <a href="index.h
9220: 74 6d 6c 22 3e 3c 69 6d 67 20 73 72 63 3d 22 2f  tml"><img src="/
9230: 67 6f 62 61 63 6b 2e 6a 70 67 22 20 62 6f 72 64  goback.jpg" bord
9240: 65 72 3d 30 20 2f 3e 0a 42 61 63 6b 20 74 6f 20  er=0 />.Back to 
9250: 74 68 65 20 53 51 4c 69 74 65 20 48 6f 6d 65 20  the SQLite Home 
9260: 50 61 67 65 3c 2f 61 3e 0a 3c 2f 70 3e 0a 0a 3c  Page</a>.</p>..<
9270: 2f 62 6f 64 79 3e 3c 2f 68 74 6d 6c 3e 7d 0a     /body></html>}.