/ Hex Artifact Content
Login

Artifact 57cad633740a4b66cdd20d5eb1915295186c7d20:


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 4a 61 6e 20  .chng {2002 Jan 
0140: 3f 3f 20 28 32 2e 32 2e 34 29 7d 20 7b 0a 3c 6c  ?? (2.2.4)} {.<l
0150: 69 3e 54 68 65 20 6c 61 62 65 6c 20 74 6f 20 74  i>The label to t
0160: 68 65 20 72 69 67 68 74 20 6f 66 20 61 6e 20 41  he right of an A
0170: 53 20 69 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20  S in the column 
0180: 6c 69 73 74 20 6f 66 20 61 20 53 45 4c 45 43 54  list of a SELECT
0190: 20 63 61 6e 20 6e 6f 77 0a 20 20 20 20 62 65 20   can now.    be 
01a0: 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 20  used as part of 
01b0: 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e  an expression in
01c0: 20 74 68 65 20 57 48 45 52 45 2c 20 4f 52 44 45   the WHERE, ORDE
01d0: 52 20 42 59 2c 20 47 52 4f 55 50 20 42 59 2c 20  R BY, GROUP BY, 
01e0: 61 6e 64 2f 6f 72 0a 20 20 20 20 48 41 56 49 4e  and/or.    HAVIN
01f0: 47 20 63 6c 61 75 73 65 73 2e 3c 2f 6c 69 3e 0a  G clauses.</li>.
0200: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
0210: 20 74 68 65 20 3c 62 3e 2d 73 65 70 61 72 61 74   the <b>-separat
0220: 6f 72 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c  or</b> command-l
0230: 69 6e 65 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ine option to th
0240: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 0a  e <b>sqlite</b>.
0250: 20 20 20 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69      command.</li
0260: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
0270: 4a 61 6e 20 31 36 20 28 32 2e 32 2e 33 29 7d 20  Jan 16 (2.2.3)} 
0280: 7b 0a 3c 6c 69 3e 46 69 78 20 77 61 72 6e 69 6e  {.<li>Fix warnin
0290: 67 20 6d 65 73 73 61 67 65 73 20 69 6e 20 56 43  g messages in VC
02a0: 2b 2b 20 37 2e 30 2e 20 20 28 50 61 74 63 68 65  ++ 7.0.  (Patche
02b0: 73 20 66 72 6f 6d 20 6e 69 63 6f 6c 61 73 33 35  s from nicolas35
02c0: 32 30 30 31 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  2001)</li>.<li>M
02d0: 61 6b 65 20 74 68 65 20 6c 69 62 72 61 72 79 20  ake the library 
02e0: 74 68 72 65 61 64 2d 73 61 66 65 2e 20 20 28 54  thread-safe.  (T
02f0: 68 65 20 63 6f 64 65 20 69 73 20 74 68 65 72 65  he code is there
0300: 20 61 6e 64 20 61 70 70 65 61 72 73 20 74 6f 20   and appears to 
0310: 77 6f 72 6b 0a 20 20 20 20 62 75 74 20 68 61 73  work.    but has
0320: 20 6e 6f 74 20 62 65 65 6e 20 73 74 72 65 73 73   not been stress
0330: 65 64 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ed.)</li>.<li>Ad
0340: 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 73  ded the new <b>s
0350: 71 6c 69 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72  qlite_last_inser
0360: 74 5f 72 6f 77 69 64 28 29 3c 2f 62 3e 20 41 50  t_rowid()</b> AP
0370: 49 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e  I function.</li>
0380: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
0390: 61 6e 20 31 33 20 28 32 2e 32 2e 32 29 7d 20 7b  an 13 (2.2.2)} {
03a0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e  .<li>Bug fix: An
03b0: 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66   assertion was f
03c0: 61 69 6c 69 6e 67 20 77 68 65 6e 20 61 20 74 65  ailing when a te
03d0: 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 20 77 69  mporary table wi
03e0: 74 68 20 61 6e 20 69 6e 64 65 78 0a 20 20 20 20  th an index.    
03f0: 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e 61 6d  had the same nam
0400: 65 20 61 73 20 61 20 70 65 72 6d 61 6e 65 6e 74  e as a permanent
0410: 20 74 61 62 6c 65 20 63 72 65 61 74 65 64 20 62   table created b
0420: 79 20 61 20 73 65 70 61 72 61 74 65 20 70 72 6f  y a separate pro
0430: 63 65 73 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  cess.</li>.<li>B
0440: 75 67 20 66 69 78 3a 20 55 70 64 61 74 65 73 20  ug fix: Updates 
0450: 74 6f 20 74 61 62 6c 65 73 20 63 6f 6e 74 61 69  to tables contai
0460: 6e 69 6e 67 20 61 6e 20 49 4e 54 45 47 45 52 20  ning an INTEGER 
0470: 50 52 49 4d 41 52 59 20 4b 45 59 20 61 6e 64 20  PRIMARY KEY and 
0480: 61 6e 0a 20 20 20 20 69 6e 64 65 78 20 63 6f 75  an.    index cou
0490: 6c 64 20 66 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a  ld fail.</li>.}.
04a0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
04b0: 39 20 28 32 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69  9 (2.2.1)} {.<li
04c0: 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 74 74  >Bug fix: An att
04d0: 65 6d 70 74 20 74 6f 20 64 65 6c 65 74 65 20 61  empt to delete a
04e0: 20 73 69 6e 67 6c 65 20 72 6f 77 20 6f 66 20 61   single row of a
04f0: 20 74 61 62 6c 65 20 77 69 74 68 20 61 20 57 48   table with a WH
0500: 45 52 45 0a 20 20 20 20 63 6c 61 75 73 65 20 6f  ERE.    clause o
0510: 66 20 22 52 4f 57 49 44 3d 78 22 20 77 68 65 6e  f "ROWID=x" when
0520: 20 6e 6f 20 73 75 63 68 20 72 6f 77 69 64 20 65   no such rowid e
0530: 78 69 73 74 73 20 77 61 73 20 63 61 75 73 69 6e  xists was causin
0540: 67 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e  g an error.</li>
0550: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 50 61  .<li>Bug fix: Pa
0560: 73 73 69 6e 67 20 69 6e 20 61 20 4e 55 4c 4c 20  ssing in a NULL 
0570: 61 73 20 74 68 65 20 33 72 64 20 70 61 72 61 6d  as the 3rd param
0580: 65 74 65 72 20 74 6f 20 3c 62 3e 73 71 6c 69 74  eter to <b>sqlit
0590: 65 5f 6f 70 65 6e 28 29 3c 2f 62 3e 0a 20 20 20  e_open()</b>.   
05a0: 20 77 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73   would sometimes
05b0: 20 63 61 75 73 65 20 61 20 63 6f 72 65 64 75 6d   cause a coredum
05c0: 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  p.</li>.<li>Bug 
05d0: 66 69 78 3a 20 44 52 4f 50 20 54 41 42 4c 45 20  fix: DROP TABLE 
05e0: 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 43 52  followed by a CR
05f0: 45 41 54 45 20 54 41 42 4c 45 20 77 69 74 68 20  EATE TABLE with 
0600: 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61 6c  the same name al
0610: 6c 0a 20 20 20 20 77 69 74 68 69 6e 20 61 20 73  l.    within a s
0620: 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f  ingle transactio
0630: 6e 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20  n was causing a 
0640: 63 6f 72 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c  coredump.</li>.<
0650: 6c 69 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61  li>Makefile upda
0660: 74 65 73 20 66 72 6f 6d 20 41 2e 20 52 6f 74 74  tes from A. Rott
0670: 6d 61 6e 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  mann</li>.}..chn
0680: 67 20 7b 32 30 30 31 20 44 65 63 20 32 32 20 28  g {2001 Dec 22 (
0690: 32 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f  2.2.0)} {.<li>Co
06a0: 6c 75 6d 6e 73 20 6f 66 20 74 79 70 65 20 49 4e  lumns of type IN
06b0: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45  TEGER PRIMARY KE
06c0: 59 20 61 72 65 20 61 63 74 75 61 6c 6c 79 20 75  Y are actually u
06d0: 73 65 64 20 61 73 20 74 68 65 20 70 72 69 6d 61  sed as the prima
06e0: 72 79 0a 20 20 20 20 6b 65 79 20 69 6e 20 75 6e  ry.    key in un
06f0: 64 65 72 6c 79 69 6e 67 20 42 2d 54 72 65 65 20  derlying B-Tree 
0700: 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f  representation o
0710: 66 20 74 68 65 20 74 61 62 6c 65 2e 3c 2f 6c 69  f the table.</li
0720: 3e 0a 3c 6c 69 3e 53 65 76 65 72 61 6c 20 6f 62  >.<li>Several ob
0730: 73 63 75 72 65 2c 20 75 6e 72 65 6c 61 74 65 64  scure, unrelated
0740: 20 62 75 67 73 20 77 65 72 65 20 66 6f 75 6e 64   bugs were found
0750: 20 61 6e 64 20 66 69 78 65 64 20 77 68 69 6c 65   and fixed while
0760: 20 0a 20 20 20 20 69 6d 70 6c 65 6d 65 6e 74 65   .    implemente
0770: 64 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 72  d the integer pr
0780: 69 6d 61 72 79 20 6b 65 79 20 63 68 61 6e 67 65  imary key change
0790: 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73   of the previous
07a0: 20 62 75 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c   bullet.</li>.<l
07b0: 69 3e 41 64 64 65 64 20 74 68 65 20 61 62 69 6c  i>Added the abil
07c0: 69 74 79 20 74 6f 20 73 70 65 63 69 66 79 20 22  ity to specify "
07d0: 2a 22 20 61 73 20 70 61 72 74 20 6f 66 20 61 20  *" as part of a 
07e0: 6c 61 72 67 65 72 20 63 6f 6c 75 6d 6e 20 6c 69  larger column li
07f0: 73 74 20 69 6e 0a 20 20 20 20 74 68 65 20 72 65  st in.    the re
0800: 73 75 6c 74 20 73 65 63 74 69 6f 6e 20 6f 66 20  sult section of 
0810: 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  a SELECT stateme
0820: 6e 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65  nt.  For example
0830: 3a 0a 20 20 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e  :.    <nobr>"<b>
0840: 53 45 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20  SELECT rowid, * 
0850: 46 52 4f 4d 20 74 61 62 6c 65 31 3b 3c 2f 62 3e  FROM table1;</b>
0860: 22 3c 2f 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c  "</nobr>.</li>.<
0870: 6c 69 3e 55 70 64 61 74 65 73 20 74 6f 20 63 6f  li>Updates to co
0880: 6d 6d 65 6e 74 73 20 61 6e 64 20 64 6f 63 75 6d  mments and docum
0890: 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d  entation.</li>.}
08a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
08b0: 20 31 34 20 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c   14 (2.1.7)} {.<
08c0: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20  li>Fix a bug in 
08d0: 3c 62 3e 43 52 45 41 54 45 20 54 45 4d 50 4f 52  <b>CREATE TEMPOR
08e0: 41 52 59 20 54 41 42 4c 45 3c 2f 62 3e 20 77 68  ARY TABLE</b> wh
08f0: 69 63 68 20 77 61 73 20 63 61 75 73 69 6e 67 20  ich was causing 
0900: 74 68 65 0a 20 20 20 20 74 61 62 6c 65 20 74 6f  the.    table to
0910: 20 62 65 20 69 6e 69 74 69 61 6c 6c 79 20 61 6c   be initially al
0920: 6c 6f 63 61 74 65 64 20 69 6e 20 74 68 65 20 6d  located in the m
0930: 61 69 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c  ain database fil
0940: 65 20 69 6e 73 74 65 61 64 0a 20 20 20 20 6f 66  e instead.    of
0950: 20 69 6e 20 74 68 65 20 73 65 70 61 72 61 74 65   in the separate
0960: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e   temporary file.
0970: 20 20 54 68 69 73 20 62 75 67 20 63 6f 75 6c 64    This bug could
0980: 20 63 61 75 73 65 20 74 68 65 20 6c 69 62 72 61   cause the libra
0990: 72 79 0a 20 20 20 20 74 6f 20 73 75 66 66 65 72  ry.    to suffer
09a0: 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 61   an assertion fa
09b0: 69 6c 75 72 65 20 61 6e 64 20 69 74 20 63 6f 75  ilure and it cou
09c0: 6c 64 20 63 61 75 73 65 20 22 70 61 67 65 20 6c  ld cause "page l
09d0: 65 61 6b 73 22 20 69 6e 20 74 68 65 0a 20 20 20  eaks" in the.   
09e0: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 66   main database f
09f0: 69 6c 65 2e 0a 3c 6c 69 3e 46 69 78 20 61 20 62  ile..<li>Fix a b
0a00: 75 67 20 69 6e 20 74 68 65 20 62 2d 74 72 65 65  ug in the b-tree
0a10: 20 73 75 62 73 79 73 74 65 6d 20 74 68 61 74 20   subsystem that 
0a20: 63 6f 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20  could sometimes 
0a30: 63 61 75 73 65 20 74 68 65 20 66 69 72 73 74 0a  cause the first.
0a40: 20 20 20 20 72 6f 77 20 6f 66 20 61 20 74 61 62      row of a tab
0a50: 6c 65 20 74 6f 20 62 65 20 72 65 70 65 61 74 65  le to be repeate
0a60: 64 20 64 75 72 69 6e 67 20 61 20 64 61 74 61 62  d during a datab
0a70: 61 73 65 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d  ase scan.</li>.}
0a80: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65 63  ..chng {2001 Dec
0a90: 20 31 34 20 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c   14 (2.1.6)} {.<
0aa0: 6c 69 3e 46 69 78 20 74 68 65 20 6c 6f 63 6b 69  li>Fix the locki
0ab0: 6e 67 20 6d 65 63 68 61 6e 69 73 6d 20 79 65 74  ng mechanism yet
0ac0: 20 61 67 61 69 6e 20 74 6f 20 70 72 65 76 65 6e   again to preven
0ad0: 74 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f  t.    <b>sqlite_
0ae0: 65 78 65 63 28 29 3c 2f 62 3e 20 66 72 6f 6d 20  exec()</b> from 
0af0: 72 65 74 75 72 6e 69 6e 67 20 53 51 4c 49 54 45  returning SQLITE
0b00: 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e  _PROTOCOL.    un
0b10: 6e 65 63 65 73 73 61 72 69 6c 79 2e 20 20 54 68  necessarily.  Th
0b20: 69 73 20 74 69 6d 65 20 74 68 65 20 62 75 67 20  is time the bug 
0b30: 77 61 73 20 61 20 72 61 63 65 20 63 6f 6e 64 69  was a race condi
0b40: 74 69 6f 6e 20 69 6e 0a 20 20 20 20 74 68 65 20  tion in.    the 
0b50: 6c 6f 63 6b 69 6e 67 20 63 6f 64 65 2e 20 20 54  locking code.  T
0b60: 68 69 73 20 63 68 61 6e 67 65 20 65 66 66 65 63  his change effec
0b70: 74 73 20 62 6f 74 68 20 50 4f 53 49 58 20 61 6e  ts both POSIX an
0b80: 64 20 57 69 6e 64 6f 77 73 20 75 73 65 72 73 2e  d Windows users.
0b90: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0ba0: 30 30 31 20 44 65 63 20 36 20 28 32 2e 31 2e 35  001 Dec 6 (2.1.5
0bb0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 66 6f 72  )} {.<li>Fix for
0bc0: 20 61 6e 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d   another problem
0bd0: 20 28 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74   (unrelated to t
0be0: 68 65 20 6f 6e 65 20 66 69 78 65 64 20 69 6e 20  he one fixed in 
0bf0: 32 2e 31 2e 34 29 20 0a 20 20 20 20 74 68 61 74  2.1.4) .    that
0c00: 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65   sometimes cause
0c10: 73 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63  s <b>sqlite_exec
0c20: 28 29 3c 2f 62 3e 20 74 6f 20 72 65 74 75 72 6e  ()</b> to return
0c30: 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c   SQLITE_PROTOCOL
0c40: 0a 20 20 20 20 75 6e 6e 65 63 65 73 73 61 72 69  .    unnecessari
0c50: 6c 79 2e 20 20 54 68 69 73 20 74 69 6d 65 20 74  ly.  This time t
0c60: 68 65 20 62 75 67 20 77 61 73 0a 20 20 20 20 69  he bug was.    i
0c70: 6e 20 74 68 65 20 50 4f 53 49 58 20 6c 6f 63 6b  n the POSIX lock
0c80: 69 6e 67 20 63 6f 64 65 20 61 6e 64 20 73 68 6f  ing code and sho
0c90: 75 6c 64 20 6e 6f 74 20 65 66 66 65 63 74 20 77  uld not effect w
0ca0: 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c  indows users.</l
0cb0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
0cc0: 20 44 65 63 20 34 20 28 32 2e 31 2e 34 29 7d 20   Dec 4 (2.1.4)} 
0cd0: 7b 0a 3c 6c 69 3e 53 6f 6d 65 74 69 6d 65 73 20  {.<li>Sometimes 
0ce0: 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29  <b>sqlite_exec()
0cf0: 3c 2f 62 3e 20 77 6f 75 6c 64 20 72 65 74 75 72  </b> would retur
0d00: 6e 20 53 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f  n SQLITE_PROTOCO
0d10: 4c 20 77 68 65 6e 20 69 74 0a 20 20 20 20 73 68  L when it.    sh
0d20: 6f 75 6c 64 20 68 61 76 65 20 72 65 74 75 72 6e  ould have return
0d30: 65 64 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c  ed SQLITE_BUSY.<
0d40: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 69 78  /li>.<li>The fix
0d50: 20 74 6f 20 74 68 65 20 70 72 65 76 69 6f 75 73   to the previous
0d60: 20 62 75 67 20 75 6e 63 6f 76 65 72 65 64 20 61   bug uncovered a
0d70: 20 64 65 61 64 6c 6f 63 6b 20 77 68 69 63 68 20   deadlock which 
0d80: 77 61 73 20 61 6c 73 6f 0a 20 20 20 20 66 69 78  was also.    fix
0d90: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ed.</li>.<li>Add
0da0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
0db0: 70 75 74 20 61 20 73 69 6e 67 6c 65 20 2e 63 6f  put a single .co
0dc0: 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 73 65 63  mmand in the sec
0dd0: 6f 6e 64 20 61 72 67 75 6d 65 6e 74 0a 20 20 20  ond argument.   
0de0: 20 6f 66 20 74 68 65 20 73 71 6c 69 74 65 20 73   of the sqlite s
0df0: 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70  hell</li>.<li>Up
0e00: 64 61 74 65 73 20 74 6f 20 74 68 65 20 46 41 51  dates to the FAQ
0e10: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
0e20: 30 30 31 20 4e 6f 76 20 32 33 20 28 32 2e 31 2e  001 Nov 23 (2.1.
0e30: 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68  3)} {.<li>Fix th
0e40: 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20 63 6f  e behavior of co
0e50: 6d 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f  mparison operato
0e60: 72 73 20 0a 20 20 20 20 28 65 78 3a 20 22 3c 62  rs .    (ex: "<b
0e70: 3e 26 6c 74 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d  >&lt</b>", "<b>=
0e80: 3d 3c 2f 62 3e 22 2c 20 65 74 63 2e 29 0a 20 20  =</b>", etc.).  
0e90: 20 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 61    so that they a
0ea0: 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69  re consistent wi
0eb0: 74 68 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20  th the order of 
0ec0: 65 6e 74 72 69 65 73 20 69 6e 20 61 6e 20 69 6e  entries in an in
0ed0: 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f  dex.</li>.<li>Co
0ee0: 72 72 65 63 74 20 68 61 6e 64 6c 69 6e 67 20 6f  rrect handling o
0ef0: 66 20 69 6e 74 65 67 65 72 73 20 69 6e 20 53 51  f integers in SQ
0f00: 4c 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68  L expressions th
0f10: 61 74 20 61 72 65 20 6c 61 72 67 65 72 20 74 68  at are larger th
0f20: 61 6e 0a 20 20 20 20 77 68 61 74 20 63 61 6e 20  an.    what can 
0f30: 62 65 20 72 65 70 72 65 73 65 6e 74 65 64 20 62  be represented b
0f40: 79 20 74 68 65 20 6d 61 63 68 69 6e 65 20 69 6e  y the machine in
0f50: 74 65 67 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  teger.</li>.}..c
0f60: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 32 32  hng {2001 Nov 22
0f70: 20 28 32 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.2)} {.<li>
0f80: 43 68 61 6e 67 65 73 20 74 6f 20 73 75 70 70 6f  Changes to suppo
0f90: 72 74 20 36 34 2d 62 69 74 20 61 72 63 68 69 74  rt 64-bit archit
0fa0: 65 63 74 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  ectures.</li>.<l
0fb0: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 74  i>Fix a bug in t
0fc0: 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f  he locking proto
0fd0: 63 6f 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  col.</li>.<li>Fi
0fe0: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 6f 75  x a bug that cou
0ff0: 6c 64 20 28 72 61 72 65 6c 79 29 20 63 61 75 73  ld (rarely) caus
1000: 65 20 74 68 65 20 64 61 74 61 62 61 73 65 20 74  e the database t
1010: 6f 20 62 65 63 6f 6d 65 20 0a 20 20 20 20 75 6e  o become .    un
1020: 72 65 61 64 61 62 6c 65 20 61 66 74 65 72 20 61  readable after a
1030: 20 44 52 4f 50 20 54 41 42 4c 45 20 64 75 65 20   DROP TABLE due 
1040: 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 20 74 6f  to corruption to
1050: 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41 53 54   the SQLITE_MAST
1060: 45 52 0a 20 20 20 20 74 61 62 6c 65 2e 3c 2f 6c  ER.    table.</l
1070: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
1080: 65 20 63 6f 64 65 20 73 6f 20 74 68 61 74 20 76  e code so that v
1090: 65 72 73 69 6f 6e 20 32 2e 31 2e 31 20 64 61 74  ersion 2.1.1 dat
10a0: 61 62 61 73 65 73 20 74 68 61 74 20 77 65 72 65  abases that were
10b0: 20 72 65 6e 64 65 72 65 64 20 0a 20 20 20 20 75   rendered .    u
10c0: 6e 72 65 61 64 61 62 6c 65 20 62 79 20 74 68 65  nreadable by the
10d0: 20 61 62 6f 76 65 20 62 75 67 20 63 61 6e 20 62   above bug can b
10e0: 65 20 72 65 61 64 20 62 79 20 74 68 69 73 20 76  e read by this v
10f0: 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20 74 68  ersion of.    th
1100: 65 20 6c 69 62 72 61 72 79 20 65 76 65 6e 20 74  e library even t
1110: 68 6f 75 67 68 20 74 68 65 20 53 51 4c 49 54 45  hough the SQLITE
1120: 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 20 69 73  _MASTER table is
1130: 20 28 73 6c 69 67 68 74 6c 79 29 0a 20 20 20 20   (slightly).    
1140: 63 6f 72 72 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a  corrupted.</li>.
1150: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
1160: 76 20 31 33 20 28 32 2e 31 2e 31 29 7d 20 7b 0a  v 13 (2.1.1)} {.
1170: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 53 6f 6d  <li>Bug fix: Som
1180: 65 74 69 6d 65 73 20 61 72 62 69 72 61 72 79 20  etimes arbirary 
1190: 73 74 72 69 6e 67 73 20 77 65 72 65 20 70 61 73  strings were pas
11a0: 73 65 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62  sed to the callb
11b0: 61 63 6b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e  ack.    function
11c0: 20 77 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c   when the actual
11d0: 20 76 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75   value of a colu
11e0: 6d 6e 20 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69  mn was NULL.</li
11f0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
1200: 4e 6f 76 20 31 32 20 28 32 2e 31 2e 30 29 7d 20  Nov 12 (2.1.0)} 
1210: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
1220: 20 66 6f 72 6d 61 74 20 6f 66 20 64 61 74 61 20   format of data 
1230: 72 65 63 6f 72 64 73 20 73 6f 20 74 68 61 74 20  records so that 
1240: 72 65 63 6f 72 64 73 20 75 70 20 74 6f 20 31 36  records up to 16
1250: 4d 42 20 69 6e 20 73 69 7a 65 0a 20 20 20 20 63  MB in size.    c
1260: 61 6e 20 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c  an be stored.</l
1270: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68  i>.<li>Change th
1280: 65 20 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69  e format of indi
1290: 63 65 73 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72  ces to allow for
12a0: 20 62 65 74 74 65 72 20 71 75 65 72 79 20 6f 70   better query op
12b0: 74 69 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  timization.</li>
12c0: 0a 3c 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74  .<li>Implement t
12d0: 68 65 20 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46  he "LIMIT ... OF
12e0: 46 53 45 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65  FSET ..." clause
12f0: 20 6f 6e 20 53 45 4c 45 43 54 20 73 74 61 74 65   on SELECT state
1300: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
1310: 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 33 20  hng {2001 Nov 3 
1320: 28 32 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d  (2.0.8)} {.<li>M
1330: 61 64 65 20 73 65 6c 65 63 74 65 64 20 70 61 72  ade selected par
1340: 61 6d 65 74 65 72 73 20 69 6e 20 41 50 49 20 66  ameters in API f
1350: 75 6e 63 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73  unctions <b>cons
1360: 74 3c 2f 62 3e 2e 20 54 68 69 73 20 73 68 6f 75  t</b>. This shou
1370: 6c 64 0a 20 20 20 20 62 65 20 66 75 6c 6c 79 20  ld.    be fully 
1380: 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74  backwards compat
1390: 69 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  ible.</li>.<li>D
13a0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
13b0: 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69  ates</li>.<li>Si
13c0: 6d 70 6c 69 66 79 20 74 68 65 20 64 65 73 69 67  mplify the desig
13d0: 6e 20 6f 66 20 74 68 65 20 56 44 42 45 20 62 79  n of the VDBE by
13e0: 20 72 65 73 74 72 69 63 74 69 6e 67 20 74 68 65   restricting the
13f0: 20 6e 75 6d 62 65 72 20 6f 66 20 73 6f 72 74 65   number of sorte
1400: 72 73 0a 20 20 20 20 61 6e 64 20 6c 69 73 74 73  rs.    and lists
1410: 20 74 6f 20 31 2e 0a 20 20 20 20 49 6e 20 70 72   to 1..    In pr
1420: 61 63 74 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20  actice, no more 
1430: 74 68 61 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20  than one sorter 
1440: 61 6e 64 20 6f 6e 65 20 6c 69 73 74 20 77 61 73  and one list was
1450: 20 65 76 65 72 20 75 73 65 64 20 61 6e 79 68 6f   ever used anyho
1460: 77 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a  w..    </li>.}..
1470: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32  chng {2001 Oct 2
1480: 31 20 28 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69  1 (2.0.7)} {.<li
1490: 3e 41 6e 79 20 55 54 46 2d 38 20 63 68 61 72 61  >Any UTF-8 chara
14a0: 63 74 65 72 20 6f 72 20 49 53 4f 38 38 35 39 20  cter or ISO8859 
14b0: 63 68 61 72 61 63 74 65 72 20 63 61 6e 20 62 65  character can be
14c0: 20 75 73 65 64 20 61 73 20 70 61 72 74 20 6f 66   used as part of
14d0: 0a 20 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69  .    an identifi
14e0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74  er.</li>.<li>Pat
14f0: 63 68 65 73 20 66 72 6f 6d 20 43 68 72 69 73 74  ches from Christ
1500: 69 61 6e 20 57 65 72 6e 65 72 20 74 6f 20 69 6d  ian Werner to im
1510: 70 72 6f 76 65 20 4f 44 42 43 20 63 6f 6d 70 61  prove ODBC compa
1520: 74 69 62 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a  tibility and to.
1530: 20 20 20 20 66 69 78 20 61 20 62 75 67 20 69 6e      fix a bug in
1540: 20 74 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e   the round() fun
1550: 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ction.</li>.<li>
1560: 50 6c 75 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79  Plug some memory
1570: 20 6c 65 61 6b 73 20 74 68 61 74 20 75 73 65 20   leaks that use 
1580: 74 6f 20 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c  to occur if mall
1590: 6f 63 28 29 20 66 61 69 6c 65 64 2e 0a 20 20 20  oc() failed..   
15a0: 20 57 65 20 68 61 76 65 20 62 65 65 6e 20 61 6e   We have been an
15b0: 64 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65  d continue to be
15c0: 20 6d 65 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65   memory leak fre
15d0: 65 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20  e as long as.   
15e0: 20 6d 61 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e   malloc() works.
15f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65  </li>.<li>Change
1600: 73 20 74 6f 20 73 6f 6d 65 20 74 65 73 74 20 73  s to some test s
1610: 63 72 69 70 74 73 20 73 6f 20 74 68 61 74 20 74  cripts so that t
1620: 68 65 79 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64  hey work on Wind
1630: 6f 77 73 20 69 6e 0a 20 20 20 20 61 64 64 69 74  ows in.    addit
1640: 69 6f 6e 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69  ion to Unix.</li
1650: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
1660: 4f 63 74 20 31 39 20 28 32 2e 30 2e 36 29 7d 20  Oct 19 (2.0.6)} 
1670: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
1680: 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c  EMPTY_RESULT_CAL
1690: 4c 42 41 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c  LBACKS pragma</l
16a0: 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66  i>.<li>Support f
16b0: 6f 72 20 55 54 46 2d 38 20 61 6e 64 20 49 53 4f  or UTF-8 and ISO
16c0: 38 38 35 39 20 63 68 61 72 61 63 74 65 72 73 20  8859 characters 
16d0: 69 6e 20 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61  in column and ta
16e0: 62 6c 65 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a  ble names.</li>.
16f0: 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d  <li>Bug fix: Com
1700: 70 75 74 65 20 63 6f 72 72 65 63 74 20 74 61 62  pute correct tab
1710: 6c 65 20 6e 61 6d 65 73 20 77 69 74 68 20 74 68  le names with th
1720: 65 20 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41  e FULL_COLUMN_NA
1730: 4d 45 53 20 70 72 61 67 6d 61 0a 20 20 20 20 69  MES pragma.    i
1740: 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69  s turned on.</li
1750: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
1760: 4f 63 74 20 31 34 20 28 32 2e 30 2e 35 29 7d 20  Oct 14 (2.0.5)} 
1770: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
1780: 43 4f 55 4e 54 5f 43 48 41 4e 47 45 53 20 70 72  COUNT_CHANGES pr
1790: 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  agma.</li>.<li>C
17a0: 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 46 55  hanges to the FU
17b0: 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20  LL_COLUMN_NAMES 
17c0: 70 72 61 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f  pragma to help o
17d0: 75 74 20 74 68 65 20 4f 44 42 43 20 64 72 69 76  ut the ODBC driv
17e0: 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  er.</li>.<li>Bug
17f0: 20 66 69 78 3a 20 22 53 45 4c 45 43 54 20 63 6f   fix: "SELECT co
1800: 75 6e 74 28 2a 29 22 20 77 61 73 20 72 65 74 75  unt(*)" was retu
1810: 72 6e 69 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65  rning NULL for e
1820: 6d 70 74 79 20 74 61 62 6c 65 73 2e 0a 20 20 20  mpty tables..   
1830: 20 4e 6f 77 20 69 74 20 72 65 74 75 72 6e 73 20   Now it returns 
1840: 30 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  0.</li>.}..chng 
1850: 7b 32 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e  {2001 Oct 13 (2.
1860: 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20  0.4)} {.<li>Bug 
1870: 66 69 78 3a 20 61 6e 20 61 62 73 63 75 72 65 20  fix: an abscure 
1880: 61 6e 64 20 72 65 6c 61 74 69 76 65 6c 79 20 68  and relatively h
1890: 61 72 6d 6c 65 73 73 20 62 75 67 20 77 61 73 20  armless bug was 
18a0: 63 61 75 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20  causing one of. 
18b0: 20 20 20 74 68 65 20 74 65 73 74 73 20 74 6f 20     the tests to 
18c0: 66 61 69 6c 20 77 68 65 6e 20 67 63 63 20 6f 70  fail when gcc op
18d0: 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20  timizations are 
18e0: 74 75 72 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73  turned on.  This
18f0: 20 72 65 6c 65 61 73 65 0a 20 20 20 20 66 69 78   release.    fix
1900: 65 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c  es the problem.<
1910: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1920: 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 33  01 Oct 13 (2.0.3
1930: 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78  )} {.<li>Bug fix
1940: 3a 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f  : the <b>sqlite_
1950: 62 75 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f  busy_timeout()</
1960: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20  b> function was 
1970: 64 65 6c 61 79 69 6e 67 20 31 30 30 30 0a 20 20  delaying 1000.  
1980: 20 20 74 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67    times too long
1990: 20 62 65 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e   before failing.
19a0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
19b0: 78 3a 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20  x: an assertion 
19c0: 77 61 73 20 66 61 69 6c 69 6e 67 20 69 66 20 74  was failing if t
19d0: 68 65 20 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20  he disk holding 
19e0: 74 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20  the database.   
19f0: 20 66 69 6c 65 20 62 65 63 61 6d 65 20 66 75 6c   file became ful
1a00: 6c 20 6f 72 20 73 74 6f 70 70 65 64 20 61 63 63  l or stopped acc
1a10: 65 70 74 69 6e 67 20 77 72 69 74 65 73 20 66 6f  epting writes fo
1a20: 72 20 73 6f 6d 65 20 6f 74 68 65 72 20 72 65 61  r some other rea
1a30: 73 6f 6e 2e 0a 20 20 20 20 4e 65 77 20 74 65 73  son..    New tes
1a40: 74 73 20 77 65 72 65 20 61 64 64 65 64 20 74 6f  ts were added to
1a50: 20 64 65 74 65 63 74 20 73 69 6d 69 6c 61 72 20   detect similar 
1a60: 70 72 6f 62 6c 65 6d 73 20 69 6e 20 74 68 65 20  problems in the 
1a70: 66 75 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  future.</li>.<li
1a80: 3e 41 64 64 65 64 20 6e 65 77 20 6f 70 65 72 61  >Added new opera
1a90: 74 6f 72 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f  tors: <b>&amp;</
1aa0: 62 3e 20 28 62 69 74 77 69 73 65 2d 61 6e 64 29  b> (bitwise-and)
1ab0: 0a 20 20 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62  .    <b>|</b> (b
1ac0: 69 74 77 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e  itwise-or), <b>~
1ad0: 3c 2f 62 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c  </b> (ones-compl
1ae0: 65 6d 65 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26  ement),.    <b>&
1af0: 6c 74 3b 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69  lt;&lt;</b> (shi
1b00: 66 74 20 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74  ft left), <b>&gt
1b10: 3b 26 67 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74  ;&gt;</b> (shift
1b20: 20 72 69 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c   right).</li>.<l
1b30: 69 3e 41 64 64 65 64 20 6e 65 77 20 66 75 6e 63  i>Added new func
1b40: 74 69 6f 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28  tions: <b>round(
1b50: 29 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73  )</b> and <b>abs
1b60: 28 29 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ()</b>.</li>.}..
1b70: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 39  chng {2001 Oct 9
1b80: 20 28 32 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.2)} {.<li>
1b90: 46 69 78 20 74 77 6f 20 62 75 67 73 20 69 6e 20  Fix two bugs in 
1ba0: 74 68 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74  the locking prot
1bb0: 6f 63 6f 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20  ocol.  (One was 
1bc0: 6d 61 73 6b 69 6e 67 20 74 68 65 20 6f 74 68 65  masking the othe
1bd0: 72 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  r.)</li>.<li>Rem
1be0: 6f 76 65 64 20 73 6f 6d 65 20 75 6e 75 73 65 64  oved some unused
1bf0: 20 22 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73   "#include <unis
1c00: 74 64 2e 68 3e 22 20 74 68 61 74 20 77 65 72 65  td.h>" that were
1c10: 20 63 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d   causing problem
1c20: 73 0a 20 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c  s.    for VC++.<
1c30: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c  /li>.<li>Fixed <
1c40: 62 3e 73 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73  b>sqlite.h</b> s
1c50: 6f 20 74 68 61 74 20 69 74 20 69 73 20 75 73 61  o that it is usa
1c60: 62 6c 65 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69  ble from C++</li
1c70: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
1c80: 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45  FULL_COLUMN_NAME
1c90: 53 20 70 72 61 67 6d 61 2e 20 20 57 68 65 6e 20  S pragma.  When 
1ca0: 73 65 74 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65  set to "ON", the
1cb0: 20 6e 61 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f   names of.    co
1cc0: 6c 75 6d 6e 73 20 61 72 65 20 72 65 70 6f 72 74  lumns are report
1cd0: 65 64 20 62 61 63 6b 20 61 73 20 54 41 42 4c 45  ed back as TABLE
1ce0: 2e 43 4f 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20  .COLUMN instead 
1cf0: 6f 66 20 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c  of just COLUMN.<
1d00: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
1d10: 68 65 20 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20  he TABLE_INFO() 
1d20: 61 6e 64 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29  and INDEX_INFO()
1d30: 20 70 72 61 67 6d 61 73 20 74 6f 20 68 65 6c 70   pragmas to help
1d40: 20 73 75 70 70 6f 72 74 20 74 68 65 0a 20 20 20   support the.   
1d50: 20 4f 44 42 43 20 69 6e 74 65 72 66 61 63 65 2e   ODBC interface.
1d60: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
1d70: 73 75 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50  support for TEMP
1d80: 4f 52 41 52 59 20 74 61 62 6c 65 73 20 61 6e 64  ORARY tables and
1d90: 20 69 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d   indices.</li>.}
1da0: 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74  ..chng {2001 Oct
1db0: 20 32 20 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c   2 (2.0.1)} {.<l
1dc0: 69 3e 52 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b  i>Remove some C+
1dd0: 2b 20 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73  + style comments
1de0: 20 66 72 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f   from btree.c so
1df0: 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 63 6f   that it will co
1e00: 6d 70 69 6c 65 0a 20 20 20 20 75 73 69 6e 67 20  mpile.    using 
1e10: 63 6f 6d 70 69 6c 65 72 73 20 6f 74 68 65 72 20  compilers other 
1e20: 74 68 61 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c  than gcc.</li>.<
1e30: 6c 69 3e 54 68 65 20 22 2e 64 75 6d 70 22 20 6f  li>The ".dump" o
1e40: 75 74 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73  utput from the s
1e50: 68 65 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f  hell does not wo
1e60: 72 6b 20 69 66 20 74 68 65 72 65 20 61 72 65 20  rk if there are 
1e70: 65 6d 62 65 64 64 65 64 0a 20 20 20 20 6e 65 77  embedded.    new
1e80: 6c 69 6e 65 73 20 61 6e 79 77 68 65 72 65 20 69  lines anywhere i
1e90: 6e 20 74 68 65 20 64 61 74 61 2e 20 20 54 68 69  n the data.  Thi
1ea0: 73 20 69 73 20 61 6e 20 6f 6c 64 20 62 75 67 20  s is an old bug 
1eb0: 74 68 61 74 20 77 61 73 20 63 61 72 72 69 65 64  that was carried
1ec0: 0a 20 20 20 20 66 6f 72 77 61 72 64 20 66 72 6f  .    forward fro
1ed0: 6d 20 76 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20  m version 1.0.  
1ee0: 54 6f 20 66 69 78 20 69 74 2c 20 74 68 65 20 22  To fix it, the "
1ef0: 2e 64 75 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f  .dump" output no
1f00: 20 6c 6f 6e 67 65 72 0a 20 20 20 20 75 73 65 73   longer.    uses
1f10: 20 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e   the COPY comman
1f20: 64 2e 20 20 49 74 20 69 6e 73 74 65 61 64 20 67  d.  It instead g
1f30: 65 6e 65 72 61 74 65 73 20 49 4e 53 45 52 54 20  enerates INSERT 
1f40: 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e  statements.</li>
1f50: 0a 3c 6c 69 3e 45 78 74 65 6e 64 20 74 68 65 20  .<li>Extend the 
1f60: 65 78 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61  expression synta
1f70: 78 20 74 6f 20 73 75 70 70 6f 72 74 20 22 65 78  x to support "ex
1f80: 70 72 20 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69  pr NOT NULL" (wi
1f90: 74 68 20 61 0a 20 20 20 20 73 70 61 63 65 20 62  th a.    space b
1fa0: 65 74 77 65 65 6e 20 74 68 65 20 22 4e 4f 54 22  etween the "NOT"
1fb0: 20 61 6e 64 20 74 68 65 20 22 4e 55 4c 4c 22 29   and the "NULL")
1fc0: 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20   in addition to 
1fd0: 22 65 78 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20  "expr NOTNULL". 
1fe0: 20 20 20 28 77 69 74 68 20 6e 6f 20 73 70 61 63     (with no spac
1ff0: 65 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  e).</li>.}..chng
2000: 20 7b 32 30 30 31 20 53 65 70 20 32 38 20 28 32   {2001 Sep 28 (2
2010: 2e 30 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74  .0.0)} {.<li>Aut
2020: 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75 69 6c 64  omatically build
2030: 20 62 69 6e 61 72 69 65 73 20 66 6f 72 20 4c 69   binaries for Li
2040: 6e 75 78 20 61 6e 64 20 57 69 6e 64 6f 77 73 20  nux and Windows 
2050: 61 6e 64 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a  and put them on.
2060: 20 20 20 20 74 68 65 20 77 65 62 73 69 74 65 2e      the website.
2070: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
2080: 30 30 31 20 53 65 70 20 32 38 20 28 32 2e 30 2d  001 Sep 28 (2.0-
2090: 61 6c 70 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e  alpha-4)} {.<li>
20a0: 49 6e 63 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65  Incorporate make
20b0: 66 69 6c 65 20 70 61 74 63 68 65 73 20 66 6f 72  file patches for
20c0: 6d 20 41 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f  m A. Rottmann to
20d0: 20 75 73 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69   use LIBTOOL</li
20e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
20f0: 53 65 70 20 32 37 20 28 32 2e 30 2d 61 6c 70 68  Sep 27 (2.0-alph
2100: 61 2d 33 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69  a-3)} {.<li>SQLi
2110: 74 65 20 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68  te now honors th
2120: 65 20 55 4e 49 51 55 45 20 6b 65 79 77 6f 72 64  e UNIQUE keyword
2130: 20 69 6e 20 43 52 45 41 54 45 20 55 4e 49 51 55   in CREATE UNIQU
2140: 45 20 49 4e 44 45 58 2e 20 20 50 72 69 6d 61 72  E INDEX.  Primar
2150: 79 0a 20 20 20 20 6b 65 79 73 20 61 72 65 20 72  y.    keys are r
2160: 65 71 75 69 72 65 64 20 74 6f 20 62 65 20 75 6e  equired to be un
2170: 69 71 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ique.</li>.<li>F
2180: 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67  ile format chang
2190: 65 64 20 62 61 63 6b 20 74 6f 20 77 68 61 74 20  ed back to what 
21a0: 69 74 20 77 61 73 20 66 6f 72 20 61 6c 70 68 61  it was for alpha
21b0: 2d 31 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65  -1</li>.<li>Fixe
21c0: 73 20 74 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63  s to the rollbac
21d0: 6b 20 61 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65  k and locking be
21e0: 68 61 76 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63  havior</li>.}..c
21f0: 68 6e 67 20 7b 32 30 30 31 20 53 65 70 20 32 30  hng {2001 Sep 20
2200: 20 28 32 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20   (2.0-alpha-2)} 
2210: 7b 0a 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65  {.<li>Initial re
2220: 6c 65 61 73 65 20 6f 66 20 76 65 72 73 69 6f 6e  lease of version
2230: 20 32 2e 30 2e 20 20 54 68 65 20 69 64 65 61 20   2.0.  The idea 
2240: 6f 66 20 72 65 6e 61 6d 69 6e 67 20 74 68 65 20  of renaming the 
2250: 6c 69 62 72 61 72 79 0a 20 20 20 20 74 6f 20 22  library.    to "
2260: 53 51 4c 75 73 22 20 77 61 73 20 61 62 61 6e 64  SQLus" was aband
2270: 6f 6e 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66  oned in favor of
2280: 20 6b 65 65 70 69 6e 67 20 74 68 65 20 22 53 51   keeping the "SQ
2290: 4c 69 74 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20  Lite" name and. 
22a0: 20 20 20 62 75 6d 70 69 6e 67 20 74 68 65 20 6d     bumping the m
22b0: 61 6a 6f 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d  ajor version num
22c0: 62 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ber.</li>.<li>Th
22d0: 65 20 70 61 67 65 72 20 61 6e 64 20 62 74 72 65  e pager and btre
22e0: 65 20 73 75 62 73 79 73 74 65 6d 73 20 61 64 64  e subsystems add
22f0: 65 64 20 62 61 63 6b 2e 20 54 68 65 79 20 61 72  ed back. They ar
2300: 65 20 6e 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20  e now the only. 
2310: 20 20 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63     available bac
2320: 6b 65 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  kend.</li>.<li>T
2330: 68 65 20 44 62 62 65 20 61 62 73 74 72 61 63 74  he Dbbe abstract
2340: 69 6f 6e 20 61 6e 64 20 74 68 65 20 47 44 42 4d  ion and the GDBM
2350: 20 61 6e 64 20 6d 65 6d 6f 72 79 20 64 72 69 76   and memory driv
2360: 65 72 73 20 77 65 72 65 20 72 65 6d 6f 76 65 64  ers were removed
2370: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72  .</li>.<li>Copyr
2380: 69 67 68 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65  ight on all code
2390: 20 77 61 73 20 64 69 73 63 6c 61 69 6d 65 64 2e   was disclaimed.
23a0: 20 20 54 68 65 20 6c 69 62 72 61 72 79 20 69 73    The library is
23b0: 20 6e 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20   now in the.    
23c0: 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f  public domain.</
23d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
23e0: 31 20 4a 75 6c 20 32 33 20 28 31 2e 30 2e 33 32  1 Jul 23 (1.0.32
23f0: 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61  )} {.<li>Pager a
2400: 6e 64 20 62 74 72 65 65 20 73 75 62 73 79 73 74  nd btree subsyst
2410: 65 6d 73 20 72 65 6d 6f 76 65 64 2e 20 20 54 68  ems removed.  Th
2420: 65 73 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64  ese will be used
2430: 20 69 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a   in a follow-on.
2440: 20 20 20 20 53 51 4c 20 73 65 72 76 65 72 20 6c      SQL server l
2450: 69 62 72 61 72 79 20 6e 61 6d 65 64 20 22 53 51  ibrary named "SQ
2460: 4c 75 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  Lus".</li>.<li>A
2470: 64 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74  dd the ability t
2480: 6f 20 75 73 65 20 71 75 6f 74 65 64 20 73 74 72  o use quoted str
2490: 69 6e 67 73 20 61 73 20 74 61 62 6c 65 20 61 6e  ings as table an
24a0: 64 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  d column names i
24b0: 6e 0a 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e  n.    expression
24c0: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
24d0: 7b 32 30 30 31 20 41 70 72 20 31 34 20 28 31 2e  {2001 Apr 14 (1.
24e0: 30 2e 33 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67  0.31)} {.<li>Pag
24f0: 65 72 20 73 75 62 73 79 73 74 65 6d 20 61 64 64  er subsystem add
2500: 65 64 20 62 75 74 20 6e 6f 74 20 79 65 74 20 75  ed but not yet u
2510: 73 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f  sed.</li>.<li>Mo
2520: 72 65 20 72 6f 62 75 73 74 20 68 61 6e 64 6c 69  re robust handli
2530: 6e 67 20 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d  ng of out-of-mem
2540: 6f 72 79 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e  ory errors.</li>
2550: 0a 3c 6c 69 3e 4e 65 77 20 74 65 73 74 73 20 61  .<li>New tests a
2560: 64 64 65 64 20 74 6f 20 74 68 65 20 74 65 73 74  dded to the test
2570: 20 73 75 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   suite.</li>.}..
2580: 63 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 36  chng {2001 Apr 6
2590: 20 28 31 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69   (1.0.30)} {.<li
25a0: 3e 52 65 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73  >Remove the <b>s
25b0: 71 6c 69 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f  qlite_encoding</
25c0: 62 3e 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20  b> TCL variable 
25d0: 74 68 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75  that was introdu
25e0: 63 65 64 0a 20 20 20 20 69 6e 20 74 68 65 20 70  ced.    in the p
25f0: 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e  revious version.
2600: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70  </li>.<li>Add op
2610: 74 69 6f 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69  tions <b>-encodi
2620: 6e 67 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74  ng</b> and <b>-t
2630: 63 6c 2d 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20  cl-uses-utf</b> 
2640: 74 6f 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71  to the.    <b>sq
2650: 6c 69 74 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d  lite</b> TCL com
2660: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  mand.</li>.<li>A
2670: 64 64 20 74 65 73 74 73 20 74 6f 20 6d 61 6b 65  dd tests to make
2680: 20 73 75 72 65 20 74 68 61 74 20 74 63 6c 73 71   sure that tclsq
2690: 6c 69 74 65 20 77 61 73 20 63 6f 6d 70 69 6c 65  lite was compile
26a0: 64 20 75 73 69 6e 67 20 54 63 6c 20 68 65 61 64  d using Tcl head
26b0: 65 72 0a 20 20 20 20 66 69 6c 65 73 20 61 6e 64  er.    files and
26c0: 20 6c 69 62 72 61 72 69 65 73 20 74 68 61 74 20   libraries that 
26d0: 6d 61 74 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  match.</li>.}..c
26e0: 68 6e 67 20 7b 32 30 30 31 20 41 70 72 20 35 20  hng {2001 Apr 5 
26f0: 28 31 2e 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.29)} {.<li>
2700: 54 68 65 20 6c 69 62 72 61 72 79 20 6e 6f 77 20  The library now 
2710: 61 73 73 75 6d 65 73 20 64 61 74 61 20 69 73 20  assumes data is 
2720: 73 74 6f 72 65 64 20 61 73 20 55 54 46 2d 38 20  stored as UTF-8 
2730: 69 66 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d  if the --enable-
2740: 75 74 66 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20  utf8.    option 
2750: 69 73 20 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66  is given to conf
2760: 69 67 75 72 65 2e 20 20 54 68 65 20 64 65 66 61  igure.  The defa
2770: 75 6c 74 20 62 65 68 61 76 69 6f 72 20 69 73 20  ult behavior is 
2780: 74 6f 20 61 73 73 75 6d 65 0a 20 20 20 20 69 73  to assume.    is
2790: 6f 38 38 35 39 2d 78 2c 20 61 73 20 69 74 20 68  o8859-x, as it h
27a0: 61 73 20 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20  as always done. 
27b0: 20 54 68 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73   This only makes
27c0: 20 61 20 64 69 66 66 65 72 65 6e 63 65 20 66 6f   a difference fo
27d0: 72 0a 20 20 20 20 4c 49 4b 45 20 61 6e 64 20 47  r.    LIKE and G
27e0: 4c 4f 42 20 6f 70 65 72 61 74 6f 72 73 20 61 6e  LOB operators an
27f0: 64 20 74 68 65 20 4c 45 4e 47 54 48 20 61 6e 64  d the LENGTH and
2800: 20 53 55 42 53 54 52 20 66 75 6e 63 74 69 6f 6e   SUBSTR function
2810: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74  s.</li>.<li>If t
2820: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f  he library is no
2830: 74 20 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72  t configured for
2840: 20 55 54 46 2d 38 20 61 6e 64 20 74 68 65 20 54   UTF-8 and the T
2850: 63 6c 20 6c 69 62 72 61 72 79 0a 20 20 20 20 69  cl library.    i
2860: 73 20 6f 6e 65 20 6f 66 20 74 68 65 20 6e 65 77  s one of the new
2870: 65 72 20 6f 6e 65 73 20 74 68 61 74 20 75 73 65  er ones that use
2880: 73 20 55 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c  s UTF-8 internal
2890: 6c 79 2c 0a 20 20 20 20 74 68 65 6e 20 61 20 63  ly,.    then a c
28a0: 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55  onversion from U
28b0: 54 46 2d 38 20 74 6f 20 69 73 6f 38 38 35 39 20  TF-8 to iso8859 
28c0: 61 6e 64 0a 20 20 20 20 62 61 63 6b 20 61 67 61  and.    back aga
28d0: 69 6e 20 69 73 20 64 6f 6e 65 20 69 6e 73 69 64  in is done insid
28e0: 65 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  e the TCL interf
28f0: 61 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ace.</li>.}..chn
2900: 67 20 7b 32 30 30 31 20 41 70 72 20 34 20 28 31  g {2001 Apr 4 (1
2910: 2e 30 2e 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64  .0.28)} {.<li>Ad
2920: 64 65 64 20 6c 69 6d 69 74 65 64 20 73 75 70 70  ded limited supp
2930: 6f 72 74 20 66 6f 72 20 74 72 61 6e 73 61 63 74  ort for transact
2940: 69 6f 6e 73 2e 20 20 41 74 20 74 68 69 73 20 70  ions.  At this p
2950: 6f 69 6e 74 2c 20 74 72 61 6e 73 61 63 74 69 6f  oint, transactio
2960: 6e 73 0a 20 20 20 20 77 69 6c 6c 20 64 6f 20 74  ns.    will do t
2970: 61 62 6c 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20  able locking on 
2980: 74 68 65 20 47 44 42 4d 20 62 61 63 6b 65 6e 64  the GDBM backend
2990: 2e 20 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73  .  There is no s
29a0: 75 70 70 6f 72 74 20 28 79 65 74 29 0a 20 20 20  upport (yet).   
29b0: 20 66 6f 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72   for rollback or
29c0: 20 61 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c   atomic commit.<
29d0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
29e0: 70 65 63 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61  pecial column na
29f0: 6d 65 73 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20  mes ROWID, OID, 
2a00: 61 6e 64 20 5f 52 4f 57 49 44 5f 20 74 68 61 74  and _ROWID_ that
2a10: 20 72 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20   refer to the.  
2a20: 20 20 75 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20    unique random 
2a30: 69 6e 74 65 67 65 72 20 6b 65 79 20 61 73 73 6f  integer key asso
2a40: 63 69 61 74 65 64 20 77 69 74 68 20 65 76 65 72  ciated with ever
2a50: 79 20 72 6f 77 20 6f 66 20 65 76 65 72 79 20 74  y row of every t
2a60: 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  able.</li>.<li>A
2a70: 64 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 73 20  dditional tests 
2a80: 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 65 67  added to the reg
2a90: 72 65 73 73 69 6f 6e 20 73 75 69 74 65 20 74 6f  ression suite to
2aa0: 20 63 6f 76 65 72 20 74 68 65 20 6e 65 77 20 52   cover the new R
2ab0: 4f 57 49 44 0a 20 20 20 20 66 65 61 74 75 72 65  OWID.    feature
2ac0: 20 61 6e 64 20 74 68 65 20 54 43 4c 20 69 6e 74   and the TCL int
2ad0: 65 72 66 61 63 65 20 62 75 67 73 20 6d 65 6e 74  erface bugs ment
2ae0: 69 6f 6e 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69  ioned below.</li
2af0: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  >.<li>Changes to
2b00: 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72   the "lemon" par
2b10: 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20 74 6f  ser generator to
2b20: 20 68 65 6c 70 20 69 74 20 77 6f 72 6b 20 62 65   help it work be
2b30: 74 74 65 72 20 77 68 65 6e 0a 20 20 20 20 63 6f  tter when.    co
2b40: 6d 70 69 6c 65 64 20 75 73 69 6e 67 20 4d 53 56  mpiled using MSV
2b50: 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  C.</li>.<li>Bug 
2b60: 66 69 78 65 73 20 69 6e 20 74 68 65 20 54 43 4c  fixes in the TCL
2b70: 20 69 6e 74 65 72 66 61 63 65 20 69 64 65 6e 74   interface ident
2b80: 69 66 69 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c  ified by Oleg Ol
2b90: 65 69 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  einick.</li>.}..
2ba0: 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32  chng {2001 Mar 2
2bb0: 30 20 28 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c  0 (1.0.27)} {.<l
2bc0: 69 3e 57 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c  i>When doing DEL
2bd0: 45 54 45 20 61 6e 64 20 55 50 44 41 54 45 2c 20  ETE and UPDATE, 
2be0: 74 68 65 20 6c 69 62 72 61 72 79 20 75 73 65 64  the library used
2bf0: 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 72 65   to write the re
2c00: 63 6f 72 64 0a 20 20 20 20 6e 75 6d 62 65 72 73  cord.    numbers
2c10: 20 6f 66 20 72 65 63 6f 72 64 73 20 74 6f 20 62   of records to b
2c20: 65 20 64 65 6c 65 74 65 64 20 6f 72 20 75 70 64  e deleted or upd
2c30: 61 74 65 64 20 69 6e 74 6f 20 61 20 74 65 6d 70  ated into a temp
2c40: 6f 72 61 72 79 20 66 69 6c 65 2e 0a 20 20 20 20  orary file..    
2c50: 54 68 69 73 20 69 73 20 63 68 61 6e 67 65 64 20  This is changed 
2c60: 73 6f 20 74 68 61 74 20 74 68 65 20 72 65 63 6f  so that the reco
2c70: 72 64 20 6e 75 6d 62 65 72 73 20 61 72 65 20 68  rd numbers are h
2c80: 65 6c 64 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f  eld in memory.</
2c90: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45  li>.<li>The DELE
2ca0: 54 45 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f  TE command witho
2cb0: 75 74 20 61 20 57 48 49 4c 45 20 63 6c 61 75 73  ut a WHILE claus
2cc0: 65 20 6a 75 73 74 20 72 65 6d 6f 76 65 73 20 74  e just removes t
2cd0: 68 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20  he database.    
2ce0: 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 64  files from the d
2cf0: 69 73 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e  isk, rather than
2d00: 20 67 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 61   going through a
2d10: 6e 64 20 64 65 6c 65 74 69 6e 67 20 72 65 63 6f  nd deleting reco
2d20: 72 64 0a 20 20 20 20 62 79 20 72 65 63 6f 72 64  rd.    by record
2d30: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2d40: 32 30 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30  2001 Mar 20 (1.0
2d50: 2e 32 36 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65  .26)} {.<li>A se
2d60: 72 69 6f 75 73 20 62 75 67 20 66 69 78 65 64 20  rious bug fixed 
2d70: 6f 6e 20 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e  on Windows.  Win
2d80: 64 6f 77 73 20 75 73 65 72 73 20 73 68 6f 75 6c  dows users shoul
2d90: 64 20 75 70 67 72 61 64 65 2e 0a 20 20 20 20 4e  d upgrade..    N
2da0: 6f 20 69 6d 70 61 63 74 20 74 6f 20 55 6e 69 78  o impact to Unix
2db0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
2dc0: 32 30 30 31 20 4d 61 72 20 31 35 20 28 31 2e 30  2001 Mar 15 (1.0
2dd0: 2e 32 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69  .25)} {.<li>Modi
2de0: 66 79 20 74 68 65 20 74 65 73 74 20 73 63 72 69  fy the test scri
2df0: 70 74 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20  pts to identify 
2e00: 74 65 73 74 73 20 74 68 61 74 20 64 65 70 65 6e  tests that depen
2e10: 64 20 6f 6e 20 73 79 73 74 65 6d 0a 20 20 20 20  d on system.    
2e20: 6c 6f 61 64 20 61 6e 64 20 70 72 6f 63 65 73 73  load and process
2e30: 6f 72 20 73 70 65 65 64 20 61 6e 64 0a 20 20 20  or speed and.   
2e40: 20 74 6f 20 77 61 72 6e 20 74 68 65 20 75 73 65   to warn the use
2e50: 72 20 74 68 61 74 20 61 20 66 61 69 6c 75 72 65  r that a failure
2e60: 20 6f 66 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65   of one of those
2e70: 20 28 72 61 72 65 29 20 74 65 73 74 73 20 64 6f   (rare) tests do
2e80: 65 73 0a 20 20 20 20 6e 6f 74 20 6e 65 63 65 73  es.    not neces
2e90: 73 61 72 69 6c 79 20 6d 65 61 6e 20 74 68 65 20  sarily mean the 
2ea0: 6c 69 62 72 61 72 79 20 69 73 20 6d 61 6c 66 75  library is malfu
2eb0: 6e 63 74 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63  nctioning.  No c
2ec0: 68 61 6e 67 65 73 20 74 6f 0a 20 20 20 20 63 6f  hanges to.    co
2ed0: 64 65 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  de..    </li>.}.
2ee0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20  .chng {2001 Mar 
2ef0: 31 34 20 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c  14 (1.0.24)} {.<
2f00: 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77 68 69  li>Fix a bug whi
2f10: 63 68 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20  ch was causing. 
2f20: 20 20 20 74 68 65 20 55 50 44 41 54 45 20 63 6f     the UPDATE co
2f30: 6d 6d 61 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e  mmand to fail on
2f40: 20 73 79 73 74 65 6d 73 20 77 68 65 72 65 20 22   systems where "
2f50: 6d 61 6c 6c 6f 63 28 30 29 22 20 72 65 74 75 72  malloc(0)" retur
2f60: 6e 73 0a 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68  ns.    NULL.  Th
2f70: 65 20 70 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e  e problem does n
2f80: 6f 74 20 61 70 70 65 61 72 20 57 69 6e 64 6f 77  ot appear Window
2f90: 73 2c 20 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55  s, Linux, or HPU
2fa0: 58 20 62 75 74 20 64 6f 65 73 20 0a 20 20 20 20  X but does .    
2fb0: 63 61 75 73 65 20 74 68 65 20 6c 69 62 72 61 72  cause the librar
2fc0: 79 20 74 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58  y to fail on QNX
2fd0: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
2fe0: 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39  hng {2001 Feb 19
2ff0: 20 28 31 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69   (1.0.23)} {.<li
3000: 3e 41 6e 20 75 6e 72 65 6c 61 74 65 64 20 28 61  >An unrelated (a
3010: 6e 64 20 6d 69 6e 6f 72 29 20 62 75 67 20 66 72  nd minor) bug fr
3020: 6f 6d 20 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b  om Mark Muranwsk
3030: 69 20 66 69 78 65 64 2e 20 20 54 68 65 20 61 6c  i fixed.  The al
3040: 67 6f 72 69 74 68 6d 0a 20 20 20 20 66 6f 72 20  gorithm.    for 
3050: 66 69 67 75 72 69 6e 67 20 6f 75 74 20 77 68 65  figuring out whe
3060: 72 65 20 74 6f 20 70 75 74 20 74 65 6d 70 6f 72  re to put tempor
3070: 61 72 79 20 66 69 6c 65 73 20 66 6f 72 20 61 20  ary files for a 
3080: 22 6d 65 6d 6f 72 79 3a 22 20 64 61 74 61 62 61  "memory:" databa
3090: 73 65 0a 20 20 20 20 77 61 73 20 6e 6f 74 20 77  se.    was not w
30a0: 6f 72 6b 69 6e 67 20 71 75 69 74 65 20 72 69 67  orking quite rig
30b0: 68 74 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a  ht..    </li>.}.
30c0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20  .chng {2001 Feb 
30d0: 31 39 20 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c  19 (1.0.22)} {.<
30e0: 6c 69 3e 54 68 65 20 70 72 65 76 69 6f 75 73 20  li>The previous 
30f0: 66 69 78 20 77 61 73 20 6e 6f 74 20 71 75 69 74  fix was not quit
3100: 65 20 72 69 67 68 74 2e 20 20 54 68 69 73 20 6f  e right.  This o
3110: 6e 65 20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b  ne seems to work
3120: 20 62 65 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c   better..    </l
3130: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
3140: 20 46 65 62 20 31 39 20 28 31 2e 30 2e 32 31 29   Feb 19 (1.0.21)
3150: 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41  } {.<li>The UPDA
3160: 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73  TE statement was
3170: 20 6e 6f 74 20 77 6f 72 6b 69 6e 67 20 77 68 65   not working whe
3180: 6e 20 74 68 65 20 57 48 45 52 45 20 63 6c 61 75  n the WHERE clau
3190: 73 65 20 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20  se contained.   
31a0: 20 73 6f 6d 65 20 74 65 72 6d 73 20 74 68 61 74   some terms that
31b0: 20 63 6f 75 6c 64 20 62 65 20 73 61 74 69 73 66   could be satisf
31c0: 69 65 64 20 75 73 69 6e 67 20 69 6e 64 69 63 65  ied using indice
31d0: 73 20 61 6e 64 20 6f 74 68 65 72 20 74 65 72 6d  s and other term
31e0: 73 20 74 68 61 74 0a 20 20 20 20 63 6f 75 6c 64  s that.    could
31f0: 20 6e 6f 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c   not.  Fixed.</l
3200: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
3210: 20 46 65 62 20 31 31 20 28 31 2e 30 2e 32 30 29   Feb 11 (1.0.20)
3220: 7d 20 7b 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65  } {.<li>Merge de
3230: 76 65 6c 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65  velopment change
3240: 73 20 69 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20  s into the main 
3250: 74 72 75 6e 6b 2e 20 20 46 75 74 75 72 65 20 77  trunk.  Future w
3260: 6f 72 6b 20 74 6f 77 61 72 64 0a 20 20 20 20 75  ork toward.    u
3270: 73 69 6e 67 20 61 20 42 54 72 65 65 20 66 69 6c  sing a BTree fil
3280: 65 20 73 74 72 75 63 74 75 72 65 20 77 69 6c 6c  e structure will
3290: 20 75 73 65 20 61 20 73 65 70 61 72 61 74 65 20   use a separate 
32a0: 43 56 53 20 73 6f 75 72 63 65 20 74 72 65 65 2e  CVS source tree.
32b0: 20 20 54 68 69 73 0a 20 20 20 20 43 56 53 20 74    This.    CVS t
32c0: 72 65 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75  ree will continu
32d0: 65 20 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65  e to support the
32e0: 20 47 44 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66   GDBM version of
32f0: 20 53 51 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c   SQLite only.</l
3300: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
3310: 20 46 65 62 20 36 20 28 31 2e 30 2e 31 39 29 7d   Feb 6 (1.0.19)}
3320: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 73 74 72   {.<li>Fix a str
3330: 61 6e 67 65 20 28 62 75 74 20 76 61 6c 69 64 29  ange (but valid)
3340: 20 43 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74   C declaration t
3350: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
3360: 70 72 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72  problems.    for
3370: 20 51 4e 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61   QNX.  No logica
3380: 6c 20 63 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a  l changes.</li>.
3390: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61  }..chng {2001 Ja
33a0: 6e 20 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a  n 4 (1.0.18)} {.
33b0: 3c 6c 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66  <li>Print the of
33c0: 66 65 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74  fending SQL stat
33d0: 65 6d 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72  ement when an er
33e0: 72 6f 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e  ror occurs.</li>
33f0: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75  .<li>Do not requ
3400: 69 72 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65  ire commas betwe
3410: 65 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69  en constraints i
3420: 6e 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 73  n CREATE TABLE s
3430: 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a  tatements.</li>.
3440: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d  <li>Added the "-
3450: 65 63 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20  echo" option to 
3460: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
3470: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63  <li>Changes to c
3480: 6f 6d 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a  omments.</li>.}.
3490: 0a 63 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20  .chng {2000 Dec 
34a0: 31 30 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c  10 (1.0.17)} {.<
34b0: 6c 69 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71  li>Rewrote <b>sq
34c0: 6c 69 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c  lite_complete()<
34d0: 2f 62 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66  /b> to make it f
34e0: 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aster.</li>.<li>
34f0: 4d 69 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20  Minor tweaks to 
3500: 6f 74 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61  other code to ma
3510: 6b 65 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74  ke it run a litt
3520: 6c 65 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a  le faster.</li>.
3530: 3c 6c 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65  <li>Added new te
3540: 73 74 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74  sts for <b>sqlit
3550: 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e  e_complete()</b>
3560: 20 61 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20   and for memory 
3570: 6c 65 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  leaks.</li>.}..c
3580: 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 34 20  hng {2000 Dec 4 
3590: 28 31 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.16)} {.<li>
35a0: 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70  Documentation up
35b0: 64 61 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66  dates.  Mostly f
35c0: 69 78 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61  ixing of typos a
35d0: 6e 64 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f  nd spelling erro
35e0: 72 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  rs.</li>.}..chng
35f0: 20 7b 32 30 30 30 20 4f 63 74 20 32 33 20 28 31   {2000 Oct 23 (1
3600: 2e 30 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f  .0.15)} {.<li>Do
3610: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
3620: 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d  tes</li>.<li>Som
3630: 65 20 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e  e sanity checkin
3640: 67 20 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76  g code was remov
3650: 65 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65  ed from the inne
3660: 72 20 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63  r loop of vdbe.c
3670: 0a 20 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65  .    to help the
3680: 20 6c 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20   library to run 
3690: 61 20 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e  a little faster.
36a0: 20 20 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e    The code is on
36b0: 6c 79 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69  ly.    removed i
36c0: 66 20 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69  f you compile wi
36d0: 74 68 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69  th -DNDEBUG.</li
36e0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
36f0: 4f 63 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d  Oct 19 (1.0.14)}
3700: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22   {.<li>Added a "
3710: 6d 65 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64  memory:" backend
3720: 20 64 72 69 76 65 72 20 74 68 61 74 20 73 74 6f   driver that sto
3730: 72 65 73 20 69 74 73 20 64 61 74 61 62 61 73 65  res its database
3740: 20 69 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65   in an.    in-me
3750: 6d 6f 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e  mory hash table.
3760: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3770: 30 30 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e  000 Oct 18 (1.0.
3780: 31 33 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b  13)} {.<li>Break
3790: 20 6f 75 74 20 74 68 65 20 47 44 42 4d 20 64 72   out the GDBM dr
37a0: 69 76 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61  iver into a sepa
37b0: 72 61 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74  rate file in ant
37c0: 69 63 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f  icipation.    to
37d0: 20 61 64 64 65 64 20 6e 65 77 20 64 72 69 76 65   added new drive
37e0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c  rs.</li>.<li>All
37f0: 6f 77 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61  ow the name of a
3800: 20 64 61 74 61 62 61 73 65 20 74 6f 20 62 65 20   database to be 
3810: 70 72 65 66 69 78 65 64 20 62 79 20 74 68 65 20  prefixed by the 
3820: 64 72 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20  driver type..   
3830: 20 46 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e   For now, the on
3840: 6c 79 20 64 72 69 76 65 72 20 74 79 70 65 20 69  ly driver type i
3850: 73 20 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a  s "gdbm:".</li>.
3860: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
3870: 74 20 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b  t 16 (1.0.12)} {
3880: 0a 3c 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66  .<li>Fixed an of
3890: 66 2d 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74  f-by-one error t
38a0: 68 61 74 20 77 61 73 20 63 61 75 73 69 6e 67 20  hat was causing 
38b0: 61 20 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20  a coredump in . 
38c0: 20 20 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d     the '%q' form
38d0: 61 74 20 64 69 72 65 63 74 69 76 65 20 6f 66 20  at directive of 
38e0: 74 68 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73  the new.    <b>s
38f0: 71 6c 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66  qlite_..._printf
3900: 28 29 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e  ()</b> routines.
3910: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
3920: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e  the <b>sqlite_in
3930: 74 65 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e  terrupt()</b> in
3940: 74 65 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c  terface.</li>.<l
3950: 69 3e 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20  i>In the shell, 
3960: 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72  <b>sqlite_interr
3970: 75 70 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76  upt()</b> is inv
3980: 6f 6b 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20  oked when the.  
3990: 20 20 75 73 65 72 20 70 72 65 73 73 65 73 20 43    user presses C
39a0: 6f 6e 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c  ontrol-C</li>.<l
39b0: 69 3e 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73  i>Fixed some ins
39c0: 74 61 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e  tances where <b>
39d0: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62  sqlite_exec()</b
39e0: 3e 20 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e  > was.    return
39f0: 69 6e 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72  ing the wrong er
3a00: 72 6f 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d  ror code.</li>.}
3a10: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74  ..chng {2000 Oct
3a20: 20 31 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a   11 (1.0.10)} {.
3a30: 3c 6c 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20  <li>Added notes 
3a40: 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c  on how to compil
3a50: 65 20 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f  e for Windows95/
3a60: 39 38 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d  98.</li>.<li>Rem
3a70: 6f 76 65 64 20 61 20 66 65 77 20 76 61 72 69 61  oved a few varia
3a80: 62 6c 65 73 20 74 68 61 74 20 77 65 72 65 20 6e  bles that were n
3a90: 6f 74 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20  ot being used.  
3aa0: 45 74 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  Etc.</li>.}..chn
3ab0: 67 20 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31  g {2000 Oct 8 (1
3ac0: 2e 30 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.9)} {.<li>Add
3ad0: 65 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65  ed the <b>sqlite
3ae0: 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62  _..._printf()</b
3af0: 3e 20 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74  > interface rout
3b00: 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  ines.</li>.<li>M
3b10: 6f 64 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73  odified the <b>s
3b20: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
3b30: 70 72 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74  program to use t
3b40: 68 65 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65  he new interface
3b50: 20 0a 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c   .    routines.<
3b60: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65  /li>.<li>Modifie
3b70: 64 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c  d the <b>sqlite<
3b80: 2f 62 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61  /b> shell progra
3b90: 6d 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73  m to print the s
3ba0: 63 68 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68  chema for.    th
3bb0: 65 20 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54  e built-in SQLIT
3bc0: 45 5f 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20  E_MASTER table, 
3bd0: 69 66 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65  if explicitly re
3be0: 71 75 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  quested.</li>.}.
3bf0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20  .chng {2000 Sep 
3c00: 33 30 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c  30 (1.0.8)} {.<l
3c10: 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20  i>Begin writing 
3c20: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e  documentation on
3c30: 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61   the TCL interfa
3c40: 63 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ce.</li>.}..chng
3c50: 20 7b 32 30 30 30 20 53 65 70 20 32 39 20 28 4e   {2000 Sep 29 (N
3c60: 6f 74 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a  ot Released)} {.
3c70: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
3c80: 3e 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c  >sqlite_get_tabl
3c90: 65 28 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e  e()</b> API</li>
3ca0: 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65  .<li>Updated the
3cb0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66   documentation f
3cc0: 6f 72 20 64 75 65 20 74 6f 20 74 68 65 20 61 62  or due to the ab
3cd0: 6f 76 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e  ove change.</li>
3ce0: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
3cf0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
3d00: 73 68 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73  shell to make us
3d10: 65 20 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20  e of the new.   
3d20: 20 73 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c   sqlite_get_tabl
3d30: 65 28 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72  e() API in order
3d40: 20 74 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74   to print a list
3d50: 20 6f 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69   of tables.    i
3d60: 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d  n multiple colum
3d70: 6e 73 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74  ns, similar to t
3d80: 68 65 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e  he way "ls" prin
3d90: 74 73 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c  ts filenames.</l
3da0: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
3db0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
3dc0: 3e 20 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74  > shell to print
3dd0: 20 61 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20   a semicolon at 
3de0: 74 68 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65  the.    end of e
3df0: 61 63 68 20 43 52 45 41 54 45 20 73 74 61 74 65  ach CREATE state
3e00: 6d 65 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70  ment in the outp
3e10: 75 74 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65  ut of the ".sche
3e20: 6d 61 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69  ma" command.</li
3e30: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
3e40: 53 65 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65  Sep 21 (Not Rele
3e50: 61 73 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  ased)} {.<li>Cha
3e60: 6e 67 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74  nge the tclsqlit
3e70: 65 20 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20  e "eval" method 
3e80: 74 6f 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74  to return a list
3e90: 20 6f 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20   of results if. 
3ea0: 20 20 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73     no callback s
3eb0: 63 72 69 70 74 20 69 73 20 73 70 65 63 69 66 69  cript is specifi
3ec0: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ed.</li>.<li>Cha
3ed0: 6e 67 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20  nge tclsqlite.c 
3ee0: 74 6f 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f  to use the Tcl_O
3ef0: 62 6a 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69  bj interface</li
3f00: 3e 0a 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c  >.<li>Add tclsql
3f10: 69 74 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62  ite.c to the lib
3f20: 73 71 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79  sqlite.a library
3f30: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3f40: 30 30 30 20 53 65 70 20 31 33 20 28 56 65 72 73  000 Sep 13 (Vers
3f50: 69 6f 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c  ion 1.0.5)} {.<l
3f60: 69 3e 43 68 61 6e 67 65 64 20 74 68 65 20 70 72  i>Changed the pr
3f70: 69 6e 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66  int format for f
3f80: 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61  loating point va
3f90: 6c 75 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74  lues from "%g" t
3fa0: 6f 20 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c  o "%.15g"..    <
3fb0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64  /li>.<li>Changed
3fc0: 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20   the comparison 
3fd0: 66 75 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74  function so that
3fe0: 20 6e 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f   numbers in expo
3ff0: 6e 65 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e  nential notation
4000: 0a 20 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65  .    (ex: 1.234e
4010: 2b 30 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d  +05) sort in num
4020: 65 72 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c  erical order.</l
4030: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
4040: 20 41 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e   Aug 28 (Version
4050: 20 31 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41   1.0.4)} {.<li>A
4060: 64 64 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c  dded functions <
4070: 62 3e 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61  b>length()</b> a
4080: 6e 64 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f  nd <b>substr()</
4090: 62 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  b>.</li>.<li>Fix
40a0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62   a bug in the <b
40b0: 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c  >sqlite</b> shel
40c0: 6c 20 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77  l program that w
40d0: 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61  as causing.    a
40e0: 20 63 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74   coredump when t
40f0: 68 65 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77  he output mode w
4100: 61 73 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20  as "column" and 
4110: 74 68 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20  the first row.  
4120: 20 20 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69    of data contai
4130: 6e 65 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e  ned a NULL.</li>
4140: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
4150: 75 67 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31  ug 22 (Version 1
4160: 2e 30 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20  .0.3)} {.<li>In 
4170: 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c  the sqlite shell
4180: 2c 20 70 72 69 6e 74 20 74 68 65 20 22 44 61 74  , print the "Dat
4190: 61 62 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41  abase opened REA
41a0: 44 20 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a  D ONLY" message.
41b0: 20 20 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e      to stderr in
41c0: 73 74 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e  stead of stdout.
41d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65  </li>.<li>In the
41e0: 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e   sqlite shell, n
41f0: 6f 77 20 70 72 69 6e 74 20 74 68 65 20 76 65 72  ow print the ver
4200: 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69  sion number on i
4210: 6e 69 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c  nitial startup.<
4220: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65  /li>.<li>Add the
4230: 20 3c 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69   <b>sqlite_versi
4240: 6f 6e 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20  on[]</b> string 
4250: 63 6f 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20  constant to the 
4260: 6c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69  library</li>.<li
4270: 3e 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65  >Makefile update
4280: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  s</li>.<li>Bug f
4290: 69 78 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44  ix: incorrect VD
42a0: 42 45 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e  BE code was bein
42b0: 67 20 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20  g generated for 
42c0: 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20  the following.  
42d0: 20 20 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20    circumstance: 
42e0: 61 20 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e  a query on an in
42f0: 64 65 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74  dexed table cont
4300: 61 69 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63  aining a WHERE c
4310: 6c 61 75 73 65 20 77 69 74 68 0a 20 20 20 20 61  lause with.    a
4320: 6e 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68  n IN operator th
4330: 61 74 20 68 61 64 20 61 20 73 75 62 71 75 65 72  at had a subquer
4340: 79 20 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68  y on its right-h
4350: 61 6e 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d  and side.</li>.}
4360: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
4370: 20 31 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   18 (Version 1.0
4380: 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .1)} {.<li>Fix a
4390: 20 62 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66   bug in the conf
43a0: 69 67 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c  igure script.</l
43b0: 69 3e 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76  i>.<li>Minor rev
43c0: 69 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65  isions to the we
43d0: 62 73 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  bsite.</li>.}..c
43e0: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31 37  hng {2000 Aug 17
43f0: 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20   (Version 1.0)} 
4400: 7b 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65  {.<li>Change the
4410: 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70   <b>sqlite</b> p
4420: 72 6f 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69  rogram so that i
4430: 74 20 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64  t can read.    d
4440: 61 74 61 62 61 73 65 73 20 66 6f 72 20 77 68 69  atabases for whi
4450: 63 68 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74  ch it lacks writ
4460: 65 20 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28  e permission.  (
4470: 49 74 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72  It used to.    r
4480: 65 66 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73  efuse all access
4490: 20 69 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74   if it could not
44a0: 20 77 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a   write.)</li>.}.
44b0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20  .chng {2000 Aug 
44c0: 39 7d 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63  9} {.<li>Treat c
44d0: 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 73 20  arriage returns 
44e0: 61 73 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c  as white space.<
44f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4500: 30 30 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e  00 Aug 8} {.<li>
4510: 41 64 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61  Added pattern ma
4520: 74 63 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e  tching to the ".
4530: 74 61 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69  table" command i
4540: 6e 20 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63  n the "sqlite".c
4550: 6f 6d 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c  ommand shell.</l
4560: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
4570: 20 41 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f   Aug 4} {.<li>Do
4580: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
4590: 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  tes</li>.<li>Add
45a0: 65 64 20 22 62 75 73 79 22 20 61 6e 64 20 22 74  ed "busy" and "t
45b0: 69 6d 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20  imeout" methods 
45c0: 74 6f 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72  to the Tcl inter
45d0: 66 61 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  face</li>.}..chn
45e0: 67 20 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b  g {2000 Aug 3} {
45f0: 0a 3c 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74  .<li>File format
4600: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20   version number 
4610: 77 61 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64  was being stored
4620: 20 69 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65   in sqlite_maste
4630: 72 2e 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70  r.tcl.    multip
4640: 6c 65 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77  le times. This w
4650: 61 73 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74  as harmless, but
4660: 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74   unnecessary. It
4670: 20 69 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f   is now fixed.</
4680: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
4690: 30 20 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54  0 Aug 2} {.<li>T
46a0: 68 65 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66  he file format f
46b0: 6f 72 20 69 6e 64 69 63 65 73 20 77 61 73 20 63  or indices was c
46c0: 68 61 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20  hanged slightly 
46d0: 69 6e 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b  in order to work
46e0: 0a 20 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69  .    around an i
46f0: 6e 65 66 66 69 63 69 65 6e 63 79 20 74 68 61 74  nefficiency that
4700: 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63   can sometimes c
4710: 6f 6d 65 20 75 70 20 77 69 74 68 20 47 44 42 4d  ome up with GDBM
4720: 20 77 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20   when.    there 
4730: 61 72 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65  are large indice
4740: 73 20 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e  s having many en
4750: 74 72 69 65 73 20 77 69 74 68 20 74 68 65 20 73  tries with the s
4760: 61 6d 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f  ame key..    <fo
4770: 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a  nt color="red">*
4780: 2a 20 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43  * Incompatible C
4790: 68 61 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c  hange **</font><
47a0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
47b0: 30 30 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e  00 Aug 1} {.<li>
47c0: 54 68 65 20 70 61 72 73 65 72 27 73 20 73 74 61  The parser's sta
47d0: 63 6b 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69  ck was overflowi
47e0: 6e 67 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e  ng on a very lon
47f0: 67 20 55 50 44 41 54 45 20 73 74 61 74 65 6d 65  g UPDATE stateme
4800: 6e 74 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20  nt..    This is 
4810: 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a  now fixed.</li>.
4820: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75  }..chng {2000 Ju
4830: 6c 79 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e  ly 31} {.<li>Fin
4840: 69 73 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d  ish the <a href=
4850: 22 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45  "vdbe.html">VDBE
4860: 20 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f   tutorial</a>.</
4870: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f  li>.<li>Added do
4880: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63  cumentation on c
4890: 6f 6d 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64  ompiling to Wind
48a0: 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  owsNT.</li>.<li>
48b0: 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74  Fix a configurat
48c0: 69 6f 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20  ion program for 
48d0: 57 69 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a  WindowsNT.</li>.
48e0: 3c 6c 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67  <li>Fix a config
48f0: 75 72 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20  uration problem 
4900: 66 6f 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d  for HPUX.</li>.}
4910: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c  ..chng {2000 Jul
4920: 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74  y 29} {.<li>Bett
4930: 65 72 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c  er labels on col
4940: 75 6d 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65  umn names of the
4950: 20 72 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a   result.</li>.}.
4960: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
4970: 20 32 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64   28} {.<li>Added
4980: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62   the <b>sqlite_b
4990: 75 73 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62  usy_handler()</b
49a0: 3e 20 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71  > .    and <b>sq
49b0: 6c 69 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75  lite_busy_timeou
49c0: 74 28 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63  t()</b> interfac
49d0: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
49e0: 7b 32 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b  {2000 June 23} {
49f0: 0a 3c 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69  .<li>Begin writi
4a00: 6e 67 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22  ng the <a href="
4a10: 76 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20  vdbe.html">VDBE 
4a20: 74 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c  tutorial</a>.</l
4a30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
4a40: 20 4a 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e   June 21} {.<li>
4a50: 43 6c 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74  Clean up comment
4a60: 73 20 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e  s and variable n
4a70: 61 6d 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74  ames.  Changes t
4a80: 6f 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e  o documentation.
4a90: 0a 20 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e  .    No function
4aa0: 61 6c 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68  al changes to th
4ab0: 65 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  e code.</li>.}..
4ac0: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20  chng {2000 June 
4ad0: 31 39 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e  19} {.<li>Column
4ae0: 20 6e 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45   names in UPDATE
4af0: 20 73 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65   statements were
4b00: 20 63 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e   case sensitive.
4b10: 0a 20 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b  .    This mistak
4b20: 65 20 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66  e has now been f
4b30: 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ixed.</li>.}..ch
4b40: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36  ng {2000 June 16
4b50: 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  } {.<li>Added th
4b60: 65 20 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74  e concatenate st
4b70: 72 69 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c  ring operator (|
4b80: 7c 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  |)</li>.}..chng 
4b90: 7b 32 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b  {2000 June 12} {
4ba0: 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66  .<li>Added the f
4bb0: 63 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74  cnt() function t
4bc0: 6f 20 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70  o the SQL interp
4bd0: 72 65 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74  reter.  The fcnt
4be0: 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20  () function.    
4bf0: 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62  returns the numb
4c00: 65 72 20 6f 66 20 64 61 74 61 62 61 73 65 20 22  er of database "
4c10: 46 65 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e  Fetch" operation
4c20: 73 20 74 68 61 74 20 68 61 76 65 20 6f 63 63 75  s that have occu
4c30: 72 72 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66  rred..    This f
4c40: 75 6e 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67  unction is desig
4c50: 6e 65 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74  ned for use in t
4c60: 65 73 74 20 73 63 72 69 70 74 73 20 74 6f 20 76  est scripts to v
4c70: 65 72 69 66 79 20 74 68 61 74 0a 20 20 20 20 71  erify that.    q
4c80: 75 65 72 69 65 73 20 61 72 65 20 65 66 66 69 63  ueries are effic
4c90: 69 65 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72  ient and appropr
4ca0: 69 61 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64  iately optimized
4cb0: 2e 20 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f  .  Fcnt() has no
4cc0: 20 6f 74 68 65 72 0a 20 20 20 20 75 73 65 66 75   other.    usefu
4cd0: 6c 20 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61  l purpose, as fa
4ce0: 72 20 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69  r as I know.</li
4cf0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75  >.<li>Added a bu
4d00: 6e 63 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74  nch more tests t
4d10: 68 61 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61  hat take advanta
4d20: 67 65 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63  ge of the new fc
4d30: 6e 74 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20  nt() function.. 
4d40: 20 20 20 54 68 65 20 6e 65 77 20 74 65 73 74 73     The new tests
4d50: 20 64 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72   did not uncover
4d60: 20 61 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d   any new problem
4d70: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
4d80: 7b 32 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a  {2000 June 8} {.
4d90: 3c 6c 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f  <li>Added lots o
4da0: 66 20 6e 65 77 20 74 65 73 74 20 63 61 73 65 73  f new test cases
4db0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
4dc0: 66 65 77 20 62 75 67 73 20 64 69 73 63 6f 76 65  few bugs discove
4dd0: 72 65 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67  red while adding
4de0: 20 74 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e   test cases</li>
4df0: 0a 3c 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e  .<li>Begin addin
4e00: 67 20 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f  g lots of new do
4e10: 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e  cumentation</li>
4e20: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
4e30: 75 6e 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64  une 6} {.<li>Add
4e40: 65 64 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65  ed compound sele
4e50: 63 74 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42  ct operators: <B
4e60: 3e 55 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55  >UNION</b>, <b>U
4e70: 4e 49 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62  NION ALL</B>,.<b
4e80: 3e 49 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20  >INTERSECT</b>, 
4e90: 61 6e 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62  and <b>EXCEPT</b
4ea0: 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  ></li>.<li>Added
4eb0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69   support for usi
4ec0: 6e 67 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e  ng <b>(SELECT ..
4ed0: 2e 29 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78  .)</b> within ex
4ee0: 70 72 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c  pressions</li>.<
4ef0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
4f00: 20 66 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61   for <b>IN</b> a
4f10: 6e 64 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62  nd <b>BETWEEN</b
4f20: 3e 20 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e  > operators</li>
4f30: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
4f40: 72 74 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20  rt for <b>GROUP 
4f50: 42 59 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41  BY</b> and <b>HA
4f60: 56 49 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c  VING</b></li>.<l
4f70: 69 3e 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72  i>NULL values ar
4f80: 65 20 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 74  e now reported t
4f90: 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61  o the callback a
4fa0: 73 20 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72  s a NULL pointer
4fb0: 0a 20 20 20 20 72 61 74 68 65 72 20 74 68 61 6e  .    rather than
4fc0: 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67   an empty string
4fd0: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
4fe0: 32 30 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c  2000 June 3} {.<
4ff0: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
5000: 20 66 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c   for default val
5010: 75 65 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f  ues on columns o
5020: 66 20 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a  f a table.</li>.
5030: 3c 6c 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73  <li>Improved tes
5040: 74 20 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78  t coverage.  Fix
5050: 65 64 20 61 20 66 65 77 20 6f 62 73 63 75 72 65  ed a few obscure
5060: 20 62 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74   bugs found by t
5070: 68 65 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74  he.improved test
5080: 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  s.</li>.}..chng 
5090: 7b 32 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a  {2000 June 2} {.
50a0: 3c 6c 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65  <li>All database
50b0: 20 66 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64   files to be mod
50c0: 69 66 69 65 64 20 62 79 20 61 6e 20 55 50 44 41  ified by an UPDA
50d0: 54 45 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45  TE, INSERT or DE
50e0: 4c 45 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f  LETE are .now lo
50f0: 63 6b 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20  cked before any 
5100: 63 68 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65  changes are made
5110: 20 74 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20   to any files.  
5120: 0a 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73  .This makes it s
5130: 61 66 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f  afe (I think) to
5140: 20 61 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65   access.the same
5150: 20 64 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74   database simult
5160: 61 6e 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75  aneously from mu
5170: 6c 74 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73  ltiple processes
5180: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63  .</li>.<li>The c
5190: 6f 64 65 20 61 70 70 65 61 72 73 20 73 74 61 62  ode appears stab
51a0: 6c 65 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77  le so we are now
51b0: 20 63 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74   calling it "bet
51c0: 61 22 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  a".</li>.}..chng
51d0: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b   {2000 June 1} {
51e0: 0a 3c 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70  .<li>Better supp
51f0: 6f 72 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63  ort for file loc
5200: 6b 69 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f  king so that two
5210: 20 6f 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73   or more process
5220: 65 73 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29  es .(or threads)
5230: 0a 63 61 6e 20 61 63 63 65 73 73 20 74 68 65 20  .can access the 
5240: 73 61 6d 65 20 64 61 74 61 62 61 73 65 20 73 69  same database si
5250: 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d  multaneously.  M
5260: 6f 72 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20  ore work needed 
5270: 69 6e 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68  in.this area, th
5280: 6f 75 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ough.</li>.}..ch
5290: 6e 67 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d  ng {2000 May 31}
52a0: 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70   {.<li>Added sup
52b0: 70 6f 72 74 20 66 6f 72 20 61 67 67 72 65 67 61  port for aggrega
52c0: 74 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78  te functions (Ex
52d0: 3a 20 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62  : <b>COUNT(*)</b
52e0: 3e 2c 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f  >, <b>MIN(...)</
52f0: 62 3e 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43  b>).to the SELEC
5300: 54 20 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69  T statement.</li
5310: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
5320: 6f 72 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43  ort for <B>SELEC
5330: 54 20 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f  T DISTINCT ...</
5340: 42 3e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  B></li>.}..chng 
5350: 7b 32 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a  {2000 May 30} {.
5360: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62  <li>Added the <b
5370: 3e 4c 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74  >LIKE</b> operat
5380: 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  or.</li>.<li>Add
5390: 65 64 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e  ed a <b>GLOB</b>
53a0: 20 6f 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c   operator: simil
53b0: 61 72 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42  ar to <B>LIKE</B
53c0: 3e 20 0a 62 75 74 20 69 74 20 75 73 65 73 20 55  > .but it uses U
53d0: 6e 69 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69  nix shell globbi
53e0: 6e 67 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73  ng wildcards ins
53f0: 74 65 61 64 20 6f 66 20 74 68 65 20 27 25 27 20  tead of the '%' 
5400: 0a 61 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72  .and '_' wildcar
5410: 64 73 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a  ds of SQL.</li>.
5420: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42  <li>Added the <B
5430: 3e 43 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e  >COPY</b> comman
5440: 64 20 70 61 74 74 65 72 6e 65 64 20 61 66 74 65  d patterned afte
5450: 72 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70  r .<a href="http
5460: 3a 2f 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71  ://www.postgresq
5470: 6c 2e 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53  l.org/">PostgreS
5480: 51 4c 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53  QL</a> so that S
5490: 51 4c 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65  QLite.can now re
54a0: 61 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66  ad the output of
54b0: 20 74 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c   the <b>pg_dump<
54c0: 2f 62 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d  /b> database dum
54d0: 70 20 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73  p utility.of Pos
54e0: 74 67 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c  tgreSQL.</li>.<l
54f0: 69 3e 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43  i>Added a <B>VAC
5500: 55 55 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20  UUM</B> command 
5510: 74 68 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20  that that calls 
5520: 74 68 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f  the .<b>gdbm_reo
5530: 72 67 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75  rganize()</b> fu
5540: 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e  nction on the un
5550: 64 65 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73  derlying databas
5560: 65 0a 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  e.files.</li>.<l
5570: 69 3e 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79  i>And many, many
5580: 20 62 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c   bug fixes...</l
5590: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
55a0: 20 4d 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49   May 29} {.<li>I
55b0: 6e 69 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65  nitial Public Re
55c0: 6c 65 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63  lease of Alpha c
55d0: 6f 64 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73  ode</li>.}..puts
55e0: 20 7b 0a 3c 2f 44 4c 3e 0a 3c 70 3e 3c 68 72 20   {.</DL>.<p><hr 
55f0: 2f 3e 3c 2f 70 3e 0a 3c 70 3e 3c 61 20 68 72 65  /></p>.<p><a hre
5600: 66 3d 22 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 3c  f="index.html"><
5610: 69 6d 67 20 73 72 63 3d 22 2f 67 6f 62 61 63 6b  img src="/goback
5620: 2e 6a 70 67 22 20 62 6f 72 64 65 72 3d 30 20 2f  .jpg" border=0 /
5630: 3e 0a 42 61 63 6b 20 74 6f 20 74 68 65 20 53 51  >.Back to the SQ
5640: 4c 69 74 65 20 48 6f 6d 65 20 50 61 67 65 3c 2f  Lite Home Page</
5650: 61 3e 0a 3c 2f 70 3e 0a 0a 3c 2f 62 6f 64 79 3e  a>.</p>..</body>
5660: 3c 2f 68 74 6d 6c 3e 7d 0a                       </html>}.