/ Hex Artifact Content
Login

Artifact 4bf48ffd0027217e25d9e2db7914dca099096a2a:


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