/ Hex Artifact Content
Login

Artifact dd6aaf7839ac20b3c5fe69533755bc64d8e43952:


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 73 6f  output file.#.so
0040: 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a  urce common.tcl.
0050: 68 65 61 64 65 72 20 7b 53 51 4c 69 74 65 20 63  header {SQLite c
0060: 68 61 6e 67 65 73 7d 0a 70 75 74 73 20 7b 0a 3c  hanges}.puts {.<
0070: 70 3e 0a 54 68 69 73 20 70 61 67 65 20 70 72 6f  p>.This page pro
0080: 76 69 64 65 73 20 61 20 68 69 67 68 2d 6c 65 76  vides a high-lev
0090: 65 6c 20 73 75 6d 6d 61 72 79 20 6f 66 20 63 68  el summary of ch
00a0: 61 6e 67 65 73 20 74 6f 20 53 51 4c 69 74 65 2e  anges to SQLite.
00b0: 0a 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c  .For more detail
00c0: 2c 20 72 65 66 65 72 20 74 68 65 20 74 68 65 20  , refer the the 
00d0: 63 68 65 63 6b 69 6e 20 6c 6f 67 73 20 67 65 6e  checkin logs gen
00e0: 65 72 61 74 65 64 20 62 79 0a 43 56 53 20 61 74  erated by.CVS at
00f0: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
0100: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0110: 63 76 73 74 72 61 63 2f 74 69 6d 65 6c 69 6e 65  cvstrac/timeline
0120: 22 3e 0a 68 74 74 70 3a 2f 2f 77 77 77 2e 73 71  ">.http://www.sq
0130: 6c 69 74 65 2e 6f 72 67 2f 63 76 73 74 72 61 63  lite.org/cvstrac
0140: 2f 74 69 6d 65 6c 69 6e 65 3c 2f 61 3e 2e 0a 3c  /timeline</a>..<
0150: 2f 70 3e 0a 0a 3c 44 4c 3e 0a 7d 0a 0a 0a 70 72  /p>..<DL>.}...pr
0160: 6f 63 20 63 68 6e 67 20 7b 64 61 74 65 20 64 65  oc chng {date de
0170: 73 63 7d 20 7b 0a 20 20 69 66 20 7b 5b 72 65 67  sc} {.  if {[reg
0180: 65 78 70 20 7b 5c 28 28 5b 30 2d 39 2e 5d 2b 29  exp {\(([0-9.]+)
0190: 5c 29 7d 20 24 64 61 74 65 20 61 6c 6c 20 76 65  \)} $date all ve
01a0: 72 73 5d 7d 20 7b 0a 20 20 20 20 73 65 74 20 6c  rs]} {.    set l
01b0: 61 62 65 6c 20 5b 73 74 72 69 6e 67 20 6d 61 70  abel [string map
01c0: 20 7b 2e 20 5f 7d 20 24 76 65 72 73 5d 0a 20 20   {. _} $vers].  
01d0: 20 20 70 75 74 73 20 22 3c 41 20 4e 41 4d 45 3d    puts "<A NAME=
01e0: 5c 22 76 65 72 73 69 6f 6e 5f 24 6c 61 62 65 6c  \"version_$label
01f0: 5c 22 3e 22 0a 20 20 7d 0a 20 20 70 75 74 73 20  \">".  }.  puts 
0200: 22 3c 44 54 3e 3c 42 3e 24 64 61 74 65 3c 2f 42  "<DT><B>$date</B
0210: 3e 3c 2f 44 54 3e 22 0a 20 20 70 75 74 73 20 22  ></DT>".  puts "
0220: 3c 44 44 3e 3c 50 3e 3c 55 4c 3e 24 64 65 73 63  <DD><P><UL>$desc
0230: 3c 2f 55 4c 3e 3c 2f 50 3e 3c 2f 44 44 3e 22 0a  </UL></P></DD>".
0240: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 37 20 4a 61  }..chng {2007 Ja
0250: 6e 75 61 72 79 20 39 20 28 33 2e 33 2e 31 30 29  nuary 9 (3.3.10)
0260: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 62 75 67 73  } {.<li>Fix bugs
0270: 20 69 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e   in the implemen
0280: 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65  tation of the ne
0290: 77 20 0a 3c 61 20 68 72 65 66 3d 22 63 61 70 69  w .<a href="capi
02a0: 33 72 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65  3ref.html#sqlite
02b0: 33 5f 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71  3_prepare_v2">sq
02c0: 6c 69 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32  lite3_prepare_v2
02d0: 28 29 3c 2f 61 3e 20 41 50 49 0a 74 68 61 74 20  ()</a> API.that 
02e0: 63 61 6e 20 6c 65 61 64 20 74 6f 20 73 65 67 66  can lead to segf
02f0: 61 75 6c 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  aults.</li>.<li>
0300: 46 69 78 20 31 2d 73 65 63 6f 6e 64 20 72 6f 75  Fix 1-second rou
0310: 6e 64 2d 6f 66 66 20 65 72 72 6f 72 73 20 69 6e  nd-off errors in
0320: 20 74 68 65 20 0a 3c 61 20 68 72 65 66 3d 22 68   the .<a href="h
0330: 74 74 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65  ttp://www.sqlite
0340: 2e 6f 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b  .org/cvstrac/wik
0350: 69 3f 70 3d 44 61 74 65 41 6e 64 54 69 6d 65 46  i?p=DateAndTimeF
0360: 75 6e 63 74 69 6f 6e 73 22 3e 0a 73 74 72 66 74  unctions">.strft
0370: 69 6d 65 28 29 3c 2f 61 3e 20 66 75 6e 63 74 69  ime()</a> functi
0380: 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 6e 68 61  on</li>.<li>Enha
0390: 6e 63 65 20 74 68 65 20 77 69 6e 64 6f 77 73 20  nce the windows 
03a0: 4f 53 20 6c 61 79 65 72 20 74 6f 20 70 72 6f 76  OS layer to prov
03b0: 69 64 65 20 64 65 74 61 69 6c 65 64 20 65 72 72  ide detailed err
03c0: 6f 72 20 63 6f 64 65 73 3c 2f 6c 69 3e 0a 3c 6c  or codes</li>.<l
03d0: 69 3e 57 6f 72 6b 20 61 72 6f 75 6e 64 20 61 20  i>Work around a 
03e0: 77 69 6e 32 6b 20 70 72 6f 62 6c 65 6d 20 73 6f  win2k problem so
03f0: 20 74 68 61 74 20 53 51 4c 69 74 65 20 63 61 6e   that SQLite can
0400: 20 75 73 65 20 73 69 6e 67 6c 65 2d 63 68 61 72   use single-char
0410: 61 63 74 65 72 0a 64 61 74 61 62 61 73 65 20 66  acter.database f
0420: 69 6c 65 20 6e 61 6d 65 73 3c 2f 6c 69 3e 0a 3c  ile names</li>.<
0430: 6c 69 3e 54 68 65 0a 3c 61 20 68 72 65 66 3d 22  li>The.<a href="
0440: 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67  pragma.html#prag
0450: 6d 61 5f 75 73 65 72 5f 76 65 72 73 69 6f 6e 22  ma_user_version"
0460: 3e 75 73 65 72 5f 76 65 72 73 69 6f 6e 3c 2f 61  >user_version</a
0470: 3e 20 61 6e 64 0a 3c 61 20 68 72 65 66 3d 22 70  > and.<a href="p
0480: 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d  ragma.html#pragm
0490: 61 5f 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e  a_schema_version
04a0: 22 3e 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e  ">schema_version
04b0: 3c 2f 61 3e 20 70 72 61 67 6d 61 73 20 0a 63 6f  </a> pragmas .co
04c0: 72 72 65 63 74 6c 79 20 73 65 74 20 74 68 65 69  rrectly set thei
04d0: 72 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69  r column names i
04e0: 6e 20 74 68 65 20 72 65 73 75 6c 74 20 73 65 74  n the result set
04f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65  </li>.<li>Docume
0500: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 3c  ntation updates<
0510: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
0520: 30 37 20 4a 61 6e 75 61 72 79 20 34 20 28 33 2e  07 January 4 (3.
0530: 33 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  3.9)} {.<li>Fix 
0540: 62 75 67 73 20 69 6e 20 70 61 67 65 72 2e 63 20  bugs in pager.c 
0550: 74 68 61 74 20 63 6f 75 6c 64 20 6c 65 61 64 20  that could lead 
0560: 74 6f 20 64 61 74 61 62 61 73 65 20 63 6f 72 72  to database corr
0570: 75 70 74 69 6f 6e 20 69 66 20 74 77 6f 0a 70 72  uption if two.pr
0580: 6f 63 65 73 73 65 73 20 62 6f 74 68 20 74 72 79  ocesses both try
0590: 20 74 6f 20 72 65 63 6f 76 65 72 20 61 20 68 6f   to recover a ho
05a0: 74 20 6a 6f 75 72 6e 61 6c 20 61 74 20 74 68 65  t journal at the
05b0: 20 73 61 6d 65 20 69 6e 73 74 61 6e 74 3c 2f 6c   same instant</l
05c0: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
05d0: 20 3c 61 20 68 72 65 66 3d 22 63 61 70 69 33 72   <a href="capi3r
05e0: 65 66 2e 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f  ef.html#sqlite3_
05f0: 70 72 65 70 61 72 65 5f 76 32 22 3e 73 71 6c 69  prepare_v2">sqli
0600: 74 65 33 5f 70 72 65 70 61 72 65 5f 76 32 28 29  te3_prepare_v2()
0610: 3c 2f 61 3e 0a 41 50 49 2e 3c 2f 6c 69 3e 0a 3c  </a>.API.</li>.<
0620: 6c 69 3e 46 69 78 65 64 20 74 68 65 20 22 2e 64  li>Fixed the ".d
0630: 75 6d 70 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  ump" command in 
0640: 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65  the command-line
0650: 20 73 68 65 6c 6c 20 74 6f 20 73 68 6f 77 0a 69   shell to show.i
0660: 6e 64 69 63 65 73 2c 20 74 72 69 67 67 65 72 73  ndices, triggers
0670: 20 61 6e 64 20 76 69 65 77 73 20 61 67 61 69 6e   and views again
0680: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
0690: 65 20 74 68 65 20 74 61 62 6c 65 5f 69 6e 66 6f  e the table_info
06a0: 20 70 72 61 67 6d 61 20 73 6f 20 74 68 61 74 20   pragma so that 
06b0: 69 74 20 72 65 74 75 72 6e 73 20 4e 55 4c 4c 20  it returns NULL 
06c0: 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 0a  for the default.
06d0: 76 61 6c 75 65 20 69 66 20 74 68 65 72 65 20 69  value if there i
06e0: 73 20 6e 6f 20 64 65 66 61 75 6c 74 20 76 61 6c  s no default val
06f0: 75 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70  ue</li>.<li>Supp
0700: 6f 72 74 20 66 6f 72 20 6e 6f 6e 2d 41 53 43 49  ort for non-ASCI
0710: 49 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20  I characters in 
0720: 77 69 6e 39 35 20 66 69 6c 65 6e 61 6d 65 73 3c  win95 filenames<
0730: 2f 6c 69 3e 0a 3c 6c 69 3e 51 75 65 72 79 20 6f  /li>.<li>Query o
0740: 70 74 69 6d 69 7a 65 72 20 65 6e 68 61 6e 63 65  ptimizer enhance
0750: 6d 65 6e 74 73 3a 0a 3c 75 6c 3e 0a 3c 6c 69 3e  ments:.<ul>.<li>
0760: 4f 70 74 69 6d 69 7a 65 72 20 64 6f 65 73 20 61  Optimizer does a
0770: 20 62 65 74 74 65 72 20 6a 6f 62 20 6f 66 20 75   better job of u
0780: 73 69 6e 67 20 69 6e 64 69 63 65 73 20 74 6f 20  sing indices to 
0790: 73 61 74 69 73 66 79 20 4f 52 44 45 52 20 42 59  satisfy ORDER BY
07a0: 0a 63 6c 61 75 73 65 73 20 74 68 61 74 20 73 6f  .clauses that so
07b0: 72 74 20 6f 6e 20 74 68 65 20 69 6e 74 65 67 65  rt on the intege
07c0: 72 20 70 72 69 6d 61 72 79 20 6b 65 79 3c 2f 6c  r primary key</l
07d0: 69 3e 0a 3c 6c 69 3e 55 73 65 20 61 6e 20 69 6e  i>.<li>Use an in
07e0: 64 65 78 20 74 6f 20 73 61 74 69 73 66 79 20 61  dex to satisfy a
07f0: 6e 20 49 53 20 4e 55 4c 4c 20 6f 70 65 72 61 74  n IS NULL operat
0800: 6f 72 20 69 6e 20 74 68 65 20 57 48 45 52 45 20  or in the WHERE 
0810: 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e  clause</li>.<li>
0820: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 77  Fix a bug that w
0830: 61 73 20 63 61 75 73 69 6e 67 20 74 68 65 20 6f  as causing the o
0840: 70 74 69 6d 69 7a 65 72 20 74 6f 20 6d 69 73 73  ptimizer to miss
0850: 20 61 6e 20 4f 52 20 6f 70 74 69 6d 69 7a 61 74   an OR optimizat
0860: 69 6f 6e 0a 6f 70 70 6f 72 74 75 6e 69 74 79 3c  ion.opportunity<
0870: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 70 74  /li>.<li>The opt
0880: 69 6d 69 7a 65 72 20 68 61 73 20 6d 6f 72 65 20  imizer has more 
0890: 66 72 65 65 64 6f 6d 20 74 6f 20 72 65 6f 72 64  freedom to reord
08a0: 65 72 20 74 61 62 6c 65 73 20 69 6e 20 74 68 65  er tables in the
08b0: 20 46 52 4f 4d 20 63 6c 61 75 73 65 0a 65 76 65   FROM clause.eve
08c0: 6e 20 69 6e 20 74 68 65 72 65 20 61 72 65 20 4c  n in there are L
08d0: 45 46 54 20 6a 6f 69 6e 73 2e 3c 2f 6c 69 3e 0a  EFT joins.</li>.
08e0: 3c 2f 75 6c 3e 0a 3c 6c 69 3e 45 78 74 65 6e 73  </ul>.<li>Extens
08f0: 69 6f 6e 20 6c 6f 61 64 69 6e 67 20 73 75 70 70  ion loading supp
0900: 6f 72 74 65 64 20 61 64 64 65 64 20 74 6f 20 77  orted added to w
0910: 69 6e 43 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c  inCE</li>.<li>Al
0920: 6c 6f 77 20 63 6f 6e 73 74 72 61 69 6e 74 20 6e  low constraint n
0930: 61 6d 65 73 20 6f 6e 20 74 68 65 20 44 45 46 41  ames on the DEFA
0940: 55 4c 54 20 63 6c 61 75 73 65 20 69 6e 20 61 20  ULT clause in a 
0950: 74 61 62 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e  table definition
0960: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0970: 74 68 65 20 22 2e 62 61 69 6c 22 20 63 6f 6d 6d  the ".bail" comm
0980: 61 6e 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61  and to the comma
0990: 6e 64 2d 6c 69 6e 65 20 73 68 65 6c 6c 3c 2f 6c  nd-line shell</l
09a0: 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 43 53 56 20  i>.<li>Make CSV 
09b0: 28 63 6f 6d 6d 61 20 73 65 70 61 72 61 74 65 20  (comma separate 
09c0: 76 61 6c 75 65 29 20 6f 75 74 70 75 74 20 66 72  value) output fr
09d0: 6f 6d 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c  om the command-l
09e0: 69 6e 65 20 73 68 65 6c 6c 0a 6d 6f 72 65 20 63  ine shell.more c
09f0: 6c 6f 73 65 6c 79 20 61 6c 69 67 6e 65 64 20 74  losely aligned t
0a00: 6f 20 61 63 63 65 70 74 65 64 20 70 72 61 63 74  o accepted pract
0a10: 69 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70  ice</li>.<li>Exp
0a20: 65 72 69 6d 65 6e 74 61 6c 20 46 54 53 32 20 6d  erimental FTS2 m
0a30: 6f 64 75 6c 65 20 61 64 64 65 64 3c 2f 6c 69 3e  odule added</li>
0a40: 0a 3c 6c 69 3e 55 73 65 20 73 71 6c 69 74 65 33  .<li>Use sqlite3
0a50: 5f 6d 70 72 69 6e 74 66 28 29 20 69 6e 73 74 65  _mprintf() inste
0a60: 61 64 20 6f 66 20 73 74 72 64 75 70 28 29 20 74  ad of strdup() t
0a70: 6f 20 61 76 6f 69 64 20 6c 69 62 63 20 64 65 70  o avoid libc dep
0a80: 65 6e 64 65 6e 63 69 65 73 3c 2f 6c 69 3e 0a 3c  endencies</li>.<
0a90: 6c 69 3e 56 41 43 55 55 4d 20 75 73 65 73 20 61  li>VACUUM uses a
0aa0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20   temporary file 
0ab0: 69 6e 20 74 68 65 20 6f 66 66 69 63 69 61 6c 20  in the official 
0ac0: 54 45 4d 50 20 66 6f 6c 64 65 72 2c 20 6e 6f 74  TEMP folder, not
0ad0: 20 69 6e 20 74 68 65 0a 73 61 6d 65 20 64 69 72   in the.same dir
0ae0: 65 63 74 6f 72 79 20 61 73 20 74 68 65 20 6f 72  ectory as the or
0af0: 69 67 69 6e 61 6c 20 64 61 74 61 62 61 73 65 3c  iginal database<
0b00: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 72 65  /li>.<li>The pre
0b10: 66 69 78 20 6f 6e 20 74 65 6d 70 6f 72 61 72 79  fix on temporary
0b20: 20 66 69 6c 65 6e 61 6d 65 73 20 6f 6e 20 77 69   filenames on wi
0b30: 6e 64 6f 77 73 20 69 73 20 63 68 61 6e 67 65 64  ndows is changed
0b40: 20 66 72 6f 6d 20 22 73 71 6c 69 74 65 22 0a 74   from "sqlite".t
0b50: 6f 20 22 65 74 69 6c 71 73 22 2e 3c 2f 6c 69 3e  o "etilqs".</li>
0b60: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4f  .}..chng {2006 O
0b70: 63 74 6f 62 65 72 20 39 20 28 33 2e 33 2e 38 29  ctober 9 (3.3.8)
0b80: 7d 20 7b 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20  } {.<li>Support 
0b90: 66 6f 72 20 66 75 6c 6c 20 74 65 78 74 20 73 65  for full text se
0ba0: 61 72 63 68 20 75 73 69 6e 67 20 74 68 65 0a 3c  arch using the.<
0bb0: 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77  a href="http://w
0bc0: 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f 63 76  ww.sqlite.org/cv
0bd0: 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d 46 75 6c  strac/wiki?p=Ful
0be0: 6c 54 65 78 74 49 6e 64 65 78 22 3e 46 54 53 31  lTextIndex">FTS1
0bf0: 20 6d 6f 64 75 6c 65 3c 2f 61 3e 0a 28 62 65 74   module</a>.(bet
0c00: 61 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  a)</li>.<li>Adde
0c10: 64 20 4f 53 2d 58 20 6c 6f 63 6b 69 6e 67 20 70  d OS-X locking p
0c20: 61 74 63 68 65 73 20 28 62 65 74 61 20 2d 20 64  atches (beta - d
0c30: 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75  isabled by defau
0c40: 6c 74 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 74  lt)</li>.<li>Int
0c50: 72 6f 64 75 63 65 20 65 78 74 65 6e 64 65 64 20  roduce extended 
0c60: 65 72 72 6f 72 20 63 6f 64 65 73 20 61 6e 64 20  error codes and 
0c70: 61 64 64 20 65 72 72 6f 72 20 63 6f 64 65 73 20  add error codes 
0c80: 66 6f 72 20 76 61 72 69 6f 75 73 0a 6b 69 6e 64  for various.kind
0c90: 73 20 6f 66 20 49 2f 4f 20 65 72 72 6f 72 73 2e  s of I/O errors.
0ca0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
0cb0: 73 75 70 70 6f 72 74 20 66 6f 72 20 49 46 20 45  support for IF E
0cc0: 58 49 53 54 53 20 6f 6e 20 43 52 45 41 54 45 2f  XISTS on CREATE/
0cd0: 44 52 4f 50 20 54 52 49 47 47 45 52 2f 56 49 45  DROP TRIGGER/VIE
0ce0: 57 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  W</li>.<li>Fix t
0cf0: 68 65 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65  he regression te
0d00: 73 74 20 73 75 69 74 65 20 73 6f 20 74 68 61 74  st suite so that
0d10: 20 69 74 20 77 6f 72 6b 73 20 77 69 74 68 20 54   it works with T
0d20: 63 6c 38 2e 35 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  cl8.5</li>.<li>E
0d30: 6e 68 61 6e 63 65 20 73 71 6c 69 74 65 33 5f 73  nhance sqlite3_s
0d40: 65 74 5f 61 75 74 68 6f 72 69 7a 65 72 28 29 20  et_authorizer() 
0d50: 74 6f 20 70 72 6f 76 69 64 65 20 6e 6f 74 69 66  to provide notif
0d60: 69 63 61 74 69 6f 6e 20 6f 66 20 63 61 6c 6c 73  ication of calls
0d70: 20 74 6f 0a 20 20 20 20 53 51 4c 20 66 75 6e 63   to.    SQL func
0d80: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
0d90: 41 64 64 65 64 20 65 78 70 65 72 69 6d 65 6e 74  Added experiment
0da0: 61 6c 20 41 50 49 3a 20 20 73 71 6c 69 74 65 33  al API:  sqlite3
0db0: 5f 61 75 74 6f 5f 65 78 74 65 6e 73 69 6f 6e 28  _auto_extension(
0dc0: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f  )</li>.<li>Vario
0dd0: 75 73 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  us minor bug fix
0de0: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
0df0: 7b 32 30 30 36 20 41 75 67 75 73 74 20 31 32 20  {2006 August 12 
0e00: 28 33 2e 33 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (3.3.7)} {.<li>A
0e10: 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72  dded support for
0e20: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
0e30: 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72 67 2f  /www.sqlite.org/
0e40: 63 76 73 74 72 61 63 2f 77 69 6b 69 3f 70 3d 56  cvstrac/wiki?p=V
0e50: 69 72 74 75 61 6c 54 61 62 6c 65 73 22 3e 76 69  irtualTables">vi
0e60: 72 74 75 61 6c 20 74 61 62 6c 65 73 3c 2f 61 3e  rtual tables</a>
0e70: 0a 28 62 65 74 61 29 3c 2f 6c 69 3e 0a 3c 6c 69  .(beta)</li>.<li
0e80: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
0e90: 6f 72 20 0a 3c 61 20 68 72 65 66 3d 22 68 74 74  or .<a href="htt
0ea0: 70 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f  p://www.sqlite.o
0eb0: 72 67 2f 63 76 73 74 72 61 63 2f 77 69 6b 69 3f  rg/cvstrac/wiki?
0ec0: 70 3d 4c 6f 61 64 61 62 6c 65 45 78 74 65 6e 73  p=LoadableExtens
0ed0: 69 6f 6e 73 22 3e 0a 64 79 6e 61 6d 69 63 61 6c  ions">.dynamical
0ee0: 6c 79 20 6c 6f 61 64 65 64 20 65 78 74 65 6e 73  ly loaded extens
0ef0: 69 6f 6e 73 3c 2f 61 3e 20 28 62 65 74 61 29 3c  ions</a> (beta)<
0f00: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 0a 3c 61  /li>.<li>The .<a
0f10: 20 68 72 65 66 3d 22 63 61 70 69 33 72 65 66 2e   href="capi3ref.
0f20: 68 74 6d 6c 23 73 71 6c 69 74 65 33 5f 69 6e 74  html#sqlite3_int
0f30: 65 72 72 75 70 74 22 3e 73 71 6c 69 74 65 33 5f  errupt">sqlite3_
0f40: 69 6e 74 65 72 72 75 70 74 28 29 3c 2f 61 3e 0a  interrupt()</a>.
0f50: 72 6f 75 74 69 6e 65 20 63 61 6e 20 62 65 20 63  routine can be c
0f60: 61 6c 6c 65 64 20 66 6f 72 20 61 20 64 69 66 66  alled for a diff
0f70: 65 72 65 6e 74 20 74 68 72 65 61 64 3c 2f 6c 69  erent thread</li
0f80: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
0f90: 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 65 78  <a href="lang_ex
0fa0: 70 72 2e 68 74 6d 6c 23 6d 61 74 63 68 22 3e 4d  pr.html#match">M
0fb0: 41 54 43 48 3c 2f 61 3e 20 6f 70 65 72 61 74 6f  ATCH</a> operato
0fc0: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  r.</li>.<li>The 
0fd0: 64 65 66 61 75 6c 74 20 66 69 6c 65 20 66 6f 72  default file for
0fe0: 6d 61 74 20 69 73 20 6e 6f 77 20 31 2e 20 20 0a  mat is now 1.  .
0ff0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 75  }..chng {2006 Ju
1000: 6e 65 20 36 20 28 33 2e 33 2e 36 29 7d 20 7b 0a  ne 6 (3.3.6)} {.
1010: 3c 6c 69 3e 50 6c 61 79 73 20 62 65 74 74 65 72  <li>Plays better
1020: 20 77 69 74 68 20 76 69 72 75 73 20 73 63 61 6e   with virus scan
1030: 6e 65 72 73 20 6f 6e 20 77 69 6e 64 6f 77 73 3c  ners on windows<
1040: 2f 6c 69 3e 0a 3c 6c 69 3e 46 61 73 74 65 72 20  /li>.<li>Faster 
1050: 3a 6d 65 6d 6f 72 79 3a 20 64 61 74 61 62 61 73  :memory: databas
1060: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  es</li>.<li>Fix 
1070: 61 6e 20 6f 62 73 63 75 72 65 20 73 65 67 66 61  an obscure segfa
1080: 75 6c 74 20 69 6e 20 55 54 46 2d 38 20 74 6f 20  ult in UTF-8 to 
1090: 55 54 46 2d 31 36 20 63 6f 6e 76 65 72 73 69 6f  UTF-16 conversio
10a0: 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ns</li>.<li>Adde
10b0: 64 20 64 72 69 76 65 72 20 66 6f 72 20 4f 53 2f  d driver for OS/
10c0: 32 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65  2</li>.<li>Corre
10d0: 63 74 20 63 6f 6c 75 6d 6e 20 6d 65 74 61 2d 69  ct column meta-i
10e0: 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 74 75 72  nformation retur
10f0: 6e 65 64 20 66 6f 72 20 61 67 67 72 65 67 61 74  ned for aggregat
1100: 65 20 71 75 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c  e queries</li>.<
1110: 6c 69 3e 45 6e 68 61 6e 63 65 64 20 6f 75 74 70  li>Enhanced outp
1120: 75 74 20 66 72 6f 6d 20 45 58 50 4c 41 49 4e 20  ut from EXPLAIN 
1130: 51 55 45 52 59 20 50 4c 41 4e 3c 2f 6c 69 3e 0a  QUERY PLAN</li>.
1140: 3c 6c 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20  <li>LIMIT 0 now 
1150: 77 6f 72 6b 73 20 6f 6e 20 73 75 62 71 75 65 72  works on subquer
1160: 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ies</li>.<li>Bug
1170: 20 66 69 78 65 73 20 61 6e 64 20 70 65 72 66 6f   fixes and perfo
1180: 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65  rmance enhanceme
1190: 6e 74 73 20 69 6e 20 74 68 65 20 71 75 65 72 79  nts in the query
11a0: 20 6f 70 74 69 6d 69 7a 65 72 3c 2f 6c 69 3e 0a   optimizer</li>.
11b0: 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68 61  <li>Correctly ha
11c0: 6e 64 6c 65 20 4e 55 4c 4c 20 66 69 6c 65 6e 61  ndle NULL filena
11d0: 6d 65 73 20 69 6e 20 41 54 54 41 43 48 20 61 6e  mes in ATTACH an
11e0: 64 20 44 45 54 41 43 48 3c 2f 6c 69 3e 0a 3c 6c  d DETACH</li>.<l
11f0: 69 3e 49 6e 70 72 6f 76 65 64 20 73 79 6e 74 61  i>Inproved synta
1200: 78 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73  x error messages
1210: 20 69 6e 20 74 68 65 20 70 61 72 73 65 72 3c 2f   in the parser</
1220: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70 65  li>.<li>Fix type
1230: 20 63 6f 65 72 63 69 6f 6e 20 72 75 6c 65 73 20   coercion rules 
1240: 66 6f 72 20 74 68 65 20 49 4e 20 6f 70 65 72 61  for the IN opera
1250: 74 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  tor</li>.}..chng
1260: 20 7b 32 30 30 36 20 41 70 72 69 6c 20 35 20 28   {2006 April 5 (
1270: 33 2e 33 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 43 48  3.3.5)} {.<li>CH
1280: 45 43 4b 20 63 6f 6e 73 74 72 61 69 6e 74 73 20  ECK constraints 
1290: 75 73 65 20 63 6f 6e 66 6c 69 63 74 20 72 65 73  use conflict res
12a0: 6f 6c 75 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68  olution algorith
12b0: 6d 73 20 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 6c  ms correctly.</l
12c0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 53 55 4d 28 29  i>.<li>The SUM()
12d0: 20 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 73   function throws
12e0: 20 61 6e 20 65 72 72 6f 72 20 6f 6e 20 69 6e 74   an error on int
12f0: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 2e 3c 2f  eger overflow.</
1300: 6c 69 3e 0a 3c 6c 69 3e 43 68 6f 6f 73 65 20 74  li>.<li>Choose t
1310: 68 65 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20  he column names 
1320: 69 6e 20 61 20 63 6f 6d 70 6f 75 6e 64 20 71 75  in a compound qu
1330: 65 72 79 20 66 72 6f 6d 20 74 68 65 20 6c 65 66  ery from the lef
1340: 74 2d 6d 6f 73 74 20 53 45 4c 45 43 54 0a 20 20  t-most SELECT.  
1350: 20 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65    instead of the
1360: 20 72 69 67 68 74 2d 6d 6f 73 74 2e 3c 2f 6c 69   right-most.</li
1370: 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65  >.<li>The sqlite
1380: 33 5f 63 72 65 61 74 65 5f 63 6f 6c 6c 61 74 69  3_create_collati
1390: 6f 6e 28 29 20 66 75 6e 63 74 69 6f 6e 0a 20 20  on() function.  
13a0: 20 20 68 6f 6e 6f 72 73 20 74 68 65 20 53 51 4c    honors the SQL
13b0: 49 54 45 5f 55 54 46 31 36 5f 41 4c 49 47 4e 45  ITE_UTF16_ALIGNE
13c0: 44 20 66 6c 61 67 2e 3c 2f 6c 69 3e 0a 3c 6c 69  D flag.</li>.<li
13d0: 3e 53 51 4c 49 54 45 5f 53 45 43 55 52 45 5f 44  >SQLITE_SECURE_D
13e0: 45 4c 45 54 45 20 63 6f 6d 70 69 6c 65 2d 74 69  ELETE compile-ti
13f0: 6d 65 20 6f 70 74 69 6f 6e 20 63 61 75 73 65 73  me option causes
1400: 20 64 65 6c 65 74 65 73 20 74 6f 20 6f 76 65 72   deletes to over
1410: 77 72 69 74 65 0a 20 20 20 20 6f 6c 64 20 64 61  write.    old da
1420: 74 61 20 77 69 74 68 20 7a 65 72 6f 73 2e 3c 2f  ta with zeros.</
1430: 6c 69 3e 0a 3c 6c 69 3e 44 65 74 65 63 74 20 69  li>.<li>Detect i
1440: 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20  nteger overflow 
1450: 69 6e 20 61 62 73 28 29 2e 3c 2f 6c 69 3e 0a 3c  in abs().</li>.<
1460: 6c 69 3e 54 68 65 20 72 61 6e 64 6f 6d 28 29 20  li>The random() 
1470: 66 75 6e 63 74 69 6f 6e 20 70 72 6f 76 69 64 65  function provide
1480: 73 20 36 34 20 62 69 74 73 20 6f 66 20 72 61 6e  s 64 bits of ran
1490: 64 6f 6d 6e 65 73 73 20 69 6e 73 74 65 61 64 20  domness instead 
14a0: 6f 66 0a 20 20 20 20 6f 6e 6c 79 20 33 32 20 62  of.    only 32 b
14b0: 69 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61  its.</li>.<li>Pa
14c0: 72 73 65 72 20 64 65 74 65 63 74 73 20 61 6e 64  rser detects and
14d0: 20 72 65 70 6f 72 74 73 20 61 75 74 6f 6d 61 74   reports automat
14e0: 6f 6e 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f  on stack overflo
14f0: 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e  w.</li>.<li>Chan
1500: 67 65 20 74 68 65 20 72 6f 75 6e 64 28 29 20 66  ge the round() f
1510: 75 6e 63 74 69 6f 6e 20 74 6f 20 72 65 74 75 72  unction to retur
1520: 6e 20 52 45 41 4c 20 69 6e 73 74 65 61 64 20 6f  n REAL instead o
1530: 66 20 54 45 58 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69  f TEXT.</li>.<li
1540: 3e 41 6c 6c 6f 77 20 57 48 45 52 45 20 63 6c 61  >Allow WHERE cla
1550: 75 73 65 20 74 65 72 6d 73 20 6f 6e 20 74 68 65  use terms on the
1560: 20 6c 65 66 74 20 74 61 62 6c 65 20 6f 66 20 61   left table of a
1570: 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e   LEFT OUTER JOIN
1580: 20 74 6f 0a 20 20 20 20 63 6f 6e 74 61 69 6e 20   to.    contain 
1590: 61 67 67 72 65 67 61 74 65 20 73 75 62 71 75 65  aggregate subque
15a0: 72 69 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53  ries.</li>.<li>S
15b0: 6b 69 70 20 6f 76 65 72 20 6c 65 61 64 69 6e 67  kip over leading
15c0: 20 73 70 61 63 65 73 20 69 6e 20 74 65 78 74 20   spaces in text 
15d0: 74 6f 20 6e 75 6d 65 72 69 63 20 63 6f 6e 76 65  to numeric conve
15e0: 72 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  rsions.</li>.<li
15f0: 3e 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62  >Various minor b
1600: 75 67 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61  ug and documenta
1610: 74 69 6f 6e 20 74 79 70 6f 20 66 69 78 65 73 20  tion typo fixes 
1620: 61 6e 64 0a 20 20 20 20 70 65 72 66 6f 72 6d 61  and.    performa
1630: 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73  nce enhancements
1640: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
1650: 32 30 30 36 20 46 65 62 72 75 61 72 79 20 31 31  2006 February 11
1660: 20 28 33 2e 33 2e 34 29 7d 20 7b 0a 3c 6c 69 3e   (3.3.4)} {.<li>
1670: 46 69 78 20 61 20 62 6c 75 6e 64 65 72 20 69 6e  Fix a blunder in
1680: 20 74 68 65 20 55 6e 69 78 20 6d 75 74 65 78 20   the Unix mutex 
1690: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74  implementation t
16a0: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 0a  hat can lead to.
16b0: 64 65 61 64 6c 6f 63 6b 20 6f 6e 20 6d 75 6c 74  deadlock on mult
16c0: 69 74 68 72 65 61 64 65 64 20 73 79 73 74 65 6d  ithreaded system
16d0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
16e0: 61 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f  an alignment pro
16f0: 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69 74 20 6d  blem on 64-bit m
1700: 61 63 68 69 6e 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  achines</li>.<li
1710: 3e 41 64 64 65 64 20 74 68 65 20 66 75 6c 6c 66  >Added the fullf
1720: 73 79 6e 63 20 70 72 61 67 6d 61 2e 3c 2f 6c 69  sync pragma.</li
1730: 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 70 74  >.<li>Fix an opt
1740: 69 6d 69 7a 65 72 20 62 75 67 20 74 68 61 74 20  imizer bug that 
1750: 63 6f 75 6c 64 20 68 61 76 65 20 63 61 75 73 65  could have cause
1760: 64 20 73 6f 6d 65 20 75 6e 75 73 75 61 6c 20 4c  d some unusual L
1770: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 73 0a  EFT OUTER JOINs.
1780: 74 6f 20 67 69 76 65 20 69 6e 63 6f 72 72 65 63  to give incorrec
1790: 74 20 72 65 73 75 6c 74 73 2e 3c 2f 6c 69 3e 0a  t results.</li>.
17a0: 3c 6c 69 3e 54 68 65 20 53 55 4d 20 66 75 6e 63  <li>The SUM func
17b0: 74 69 6f 6e 20 64 65 74 65 63 74 73 20 69 6e 74  tion detects int
17c0: 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e  eger overflow an
17d0: 64 20 63 6f 6e 76 65 72 74 73 20 74 6f 20 61 63  d converts to ac
17e0: 63 75 6d 75 6c 61 74 69 6e 67 0a 61 6e 20 61 70  cumulating.an ap
17f0: 70 72 6f 78 69 6d 61 74 65 20 72 65 73 75 6c 74  proximate result
1800: 20 75 73 69 6e 67 20 66 6c 6f 61 74 69 6e 67 20   using floating 
1810: 70 6f 69 6e 74 20 6e 75 6d 62 65 72 73 3c 2f 6c  point numbers</l
1820: 69 3e 0a 3c 6c 69 3e 48 6f 73 74 20 70 61 72 61  i>.<li>Host para
1830: 6d 65 74 65 72 20 6e 61 6d 65 73 20 63 61 6e 20  meter names can 
1840: 62 65 67 69 6e 20 77 69 74 68 20 27 40 27 20 66  begin with '@' f
1850: 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79  or compatibility
1860: 20 77 69 74 68 20 53 51 4c 20 53 65 72 76 65 72   with SQL Server
1870: 2e 0a 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68 65  ..</li>.<li>Othe
1880: 72 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20  r miscellaneous 
1890: 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d  bug fixes</li>.}
18a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e  ..chng {2006 Jan
18b0: 75 61 72 79 20 33 31 20 28 33 2e 33 2e 33 29 7d  uary 31 (3.3.3)}
18c0: 20 7b 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73   {.<li>Removed s
18d0: 75 70 70 6f 72 74 20 66 6f 72 20 61 6e 20 4f 4e  upport for an ON
18e0: 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75 73 65   CONFLICT clause
18f0: 20 6f 6e 20 43 52 45 41 54 45 20 49 4e 44 45 58   on CREATE INDEX
1900: 20 2d 20 69 74 20 6e 65 76 65 72 0a 77 6f 72 6b   - it never.work
1910: 65 64 20 63 6f 72 72 65 63 74 6c 79 20 73 6f 20  ed correctly so 
1920: 74 68 69 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20  this should not 
1930: 70 72 65 73 65 6e 74 20 61 6e 79 20 62 61 63 6b  present any back
1940: 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69  ward compatibili
1950: 74 79 0a 70 72 6f 62 6c 65 6d 73 2e 3c 2f 6c 69  ty.problems.</li
1960: 3e 0a 3c 6c 69 3e 41 75 74 68 6f 72 69 7a 65 72  >.<li>Authorizer
1970: 20 63 61 6c 6c 62 61 63 6b 20 6e 6f 77 20 6e 6f   callback now no
1980: 74 69 66 69 65 64 20 6f 66 20 41 4c 54 45 52 20  tified of ALTER 
1990: 54 41 42 4c 45 20 41 44 44 20 43 4f 4c 55 4d 4e  TABLE ADD COLUMN
19a0: 20 63 6f 6d 6d 61 6e 64 73 3c 2f 6c 69 3e 0a 3c   commands</li>.<
19b0: 6c 69 3e 41 66 74 65 72 20 61 6e 79 20 63 68 61  li>After any cha
19c0: 6e 67 65 73 20 74 6f 20 74 68 65 20 54 45 4d 50  nges to the TEMP
19d0: 20 64 61 74 61 62 61 73 65 20 73 63 68 65 6d 61   database schema
19e0: 2c 20 61 6c 6c 20 70 72 65 70 61 72 65 64 20 73  , all prepared s
19f0: 74 61 74 65 6d 65 6e 74 73 0a 61 72 65 20 69 6e  tatements.are in
1a00: 76 61 6c 69 64 61 74 65 64 20 61 6e 64 20 6d 75  validated and mu
1a10: 73 74 20 62 65 20 72 65 63 72 65 61 74 65 64 20  st be recreated 
1a20: 75 73 69 6e 67 20 61 20 6e 65 77 20 63 61 6c 6c  using a new call
1a30: 20 74 6f 0a 73 71 6c 69 74 65 33 5f 70 72 65 70   to.sqlite3_prep
1a40: 61 72 65 28 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f  are()</li>.<li>O
1a50: 74 68 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66  ther minor bug f
1a60: 69 78 65 73 20 69 6e 20 70 72 65 70 61 72 61 74  ixes in preparat
1a70: 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 69 72 73  ion for the firs
1a80: 74 20 73 74 61 62 6c 65 20 72 65 6c 65 61 73 65  t stable release
1a90: 0a 6f 66 20 76 65 72 73 69 6f 6e 20 33 2e 33 3c  .of version 3.3<
1aa0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
1ab0: 30 36 20 4a 61 6e 75 61 72 79 20 32 34 20 28 33  06 January 24 (3
1ac0: 2e 33 2e 32 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .3.2 beta)} {.<l
1ad0: 69 3e 42 75 67 20 66 69 78 65 73 20 61 6e 64 20  i>Bug fixes and 
1ae0: 73 70 65 65 64 20 69 6d 70 72 6f 76 65 6d 65 6e  speed improvemen
1af0: 74 73 2e 20 20 49 6d 70 72 6f 76 65 64 20 74 65  ts.  Improved te
1b00: 73 74 20 63 6f 76 65 72 61 67 65 2e 3c 2f 6c 69  st coverage.</li
1b10: 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f  >.<li>Changes to
1b20: 20 74 68 65 20 4f 53 2d 6c 61 79 65 72 20 69 6e   the OS-layer in
1b30: 74 65 72 66 61 63 65 3a 20 6d 75 74 65 78 65 73  terface: mutexes
1b40: 20 6d 75 73 74 20 6e 6f 77 20 62 65 20 72 65 63   must now be rec
1b50: 75 72 73 69 76 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ursive.</li>.<li
1b60: 3e 44 69 73 63 6f 6e 74 69 6e 75 65 20 74 68 65  >Discontinue the
1b70: 20 75 73 65 20 6f 66 20 74 68 72 65 61 64 2d 73   use of thread-s
1b80: 70 65 63 69 66 69 63 20 64 61 74 61 20 66 6f 72  pecific data for
1b90: 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 0a 65   out-of-memory.e
1ba0: 78 63 65 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e  xception handlin
1bb0: 67 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  g</li>.}..chng {
1bc0: 32 30 30 36 20 4a 61 6e 75 61 72 79 20 31 36 20  2006 January 16 
1bd0: 28 33 2e 33 2e 31 20 61 6c 70 68 61 29 7d 20 7b  (3.3.1 alpha)} {
1be0: 0a 3c 6c 69 3e 43 6f 75 6e 74 6c 65 73 73 20 62  .<li>Countless b
1bf0: 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 3c 6c  ug fixes</li>.<l
1c00: 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d  i>Speed improvem
1c10: 65 6e 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 61  ents</li>.<li>Da
1c20: 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f  tabase connectio
1c30: 6e 73 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73  ns can now be us
1c40: 65 64 20 62 79 20 6d 75 6c 74 69 70 6c 65 20 74  ed by multiple t
1c50: 68 72 65 61 64 73 2c 20 6e 6f 74 20 6a 75 73 74  hreads, not just
1c60: 0a 74 68 65 20 74 68 72 65 61 64 20 69 6e 20 77  .the thread in w
1c70: 68 69 63 68 20 74 68 65 79 20 77 65 72 65 20 63  hich they were c
1c80: 72 65 61 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  reated.</li>.}..
1c90: 63 68 6e 67 20 7b 32 30 30 36 20 4a 61 6e 75 61  chng {2006 Janua
1ca0: 72 79 20 31 30 20 28 33 2e 33 2e 30 20 61 6c 70  ry 10 (3.3.0 alp
1cb0: 68 61 29 7d 20 7b 0a 3c 6c 69 3e 43 48 45 43 4b  ha)} {.<li>CHECK
1cc0: 20 63 6f 6e 73 74 72 61 69 6e 74 73 3c 2f 6c 69   constraints</li
1cd0: 3e 0a 3c 6c 69 3e 49 46 20 45 58 49 53 54 53 20  >.<li>IF EXISTS 
1ce0: 61 6e 64 20 49 46 20 4e 4f 54 20 45 58 49 53 54  and IF NOT EXIST
1cf0: 53 20 63 6c 61 75 73 65 73 20 6f 6e 20 43 52 45  S clauses on CRE
1d00: 41 54 45 2f 44 52 4f 50 20 54 41 42 4c 45 2f 49  ATE/DROP TABLE/I
1d10: 4e 44 45 58 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44  NDEX.</li>.<li>D
1d20: 45 53 43 20 69 6e 64 69 63 65 73 3c 2f 6c 69 3e  ESC indices</li>
1d30: 0a 3c 6c 69 3e 4d 6f 72 65 20 65 66 66 69 63 69  .<li>More effici
1d40: 65 6e 74 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20  ent encoding of 
1d50: 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 73 20 72  boolean values r
1d60: 65 73 75 6c 74 69 6e 67 20 69 6e 20 73 6d 61 6c  esulting in smal
1d70: 6c 65 72 20 64 61 74 61 62 61 73 65 0a 66 69 6c  ler database.fil
1d80: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65  es</li>.<li>More
1d90: 20 61 67 67 72 65 73 73 69 76 65 20 53 51 4c 49   aggressive SQLI
1da0: 54 45 5f 4f 4d 49 54 5f 46 4c 4f 41 54 49 4e 47  TE_OMIT_FLOATING
1db0: 5f 50 4f 49 4e 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e  _POINT</li>.<li>
1dc0: 53 65 70 61 72 61 74 65 20 49 4e 54 45 47 45 52  Separate INTEGER
1dd0: 20 61 6e 64 20 52 45 41 4c 20 61 66 66 69 6e 69   and REAL affini
1de0: 74 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  ty</li>.<li>Adde
1df0: 64 20 61 20 76 69 72 74 75 61 6c 20 66 75 6e 63  d a virtual func
1e00: 74 69 6f 6e 20 6c 61 79 65 72 20 66 6f 72 20 74  tion layer for t
1e10: 68 65 20 4f 53 20 69 6e 74 65 72 66 61 63 65 3c  he OS interface<
1e20: 2f 6c 69 3e 0a 3c 6c 69 3e 22 65 78 69 73 74 73  /li>.<li>"exists
1e30: 22 20 6d 65 74 68 6f 64 20 61 64 64 65 64 20 74  " method added t
1e40: 6f 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66  o the TCL interf
1e50: 61 63 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  ace</li>.<li>Imp
1e60: 72 6f 76 65 64 20 72 65 73 70 6f 6e 73 65 20 74  roved response t
1e70: 6f 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72 79 20  o out-of-memory 
1e80: 65 72 72 6f 72 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e  errors</li>.<li>
1e90: 44 61 74 61 62 61 73 65 20 63 61 63 68 65 20 63  Database cache c
1ea0: 61 6e 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79  an be optionally
1eb0: 20 73 68 61 72 65 64 20 62 65 74 77 65 65 6e 20   shared between 
1ec0: 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 69 6e 20 74  connections.in t
1ed0: 68 65 20 73 61 6d 65 20 74 68 72 65 61 64 3c 2f  he same thread</
1ee0: 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6f 6e 61 6c  li>.<li>Optional
1ef0: 20 52 45 41 44 20 55 4e 43 4f 4d 4d 49 54 54 45   READ UNCOMMITTE
1f00: 44 20 69 73 6f 6c 61 74 69 6f 6e 20 28 69 6e 73  D isolation (ins
1f10: 74 65 61 64 20 6f 66 20 74 68 65 20 64 65 66 61  tead of the defa
1f20: 75 6c 74 0a 69 73 6f 6c 61 74 69 6f 6e 20 6c 65  ult.isolation le
1f30: 76 65 6c 20 6f 66 20 53 45 52 49 41 4c 49 5a 41  vel of SERIALIZA
1f40: 42 4c 45 29 20 61 6e 64 20 74 61 62 6c 65 20 6c  BLE) and table l
1f50: 65 76 65 6c 20 6c 6f 63 6b 69 6e 67 20 77 68 65  evel locking whe
1f60: 6e 0a 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65  n.database conne
1f70: 63 74 69 6f 6e 73 20 73 68 61 72 65 20 61 20 63  ctions share a c
1f80: 6f 6d 6d 6f 6e 20 63 61 63 68 65 2e 3c 2f 6c 69  ommon cache.</li
1f90: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
1fa0: 44 65 63 65 6d 62 65 72 20 31 39 20 28 33 2e 32  December 19 (3.2
1fb0: 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .8)} {.<li>Fix a
1fc0: 6e 20 6f 62 73 63 75 72 65 20 62 75 67 20 74 68  n obscure bug th
1fd0: 61 74 20 63 61 6e 20 63 61 75 73 65 20 64 61 74  at can cause dat
1fe0: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
1ff0: 20 75 6e 64 65 72 20 74 68 65 0a 66 6f 6c 6c 6f   under the.follo
2000: 77 69 6e 67 20 75 6e 75 73 75 61 6c 20 63 69 72  wing unusual cir
2010: 63 75 6d 73 74 61 6e 63 65 73 3a 20 41 20 6c 61  cumstances: A la
2020: 72 67 65 20 49 4e 53 45 52 54 20 6f 72 20 55 50  rge INSERT or UP
2030: 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20 77  DATE statement w
2040: 68 69 63 68 20 0a 69 73 20 70 61 72 74 20 6f 66  hich .is part of
2050: 20 61 6e 20 65 76 65 6e 20 6c 61 72 67 65 72 20   an even larger 
2060: 74 72 61 6e 73 61 63 74 69 6f 6e 20 66 61 69 6c  transaction fail
2070: 73 20 64 75 65 20 74 6f 20 61 20 75 6e 69 71 75  s due to a uniqu
2080: 65 6e 65 73 73 20 63 6f 6e 74 72 61 69 6e 74 0a  eness contraint.
2090: 62 75 74 20 74 68 65 20 63 6f 6e 74 61 69 6e 69  but the containi
20a0: 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63  ng transaction c
20b0: 6f 6d 6d 69 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ommits.</li>.}..
20c0: 63 68 6e 67 20 7b 32 30 30 35 20 44 65 63 65 6d  chng {2005 Decem
20d0: 62 65 72 20 31 39 20 28 32 2e 38 2e 31 37 29 7d  ber 19 (2.8.17)}
20e0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 6e 20 6f 62   {.<li>Fix an ob
20f0: 73 63 75 72 65 20 62 75 67 20 74 68 61 74 20 63  scure bug that c
2100: 61 6e 20 63 61 75 73 65 20 64 61 74 61 62 61 73  an cause databas
2110: 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 75 6e 64  e corruption und
2120: 65 72 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67  er the.following
2130: 20 75 6e 75 73 75 61 6c 20 63 69 72 63 75 6d 73   unusual circums
2140: 74 61 6e 63 65 73 3a 20 41 20 6c 61 72 67 65 20  tances: A large 
2150: 49 4e 53 45 52 54 20 6f 72 20 55 50 44 41 54 45  INSERT or UPDATE
2160: 20 73 74 61 74 65 6d 65 6e 74 20 77 68 69 63 68   statement which
2170: 20 0a 69 73 20 70 61 72 74 20 6f 66 20 61 6e 20   .is part of an 
2180: 65 76 65 6e 20 6c 61 72 67 65 72 20 74 72 61 6e  even larger tran
2190: 73 61 63 74 69 6f 6e 20 66 61 69 6c 73 20 64 75  saction fails du
21a0: 65 20 74 6f 20 61 20 75 6e 69 71 75 65 6e 65 73  e to a uniquenes
21b0: 73 20 63 6f 6e 74 72 61 69 6e 74 0a 62 75 74 20  s contraint.but 
21c0: 74 68 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74  the containing t
21d0: 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6d 6d 69  ransaction commi
21e0: 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ts.</li>.}..chng
21f0: 20 7b 32 30 30 35 20 53 65 70 74 65 6d 62 65 72   {2005 September
2200: 20 32 34 20 28 33 2e 32 2e 37 29 7d 20 7b 0a 3c   24 (3.2.7)} {.<
2210: 6c 69 3e 47 52 4f 55 50 20 42 59 20 6e 6f 77 20  li>GROUP BY now 
2220: 63 6f 6e 73 69 64 65 72 73 20 4e 55 4c 4c 73 20  considers NULLs 
2230: 74 6f 20 62 65 20 65 71 75 61 6c 20 61 67 61 69  to be equal agai
2240: 6e 2c 20 61 73 20 69 74 20 73 68 6f 75 6c 64 0a  n, as it should.
2250: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 6f 77 20 63 6f  </li>.<li>Now co
2260: 6d 70 69 6c 65 73 20 6f 6e 20 53 6f 6c 61 72 69  mpiles on Solari
2270: 73 20 61 6e 64 20 4f 70 65 6e 42 53 44 20 61 6e  s and OpenBSD an
2280: 64 20 6f 74 68 65 72 20 55 6e 69 78 20 76 61 72  d other Unix var
2290: 69 61 6e 74 73 0a 74 68 61 74 20 6c 61 63 6b 20  iants.that lack 
22a0: 74 68 65 20 66 64 61 74 61 73 79 6e 63 28 29 20  the fdatasync() 
22b0: 66 75 6e 63 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c  function</li>.<l
22c0: 69 3e 4e 6f 77 20 63 6f 6d 70 69 6c 65 73 20 6f  i>Now compiles o
22d0: 6e 20 4d 53 56 43 2b 2b 36 20 61 67 61 69 6e 3c  n MSVC++6 again<
22e0: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 75 6e 69  /li>.<li>Fix uni
22f0: 6e 69 74 69 61 6c 69 7a 65 64 20 76 61 72 69 61  nitialized varia
2300: 62 6c 65 73 20 63 61 75 73 69 6e 67 20 6d 61 6c  bles causing mal
2310: 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 76 61  functions for va
2320: 72 69 6f 75 73 20 6f 62 73 63 75 72 65 0a 71 75  rious obscure.qu
2330: 65 72 69 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43  eries</li>.<li>C
2340: 6f 72 72 65 63 74 6c 79 20 63 6f 6d 70 75 74 65  orrectly compute
2350: 20 61 20 4c 45 46 54 20 4f 55 54 45 52 20 4a 4f   a LEFT OUTER JO
2360: 49 4e 73 20 74 68 61 74 20 69 73 20 63 6f 6e 73  INs that is cons
2370: 74 72 61 69 6e 65 64 20 6f 6e 20 74 68 65 0a 6c  trained on the.l
2380: 65 66 74 20 74 61 62 6c 65 20 6f 6e 6c 79 3c 2f  eft table only</
2390: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
23a0: 35 20 53 65 70 74 65 6d 62 65 72 20 31 37 20 28  5 September 17 (
23b0: 33 2e 32 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69  3.2.6)} {.<li>Fi
23c0: 78 20 61 20 62 75 67 20 74 68 61 74 20 63 61 6e  x a bug that can
23d0: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
23e0: 63 6f 72 72 75 70 74 69 6f 6e 20 69 66 20 61 20  corruption if a 
23f0: 56 41 43 55 55 4d 20 28 6f 72 0a 20 20 20 20 61  VACUUM (or.    a
2400: 75 74 6f 76 61 63 75 75 6d 29 20 66 61 69 6c 73  utovacuum) fails
2410: 20 61 6e 64 20 69 73 20 72 6f 6c 6c 65 64 20 62   and is rolled b
2420: 61 63 6b 20 6f 6e 20 61 20 64 61 74 61 62 61 73  ack on a databas
2430: 65 20 74 68 61 74 20 69 73 0a 20 20 20 20 6c 61  e that is.    la
2440: 72 67 65 72 20 74 68 61 6e 20 31 47 69 42 3c 2f  rger than 1GiB</
2450: 6c 69 3e 0a 3c 6c 69 3e 4c 49 4b 45 20 6f 70 74  li>.<li>LIKE opt
2460: 69 69 7a 61 74 69 6f 6e 20 6e 6f 77 20 77 6f 72  iization now wor
2470: 6b 73 20 66 6f 72 20 63 6f 6c 75 6d 6e 73 20 77  ks for columns w
2480: 69 74 68 20 43 4f 4c 4c 41 54 45 20 4e 4f 43 41  ith COLLATE NOCA
2490: 53 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45  SE</li>.<li>ORDE
24a0: 52 20 42 59 20 61 6e 64 20 47 52 4f 55 50 20 42  R BY and GROUP B
24b0: 59 20 6e 6f 77 20 75 73 65 20 62 6f 75 6e 64 65  Y now use bounde
24c0: 64 20 6d 65 6d 6f 72 79 3c 2f 6c 69 3e 0a 3c 6c  d memory</li>.<l
24d0: 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20  i>Added support 
24e0: 66 6f 72 20 43 4f 55 4e 54 28 44 49 53 54 49 4e  for COUNT(DISTIN
24f0: 43 54 20 65 78 70 72 29 3c 2f 6c 69 3e 0a 3c 6c  CT expr)</li>.<l
2500: 69 3e 43 68 61 6e 67 65 20 74 68 65 20 77 61 79  i>Change the way
2510: 20 53 55 4d 28 29 20 68 61 6e 64 6c 65 73 20 4e   SUM() handles N
2520: 55 4c 4c 20 76 61 6c 75 65 73 20 69 6e 20 6f 72  ULL values in or
2530: 64 65 72 20 74 6f 20 63 6f 6d 70 6c 79 20 77 69  der to comply wi
2540: 74 68 0a 20 20 20 20 74 68 65 20 53 51 4c 20 73  th.    the SQL s
2550: 74 61 6e 64 61 72 64 3c 2f 6c 69 3e 0a 3c 6c 69  tandard</li>.<li
2560: 3e 55 73 65 20 66 64 61 74 61 73 79 6e 63 28 29  >Use fdatasync()
2570: 20 69 6e 73 74 65 61 64 20 6f 66 20 66 73 79 6e   instead of fsyn
2580: 63 28 29 20 77 68 65 72 65 20 70 6f 73 73 69 62  c() where possib
2590: 6c 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73  le in order to s
25a0: 70 65 65 64 0a 20 20 20 20 75 70 20 63 6f 6d 6d  peed.    up comm
25b0: 69 74 73 20 73 6c 69 67 68 74 6c 79 3c 2f 6c 69  its slightly</li
25c0: 3e 0a 3c 6c 69 3e 55 73 65 20 6f 66 20 74 68 65  >.<li>Use of the
25d0: 20 43 52 4f 53 53 20 6b 65 79 77 6f 72 64 20 69   CROSS keyword i
25e0: 6e 20 61 20 6a 6f 69 6e 20 74 75 72 6e 73 20 6f  n a join turns o
25f0: 66 66 20 74 68 65 20 74 61 62 6c 65 20 72 65 6f  ff the table reo
2600: 72 64 65 72 69 6e 67 0a 20 20 20 20 6f 70 74 69  rdering.    opti
2610: 6d 69 7a 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c  mization</li>.<l
2620: 69 3e 41 64 64 65 64 20 74 68 65 20 65 78 70 65  i>Added the expe
2630: 72 69 6d 65 6e 74 61 6c 20 61 6e 64 20 75 6e 64  rimental and und
2640: 6f 63 75 6d 65 6e 74 65 64 20 45 58 50 4c 41 49  ocumented EXPLAI
2650: 4e 20 51 55 45 52 59 20 50 4c 41 4e 20 63 61 70  N QUERY PLAN cap
2660: 61 62 69 6c 69 74 79 3c 2f 6c 69 3e 0a 3c 6c 69  ability</li>.<li
2670: 3e 55 73 65 20 74 68 65 20 75 6e 69 63 6f 64 65  >Use the unicode
2680: 20 41 50 49 20 69 6e 20 77 69 6e 64 6f 77 73 3c   API in windows<
2690: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
26a0: 30 35 20 41 75 67 75 73 74 20 32 37 20 28 33 2e  05 August 27 (3.
26b0: 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  2.5)} {.<li>Fix 
26c0: 61 20 62 75 67 20 65 66 66 65 63 74 69 6e 67 20  a bug effecting 
26d0: 44 45 4c 45 54 45 20 61 6e 64 20 55 50 44 41 54  DELETE and UPDAT
26e0: 45 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61  E statements tha
26f0: 74 20 63 68 61 6e 67 65 64 0a 6d 6f 72 65 20 74  t changed.more t
2700: 68 61 6e 20 34 30 39 36 30 20 72 6f 77 73 2e 3c  han 40960 rows.<
2710: 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 20  /li>.<li>Change 
2720: 74 68 65 20 6d 61 6b 65 66 69 6c 65 20 73 6f 20  the makefile so 
2730: 74 68 61 74 20 69 74 20 6e 6f 20 6c 6f 6e 67 65  that it no longe
2740: 72 20 72 65 71 75 69 72 65 73 20 47 4e 55 6d 61  r requires GNUma
2750: 6b 65 20 65 78 74 65 6e 73 69 6f 6e 73 3c 2f 6c  ke extensions</l
2760: 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 2d  i>.<li>Fix the -
2770: 2d 65 6e 61 62 6c 65 2d 74 68 72 65 61 64 73 61  -enable-threadsa
2780: 66 65 20 6f 70 74 69 6f 6e 20 6f 6e 20 74 68 65  fe option on the
2790: 20 63 6f 6e 66 69 67 75 72 65 20 73 63 72 69 70   configure scrip
27a0: 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  t</li>.<li>Fix a
27b0: 20 63 6f 64 65 20 67 65 6e 65 72 61 74 6f 72 20   code generator 
27c0: 62 75 67 20 74 68 61 74 20 6f 63 63 75 72 73 20  bug that occurs 
27d0: 77 68 65 6e 20 74 68 65 20 6c 65 66 74 2d 68 61  when the left-ha
27e0: 6e 64 20 73 69 64 65 20 6f 66 20 61 6e 20 49 4e  nd side of an IN
27f0: 0a 6f 70 65 72 61 74 6f 72 20 69 73 20 63 6f 6e  .operator is con
2800: 73 74 61 6e 74 20 61 6e 64 20 74 68 65 20 72 69  stant and the ri
2810: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 69 73  ght-hand side is
2820: 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d   a SELECT statem
2830: 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  ent</li>.<li>The
2840: 20 50 52 41 47 4d 41 20 73 79 6e 63 68 72 6f 6e   PRAGMA synchron
2850: 6f 75 73 3d 6f 66 66 20 73 74 61 74 65 6d 65 6e  ous=off statemen
2860: 74 20 6e 6f 77 20 64 69 73 61 62 6c 65 73 20 73  t now disables s
2870: 79 6e 63 69 6e 67 20 6f 66 20 74 68 65 0a 6d 61  yncing of the.ma
2880: 73 74 65 72 20 6a 6f 75 72 6e 61 6c 20 66 69 6c  ster journal fil
2890: 65 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f  e in addition to
28a0: 20 74 68 65 20 6e 6f 72 6d 61 6c 20 72 6f 6c 6c   the normal roll
28b0: 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 73 3c 2f 6c  back journals</l
28c0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35  i>.}..chng {2005
28d0: 20 41 75 67 75 73 74 20 32 34 20 28 33 2e 32 2e   August 24 (3.2.
28e0: 34 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20  4)} {.<li>Fix a 
28f0: 62 75 67 20 69 6e 74 72 6f 64 75 63 65 64 20 69  bug introduced i
2900: 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72  n the previous r
2910: 65 6c 65 61 73 65 0a 74 68 61 74 20 63 61 6e 20  elease.that can 
2920: 63 61 75 73 65 20 61 20 73 65 67 66 61 75 6c 74  cause a segfault
2930: 20 77 68 69 6c 65 20 67 65 6e 65 72 61 74 69 6e   while generatin
2940: 67 20 63 6f 64 65 0a 66 6f 72 20 63 6f 6d 70 6c  g code.for compl
2950: 65 78 20 57 48 45 52 45 20 63 6c 61 75 73 65 73  ex WHERE clauses
2960: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
2970: 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20   floating point 
2980: 6c 69 74 65 72 61 6c 73 20 74 6f 20 62 65 67 69  literals to begi
2990: 6e 20 6f 72 20 65 6e 64 20 77 69 74 68 20 61 20  n or end with a 
29a0: 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 2e 3c 2f  decimal point.</
29b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
29c0: 35 20 41 75 67 75 73 74 20 32 31 20 28 33 2e 32  5 August 21 (3.2
29d0: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .3)} {.<li>Added
29e0: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65   support for the
29f0: 20 43 41 53 54 20 6f 70 65 72 61 74 6f 72 3c 2f   CAST operator</
2a00: 6c 69 3e 0a 3c 6c 69 3e 54 63 6c 20 69 6e 74 65  li>.<li>Tcl inte
2a10: 72 66 61 63 65 20 61 6c 6c 6f 77 73 20 42 4c 4f  rface allows BLO
2a20: 42 20 76 61 6c 75 65 73 20 74 6f 20 62 65 20 74  B values to be t
2a30: 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 75 73  ransferred to us
2a40: 65 72 2d 64 65 66 69 6e 65 64 0a 66 75 6e 63 74  er-defined.funct
2a50: 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ions</li>.<li>Ad
2a60: 64 65 64 20 74 68 65 20 22 74 72 61 6e 73 61 63  ded the "transac
2a70: 74 69 6f 6e 22 20 6d 65 74 68 6f 64 20 74 6f 20  tion" method to 
2a80: 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61 63  the Tcl interfac
2a90: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  e</li>.<li>Allow
2aa0: 20 74 68 65 20 44 45 46 41 55 4c 54 20 76 61 6c   the DEFAULT val
2ab0: 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e 20 74  ue of a column t
2ac0: 6f 20 63 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73  o call functions
2ad0: 20 74 68 61 74 20 68 61 76 65 20 63 6f 6e 73 74   that have const
2ae0: 61 6e 74 0a 6f 70 65 72 61 6e 64 73 3c 2f 6c 69  ant.operands</li
2af0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  >.<li>Added the 
2b00: 41 4e 41 4c 59 5a 45 20 63 6f 6d 6d 61 6e 64 20  ANALYZE command 
2b10: 66 6f 72 20 67 61 74 68 65 72 69 6e 67 20 73 74  for gathering st
2b20: 61 74 69 73 74 69 63 73 20 6f 6e 20 69 6e 64 69  atistics on indi
2b30: 63 65 73 20 61 6e 64 0a 75 73 69 6e 67 20 74 68  ces and.using th
2b40: 6f 73 65 20 73 74 61 74 69 73 74 69 63 73 20 77  ose statistics w
2b50: 68 65 6e 20 70 69 63 6b 69 6e 67 20 61 6e 20 69  hen picking an i
2b60: 6e 64 65 78 20 69 6e 20 74 68 65 20 6f 70 74 69  ndex in the opti
2b70: 6d 69 7a 65 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52  mizer</li>.<li>R
2b80: 65 6d 6f 76 65 20 74 68 65 20 6c 69 6d 69 74 20  emove the limit 
2b90: 28 66 6f 72 6d 65 72 6c 79 20 31 30 30 29 20 6f  (formerly 100) o
2ba0: 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  n the number of 
2bb0: 74 65 72 6d 73 20 69 6e 20 74 68 65 0a 57 48 45  terms in the.WHE
2bc0: 52 45 20 63 6c 61 75 73 65 3c 2f 6c 69 3e 0a 3c  RE clause</li>.<
2bd0: 6c 69 3e 54 68 65 20 72 69 67 68 74 2d 68 61 6e  li>The right-han
2be0: 64 20 73 69 64 65 20 6f 66 20 74 68 65 20 49 4e  d side of the IN
2bf0: 20 6f 70 65 72 61 74 6f 72 20 63 61 6e 20 6e 6f   operator can no
2c00: 77 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 65  w be a list of e
2c10: 78 70 72 65 73 73 69 6f 6e 73 0a 69 6e 73 74 65  xpressions.inste
2c20: 61 64 20 6f 66 20 6a 75 73 74 20 61 20 6c 69 73  ad of just a lis
2c30: 74 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73 3c 2f  t of constants</
2c40: 6c 69 3e 0a 3c 6c 69 3e 52 65 77 6f 72 6b 20 74  li>.<li>Rework t
2c50: 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 73 6f 20  he optimizer so 
2c60: 74 68 61 74 20 69 74 20 69 73 20 61 62 6c 65 20  that it is able 
2c70: 74 6f 20 6d 61 6b 65 20 62 65 74 74 65 72 20 75  to make better u
2c80: 73 65 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c  se of indices</l
2c90: 69 3e 0a 3c 6c 69 3e 54 68 65 20 6f 72 64 65 72  i>.<li>The order
2ca0: 20 6f 66 20 74 61 62 6c 65 73 20 69 6e 20 61 20   of tables in a 
2cb0: 6a 6f 69 6e 20 69 73 20 61 64 6a 75 73 74 65 64  join is adjusted
2cc0: 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74   automatically t
2cd0: 6f 20 6d 61 6b 65 0a 62 65 74 74 65 72 20 75 73  o make.better us
2ce0: 65 20 6f 66 20 69 6e 64 69 63 65 73 3c 2f 6c 69  e of indices</li
2cf0: 3e 0a 3c 6c 69 3e 54 68 65 20 49 4e 20 6f 70 65  >.<li>The IN ope
2d00: 72 61 74 6f 72 20 69 73 20 6e 6f 77 20 61 20 63  rator is now a c
2d10: 61 6e 64 69 64 61 74 65 20 66 6f 72 20 6f 70 74  andidate for opt
2d20: 69 6d 69 7a 61 74 69 6f 6e 20 65 76 65 6e 20 69  imization even i
2d30: 66 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 0a  f the left-hand.
2d40: 73 69 64 65 20 69 73 20 6e 6f 74 20 74 68 65 20  side is not the 
2d50: 6c 65 66 74 2d 6d 6f 73 74 20 74 65 72 6d 20 6f  left-most term o
2d60: 66 20 74 68 65 20 69 6e 64 65 78 2e 20 20 4d 75  f the index.  Mu
2d70: 6c 74 69 70 6c 65 20 49 4e 20 6f 70 65 72 61 74  ltiple IN operat
2d80: 6f 72 73 20 63 61 6e 20 62 65 0a 75 73 65 64 20  ors can be.used 
2d90: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 69 6e  with the same in
2da0: 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 48  dex.</li>.<li>WH
2db0: 45 52 45 20 63 6c 61 75 73 65 20 65 78 70 72 65  ERE clause expre
2dc0: 73 73 69 6f 6e 73 20 75 73 69 6e 67 20 42 45 54  ssions using BET
2dd0: 57 45 45 4e 20 61 6e 64 20 4f 52 20 61 72 65 20  WEEN and OR are 
2de0: 6e 6f 77 20 63 61 6e 64 69 64 61 74 65 73 0a 66  now candidates.f
2df0: 6f 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3c  or optimization<
2e00: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
2e10: 68 65 20 22 63 61 73 65 5f 73 65 6e 73 69 74 69  he "case_sensiti
2e20: 76 65 5f 6c 69 6b 65 22 20 70 72 61 67 6d 61 20  ve_like" pragma 
2e30: 61 6e 64 20 74 68 65 20 53 51 4c 49 54 45 5f 43  and the SQLITE_C
2e40: 41 53 45 5f 53 45 4e 53 49 54 49 56 45 5f 4c 49  ASE_SENSITIVE_LI
2e50: 4b 45 0a 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20  KE.compile-time 
2e60: 6f 70 74 69 6f 6e 20 74 6f 20 73 65 74 20 69 74  option to set it
2e70: 73 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20  s default value 
2e80: 74 6f 20 22 6f 6e 22 2e 3c 2f 6c 69 3e 0a 3c 6c  to "on".</li>.<l
2e90: 69 3e 55 73 65 20 69 6e 64 69 63 65 73 20 74 6f  i>Use indices to
2ea0: 20 68 65 6c 70 20 77 69 74 68 20 47 4c 4f 42 20   help with GLOB 
2eb0: 65 78 70 72 65 73 73 69 6f 6e 73 20 61 6e 64 20  expressions and 
2ec0: 4c 49 4b 45 20 65 78 70 72 65 73 73 69 6f 6e 73  LIKE expressions
2ed0: 20 74 6f 6f 0a 77 68 65 6e 20 74 68 65 20 63 61   too.when the ca
2ee0: 73 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c 69 6b  se_sensitive_lik
2ef0: 65 20 70 72 61 67 6d 61 20 69 73 20 65 6e 61 62  e pragma is enab
2f00: 6c 65 64 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  led</li>.<li>Add
2f10: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67  ed support for g
2f20: 72 61 76 65 2d 61 63 63 65 6e 74 20 71 75 6f 74  rave-accent quot
2f30: 69 6e 67 20 66 6f 72 20 63 6f 6d 70 61 74 69 62  ing for compatib
2f40: 69 6c 69 74 79 20 77 69 74 68 20 4d 79 53 51 4c  ility with MySQL
2f50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72 6f 76  </li>.<li>Improv
2f60: 65 64 20 74 65 73 74 20 63 6f 76 65 72 61 67 65  ed test coverage
2f70: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 7a 65 6e 73  </li>.<li>Dozens
2f80: 20 6f 66 20 6d 69 6e 6f 72 20 62 75 67 20 66 69   of minor bug fi
2f90: 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  xes</li>.}..chng
2fa0: 20 7b 32 30 30 35 20 4a 75 6e 65 20 31 33 20 28   {2005 June 13 (
2fb0: 33 2e 32 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64  3.2.2)} {.<li>Ad
2fc0: 64 65 64 20 74 68 65 20 73 71 6c 69 74 65 33 5f  ded the sqlite3_
2fd0: 64 62 5f 68 61 6e 64 6c 65 28 29 20 41 50 49 3c  db_handle() API<
2fe0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
2ff0: 68 65 20 73 71 6c 69 74 65 33 5f 67 65 74 5f 61  he sqlite3_get_a
3000: 75 74 6f 63 6f 6d 6d 69 74 28 29 20 41 50 49 3c  utocommit() API<
3010: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61  /li>.<li>Added a
3020: 20 52 45 47 45 58 50 20 6f 70 65 72 61 74 6f 72   REGEXP operator
3030: 20 74 6f 20 74 68 65 20 70 61 72 73 65 72 2e 20   to the parser. 
3040: 20 54 68 65 72 65 20 69 73 20 6e 6f 20 66 75 6e   There is no fun
3050: 63 74 69 6f 6e 20 74 6f 20 62 61 63 6b 0a 75 70  ction to back.up
3060: 20 74 68 69 73 20 6f 70 65 72 61 74 6f 72 20 69   this operator i
3070: 6e 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 62  n the standard b
3080: 75 69 6c 64 20 62 75 74 20 75 73 65 72 73 20 63  uild but users c
3090: 61 6e 20 61 64 64 20 74 68 65 69 72 20 6f 77 6e  an add their own
30a0: 20 75 73 69 6e 67 0a 73 71 6c 69 74 65 33 5f 63   using.sqlite3_c
30b0: 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 28 29  reate_function()
30c0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 70 65 65 64 20  </li>.<li>Speed 
30d0: 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 61 6e 64  improvements and
30e0: 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70 72 69   library footpri
30f0: 6e 74 20 72 65 64 75 63 74 69 6f 6e 73 2e 3c 2f  nt reductions.</
3100: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 62 79 74 65  li>.<li>Fix byte
3110: 20 61 6c 69 67 6e 6d 65 6e 74 20 70 72 6f 62 6c   alignment probl
3120: 65 6d 73 20 6f 6e 20 36 34 2d 62 69 74 20 61 72  ems on 64-bit ar
3130: 63 68 69 74 65 63 74 75 72 65 73 2e 3c 2f 6c 69  chitectures.</li
3140: 3e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61 6e 79  >.<li>Many, many
3150: 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73   minor bug fixes
3160: 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74 61 74 69   and documentati
3170: 6f 6e 20 75 70 64 61 74 65 73 2e 3c 2f 6c 69 3e  on updates.</li>
3180: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4d  .}..chng {2005 M
3190: 61 72 63 68 20 32 39 20 28 33 2e 32 2e 31 29 7d  arch 29 (3.2.1)}
31a0: 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d   {.<li>Fix a mem
31b0: 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 65  ory allocation e
31c0: 72 72 6f 72 20 69 6e 20 74 68 65 20 6e 65 77 20  rror in the new 
31d0: 41 44 44 20 43 4f 4c 55 4d 4e 20 63 6f 6d 6d 65  ADD COLUMN comme
31e0: 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  nt.</li>.<li>Doc
31f0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
3200: 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  es</li>.}..chng 
3210: 7b 32 30 30 35 20 4d 61 72 63 68 20 32 31 20 28  {2005 March 21 (
3220: 33 2e 32 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64  3.2.0)} {.<li>Ad
3230: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
3240: 41 4c 54 45 52 20 54 41 42 4c 45 20 41 44 44 20  ALTER TABLE ADD 
3250: 43 4f 4c 55 4d 4e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  COLUMN.</li>.<li
3260: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
3270: 6f 72 20 74 68 65 20 22 54 22 20 73 65 70 61 72  or the "T" separ
3280: 61 74 6f 72 20 69 6e 20 49 53 4f 2d 38 36 30 31  ator in ISO-8601
3290: 20 64 61 74 65 2f 74 69 6d 65 20 73 74 72 69 6e   date/time strin
32a0: 67 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70  gs.</li>.<li>Imp
32b0: 72 6f 76 65 64 20 73 75 70 70 6f 72 74 20 66 6f  roved support fo
32c0: 72 20 43 79 67 77 69 6e 2e 3c 2f 6c 69 3e 0a 3c  r Cygwin.</li>.<
32d0: 6c 69 3e 4e 75 6d 65 72 6f 75 73 20 62 75 67 20  li>Numerous bug 
32e0: 66 69 78 65 73 20 61 6e 64 20 64 6f 63 75 6d 65  fixes and docume
32f0: 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73 2e  ntation updates.
3300: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
3310: 30 30 35 20 4d 61 72 63 68 20 31 36 20 28 33 2e  005 March 16 (3.
3320: 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20  1.6)} {.<li>Fix 
3330: 61 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64  a bug that could
3340: 20 63 61 75 73 65 20 64 61 74 61 62 61 73 65 20   cause database 
3350: 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20  corruption when 
3360: 69 6e 73 65 72 74 69 6e 67 0a 20 20 20 20 72 65  inserting.    re
3370: 63 6f 72 64 20 69 6e 74 6f 20 74 61 62 6c 65 73  cord into tables
3380: 20 77 69 74 68 20 61 72 6f 75 6e 64 20 31 32 35   with around 125
3390: 20 63 6f 6c 75 6d 6e 73 2e 3c 2f 6c 69 3e 0a 3c   columns.</li>.<
33a0: 6c 69 3e 73 71 6c 69 74 65 33 5f 73 74 65 70 28  li>sqlite3_step(
33b0: 29 20 69 73 20 6e 6f 77 20 6d 75 63 68 20 6d 6f  ) is now much mo
33c0: 72 65 20 6c 69 6b 65 6c 79 20 74 6f 20 69 6e 76  re likely to inv
33d0: 6f 6b 65 20 74 68 65 20 62 75 73 79 20 68 61 6e  oke the busy han
33e0: 64 6c 65 72 0a 20 20 20 20 61 6e 64 20 6c 65 73  dler.    and les
33f0: 73 20 6c 69 6b 65 6c 79 20 74 6f 20 72 65 74 75  s likely to retu
3400: 72 6e 20 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c  rn SQLITE_BUSY.<
3410: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 6d 65 6d  /li>.<li>Fix mem
3420: 6f 72 79 20 6c 65 61 6b 73 20 74 68 61 74 20 75  ory leaks that u
3430: 73 65 64 20 74 6f 20 6f 63 63 75 72 20 61 66 74  sed to occur aft
3440: 65 72 20 61 20 6d 61 6c 6c 6f 63 28 29 20 66 61  er a malloc() fa
3450: 69 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ilure.</li>.}..c
3460: 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20  hng {2005 March 
3470: 31 31 20 28 33 2e 31 2e 35 29 7d 20 7b 0a 3c 6c  11 (3.1.5)} {.<l
3480: 69 3e 54 68 65 20 69 6f 63 74 6c 20 6f 6e 20 4f  i>The ioctl on O
3490: 53 2d 58 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 73  S-X to control s
34a0: 79 6e 63 69 6e 67 20 74 6f 20 64 69 73 6b 20 69  yncing to disk i
34b0: 73 20 46 5f 46 55 4c 4c 46 53 59 4e 43 2c 0a 20  s F_FULLFSYNC,. 
34c0: 20 20 20 6e 6f 74 20 46 5f 46 55 4c 4c 53 59 4e     not F_FULLSYN
34d0: 43 2e 20 20 54 68 65 20 70 72 65 76 69 6f 75 73  C.  The previous
34e0: 20 72 65 6c 65 61 73 65 20 68 61 64 20 69 74 20   release had it 
34f0: 77 72 6f 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  wrong.</li>.}..c
3500: 68 6e 67 20 7b 32 30 30 35 20 4d 61 72 63 68 20  hng {2005 March 
3510: 31 30 20 28 33 2e 31 2e 34 29 7d 20 7b 0a 3c 6c  10 (3.1.4)} {.<l
3520: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 61  i>Fix a bug in a
3530: 75 74 6f 76 61 63 75 75 6d 20 74 68 61 74 20 63  utovacuum that c
3540: 6f 75 6c 64 20 63 61 75 73 65 20 64 61 74 61 62  ould cause datab
3550: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69  ase corruption i
3560: 66 0a 61 20 43 52 45 41 54 45 20 55 4e 49 51 55  f.a CREATE UNIQU
3570: 45 20 49 4e 44 45 58 20 66 61 69 6c 73 20 62 65  E INDEX fails be
3580: 63 61 75 73 65 20 6f 66 20 61 20 63 6f 6e 73 74  cause of a const
3590: 72 61 69 6e 74 20 76 69 6f 6c 61 74 69 6f 6e 2e  raint violation.
35a0: 0a 54 68 69 73 20 70 72 6f 62 6c 65 6d 20 6f 6e  .This problem on
35b0: 6c 79 20 6f 63 63 75 72 73 20 69 66 20 74 68 65  ly occurs if the
35c0: 20 6e 65 77 20 61 75 74 6f 76 61 63 75 75 6d 20   new autovacuum 
35d0: 66 65 61 74 75 72 65 20 69 6e 74 72 6f 64 75 63  feature introduc
35e0: 65 64 20 69 6e 0a 76 65 72 73 69 6f 6e 20 33 2e  ed in.version 3.
35f0: 31 20 69 73 20 74 75 72 6e 65 64 20 6f 6e 2e 3c  1 is turned on.<
3600: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 46 5f 46  /li>.<li>The F_F
3610: 55 4c 4c 53 59 4e 43 20 69 6f 63 74 6c 20 28 63  ULLSYNC ioctl (c
3620: 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75  urrently only su
3630: 70 70 6f 72 74 65 64 20 6f 6e 20 4f 53 2d 58 29  pported on OS-X)
3640: 20 69 73 20 64 69 73 61 62 6c 65 64 0a 69 66 20   is disabled.if 
3650: 74 68 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20  the synchronous 
3660: 70 72 61 67 6d 61 20 69 73 20 73 65 74 20 74 6f  pragma is set to
3670: 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72   something other
3680: 20 74 68 61 6e 20 22 66 75 6c 6c 22 2e 3c 2f 6c   than "full".</l
3690: 69 3e 0a 3c 6c 69 3e 41 64 64 20 61 64 64 69 74  i>.<li>Add addit
36a0: 69 6f 6e 61 6c 20 66 6f 72 77 61 72 64 20 63 6f  ional forward co
36b0: 6d 70 61 74 69 62 69 6c 69 74 79 20 74 6f 20 74  mpatibility to t
36c0: 68 65 20 66 75 74 75 72 65 20 76 65 72 73 69 6f  he future versio
36d0: 6e 20 33 2e 32 20 64 61 74 61 62 61 73 65 20 0a  n 3.2 database .
36e0: 66 69 6c 65 20 66 6f 72 6d 61 74 2e 3c 2f 6c 69  file format.</li
36f0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
3700: 69 6e 20 57 48 45 52 45 20 63 6c 61 75 73 65 73  in WHERE clauses
3710: 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 72 6f   of the form (ro
3720: 77 69 64 3c 27 32 27 29 3c 2f 6c 69 3e 0a 3c 6c  wid<'2')</li>.<l
3730: 69 3e 4e 65 77 20 53 51 4c 49 54 45 5f 4f 4d 49  i>New SQLITE_OMI
3740: 54 5f 2e 2e 2e 20 63 6f 6d 70 69 6c 65 2d 74 69  T_... compile-ti
3750: 6d 65 20 6f 70 74 69 6f 6e 73 20 61 64 64 65 64  me options added
3760: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74 65  </li>.<li>Update
3770: 73 20 74 6f 20 74 68 65 20 6d 61 6e 20 70 61 67  s to the man pag
3780: 65 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  e</li>.<li>Remov
3790: 65 20 74 68 65 20 75 73 65 20 6f 66 20 73 74 72  e the use of str
37a0: 63 61 73 65 63 6d 70 28 29 20 66 72 6f 6d 20 74  casecmp() from t
37b0: 68 65 20 73 68 65 6c 6c 3c 2f 6c 69 3e 0a 3c 6c  he shell</li>.<l
37c0: 69 3e 57 69 6e 64 6f 77 73 20 44 4c 4c 20 65 78  i>Windows DLL ex
37d0: 70 6f 72 74 73 20 73 79 6d 62 6f 6c 73 20 54 63  ports symbols Tc
37e0: 6c 73 71 6c 69 74 65 5f 49 6e 69 74 20 61 6e 64  lsqlite_Init and
37f0: 20 53 71 6c 69 74 65 5f 49 6e 69 74 3c 2f 6c 69   Sqlite_Init</li
3800: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20  >.}..chng {2005 
3810: 46 65 62 72 75 61 72 79 20 31 39 20 28 33 2e 31  February 19 (3.1
3820: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61  .3)} {.<li>Fix a
3830: 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 56 41   problem with VA
3840: 43 55 55 4d 20 6f 6e 20 64 61 74 61 62 61 73 65  CUUM on database
3850: 73 20 66 72 6f 6d 20 77 68 69 63 68 20 74 61 62  s from which tab
3860: 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 41  les containing.A
3870: 55 54 4f 49 4e 43 52 45 4d 45 4e 54 20 68 61 76  UTOINCREMENT hav
3880: 65 20 62 65 65 6e 20 64 72 6f 70 70 65 64 2e 3c  e been dropped.<
3890: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 66 6f 72  /li>.<li>Add for
38a0: 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69  ward compatibili
38b0: 74 79 20 74 6f 20 74 68 65 20 66 75 74 75 72 65  ty to the future
38c0: 20 76 65 72 73 69 6f 6e 20 33 2e 32 20 64 61 74   version 3.2 dat
38d0: 61 62 61 73 65 20 66 69 6c 65 0a 66 6f 72 6d 61  abase file.forma
38e0: 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63 75  t.</li>.<li>Docu
38f0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
3900: 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  s</li>.}..chng {
3910: 32 30 30 35 20 46 65 62 72 75 61 72 79 20 31 35  2005 February 15
3920: 20 28 33 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (3.1.2)} {.<li>
3930: 46 69 78 20 61 20 62 75 67 20 74 68 61 74 20 63  Fix a bug that c
3940: 61 6e 20 6c 65 61 64 20 74 6f 20 64 61 74 61 62  an lead to datab
3950: 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20 69  ase corruption i
3960: 66 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 0a  f there are two.
3970: 6f 70 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 73  open connections
3980: 20 74 6f 20 74 68 65 20 73 61 6d 65 20 64 61 74   to the same dat
3990: 61 62 61 73 65 20 61 6e 64 20 6f 6e 65 20 63 6f  abase and one co
39a0: 6e 6e 65 63 74 69 6f 6e 20 64 6f 65 73 20 61 20  nnection does a 
39b0: 56 41 43 55 55 4d 0a 61 6e 64 20 74 68 65 20 73  VACUUM.and the s
39c0: 65 63 6f 6e 64 20 6d 61 6b 65 73 20 73 6f 6d 65  econd makes some
39d0: 20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 20 64   change to the d
39e0: 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c  atabase.</li>.<l
39f0: 69 3e 41 6c 6c 6f 77 20 22 3f 22 20 70 61 72 61  i>Allow "?" para
3a00: 6d 65 74 65 72 73 20 69 6e 20 74 68 65 20 4c 49  meters in the LI
3a10: 4d 49 54 20 63 6c 61 75 73 65 2e 3c 2f 6c 69 3e  MIT clause.</li>
3a20: 0a 3c 6c 69 3e 46 69 78 20 56 41 43 55 55 4d 20  .<li>Fix VACUUM 
3a30: 73 6f 20 74 68 61 74 20 69 74 20 77 6f 72 6b 73  so that it works
3a40: 20 77 69 74 68 20 41 55 54 4f 49 4e 43 52 45 4d   with AUTOINCREM
3a50: 45 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ENT.</li>.<li>Fi
3a60: 78 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69  x a race conditi
3a70: 6f 6e 20 69 6e 20 41 55 54 4f 56 41 43 55 55 4d  on in AUTOVACUUM
3a80: 20 74 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74   that can lead t
3a90: 6f 20 63 6f 72 72 75 70 74 20 64 61 74 61 62 61  o corrupt databa
3aa0: 73 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  ses</li>.<li>Add
3ab0: 20 61 20 6e 75 6d 65 72 69 63 20 76 65 72 73 69   a numeric versi
3ac0: 6f 6e 20 6e 75 6d 62 65 72 20 74 6f 20 74 68 65  on number to the
3ad0: 20 73 71 6c 69 74 65 33 2e 68 20 69 6e 63 6c 75   sqlite3.h inclu
3ae0: 64 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  de file.</li>.<l
3af0: 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20 62 75  i>Other minor bu
3b00: 67 20 66 69 78 65 73 20 61 6e 64 20 70 65 72 66  g fixes and perf
3b10: 6f 72 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d  ormance enhancem
3b20: 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ents.</li>.}..ch
3b30: 6e 67 20 7b 32 30 30 35 20 46 65 62 72 75 61 72  ng {2005 Februar
3b40: 79 20 31 35 20 28 32 2e 38 2e 31 36 29 7d 20 7b  y 15 (2.8.16)} {
3b50: 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 74  .<li>Fix a bug t
3b60: 68 61 74 20 63 61 6e 20 6c 65 61 64 20 74 6f 20  hat can lead to 
3b70: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
3b80: 69 6f 6e 20 69 66 20 74 68 65 72 65 20 61 72 65  ion if there are
3b90: 20 74 77 6f 0a 6f 70 65 6e 20 63 6f 6e 6e 65 63   two.open connec
3ba0: 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 61 6d  tions to the sam
3bb0: 65 20 64 61 74 61 62 61 73 65 20 61 6e 64 20 6f  e database and o
3bc0: 6e 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 64 6f  ne connection do
3bd0: 65 73 20 61 20 56 41 43 55 55 4d 0a 61 6e 64 20  es a VACUUM.and 
3be0: 74 68 65 20 73 65 63 6f 6e 64 20 6d 61 6b 65 73  the second makes
3bf0: 20 73 6f 6d 65 20 63 68 61 6e 67 65 20 74 6f 20   some change to 
3c00: 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 6c  the database.</l
3c10: 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79  i>.<li>Correctly
3c20: 20 68 61 6e 64 6c 65 20 71 75 6f 74 65 64 20 6e   handle quoted n
3c30: 61 6d 65 73 20 69 6e 20 43 52 45 41 54 45 20 49  ames in CREATE I
3c40: 4e 44 45 58 20 73 74 61 74 65 6d 65 6e 74 73 2e  NDEX statements.
3c50: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20  </li>.<li>Fix a 
3c60: 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69 63 74 20  naming conflict 
3c70: 62 65 74 77 65 65 6e 20 73 71 6c 69 74 65 2e 68  between sqlite.h
3c80: 20 61 6e 64 20 73 71 6c 69 74 65 33 2e 68 2e 3c   and sqlite3.h.<
3c90: 2f 6c 69 3e 0a 3c 6c 69 3e 41 76 6f 69 64 20 65  /li>.<li>Avoid e
3ca0: 78 63 65 73 73 20 68 65 61 70 20 75 73 61 67 65  xcess heap usage
3cb0: 20 77 68 65 6e 20 63 6f 70 79 69 6e 67 20 65 78   when copying ex
3cc0: 70 72 65 73 73 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  pressions.</li>.
3cd0: 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e 6f 72 20  <li>Other minor 
3ce0: 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a  bug fixes.</li>.
3cf0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 46 65  }..chng {2005 Fe
3d00: 62 72 75 61 72 79 20 31 20 28 33 2e 31 2e 31 20  bruary 1 (3.1.1 
3d10: 42 45 54 41 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74  BETA)} {.<li>Aut
3d20: 6f 6d 61 74 69 63 20 63 61 63 68 69 6e 67 20 6f  omatic caching o
3d30: 66 20 70 72 65 70 61 72 65 64 20 73 74 61 74 65  f prepared state
3d40: 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 54 43 4c  ments in the TCL
3d50: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
3d60: 3c 6c 69 3e 41 54 54 41 43 48 20 61 6e 64 20 44  <li>ATTACH and D
3d70: 45 54 41 43 48 20 61 73 20 77 65 6c 6c 20 61 73  ETACH as well as
3d80: 20 73 6f 6d 65 20 6f 74 68 65 72 20 6f 70 65 72   some other oper
3d90: 61 74 69 6f 6e 73 20 63 61 75 73 65 20 65 78 69  ations cause exi
3da0: 73 74 69 6e 67 0a 20 20 20 20 70 72 65 70 61 72  sting.    prepar
3db0: 65 64 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f  ed statements to
3dc0: 20 65 78 70 69 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c   expire.</li>.<l
3dd0: 69 3e 4e 75 6d 65 72 69 6f 75 73 20 6d 69 6e 6f  i>Numerious mino
3de0: 72 20 62 75 67 20 66 69 78 65 73 3c 2f 6c 69 3e  r bug fixes</li>
3df0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 35 20 4a  .}..chng {2005 J
3e00: 61 6e 75 61 72 79 20 32 31 20 28 33 2e 31 2e 30  anuary 21 (3.1.0
3e10: 20 41 4c 50 48 41 29 7d 20 7b 0a 3c 6c 69 3e 41   ALPHA)} {.<li>A
3e20: 75 74 6f 76 61 63 75 75 6d 20 73 75 70 70 6f 72  utovacuum suppor
3e30: 74 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c 69  t added</li>.<li
3e40: 3e 43 55 52 52 45 4e 54 5f 54 49 4d 45 2c 20 43  >CURRENT_TIME, C
3e50: 55 52 52 45 4e 54 5f 44 41 54 45 2c 20 61 6e 64  URRENT_DATE, and
3e60: 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 53 54 41   CURRENT_TIMESTA
3e70: 4d 50 20 61 64 64 65 64 3c 2f 6c 69 3e 0a 3c 6c  MP added</li>.<l
3e80: 69 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 74 68  i>Support for th
3e90: 65 20 45 58 49 53 54 53 20 63 6c 61 75 73 65 20  e EXISTS clause 
3ea0: 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  added.</li>.<li>
3eb0: 53 75 70 70 6f 72 74 20 66 6f 72 20 63 6f 72 72  Support for corr
3ec0: 65 6c 61 74 65 64 20 73 75 62 71 75 65 72 69 65  elated subquerie
3ed0: 73 20 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c  s added.</li>.<l
3ee0: 69 3e 41 64 64 65 64 20 74 68 65 20 45 53 43 41  i>Added the ESCA
3ef0: 50 45 20 63 6c 61 75 73 65 20 6f 6e 20 74 68 65  PE clause on the
3f00: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 2e 3c   LIKE operator.<
3f10: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
3f20: 20 66 6f 72 20 41 4c 54 45 52 20 54 41 42 4c 45   for ALTER TABLE
3f30: 20 2e 2e 2e 20 52 45 4e 41 4d 45 20 54 41 42 4c   ... RENAME TABL
3f40: 45 20 2e 2e 2e 20 61 64 64 65 64 3c 2f 6c 69 3e  E ... added</li>
3f50: 0a 3c 6c 69 3e 41 55 54 4f 49 4e 43 52 45 4d 45  .<li>AUTOINCREME
3f60: 4e 54 20 6b 65 79 77 6f 72 64 20 73 75 70 70 6f  NT keyword suppo
3f70: 72 74 65 64 20 6f 6e 20 49 4e 54 45 47 45 52 20  rted on INTEGER 
3f80: 50 52 49 4d 41 52 59 20 4b 45 59 3c 2f 6c 69 3e  PRIMARY KEY</li>
3f90: 0a 3c 6c 69 3e 4d 61 6e 79 20 53 51 4c 49 54 45  .<li>Many SQLITE
3fa0: 5f 4f 4d 49 54 5f 20 6d 61 63 72 6f 73 20 69 6e  _OMIT_ macros in
3fb0: 73 65 72 74 73 20 74 6f 20 6f 6d 69 74 20 66 65  serts to omit fe
3fc0: 61 74 75 72 65 73 20 61 74 20 63 6f 6d 70 69 6c  atures at compil
3fd0: 65 2d 74 69 6d 65 0a 20 20 20 20 61 6e 64 20 72  e-time.    and r
3fe0: 65 64 75 63 65 20 74 68 65 20 6c 69 62 72 61 72  educe the librar
3ff0: 79 20 66 6f 6f 74 70 72 69 6e 74 2e 3c 2f 6c 69  y footprint.</li
4000: 3e 0a 3c 6c 69 3e 54 68 65 20 52 45 49 4e 44 45  >.<li>The REINDE
4010: 58 20 63 6f 6d 6d 61 6e 64 20 77 61 73 20 61 64  X command was ad
4020: 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68  ded.</li>.<li>Th
4030: 65 20 65 6e 67 69 6e 65 20 6e 6f 20 6c 6f 6e 67  e engine no long
4040: 65 72 20 63 6f 6e 73 75 6c 74 73 20 74 68 65 20  er consults the 
4050: 6d 61 69 6e 20 74 61 62 6c 65 20 69 66 20 69 74  main table if it
4060: 20 63 61 6e 20 67 65 74 0a 20 20 20 20 61 6c 6c   can get.    all
4070: 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e   the information
4080: 20 69 74 20 6e 65 65 64 73 20 66 72 6f 6d 20 61   it needs from a
4090: 6e 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 3c 6c  n index.</li>.<l
40a0: 69 3e 4d 61 6e 79 20 6e 75 69 73 61 6e 63 65 20  i>Many nuisance 
40b0: 62 75 67 73 20 66 69 78 65 64 2e 3c 2f 6c 69 3e  bugs fixed.</li>
40c0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4f  .}..chng {2004 O
40d0: 63 74 6f 62 65 72 20 31 31 20 28 33 2e 30 2e 38  ctober 11 (3.0.8
40e0: 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 20 73 75 70  )} {.<li>Add sup
40f0: 70 6f 72 74 20 66 6f 72 20 44 45 46 45 52 52 45  port for DEFERRE
4100: 44 2c 20 49 4d 4d 45 44 49 41 54 45 2c 20 61 6e  D, IMMEDIATE, an
4110: 64 20 45 58 43 4c 55 53 49 56 45 20 74 72 61 6e  d EXCLUSIVE tran
4120: 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c  sactions.</li>.<
4130: 6c 69 3e 41 6c 6c 6f 77 20 6e 65 77 20 75 73 65  li>Allow new use
4140: 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69  r-defined functi
4150: 6f 6e 73 20 74 6f 20 62 65 20 63 72 65 61 74 65  ons to be create
4160: 64 20 77 68 65 6e 20 74 68 65 72 65 20 61 72 65  d when there are
4170: 0a 61 6c 72 65 61 64 79 20 6f 6e 65 20 6f 72 20  .already one or 
4180: 6d 6f 72 65 20 70 72 65 63 6f 6d 70 69 6c 65 64  more precompiled
4190: 20 53 51 4c 20 73 74 61 74 65 6d 65 6e 74 73 2e   SQL statements.
41a0: 3c 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 70 6f 72  <li>.<li>Fix por
41b0: 74 61 62 69 6c 69 74 79 20 70 72 6f 62 6c 65 6d  tability problem
41c0: 73 20 66 6f 72 20 4d 69 6e 67 77 2f 4d 53 59 53  s for Mingw/MSYS
41d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
41e0: 20 62 79 74 65 20 61 6c 69 67 6e 6d 65 6e 74 20   byte alignment 
41f0: 70 72 6f 62 6c 65 6d 20 6f 6e 20 36 34 2d 62 69  problem on 64-bi
4200: 74 20 53 70 61 72 63 20 6d 61 63 68 69 6e 65 73  t Sparc machines
4210: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74  .</li>.<li>Fix t
4220: 68 65 20 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d  he ".import" com
4230: 6d 61 6e 64 20 6f 66 20 74 68 65 20 73 68 65 6c  mand of the shel
4240: 6c 20 73 6f 20 74 68 61 74 20 69 74 20 69 67 6e  l so that it ign
4250: 6f 72 65 73 20 5c 72 0a 63 68 61 72 61 63 74 65  ores \r.characte
4260: 72 73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66  rs at the end of
4270: 20 6c 69 6e 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69   lines.</li>.<li
4280: 3e 54 68 65 20 22 63 73 76 22 20 6d 6f 64 65 20  >The "csv" mode 
4290: 6f 70 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 68  option in the sh
42a0: 65 6c 6c 20 70 75 74 73 20 73 74 72 69 6e 67 73  ell puts strings
42b0: 20 69 6e 73 69 64 65 20 64 6f 75 62 6c 65 2d 71   inside double-q
42c0: 75 6f 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  uotes.</li>.<li>
42d0: 46 69 78 20 74 79 70 6f 73 20 69 6e 20 64 6f 63  Fix typos in doc
42e0: 75 6d 65 6e 74 61 74 69 6f 6e 2e 3c 2f 6c 69 3e  umentation.</li>
42f0: 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61 72 72  .<li>Convert arr
4300: 61 79 20 63 6f 6e 73 74 61 6e 74 73 20 69 6e 20  ay constants in 
4310: 74 68 65 20 63 6f 64 65 20 74 6f 20 68 61 76 65  the code to have
4320: 20 74 79 70 65 20 22 63 6f 6e 73 74 22 2e 3c 2f   type "const".</
4330: 6c 69 3e 0a 3c 6c 69 3e 4e 75 6d 65 72 6f 75 73  li>.<li>Numerous
4340: 20 63 6f 64 65 20 6f 70 74 69 6d 69 7a 61 74 69   code optimizati
4350: 6f 6e 73 2c 20 73 70 65 63 69 61 6c 6c 79 20 6f  ons, specially o
4360: 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 64 65 73  ptimizations des
4370: 69 67 6e 65 64 20 74 6f 0a 6d 61 6b 65 20 74 68  igned to.make th
4380: 65 20 63 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74  e code footprint
4390: 20 73 6d 61 6c 6c 65 72 2e 3c 2f 6c 69 3e 0a 7d   smaller.</li>.}
43a0: 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 53 65 70  ..chng {2004 Sep
43b0: 74 65 6d 62 65 72 20 31 38 20 28 33 2e 30 2e 37  tember 18 (3.0.7
43c0: 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 42 54 72  )} {.<li>The BTr
43d0: 65 65 20 6d 6f 64 75 6c 65 20 61 6c 6c 6f 63 61  ee module alloca
43e0: 74 65 73 20 6c 61 72 67 65 20 62 75 66 66 65 72  tes large buffer
43f0: 73 20 75 73 69 6e 67 20 6d 61 6c 6c 6f 63 28 29  s using malloc()
4400: 20 69 6e 73 74 65 61 64 20 6f 66 0a 20 20 20 20   instead of.    
4410: 6f 66 66 20 6f 66 20 74 68 65 20 73 74 61 63 6b  off of the stack
4420: 2c 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c  , in order to pl
4430: 61 79 20 62 65 74 74 65 72 20 6f 6e 20 6d 61 63  ay better on mac
4440: 68 69 6e 65 73 20 77 69 74 68 20 6c 69 6d 69 74  hines with limit
4450: 65 64 0a 20 20 20 20 73 74 61 63 6b 20 73 70 61  ed.    stack spa
4460: 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ce.</li>.<li>Fix
4470: 65 64 20 6e 61 6d 69 6e 67 20 63 6f 6e 66 6c 69  ed naming confli
4480: 63 74 73 20 73 6f 20 74 68 61 74 20 76 65 72 73  cts so that vers
4490: 69 6f 6e 73 20 32 2e 38 20 61 6e 64 20 33 2e 30  ions 2.8 and 3.0
44a0: 20 63 61 6e 20 62 65 0a 20 20 20 20 6c 69 6e 6b   can be.    link
44b0: 65 64 20 61 6e 64 20 75 73 65 64 20 74 6f 67 65  ed and used toge
44c0: 74 68 65 72 20 69 6e 20 74 68 65 20 73 61 6d 65  ther in the same
44d0: 20 41 4e 53 49 2d 43 20 73 6f 75 72 63 65 20 66   ANSI-C source f
44e0: 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65  ile.</li>.<li>Ne
44f0: 77 20 69 6e 74 65 72 66 61 63 65 3a 20 73 71 6c  w interface: sql
4500: 69 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65  ite3_bind_parame
4510: 74 65 72 5f 69 6e 64 65 78 28 29 3c 2f 6c 69 3e  ter_index()</li>
4520: 0a 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74  .<li>Add support
4530: 20 66 6f 72 20 77 69 6c 64 63 61 72 64 20 70 61   for wildcard pa
4540: 72 61 6d 65 74 65 72 73 20 6f 66 20 74 68 65 20  rameters of the 
4550: 66 6f 72 6d 3a 20 22 3f 6e 6e 6e 22 3c 2f 6c 69  form: "?nnn"</li
4560: 3e 0a 3c 6c 69 3e 46 69 78 20 70 72 6f 62 6c 65  >.<li>Fix proble
4570: 6d 73 20 66 6f 75 6e 64 20 6f 6e 20 36 34 2d 62  ms found on 64-b
4580: 69 74 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69 3e  it systems.</li>
4590: 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 65 6e 63  .<li>Removed enc
45a0: 6f 64 65 2e 63 20 66 69 6c 65 20 28 63 6f 6e 74  ode.c file (cont
45b0: 61 69 6e 69 6e 67 20 75 6e 75 73 65 64 20 72 6f  aining unused ro
45c0: 75 74 69 6e 65 73 29 20 66 72 6f 6d 20 74 68 65  utines) from the
45d0: 20 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 33 2e   .    version 3.
45e0: 30 20 73 6f 75 72 63 65 20 74 72 65 65 2e 3c 2f  0 source tree.</
45f0: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 73 71 6c 69  li>.<li>The sqli
4600: 74 65 33 5f 74 72 61 63 65 28 29 20 63 61 6c 6c  te3_trace() call
4610: 62 61 63 6b 73 20 6f 63 63 75 72 20 62 65 66 6f  backs occur befo
4620: 72 65 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e  re each statemen
4630: 74 0a 20 20 20 20 69 73 20 65 78 65 63 75 74 65  t.    is execute
4640: 64 2c 20 6e 6f 74 20 77 68 65 6e 20 74 68 65 20  d, not when the 
4650: 73 74 61 74 65 6d 65 6e 74 20 69 73 20 63 6f 6d  statement is com
4660: 70 69 6c 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  piled.</li>.<li>
4670: 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73  Makefile updates
4680: 20 61 6e 64 20 6d 69 73 63 65 6c 6c 61 6e 65 6f   and miscellaneo
4690: 75 73 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c  us bug fixes.</l
46a0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
46b0: 20 53 65 70 74 65 6d 62 65 72 20 30 32 20 28 33   September 02 (3
46c0: 2e 30 2e 36 20 62 65 74 61 29 7d 20 7b 0a 3c 6c  .0.6 beta)} {.<l
46d0: 69 3e 42 65 74 74 65 72 20 64 65 74 65 63 74 69  i>Better detecti
46e0: 6f 6e 20 61 6e 64 20 68 61 6e 64 6c 69 6e 67 20  on and handling 
46f0: 6f 66 20 63 6f 72 72 75 70 74 20 64 61 74 61 62  of corrupt datab
4700: 61 73 65 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a  ase files.</li>.
4710: 3c 6c 69 3e 54 68 65 20 73 71 6c 69 74 65 33 5f  <li>The sqlite3_
4720: 73 74 65 70 28 29 20 69 6e 74 65 72 66 61 63 65  step() interface
4730: 20 72 65 74 75 72 6e 73 20 53 51 4c 49 54 45 5f   returns SQLITE_
4740: 42 55 53 59 20 69 66 20 69 74 20 69 73 20 75 6e  BUSY if it is un
4750: 61 62 6c 65 0a 20 20 20 20 74 6f 20 63 6f 6d 6d  able.    to comm
4760: 69 74 20 61 20 63 68 61 6e 67 65 20 62 65 63 61  it a change beca
4770: 75 73 65 20 6f 66 20 61 20 6c 6f 63 6b 3c 2f 6c  use of a lock</l
4780: 69 3e 0a 3c 6c 69 3e 43 6f 6d 62 69 6e 65 20 74  i>.<li>Combine t
4790: 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f  he implementatio
47a0: 6e 73 20 6f 66 20 4c 49 4b 45 20 61 6e 64 20 47  ns of LIKE and G
47b0: 4c 4f 42 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c  LOB into a singl
47c0: 65 0a 20 20 20 20 70 61 74 74 65 72 6e 2d 6d 61  e.    pattern-ma
47d0: 74 63 68 69 6e 67 20 73 75 62 72 6f 75 74 69 6e  tching subroutin
47e0: 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69 73 63  e.</li>.<li>Misc
47f0: 65 6c 6c 61 6e 65 6f 75 73 20 63 6f 64 65 20 73  ellaneous code s
4800: 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e  ize optimization
4810: 73 20 61 6e 64 20 62 75 67 20 66 69 78 65 73 3c  s and bug fixes<
4820: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
4830: 30 34 20 41 75 67 75 73 74 20 32 39 20 28 33 2e  04 August 29 (3.
4840: 30 2e 35 20 62 65 74 61 29 7d 20 7b 0a 3c 6c 69  0.5 beta)} {.<li
4850: 3e 53 75 70 70 6f 72 74 20 66 6f 72 20 22 3a 41  >Support for ":A
4860: 41 41 22 20 73 74 79 6c 65 20 62 69 6e 64 20 70  AA" style bind p
4870: 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 73 2e 3c  arameter names.<
4880: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
4890: 68 65 20 6e 65 77 20 73 71 6c 69 74 65 33 5f 62  he new sqlite3_b
48a0: 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f 6e 61  ind_parameter_na
48b0: 6d 65 28 29 20 69 6e 74 65 72 66 61 63 65 2e 3c  me() interface.<
48c0: 2f 6c 69 3e 0a 3c 6c 69 3e 53 75 70 70 6f 72 74  /li>.<li>Support
48d0: 20 66 6f 72 20 54 43 4c 20 76 61 72 69 61 62 6c   for TCL variabl
48e0: 65 20 6e 61 6d 65 73 20 65 6d 62 65 64 64 65 64  e names embedded
48f0: 20 69 6e 20 53 51 4c 20 73 74 61 74 65 6d 65 6e   in SQL statemen
4900: 74 73 20 69 6e 20 74 68 65 0a 20 20 20 20 54 43  ts in the.    TC
4910: 4c 20 62 69 6e 64 69 6e 67 73 2e 3c 2f 6c 69 3e  L bindings.</li>
4920: 0a 3c 6c 69 3e 54 68 65 20 54 43 4c 20 62 69 6e  .<li>The TCL bin
4930: 64 69 6e 67 73 20 74 72 61 6e 73 66 65 72 20 64  dings transfer d
4940: 61 74 61 20 77 69 74 68 6f 75 74 20 6e 65 63 65  ata without nece
4950: 73 73 61 72 69 6c 79 20 64 6f 69 6e 67 20 61 20  ssarily doing a 
4960: 63 6f 6e 76 65 72 73 69 6f 6e 0a 20 20 20 20 74  conversion.    t
4970: 6f 20 61 20 73 74 72 69 6e 67 2e 3c 2f 6c 69 3e  o a string.</li>
4980: 0a 3c 6c 69 3e 54 68 65 20 64 61 74 61 62 61 73  .<li>The databas
4990: 65 20 66 6f 72 20 54 45 4d 50 20 74 61 62 6c 65  e for TEMP table
49a0: 73 20 69 73 20 6e 6f 74 20 63 72 65 61 74 65 64  s is not created
49b0: 20 75 6e 74 69 6c 20 69 74 20 69 73 20 6e 65 65   until it is nee
49c0: 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ded.</li>.<li>Ad
49d0: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
49e0: 20 73 70 65 63 69 66 79 20 61 6e 20 61 6c 74 65   specify an alte
49f0: 72 6e 61 74 69 76 65 20 74 65 6d 70 6f 72 61 72  rnative temporar
4a00: 79 20 66 69 6c 65 20 64 69 72 65 63 74 6f 72 79  y file directory
4a10: 0a 20 20 20 20 75 73 69 6e 67 20 74 68 65 20 22  .    using the "
4a20: 73 71 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65  sqlite_temp_dire
4a30: 63 74 6f 72 79 22 20 67 6c 6f 62 61 6c 20 76 61  ctory" global va
4a40: 72 69 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69  riable.</li>.<li
4a50: 3e 41 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20  >A compile-time 
4a60: 6f 70 74 69 6f 6e 20 28 53 51 4c 49 54 45 5f 42  option (SQLITE_B
4a70: 55 53 59 5f 52 45 53 45 52 56 45 44 5f 4c 4f 43  USY_RESERVED_LOC
4a80: 4b 29 20 63 61 75 73 65 73 20 74 68 65 20 62 75  K) causes the bu
4a90: 73 79 0a 20 20 20 20 68 61 6e 64 6c 65 72 20 74  sy.    handler t
4aa0: 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e  o be called when
4ab0: 20 74 68 65 72 65 20 69 73 20 63 6f 6e 74 65 6e   there is conten
4ac0: 74 69 6f 6e 20 66 6f 72 20 61 20 52 45 53 45 52  tion for a RESER
4ad0: 56 45 44 20 6c 6f 63 6b 2e 3c 2f 6c 69 3e 0a 3c  VED lock.</li>.<
4ae0: 6c 69 3e 56 61 72 69 6f 75 73 20 62 75 67 20 66  li>Various bug f
4af0: 69 78 65 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a  ixes and optimiz
4b00: 61 74 69 6f 6e 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ations</li>.}..c
4b10: 68 6e 67 20 7b 32 30 30 34 20 41 75 67 75 73 74  hng {2004 August
4b20: 20 38 20 28 33 2e 30 2e 34 20 62 65 74 61 29 7d   8 (3.0.4 beta)}
4b30: 20 7b 0a 3c 6c 69 3e 43 52 45 41 54 45 20 54 41   {.<li>CREATE TA
4b40: 42 4c 45 20 61 6e 64 20 44 52 4f 50 20 54 41 42  BLE and DROP TAB
4b50: 4c 45 20 6e 6f 77 20 77 6f 72 6b 20 63 6f 72 72  LE now work corr
4b60: 65 63 74 6c 79 20 61 73 20 70 72 65 70 61 72 65  ectly as prepare
4b70: 64 20 73 74 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c  d statements.</l
4b80: 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67  i>.<li>Fix a bug
4b90: 20 69 6e 20 56 41 43 55 55 4d 20 61 6e 64 20 55   in VACUUM and U
4ba0: 4e 49 51 55 45 20 69 6e 64 69 63 65 73 2e 3c 2f  NIQUE indices.</
4bb0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20  li>.<li>Add the 
4bc0: 22 2e 69 6d 70 6f 72 74 22 20 63 6f 6d 6d 61 6e  ".import" comman
4bd0: 64 20 74 6f 20 74 68 65 20 63 6f 6d 6d 61 6e 64  d to the command
4be0: 2d 6c 69 6e 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69  -line shell.</li
4bf0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  >.<li>Fix a bug 
4c00: 74 68 61 74 20 63 6f 75 6c 64 20 63 61 75 73 65  that could cause
4c10: 20 69 6e 64 65 78 20 63 6f 72 72 75 70 74 69 6f   index corruptio
4c20: 6e 20 77 68 65 6e 20 61 6e 20 61 74 74 65 6d 70  n when an attemp
4c30: 74 20 74 6f 0a 20 20 20 20 64 65 6c 65 74 65 20  t to.    delete 
4c40: 72 6f 77 73 20 6f 66 20 61 20 74 61 62 6c 65 20  rows of a table 
4c50: 69 73 20 62 6c 6f 63 6b 65 64 20 62 79 20 61 20  is blocked by a 
4c60: 70 65 6e 64 69 6e 67 20 71 75 65 72 79 2e 3c 2f  pending query.</
4c70: 6c 69 3e 0a 3c 6c 69 3e 4c 69 62 72 61 72 79 20  li>.<li>Library 
4c80: 73 69 7a 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f  size optimizatio
4c90: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  ns.</li>.<li>Oth
4ca0: 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  er minor bug fix
4cb0: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
4cc0: 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28   {2004 July 22 (
4cd0: 32 2e 38 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 54  2.8.15)} {.<li>T
4ce0: 68 69 73 20 69 73 20 61 20 6d 61 69 6e 74 65 6e  his is a mainten
4cf0: 61 6e 63 65 20 72 65 6c 65 61 73 65 20 6f 6e 6c  ance release onl
4d00: 79 2e 20 20 56 61 72 69 6f 75 73 20 6d 69 6e 6f  y.  Various mino
4d10: 72 20 62 75 67 73 20 68 61 76 65 20 62 65 65 6e  r bugs have been
4d20: 0a 66 69 78 65 64 20 61 6e 64 20 73 6f 6d 65 20  .fixed and some 
4d30: 70 6f 72 74 61 62 69 6c 69 74 79 20 65 6e 68 61  portability enha
4d40: 6e 63 65 6d 65 6e 74 73 20 61 72 65 20 61 64 64  ncements are add
4d50: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
4d60: 20 7b 32 30 30 34 20 4a 75 6c 79 20 32 32 20 28   {2004 July 22 (
4d70: 33 2e 30 2e 33 20 62 65 74 61 29 7d 20 7b 0a 3c  3.0.3 beta)} {.<
4d80: 6c 69 3e 54 68 65 20 73 65 63 6f 6e 64 20 62 65  li>The second be
4d90: 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20 53  ta release for S
4da0: 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e 0a  QLite 3.0.</li>.
4db0: 3c 6c 69 3e 41 64 64 20 73 75 70 70 6f 72 74 20  <li>Add support 
4dc0: 66 6f 72 20 22 50 52 41 47 4d 41 20 70 61 67 65  for "PRAGMA page
4dd0: 5f 73 69 7a 65 22 20 74 6f 20 61 64 6a 75 73 74  _size" to adjust
4de0: 20 74 68 65 20 70 61 67 65 20 73 69 7a 65 20 6f   the page size o
4df0: 66 0a 74 68 65 20 64 61 74 61 62 61 73 65 2e 3c  f.the database.<
4e00: 2f 6c 69 3e 0a 3c 6c 69 3e 56 61 72 69 6f 75 73  /li>.<li>Various
4e10: 20 62 75 67 20 66 69 78 65 73 20 61 6e 64 20 64   bug fixes and d
4e20: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64  ocumentation upd
4e30: 61 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ates.</li>.}..ch
4e40: 6e 67 20 7b 32 30 30 34 20 4a 75 6e 65 20 33 30  ng {2004 June 30
4e50: 20 28 33 2e 30 2e 32 20 62 65 74 61 29 7d 20 7b   (3.0.2 beta)} {
4e60: 0a 3c 6c 69 3e 54 68 65 20 66 69 72 73 74 20 62  .<li>The first b
4e70: 65 74 61 20 72 65 6c 65 61 73 65 20 66 6f 72 20  eta release for 
4e80: 53 51 4c 69 74 65 20 33 2e 30 2e 3c 2f 6c 69 3e  SQLite 3.0.</li>
4e90: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a  .}..chng {2004 J
4ea0: 75 6e 65 20 32 32 20 28 33 2e 30 2e 31 20 61 6c  une 22 (3.0.1 al
4eb0: 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66 6f 6e  pha)} {.<li><fon
4ec0: 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 3c 62  t color="red"><b
4ed0: 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68 61 20  >.    *** Alpha 
4ee0: 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65 61 72  Release - Resear
4ef0: 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67 20 55  ch And Testing U
4f00: 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62 3e 3c  se Only ***</b><
4f10: 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 4c 6f 74 73 20  /font>.<li>Lots 
4f20: 6f 66 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c  of bug fixes.</l
4f30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34  i>.}..chng {2004
4f40: 20 4a 75 6e 65 20 31 38 20 28 33 2e 30 2e 30 20   June 18 (3.0.0 
4f50: 61 6c 70 68 61 29 7d 20 7b 0a 3c 6c 69 3e 3c 66  alpha)} {.<li><f
4f60: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e  ont color="red">
4f70: 3c 62 3e 0a 20 20 20 20 2a 2a 2a 20 41 6c 70 68  <b>.    *** Alph
4f80: 61 20 52 65 6c 65 61 73 65 20 2d 20 52 65 73 65  a Release - Rese
4f90: 61 72 63 68 20 41 6e 64 20 54 65 73 74 69 6e 67  arch And Testing
4fa0: 20 55 73 65 20 4f 6e 6c 79 20 2a 2a 2a 3c 2f 62   Use Only ***</b
4fb0: 3e 3c 2f 66 6f 6e 74 3e 0a 3c 6c 69 3e 53 75 70  ></font>.<li>Sup
4fc0: 70 6f 72 74 20 66 6f 72 20 69 6e 74 65 72 6e 61  port for interna
4fd0: 74 69 6f 6e 61 6c 69 7a 61 74 69 6f 6e 20 69 6e  tionalization in
4fe0: 63 6c 75 64 69 6e 67 20 55 54 46 2d 38 2c 20 55  cluding UTF-8, U
4ff0: 54 46 2d 31 36 2c 20 61 6e 64 0a 20 20 20 20 75  TF-16, and.    u
5000: 73 65 72 20 64 65 66 69 6e 65 64 20 63 6f 6c 6c  ser defined coll
5010: 61 74 69 6e 67 20 73 65 71 75 65 6e 63 65 73 2e  ating sequences.
5020: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 66 69  </li>.<li>New fi
5030: 6c 65 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69  le format that i
5040: 73 20 32 35 25 20 74 6f 20 33 35 25 20 73 6d 61  s 25% to 35% sma
5050: 6c 6c 65 72 20 66 6f 72 20 74 79 70 69 63 61 6c  ller for typical
5060: 20 75 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49   use.</li>.<li>I
5070: 6d 70 72 6f 76 65 64 20 63 6f 6e 63 75 72 72 65  mproved concurre
5080: 6e 63 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 74  ncy.</li>.<li>At
5090: 6f 6d 69 63 20 63 6f 6d 6d 69 74 73 20 66 6f 72  omic commits for
50a0: 20 41 54 54 41 43 48 65 64 20 64 61 74 61 62 61   ATTACHed databa
50b0: 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  ses.</li>.<li>Re
50c0: 6d 6f 76 65 20 63 72 75 66 74 20 66 72 6f 6d 20  move cruft from 
50d0: 74 68 65 20 41 50 49 73 2e 3c 2f 6c 69 3e 0a 3c  the APIs.</li>.<
50e0: 6c 69 3e 42 4c 4f 42 20 73 75 70 70 6f 72 74 2e  li>BLOB support.
50f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 36 34 2d 62 69 74  </li>.<li>64-bit
5100: 20 72 6f 77 69 64 73 2e 3c 2f 6c 69 3e 0a 3c 6c   rowids.</li>.<l
5110: 69 3e 3c 61 20 68 72 65 66 3d 22 76 65 72 73 69  i><a href="versi
5120: 6f 6e 33 2e 68 74 6d 6c 22 3e 4d 6f 72 65 20 69  on3.html">More i
5130: 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 61 3e 2e 0a  nformation</a>..
5140: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 4a 75  }..chng {2004 Ju
5150: 6e 65 20 39 20 28 32 2e 38 2e 31 34 29 7d 20 7b  ne 9 (2.8.14)} {
5160: 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 6d 69 6e  .<li>Fix the min
5170: 28 29 20 61 6e 64 20 6d 61 78 28 29 20 6f 70 74  () and max() opt
5180: 69 6d 69 7a 65 72 20 73 6f 20 74 68 61 74 20 69  imizer so that i
5190: 74 20 77 6f 72 6b 73 20 77 68 65 6e 20 74 68 65  t works when the
51a0: 20 46 52 4f 4d 0a 20 20 20 20 63 6c 61 75 73 65   FROM.    clause
51b0: 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20 73   consists of a s
51c0: 75 62 71 75 65 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c  ubquery.</li>.<l
51d0: 69 3e 49 67 6e 6f 72 65 20 65 78 74 72 61 20 77  i>Ignore extra w
51e0: 68 69 74 65 73 70 61 63 65 20 61 74 20 74 68 65  hitespace at the
51f0: 20 65 6e 64 20 6f 66 20 6f 66 20 22 2e 22 20 63   end of of "." c
5200: 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 73  ommands in the s
5210: 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42  hell.</li>.<li>B
5220: 75 6e 64 6c 65 20 73 71 6c 69 74 65 5f 65 6e 63  undle sqlite_enc
5230: 6f 64 65 5f 62 69 6e 61 72 79 28 29 20 61 6e 64  ode_binary() and
5240: 20 73 71 6c 69 74 65 5f 64 65 63 6f 64 65 5f 62   sqlite_decode_b
5250: 69 6e 61 72 79 28 29 20 77 69 74 68 20 74 68 65  inary() with the
5260: 20 0a 20 20 20 20 6c 69 62 72 61 72 79 2e 3c 2f   .    library.</
5270: 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 54 45 4d 50  li>.<li>The TEMP
5280: 5f 53 54 4f 52 45 20 61 6e 64 20 44 45 46 41 55  _STORE and DEFAU
5290: 4c 54 5f 54 45 4d 50 5f 53 54 4f 52 45 20 70 72  LT_TEMP_STORE pr
52a0: 61 67 6d 61 73 20 6e 6f 77 20 77 6f 72 6b 2e 3c  agmas now work.<
52b0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 64 65 20 63 68  /li>.<li>Code ch
52c0: 61 6e 67 65 73 20 74 6f 20 63 6f 6d 70 69 6c 65  anges to compile
52d0: 20 63 6c 65 61 6e 6c 79 20 75 73 69 6e 67 20 4f   cleanly using O
52e0: 70 65 6e 57 61 74 63 6f 6d 2e 3c 2f 6c 69 3e 0a  penWatcom.</li>.
52f0: 3c 6c 69 3e 46 69 78 20 56 44 42 45 20 73 74 61  <li>Fix VDBE sta
5300: 63 6b 20 6f 76 65 72 66 6c 6f 77 20 70 72 6f 62  ck overflow prob
5310: 6c 65 6d 73 20 77 69 74 68 20 49 4e 53 54 45 41  lems with INSTEA
5320: 44 20 4f 46 20 74 72 69 67 67 65 72 73 20 61 6e  D OF triggers an
5330: 64 0a 20 20 20 20 4e 55 4c 4c 73 20 69 6e 20 49  d.    NULLs in I
5340: 4e 20 6f 70 65 72 61 74 6f 72 73 2e 3c 2f 6c 69  N operators.</li
5350: 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 67 6c  >.<li>Add the gl
5360: 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 73 71  obal variable sq
5370: 6c 69 74 65 5f 74 65 6d 70 5f 64 69 72 65 63 74  lite_temp_direct
5380: 6f 72 79 20 77 68 69 63 68 20 69 66 20 73 65 74  ory which if set
5390: 20 64 65 66 69 6e 65 73 20 74 68 65 0a 20 20 20   defines the.   
53a0: 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68   directory in wh
53b0: 69 63 68 20 74 65 6d 70 6f 72 61 72 79 20 66 69  ich temporary fi
53c0: 6c 65 73 20 61 72 65 20 73 74 6f 72 65 64 2e 3c  les are stored.<
53d0: 2f 6c 69 3e 0a 3c 6c 69 3e 73 71 6c 69 74 65 5f  /li>.<li>sqlite_
53e0: 69 6e 74 65 72 72 75 70 74 28 29 20 70 6c 61 79  interrupt() play
53f0: 73 20 77 65 6c 6c 20 77 69 74 68 20 56 41 43 55  s well with VACU
5400: 55 4d 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  UM.</li>.<li>Oth
5410: 65 72 20 6d 69 6e 6f 72 20 62 75 67 20 66 69 78  er minor bug fix
5420: 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  es.</li>.}..chng
5430: 20 7b 32 30 30 34 20 4d 61 72 63 68 20 38 20 28   {2004 March 8 (
5440: 32 2e 38 2e 31 33 29 7d 20 7b 0a 3c 6c 69 3e 52  2.8.13)} {.<li>R
5450: 65 66 61 63 74 6f 72 20 70 61 72 74 73 20 6f 66  efactor parts of
5460: 20 74 68 65 20 63 6f 64 65 20 69 6e 20 6f 72 64   the code in ord
5470: 65 72 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 63  er to make the c
5480: 6f 64 65 20 66 6f 6f 74 70 72 69 6e 74 0a 20 20  ode footprint.  
5490: 20 20 73 6d 61 6c 6c 65 72 2e 20 20 54 68 65 20    smaller.  The 
54a0: 63 6f 64 65 20 69 73 20 6e 6f 77 20 61 6c 73 6f  code is now also
54b0: 20 61 20 6c 69 74 74 6c 65 20 62 69 74 20 66 61   a little bit fa
54c0: 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 73  ster.</li>.<li>s
54d0: 71 6c 69 74 65 5f 65 78 65 63 28 29 20 69 73 20  qlite_exec() is 
54e0: 6e 6f 77 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20  now implemented 
54f0: 61 73 20 61 20 77 72 61 70 70 65 72 20 61 72 6f  as a wrapper aro
5500: 75 6e 64 20 73 71 6c 69 74 65 5f 63 6f 6d 70 69  und sqlite_compi
5510: 6c 65 28 29 0a 20 20 20 20 61 6e 64 20 73 71 6c  le().    and sql
5520: 69 74 65 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e  ite_step().</li>
5530: 0a 3c 6c 69 3e 54 68 65 20 62 75 69 6c 74 2d 69  .<li>The built-i
5540: 6e 20 6d 69 6e 28 29 20 61 6e 64 20 6d 61 78 28  n min() and max(
5550: 29 20 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 77 20  ) functions now 
5560: 68 6f 6e 6f 72 20 74 68 65 20 64 69 66 66 65 72  honor the differ
5570: 65 6e 63 65 20 62 65 74 77 65 65 6e 0a 20 20 20  ence between.   
5580: 20 4e 55 4d 45 52 49 43 20 61 6e 64 20 54 45 58   NUMERIC and TEX
5590: 54 20 64 61 74 61 74 79 70 65 73 2e 20 20 46 6f  T datatypes.  Fo
55a0: 72 6d 65 72 6c 79 2c 20 6d 69 6e 28 29 20 61 6e  rmerly, min() an
55b0: 64 20 6d 61 78 28 29 20 61 6c 77 61 79 73 20 61  d max() always a
55c0: 73 73 75 6d 65 64 0a 20 20 20 20 74 68 65 69 72  ssumed.    their
55d0: 20 61 72 67 75 6d 65 6e 74 73 20 77 65 72 65 20   arguments were 
55e0: 6f 66 20 74 79 70 65 20 4e 55 4d 45 52 49 43 2e  of type NUMERIC.
55f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 65 77 20 48 48  </li>.<li>New HH
5600: 3a 4d 4d 3a 53 53 20 6d 6f 64 69 66 69 65 72 20  :MM:SS modifier 
5610: 74 6f 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20  to the built-in 
5620: 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74 69  date/time functi
5630: 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78  ons.</li>.<li>Ex
5640: 70 65 72 69 6d 65 6e 74 61 6c 20 73 71 6c 69 74  perimental sqlit
5650: 65 5f 6c 61 73 74 5f 73 74 61 74 65 6d 65 6e 74  e_last_statement
5660: 5f 63 68 61 6e 67 65 73 28 29 20 41 50 49 20 61  _changes() API a
5670: 64 64 65 64 2e 20 20 46 69 78 65 64 20 74 68 65  dded.  Fixed the
5680: 0a 20 20 20 20 74 68 65 20 6c 61 73 74 5f 69 6e  .    the last_in
5690: 73 65 72 74 5f 72 6f 77 69 64 28 29 20 66 75 6e  sert_rowid() fun
56a0: 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 69 74  ction so that it
56b0: 20 77 6f 72 6b 73 20 63 6f 72 72 65 63 74 6c 79   works correctly
56c0: 20 77 69 74 68 0a 20 20 20 20 74 72 69 67 67 65   with.    trigge
56d0: 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  rs.</li>.<li>Add
56e0: 20 66 75 6e 63 74 69 6f 6e 73 20 70 72 6f 74 6f   functions proto
56f0: 74 79 70 65 73 20 66 6f 72 20 74 68 65 20 64 61  types for the da
5700: 74 61 62 61 73 65 20 65 6e 63 72 79 70 74 69 6f  tabase encryptio
5710: 6e 20 41 50 49 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  n API.</li>.<li>
5720: 46 69 78 20 73 65 76 65 72 61 6c 20 6e 75 69 73  Fix several nuis
5730: 61 6e 63 65 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a  ance bugs.</li>.
5740: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20 46 65  }..chng {2004 Fe
5750: 62 72 75 61 72 79 20 38 20 28 32 2e 38 2e 31 32  bruary 8 (2.8.12
5760: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
5770: 75 67 20 74 68 61 74 20 77 69 6c 6c 20 6d 69 67  ug that will mig
5780: 68 74 20 63 6f 72 72 75 70 74 20 74 68 65 20 72  ht corrupt the r
5790: 6f 6c 6c 62 61 63 6b 20 6a 6f 75 72 6e 61 6c 20  ollback journal 
57a0: 69 66 20 61 20 70 6f 77 65 72 20 66 61 69 6c 75  if a power failu
57b0: 72 65 0a 20 20 20 20 6f 72 20 65 78 74 65 72 6e  re.    or extern
57c0: 61 6c 20 70 72 6f 67 72 61 6d 20 68 61 6c 74 20  al program halt 
57d0: 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 6d 69  occurs in the mi
57e0: 64 64 6c 65 20 6f 66 20 61 20 43 4f 4d 4d 49 54  ddle of a COMMIT
57f0: 2e 20 20 54 68 65 20 63 6f 72 72 75 70 74 0a 20  .  The corrupt. 
5800: 20 20 20 6a 6f 75 72 6e 61 6c 20 63 61 6e 20 6c     journal can l
5810: 65 61 64 20 74 6f 20 64 61 74 61 62 61 73 65 20  ead to database 
5820: 63 6f 72 72 75 70 74 69 6f 6e 20 77 68 65 6e 20  corruption when 
5830: 69 74 20 69 73 20 72 6f 6c 6c 65 64 20 62 61 63  it is rolled bac
5840: 6b 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 64 75  k.</li>.<li>Redu
5850: 63 65 20 74 68 65 20 73 69 7a 65 20 61 6e 64 20  ce the size and 
5860: 69 6e 63 72 65 61 73 65 20 74 68 65 20 73 70 65  increase the spe
5870: 65 64 20 6f 66 20 76 61 72 69 6f 75 73 20 6d 6f  ed of various mo
5880: 64 75 6c 65 73 2c 20 65 73 70 65 63 69 61 6c 6c  dules, especiall
5890: 79 0a 20 20 20 20 74 68 65 20 76 69 72 74 75 61  y.    the virtua
58a0: 6c 20 6d 61 63 68 69 6e 65 2e 3c 2f 6c 69 3e 0a  l machine.</li>.
58b0: 3c 6c 69 3e 41 6c 6c 6f 77 20 22 26 6c 74 3b 65  <li>Allow "&lt;e
58c0: 78 70 72 26 67 74 3b 20 49 4e 20 26 6c 74 3b 74  xpr&gt; IN &lt;t
58d0: 61 62 6c 65 26 67 74 3b 22 20 61 73 20 61 20 73  able&gt;" as a s
58e0: 68 6f 72 74 68 61 6e 64 20 66 6f 72 0a 20 20 20  horthand for.   
58f0: 20 22 26 6c 74 3b 65 78 70 72 26 67 74 3b 20 49   "&lt;expr&gt; I
5900: 4e 20 28 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  N (SELECT * FROM
5910: 20 26 6c 74 3b 74 61 62 6c 65 26 67 74 3b 22 2e   &lt;table&gt;".
5920: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 70 74 69 6d 69  </li>.<li>Optimi
5930: 7a 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73  zations to the s
5940: 71 6c 69 74 65 5f 6d 70 72 69 6e 74 66 28 29 20  qlite_mprintf() 
5950: 72 6f 75 74 69 6e 65 2e 3c 2f 6c 69 3e 0a 3c 6c  routine.</li>.<l
5960: 69 3e 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20  i>Make sure the 
5970: 4d 49 4e 28 29 20 61 6e 64 20 4d 41 58 28 29 20  MIN() and MAX() 
5980: 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 77 6f  optimizations wo
5990: 72 6b 20 77 69 74 68 69 6e 20 73 75 62 71 75 65  rk within subque
59a0: 72 69 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ries.</li>.}..ch
59b0: 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72 79  ng {2004 January
59c0: 20 31 34 20 28 32 2e 38 2e 31 31 29 7d 20 7b 0a   14 (2.8.11)} {.
59d0: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e  <li>Fix a bug in
59e0: 20 68 6f 77 20 74 68 65 20 49 4e 20 6f 70 65 72   how the IN oper
59f0: 61 74 6f 72 20 68 61 6e 64 6c 65 73 20 4e 55 4c  ator handles NUL
5a00: 4c 73 20 69 6e 20 73 75 62 71 75 65 72 69 65 73  Ls in subqueries
5a10: 2e 20 20 54 68 65 20 62 75 67 0a 20 20 20 20 77  .  The bug.    w
5a20: 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 62 79  as introduced by
5a30: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65   the previous re
5a40: 6c 65 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  lease.</li>.}..c
5a50: 68 6e 67 20 7b 32 30 30 34 20 4a 61 6e 75 61 72  hng {2004 Januar
5a60: 79 20 31 33 20 28 32 2e 38 2e 31 30 29 7d 20 7b  y 13 (2.8.10)} {
5a70: 0a 3c 6c 69 3e 46 69 78 20 61 20 70 6f 74 65 6e  .<li>Fix a poten
5a80: 74 69 61 6c 20 64 61 74 61 62 61 73 65 20 63 6f  tial database co
5a90: 72 72 75 70 74 69 6f 6e 20 70 72 6f 62 6c 65 6d  rruption problem
5aa0: 20 6f 6e 20 55 6e 69 78 20 63 61 75 73 65 64 20   on Unix caused 
5ab0: 62 79 20 74 68 65 20 66 61 63 74 0a 20 20 20 20  by the fact.    
5ac0: 74 68 61 74 20 61 6c 6c 20 70 6f 73 69 78 20 61  that all posix a
5ad0: 64 76 69 73 6f 72 79 20 6c 6f 63 6b 73 20 61 72  dvisory locks ar
5ae0: 65 20 63 6c 65 61 72 65 64 20 77 68 65 6e 65 76  e cleared whenev
5af0: 65 72 20 79 6f 75 20 63 6c 6f 73 65 28 29 20 61  er you close() a
5b00: 20 66 69 6c 65 2e 0a 20 20 20 20 54 68 65 20 77   file..    The w
5b10: 6f 72 6b 20 61 72 6f 75 6e 64 20 69 74 20 74 6f  ork around it to
5b20: 20 65 6d 62 61 72 67 6f 20 61 6c 6c 20 63 6c 6f   embargo all clo
5b30: 73 65 28 29 20 63 61 6c 6c 73 20 77 68 69 6c 65  se() calls while
5b40: 20 6c 6f 63 6b 73 20 61 72 65 20 0a 20 20 20 20   locks are .    
5b50: 6f 75 74 73 74 61 6e 64 69 6e 67 2e 3c 2f 6c 69  outstanding.</li
5b60: 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63  >.<li>Performanc
5b70: 65 20 65 6e 68 61 6e 63 65 6d 65 6e 74 73 20 6f  e enhancements o
5b80: 6e 20 73 6f 6d 65 20 63 6f 72 6e 65 72 20 63 61  n some corner ca
5b90: 73 65 73 20 6f 66 20 43 4f 55 4e 54 28 2a 29 2e  ses of COUNT(*).
5ba0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73  </li>.<li>Make s
5bb0: 75 72 65 20 74 68 65 20 69 6e 2d 6d 65 6d 6f 72  ure the in-memor
5bc0: 79 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e  y backend respon
5bd0: 73 65 20 73 61 6e 65 6c 79 20 69 66 20 6d 61 6c  se sanely if mal
5be0: 6c 6f 63 28 29 20 66 61 69 6c 73 2e 3c 2f 6c 69  loc() fails.</li
5bf0: 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 73 71 6c 69  >.<li>Allow sqli
5c00: 74 65 5f 65 78 65 63 28 29 20 74 6f 20 62 65 20  te_exec() to be 
5c10: 63 61 6c 6c 65 64 20 66 72 6f 6d 20 77 69 74 68  called from with
5c20: 69 6e 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20  in user-defined 
5c30: 53 51 4c 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e  SQL.    function
5c40: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6d 70 72  s.</li>.<li>Impr
5c50: 6f 76 65 64 20 61 63 63 75 72 61 63 79 20 6f 66  oved accuracy of
5c60: 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20   floating-point 
5c70: 63 6f 6e 76 65 72 73 69 6f 6e 73 20 75 73 69 6e  conversions usin
5c80: 67 20 22 6c 6f 6e 67 20 64 6f 75 62 6c 65 22 2e  g "long double".
5c90: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
5ca0: 78 65 73 20 69 6e 20 74 68 65 20 65 78 70 65 72  xes in the exper
5cb0: 69 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d  imental date/tim
5cc0: 65 20 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69  e functions.</li
5cd0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 34 20  >.}..chng {2004 
5ce0: 4a 61 6e 75 61 72 79 20 35 20 28 32 2e 38 2e 39  January 5 (2.8.9
5cf0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 33  )} {.<li>Fix a 3
5d00: 32 2d 62 69 74 20 69 6e 74 65 67 65 72 20 6f 76  2-bit integer ov
5d10: 65 72 66 6c 6f 77 20 70 72 6f 62 6c 65 6d 20 74  erflow problem t
5d20: 68 61 74 20 63 6f 75 6c 64 20 72 65 73 75 6c 74  hat could result
5d30: 20 69 6e 20 63 6f 72 72 75 70 74 0a 20 20 20 20   in corrupt.    
5d40: 69 6e 64 69 63 65 73 20 69 6e 20 61 20 64 61 74  indices in a dat
5d50: 61 62 61 73 65 20 69 66 20 6c 61 72 67 65 20 6e  abase if large n
5d60: 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 73 20  egative numbers 
5d70: 28 6c 65 73 73 20 74 68 61 6e 20 2d 32 31 34 37  (less than -2147
5d80: 34 38 33 36 34 38 29 0a 20 20 20 20 77 65 72 65  483648).    were
5d90: 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 61   inserted into a
5da0: 20 69 6e 64 65 78 65 64 20 6e 75 6d 65 72 69 63   indexed numeric
5db0: 20 63 6f 6c 75 6d 6e 2e 3c 2f 6c 69 3e 0a 3c 6c   column.</li>.<l
5dc0: 69 3e 46 69 78 20 61 20 6c 6f 63 6b 69 6e 67 20  i>Fix a locking 
5dd0: 70 72 6f 62 6c 65 6d 20 6f 6e 20 6d 75 6c 74 69  problem on multi
5de0: 2d 74 68 72 65 61 64 65 64 20 4c 69 6e 75 78 20  -threaded Linux 
5df0: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2e  implementations.
5e00: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 77 61 79 73  </li>.<li>Always
5e10: 20 75 73 65 20 22 2e 22 20 69 6e 73 74 65 61 64   use "." instead
5e20: 20 6f 66 20 22 2c 22 20 61 73 20 74 68 65 20 64   of "," as the d
5e30: 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 65 76 65  ecimal point eve
5e40: 6e 20 69 66 20 74 68 65 20 6c 6f 63 61 6c 65 0a  n if the locale.
5e50: 20 20 20 20 72 65 71 75 65 73 74 73 20 22 2c 22      requests ","
5e60: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
5e70: 20 55 54 43 20 74 6f 20 6c 6f 63 61 6c 74 69 6d   UTC to localtim
5e80: 65 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 74 6f  e conversions to
5e90: 20 74 68 65 20 65 78 70 65 72 69 6d 65 6e 74 61   the experimenta
5ea0: 6c 20 64 61 74 65 2f 74 69 6d 65 0a 20 20 20 20  l date/time.    
5eb0: 66 75 6e 63 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a  functions.</li>.
5ec0: 3c 6c 69 3e 42 75 67 20 66 69 78 65 73 20 74 6f  <li>Bug fixes to
5ed0: 20 64 61 74 65 2f 74 69 6d 65 20 66 75 6e 63 74   date/time funct
5ee0: 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  ions.</li>.}..ch
5ef0: 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65  ng {2003 Decembe
5f00: 72 20 31 37 20 28 32 2e 38 2e 38 29 7d 20 7b 0a  r 17 (2.8.8)} {.
5f10: 3c 6c 69 3e 46 69 78 20 61 20 63 72 69 74 69 63  <li>Fix a critic
5f20: 61 6c 20 62 75 67 20 69 6e 74 72 6f 64 75 63 65  al bug introduce
5f30: 64 20 69 6e 74 6f 20 32 2e 38 2e 30 20 77 68 69  d into 2.8.0 whi
5f40: 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 0a 20  ch could cause. 
5f50: 20 20 20 64 61 74 61 62 61 73 65 20 63 6f 72 72     database corr
5f60: 75 70 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69  uption.</li>.<li
5f70: 3e 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77  >Fix a problem w
5f80: 69 74 68 20 33 2d 77 61 79 20 6a 6f 69 6e 73 20  ith 3-way joins 
5f90: 74 68 61 74 20 64 6f 20 6e 6f 74 20 75 73 65 20  that do not use 
5fa0: 69 6e 64 69 63 65 73 3c 2f 6c 69 3e 0a 3c 6c 69  indices</li>.<li
5fb0: 3e 54 68 65 20 56 41 43 55 55 4d 20 63 6f 6d 6d  >The VACUUM comm
5fc0: 61 6e 64 20 6e 6f 77 20 77 6f 72 6b 73 20 77 69  and now works wi
5fd0: 74 68 20 74 68 65 20 6e 6f 6e 2d 63 61 6c 6c 62  th the non-callb
5fe0: 61 63 6b 20 41 50 49 3c 2f 6c 69 3e 0a 3c 6c 69  ack API</li>.<li
5ff0: 3e 49 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f  >Improvements to
6000: 20 74 68 65 20 22 50 52 41 47 4d 41 20 69 6e 74   the "PRAGMA int
6010: 65 67 72 69 74 79 5f 63 68 65 63 6b 22 20 63 6f  egrity_check" co
6020: 6d 6d 61 6e 64 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  mmand</li>.}..ch
6030: 6e 67 20 7b 32 30 30 33 20 44 65 63 65 6d 62 65  ng {2003 Decembe
6040: 72 20 34 20 28 32 2e 38 2e 37 29 7d 20 7b 0a 3c  r 4 (2.8.7)} {.<
6050: 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72 69 6d  li>Added experim
6060: 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 62 69 6e  ental sqlite_bin
6070: 64 28 29 20 61 6e 64 20 73 71 6c 69 74 65 5f 72  d() and sqlite_r
6080: 65 73 65 74 28 29 20 41 50 49 73 2e 3c 2f 6c 69  eset() APIs.</li
6090: 3e 0a 3c 6c 69 3e 49 66 20 74 68 65 20 6e 61 6d  >.<li>If the nam
60a0: 65 20 6f 66 20 74 68 65 20 64 61 74 61 62 61 73  e of the databas
60b0: 65 20 69 73 20 61 6e 20 65 6d 70 74 79 20 73 74  e is an empty st
60c0: 72 69 6e 67 2c 20 6f 70 65 6e 20 61 20 6e 65 77  ring, open a new
60d0: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 69 6e   database.    in
60e0: 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c   a temporary fil
60f0: 65 20 74 68 61 74 20 69 73 20 61 75 74 6f 6d 61  e that is automa
6100: 74 69 63 61 6c 6c 79 20 64 65 6c 65 74 65 64 20  tically deleted 
6110: 77 68 65 6e 20 74 68 65 20 64 61 74 61 62 61 73  when the databas
6120: 65 0a 20 20 20 20 69 73 20 63 6c 6f 73 65 64 2e  e.    is closed.
6130: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72  </li>.<li>Perfor
6140: 6d 61 6e 63 65 20 65 6e 68 61 6e 63 65 6d 65 6e  mance enhancemen
6150: 74 73 20 69 6e 20 74 68 65 20 6c 65 6d 6f 6e 2d  ts in the lemon-
6160: 67 65 6e 65 72 61 74 65 64 20 70 61 72 73 65 72  generated parser
6170: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 65 72 69  </li>.<li>Experi
6180: 6d 65 6e 74 61 6c 20 64 61 74 65 2f 74 69 6d 65  mental date/time
6190: 20 66 75 6e 63 74 69 6f 6e 73 20 72 65 76 69 73   functions revis
61a0: 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 69 73  ed.</li>.<li>Dis
61b0: 61 6c 6c 6f 77 20 74 65 6d 70 6f 72 61 72 79 20  allow temporary 
61c0: 69 6e 64 69 63 65 73 20 6f 6e 20 70 65 72 6d 61  indices on perma
61d0: 6e 65 6e 74 20 74 61 62 6c 65 73 2e 3c 2f 6c 69  nent tables.</li
61e0: 3e 0a 3c 6c 69 3e 44 6f 63 75 6d 65 6e 74 61 74  >.<li>Documentat
61f0: 69 6f 6e 20 75 70 64 61 74 65 73 20 61 6e 64 20  ion updates and 
6200: 74 79 70 6f 20 66 69 78 65 73 3c 2f 6c 69 3e 0a  typo fixes</li>.
6210: 3c 6c 69 3e 41 64 64 65 64 20 65 78 70 65 72 69  <li>Added experi
6220: 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 70 72  mental sqlite_pr
6230: 6f 67 72 65 73 73 5f 68 61 6e 64 6c 65 72 28 29  ogress_handler()
6240: 20 63 61 6c 6c 62 61 63 6b 20 41 50 49 3c 2f 6c   callback API</l
6250: 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76 65 64 20 73  i>.<li>Removed s
6260: 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4f  upport for the O
6270: 72 61 63 6c 65 38 20 6f 75 74 65 72 20 6a 6f 69  racle8 outer joi
6280: 6e 20 73 79 6e 74 61 78 2e 3c 2f 6c 69 3e 0a 3c  n syntax.</li>.<
6290: 6c 69 3e 41 6c 6c 6f 77 20 47 4c 4f 42 20 61 6e  li>Allow GLOB an
62a0: 64 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 73  d LIKE operators
62b0: 20 74 6f 20 77 6f 72 6b 20 61 73 20 66 75 6e 63   to work as func
62c0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  tions.</li>.<li>
62d0: 4f 74 68 65 72 20 6d 69 6e 6f 72 20 64 6f 63 75  Other minor docu
62e0: 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 20 6d 61  mentation and ma
62f0: 6b 65 66 69 6c 65 20 63 68 61 6e 67 65 73 20 61  kefile changes a
6300: 6e 64 20 62 75 67 20 66 69 78 65 73 2e 3c 2f 6c  nd bug fixes.</l
6310: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33  i>.}..chng {2003
6320: 20 41 75 67 75 73 74 20 32 31 20 28 32 2e 38 2e   August 21 (2.8.
6330: 36 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 76 65 64 20  6)} {.<li>Moved 
6340: 74 68 65 20 43 56 53 20 72 65 70 6f 73 69 74 6f  the CVS reposito
6350: 72 79 20 74 6f 20 77 77 77 2e 73 71 6c 69 74 65  ry to www.sqlite
6360: 2e 6f 72 67 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70  .org</li>.<li>Up
6370: 64 61 74 65 20 74 68 65 20 4e 55 4c 4c 2d 68 61  date the NULL-ha
6380: 6e 64 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61  ndling documenta
6390: 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45  tion.</li>.<li>E
63a0: 78 70 65 72 69 6d 65 6e 74 61 6c 20 64 61 74 65  xperimental date
63b0: 2f 74 69 6d 65 20 66 75 6e 63 74 69 6f 6e 73 20  /time functions 
63c0: 61 64 64 65 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  added.</li>.<li>
63d0: 42 75 67 20 66 69 78 3a 20 63 6f 72 72 65 63 74  Bug fix: correct
63e0: 6c 79 20 65 76 61 6c 75 61 74 65 20 61 20 76 69  ly evaluate a vi
63f0: 65 77 20 6f 66 20 61 20 76 69 65 77 20 77 69 74  ew of a view wit
6400: 68 6f 75 74 20 73 65 67 66 61 75 6c 74 69 6e 67  hout segfaulting
6410: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
6420: 69 78 3a 20 70 72 65 76 65 6e 74 20 64 61 74 61  ix: prevent data
6430: 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e 20  base corruption 
6440: 69 66 20 79 6f 75 20 64 72 6f 70 70 65 64 20 61  if you dropped a
6450: 0a 20 20 20 20 74 72 69 67 67 65 72 20 74 68 61  .    trigger tha
6460: 74 20 68 61 64 20 74 68 65 20 73 61 6d 65 20 6e  t had the same n
6470: 61 6d 65 20 61 73 20 61 20 74 61 62 6c 65 2e 3c  ame as a table.<
6480: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
6490: 3a 20 61 6c 6c 6f 77 20 61 20 56 41 43 55 55 4d  : allow a VACUUM
64a0: 20 28 77 69 74 68 6f 75 74 20 73 65 67 66 61 75   (without segfau
64b0: 6c 74 69 6e 67 29 20 6f 6e 20 61 6e 20 65 6d 70  lting) on an emp
64c0: 74 79 0a 20 20 20 20 64 61 74 61 62 61 73 65 20  ty.    database 
64d0: 61 66 74 65 72 20 73 65 74 74 69 6e 67 20 74 68  after setting th
64e0: 65 20 45 4d 50 54 59 5f 52 45 53 55 4c 54 5f 43  e EMPTY_RESULT_C
64f0: 41 4c 4c 42 41 43 4b 53 20 70 72 61 67 6d 61 2e  ALLBACKS pragma.
6500: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
6510: 78 3a 20 69 66 20 61 6e 20 69 6e 74 65 67 65 72  x: if an integer
6520: 20 76 61 6c 75 65 20 77 69 6c 6c 20 6e 6f 74 20   value will not 
6530: 66 69 74 20 69 6e 20 61 20 33 32 2d 62 69 74 20  fit in a 32-bit 
6540: 69 6e 74 2c 20 73 74 6f 72 65 20 69 74 20 69 6e  int, store it in
6550: 0a 20 20 20 20 61 20 64 6f 75 62 6c 65 20 69 6e  .    a double in
6560: 73 74 65 61 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  stead.</li>.<li>
6570: 42 75 67 20 66 69 78 3a 20 4d 61 6b 65 20 73 75  Bug fix: Make su
6580: 72 65 20 74 68 65 20 6a 6f 75 72 6e 61 6c 20 66  re the journal f
6590: 69 6c 65 20 64 69 72 65 63 74 6f 72 79 20 65 6e  ile directory en
65a0: 74 72 79 20 69 73 20 63 6f 6d 6d 69 74 74 65 64  try is committed
65b0: 20 74 6f 20 64 69 73 6b 0a 20 20 20 20 62 65 66   to disk.    bef
65c0: 6f 72 65 20 77 72 69 74 69 6e 67 20 74 68 65 20  ore writing the 
65d0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 2e 3c 2f  database file.</
65e0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
65f0: 33 20 4a 75 6c 79 20 32 32 20 28 32 2e 38 2e 35  3 July 22 (2.8.5
6600: 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 6b 65 20 4c 49  )} {.<li>Make LI
6610: 4d 49 54 20 77 6f 72 6b 20 6f 6e 20 61 20 63 6f  MIT work on a co
6620: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 73 74  mpound SELECT st
6630: 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 3c 6c  atement.</li>.<l
6640: 69 3e 4c 49 4d 49 54 20 30 20 6e 6f 77 20 73 68  i>LIMIT 0 now sh
6650: 6f 77 73 20 6e 6f 20 72 6f 77 73 2e 20 20 55 73  ows no rows.  Us
6660: 65 20 4c 49 4d 49 54 20 2d 31 20 74 6f 20 73 65  e LIMIT -1 to se
6670: 65 20 61 6c 6c 20 72 6f 77 73 2e 3c 2f 6c 69 3e  e all rows.</li>
6680: 0a 3c 6c 69 3e 43 6f 72 72 65 63 74 6c 79 20 68  .<li>Correctly h
6690: 61 6e 64 6c 65 20 63 6f 6d 70 61 72 69 73 6f 6e  andle comparison
66a0: 73 20 62 65 74 77 65 65 6e 20 61 6e 20 49 4e 54  s between an INT
66b0: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59  EGER PRIMARY KEY
66c0: 20 61 6e 64 0a 20 20 20 20 61 20 66 6c 6f 61 74   and.    a float
66d0: 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72  ing point number
66e0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 73  .</li>.<li>Fix s
66f0: 65 76 65 72 61 6c 20 69 6d 70 6f 72 74 61 6e 74  everal important
6700: 20 62 75 67 73 20 69 6e 20 74 68 65 20 6e 65 77   bugs in the new
6710: 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41   ATTACH and DETA
6720: 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69  CH commands.</li
6730: 3e 0a 3c 6c 69 3e 55 70 64 61 74 65 64 20 74 68  >.<li>Updated th
6740: 65 20 3c 61 20 68 72 65 66 3d 22 6e 75 6c 6c 73  e <a href="nulls
6750: 2e 68 74 6d 6c 22 3e 4e 55 4c 4c 2d 68 61 6e 64  .html">NULL-hand
6760: 6c 69 6e 67 20 64 6f 63 75 6d 65 6e 74 3c 2f 61  ling document</a
6770: 3e 2e 3c 2f 6c 69 3e 20 0a 3c 6c 69 3e 41 6c 6c  >.</li> .<li>All
6780: 6f 77 20 4e 55 4c 4c 20 61 72 67 75 6d 65 6e 74  ow NULL argument
6790: 73 20 69 6e 20 73 71 6c 69 74 65 5f 63 6f 6d 70  s in sqlite_comp
67a0: 69 6c 65 28 29 20 61 6e 64 20 73 71 6c 69 74 65  ile() and sqlite
67b0: 5f 73 74 65 70 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  _step().</li>.<l
67c0: 69 3e 4d 61 6e 79 20 6d 69 6e 6f 72 20 62 75 67  i>Many minor bug
67d0: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fixes</li>.}..c
67e0: 68 6e 67 20 7b 32 30 30 33 20 4a 75 6e 65 20 32  hng {2003 June 2
67f0: 39 20 28 32 2e 38 2e 34 29 7d 20 7b 0a 3c 6c 69  9 (2.8.4)} {.<li
6800: 3e 45 6e 68 61 6e 63 65 64 20 74 68 65 20 22 50  >Enhanced the "P
6810: 52 41 47 4d 41 20 69 6e 74 65 67 72 69 74 79 5f  RAGMA integrity_
6820: 63 68 65 63 6b 22 20 63 6f 6d 6d 61 6e 64 20 74  check" command t
6830: 6f 20 76 65 72 69 66 79 20 69 6e 64 69 63 65 73  o verify indices
6840: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
6850: 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 68   authorization h
6860: 6f 6f 6b 73 20 66 6f 72 20 74 68 65 20 6e 65 77  ooks for the new
6870: 20 41 54 54 41 43 48 20 61 6e 64 20 44 45 54 41   ATTACH and DETA
6880: 43 48 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f 6c 69  CH commands.</li
6890: 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 64 6f 63 75 6d  >.<li>Many docum
68a0: 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65 73  entation updates
68b0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6e 79 20 6d  </li>.<li>Many m
68c0: 69 6e 6f 72 20 62 75 67 20 66 69 78 65 73 3c 2f  inor bug fixes</
68d0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
68e0: 33 20 4a 75 6e 65 20 34 20 28 32 2e 38 2e 33 29  3 June 4 (2.8.3)
68f0: 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 70 72  } {.<li>Fix a pr
6900: 6f 62 6c 65 6d 20 74 68 61 74 20 77 69 6c 6c 20  oblem that will 
6910: 63 6f 72 72 75 70 74 20 74 68 65 20 69 6e 64 69  corrupt the indi
6920: 63 65 73 20 6f 6e 20 61 20 74 61 62 6c 65 20 69  ces on a table i
6930: 66 20 79 6f 75 0a 20 20 20 20 64 6f 20 61 6e 20  f you.    do an 
6940: 49 4e 53 45 52 54 20 4f 52 20 52 45 50 4c 41 43  INSERT OR REPLAC
6950: 45 20 6f 72 20 61 6e 20 55 50 44 41 54 45 20 4f  E or an UPDATE O
6960: 52 20 52 45 50 4c 41 43 45 20 6f 6e 20 61 20 74  R REPLACE on a t
6970: 61 62 6c 65 20 74 68 61 74 0a 20 20 20 20 63 6f  able that.    co
6980: 6e 74 61 69 6e 73 20 61 6e 20 49 4e 54 45 47 45  ntains an INTEGE
6990: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 70 6c  R PRIMARY KEY pl
69a0: 75 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69  us one or more i
69b0: 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ndices.</li>.<li
69c0: 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 77 69  >Fix a bug in wi
69d0: 6e 64 6f 77 73 20 6c 6f 63 6b 69 6e 67 20 63 6f  ndows locking co
69e0: 64 65 20 73 6f 20 74 68 61 74 20 6c 6f 63 6b 73  de so that locks
69f0: 20 77 6f 72 6b 20 63 6f 72 72 65 63 74 6c 79 0a   work correctly.
6a00: 20 20 20 20 77 68 65 6e 20 73 69 6d 75 6c 74 61      when simulta
6a10: 6e 65 6f 75 73 6c 79 20 61 63 63 65 73 73 65 64  neously accessed
6a20: 20 62 79 20 57 69 6e 39 35 20 61 6e 64 20 57 69   by Win95 and Wi
6a30: 6e 4e 54 20 73 79 73 74 65 6d 73 2e 3c 2f 6c 69  nNT systems.</li
6a40: 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 61 62  >.<li>Add the ab
6a50: 69 6c 69 74 79 20 66 6f 72 20 49 4e 53 45 52 54  ility for INSERT
6a60: 20 61 6e 64 20 55 50 44 41 54 45 20 73 74 61 74   and UPDATE stat
6a70: 65 6d 65 6e 74 73 20 74 6f 20 72 65 66 65 72 20  ements to refer 
6a80: 74 6f 20 74 68 65 0a 20 20 20 20 22 72 6f 77 69  to the.    "rowi
6a90: 64 22 20 28 6f 72 20 22 5f 72 6f 77 69 64 5f 22  d" (or "_rowid_"
6aa0: 20 6f 72 20 22 6f 69 64 22 29 20 63 6f 6c 75 6d   or "oid") colum
6ab0: 6e 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4f 74 68  ns.</li>.<li>Oth
6ac0: 65 72 20 69 6d 70 6f 72 74 61 6e 74 20 62 75 67  er important bug
6ad0: 20 66 69 78 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63   fixes</li>.}..c
6ae0: 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31 37  hng {2003 May 17
6af0: 20 28 32 2e 38 2e 32 29 7d 20 7b 0a 3c 6c 69 3e   (2.8.2)} {.<li>
6b00: 46 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 74 68  Fix a problem th
6b10: 61 74 20 77 69 6c 6c 20 63 6f 72 72 75 70 74 20  at will corrupt 
6b20: 74 68 65 20 64 61 74 61 62 61 73 65 20 66 69 6c  the database fil
6b30: 65 20 69 66 20 79 6f 75 20 64 72 6f 70 20 61 0a  e if you drop a.
6b40: 20 20 20 20 74 61 62 6c 65 20 66 72 6f 6d 20 74      table from t
6b50: 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65  he main database
6b60: 20 74 68 61 74 20 68 61 73 20 61 20 54 45 4d 50   that has a TEMP
6b70: 20 69 6e 64 65 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a   index.</li>.}..
6b80: 63 68 6e 67 20 7b 32 30 30 33 20 4d 61 79 20 31  chng {2003 May 1
6b90: 36 20 28 32 2e 38 2e 31 29 7d 20 7b 0a 3c 6c 69  6 (2.8.1)} {.<li
6ba0: 3e 52 65 61 63 74 69 76 61 74 65 64 20 74 68 65  >Reactivated the
6bb0: 20 56 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20   VACUUM command 
6bc0: 74 68 61 74 20 72 65 63 6c 61 69 6d 73 20 75 6e  that reclaims un
6bd0: 75 73 65 64 20 64 69 73 6b 20 73 70 61 63 65 20  used disk space 
6be0: 69 6e 20 0a 20 20 20 20 61 20 64 61 74 61 62 61  in .    a databa
6bf0: 73 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  se file.</li>.<l
6c00: 69 3e 41 64 64 65 64 20 74 68 65 20 41 54 54 41  i>Added the ATTA
6c10: 43 48 20 61 6e 64 20 44 45 54 41 43 48 20 63 6f  CH and DETACH co
6c20: 6d 6d 61 6e 64 73 20 74 6f 20 61 6c 6c 6f 77 20  mmands to allow 
6c30: 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74 68  interacting with
6c40: 20 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 64 61   multiple.    da
6c50: 74 61 62 61 73 65 20 66 69 6c 65 73 20 61 74 20  tabase files at 
6c60: 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 2f  the same time.</
6c70: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
6c80: 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 20 74  pport for TEMP t
6c90: 72 69 67 67 65 72 73 20 61 6e 64 20 69 6e 64 69  riggers and indi
6ca0: 63 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64  ces.</li>.<li>Ad
6cb0: 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20  ded support for 
6cc0: 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61  in-memory databa
6cd0: 73 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65  ses.</li>.<li>Re
6ce0: 6d 6f 76 65 64 20 74 68 65 20 65 78 70 65 72 69  moved the experi
6cf0: 6d 65 6e 74 61 6c 20 73 71 6c 69 74 65 5f 6f 70  mental sqlite_op
6d00: 65 6e 5f 61 75 78 5f 66 69 6c 65 28 29 2e 20 20  en_aux_file().  
6d10: 49 74 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a  Its function is.
6d20: 20 20 20 20 73 75 62 73 75 6d 65 64 20 69 6e 20      subsumed in 
6d30: 74 68 65 20 6e 65 77 20 41 54 54 41 43 48 20 63  the new ATTACH c
6d40: 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69  ommand.</li>.<li
6d50: 3e 54 68 65 20 70 72 65 63 65 64 65 6e 63 65 20  >The precedence 
6d60: 6f 72 64 65 72 20 66 6f 72 20 4f 4e 20 43 4f 4e  order for ON CON
6d70: 46 4c 49 43 54 20 63 6c 61 75 73 65 73 20 77 61  FLICT clauses wa
6d80: 73 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61  s changed so tha
6d90: 74 0a 20 20 20 20 4f 4e 20 43 4f 4e 46 4c 49 43  t.    ON CONFLIC
6da0: 54 20 63 6c 61 75 73 65 73 20 6f 6e 20 42 45 47  T clauses on BEG
6db0: 49 4e 20 73 74 61 74 65 6d 65 6e 74 73 20 68 61  IN statements ha
6dc0: 76 65 20 61 20 68 69 67 68 65 72 20 70 72 65 63  ve a higher prec
6dd0: 65 64 65 6e 63 65 20 74 68 61 6e 0a 20 20 20 20  edence than.    
6de0: 4f 4e 20 43 4f 4e 46 4c 49 43 54 20 63 6c 61 75  ON CONFLICT clau
6df0: 73 65 73 20 6f 6e 20 63 6f 6e 73 74 72 61 69 6e  ses on constrain
6e00: 74 73 2e 0a 3c 6c 69 3e 4d 61 6e 79 2c 20 6d 61  ts..<li>Many, ma
6e10: 6e 79 20 62 75 67 20 66 69 78 65 73 20 61 6e 64  ny bug fixes and
6e20: 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 65   compatibility e
6e30: 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69  nhancements.</li
6e40: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 33 20  >.}..chng {2003 
6e50: 46 65 62 20 31 36 20 28 32 2e 38 2e 30 29 7d 20  Feb 16 (2.8.0)} 
6e60: 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74  {.<li>Modified t
6e70: 68 65 20 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20  he journal file 
6e80: 66 6f 72 6d 61 74 20 74 6f 20 6d 61 6b 65 20 69  format to make i
6e90: 74 20 6d 6f 72 65 20 72 65 73 69 73 74 61 6e 74  t more resistant
6ea0: 20 74 6f 20 63 6f 72 72 75 70 74 69 6f 6e 0a 20   to corruption. 
6eb0: 20 20 20 74 68 61 74 20 63 61 6e 20 6f 63 63 75     that can occu
6ec0: 72 20 61 66 74 65 72 20 61 6e 20 4f 53 20 63 72  r after an OS cr
6ed0: 61 73 68 20 6f 72 20 70 6f 77 65 72 20 66 61 69  ash or power fai
6ee0: 6c 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  lure.</li>.<li>A
6ef0: 64 64 65 64 20 61 20 6e 65 77 20 43 2f 43 2b 2b  dded a new C/C++
6f00: 20 41 50 49 20 74 68 61 74 20 64 6f 65 73 20 6e   API that does n
6f10: 6f 74 20 75 73 65 20 63 61 6c 6c 62 61 63 6b 20  ot use callback 
6f20: 66 6f 72 20 72 65 74 75 72 6e 69 6e 67 20 64 61  for returning da
6f30: 74 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ta.</li>.}..chng
6f40: 20 7b 32 30 30 33 20 4a 61 6e 20 32 35 20 28 32   {2003 Jan 25 (2
6f50: 2e 37 2e 36 29 7d 20 7b 0a 3c 6c 69 3e 50 65 72  .7.6)} {.<li>Per
6f60: 66 6f 72 6d 61 6e 63 65 20 69 6d 70 72 6f 76 65  formance improve
6f70: 6d 65 6e 74 73 2e 20 20 54 68 65 20 6c 69 62 72  ments.  The libr
6f80: 61 72 79 20 69 73 20 6e 6f 77 20 6d 75 63 68 20  ary is now much 
6f90: 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69  faster.</li>.<li
6fa0: 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73 71  >Added the <b>sq
6fb0: 6c 69 74 65 5f 73 65 74 5f 61 75 74 68 6f 72 69  lite_set_authori
6fc0: 7a 65 72 28 29 3c 2f 62 3e 20 41 50 49 2e 20 20  zer()</b> API.  
6fd0: 46 6f 72 6d 61 6c 20 64 6f 63 75 6d 65 6e 74 61  Formal documenta
6fe0: 74 69 6f 6e 20 68 61 73 0a 20 20 20 20 6e 6f 74  tion has.    not
6ff0: 20 62 65 65 6e 20 77 72 69 74 74 65 6e 20 2d 20   been written - 
7000: 73 65 65 20 74 68 65 20 73 6f 75 72 63 65 20 63  see the source c
7010: 6f 64 65 20 63 6f 6d 6d 65 6e 74 73 20 66 6f 72  ode comments for
7020: 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6f 6e   instructions on
7030: 0a 20 20 20 20 68 6f 77 20 74 6f 20 75 73 65 20  .    how to use 
7040: 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 3c 2f  this function.</
7050: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75  li>.<li>Fix a bu
7060: 67 20 69 6e 20 74 68 65 20 47 4c 4f 42 20 6f 70  g in the GLOB op
7070: 65 72 61 74 6f 72 20 74 68 61 74 20 77 61 73 20  erator that was 
7080: 70 72 65 76 65 6e 74 69 6e 67 20 69 74 20 66 72  preventing it fr
7090: 6f 6d 20 77 6f 72 6b 69 6e 67 0a 20 20 20 20 77  om working.    w
70a0: 69 74 68 20 75 70 70 65 72 2d 63 61 73 65 20 6c  ith upper-case l
70b0: 65 74 74 65 72 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  etters.</li>.<li
70c0: 3e 56 61 72 69 6f 75 73 20 6d 69 6e 6f 72 20 62  >Various minor b
70d0: 75 67 20 66 69 78 65 73 2e 3c 2f 6c 69 3e 0a 7d  ug fixes.</li>.}
70e0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63  ..chng {2002 Dec
70f0: 20 32 37 20 28 32 2e 37 2e 35 29 7d 20 7b 0a 3c   27 (2.7.5)} {.<
7100: 6c 69 3e 46 69 78 20 61 6e 20 75 6e 69 6e 69 74  li>Fix an uninit
7110: 69 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65  ialized variable
7120: 20 69 6e 20 70 61 67 65 72 2e 63 20 77 68 69 63   in pager.c whic
7130: 68 20 63 6f 75 6c 64 20 28 77 69 74 68 20 61 20  h could (with a 
7140: 70 72 6f 62 61 62 69 6c 69 74 79 0a 20 20 20 20  probability.    
7150: 6f 66 20 61 62 6f 75 74 20 31 20 69 6e 20 34 20  of about 1 in 4 
7160: 62 69 6c 6c 69 6f 6e 29 20 72 65 73 75 6c 74 20  billion) result 
7170: 69 6e 20 61 20 63 6f 72 72 75 70 74 65 64 20 64  in a corrupted d
7180: 61 74 61 62 61 73 65 2e 3c 2f 6c 69 3e 0a 7d 0a  atabase.</li>.}.
7190: 0a 63 68 6e 67 20 7b 32 30 30 32 20 44 65 63 20  .chng {2002 Dec 
71a0: 31 37 20 28 32 2e 37 2e 34 29 7d 20 7b 0a 3c 6c  17 (2.7.4)} {.<l
71b0: 69 3e 44 61 74 61 62 61 73 65 20 66 69 6c 65 73  i>Database files
71c0: 20 63 61 6e 20 6e 6f 77 20 67 72 6f 77 20 74 6f   can now grow to
71d0: 20 62 65 20 75 70 20 74 6f 20 32 5e 34 31 20 62   be up to 2^41 b
71e0: 79 74 65 73 2e 20 20 54 68 65 20 6f 6c 64 20 6c  ytes.  The old l
71f0: 69 6d 69 74 0a 20 20 20 20 77 61 73 20 32 5e 33  imit.    was 2^3
7200: 31 20 62 79 74 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  1 bytes.</li>.<l
7210: 69 3e 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20  i>The optimizer 
7220: 77 69 6c 6c 20 6e 6f 77 20 73 63 61 6e 20 74 61  will now scan ta
7230: 62 6c 65 73 20 69 6e 20 74 68 65 20 72 65 76 65  bles in the reve
7240: 72 73 65 20 69 66 20 64 6f 69 6e 67 20 73 6f 20  rse if doing so 
7250: 77 69 6c 6c 0a 20 20 20 20 73 61 74 69 73 66 79  will.    satisfy
7260: 20 61 6e 20 4f 52 44 45 52 20 42 59 20 2e 2e 2e   an ORDER BY ...
7270: 20 44 45 53 43 20 63 6c 61 75 73 65 2e 3c 2f 6c   DESC clause.</l
7280: 69 3e 0a 3c 6c 69 3e 54 68 65 20 66 75 6c 6c 20  i>.<li>The full 
7290: 70 61 74 68 6e 61 6d 65 20 6f 66 20 74 68 65 20  pathname of the 
72a0: 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69 73  database file is
72b0: 20 6e 6f 77 20 72 65 6d 65 6d 62 65 72 65 64 20   now remembered 
72c0: 65 76 65 6e 20 69 66 0a 20 20 20 20 61 20 72 65  even if.    a re
72d0: 6c 61 74 69 76 65 20 70 61 74 68 20 69 73 20 70  lative path is p
72e0: 61 73 73 65 64 20 69 6e 74 6f 20 73 71 6c 69 74  assed into sqlit
72f0: 65 5f 6f 70 65 6e 28 29 2e 20 20 54 68 69 73 20  e_open().  This 
7300: 61 6c 6c 6f 77 73 20 0a 20 20 20 20 74 68 65 20  allows .    the 
7310: 6c 69 62 72 61 72 79 20 74 6f 20 63 6f 6e 74 69  library to conti
7320: 6e 75 65 20 6f 70 65 72 61 74 69 6e 67 20 63 6f  nue operating co
7330: 72 72 65 63 74 6c 79 20 61 66 74 65 72 20 61 20  rrectly after a 
7340: 63 68 64 69 72 28 29 2e 3c 2f 6c 69 3e 0a 3c 6c  chdir().</li>.<l
7350: 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76 65 6d  i>Speed improvem
7360: 65 6e 74 73 20 69 6e 20 74 68 65 20 56 44 42 45  ents in the VDBE
7370: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4c 6f 74 73 20  .</li>.<li>Lots 
7380: 6f 66 20 6c 69 74 74 6c 65 20 62 75 67 20 66 69  of little bug fi
7390: 78 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  xes.</li>.}..chn
73a0: 67 20 7b 32 30 30 32 20 4f 63 74 20 33 30 20 28  g {2002 Oct 30 (
73b0: 32 2e 37 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 56 61  2.7.3)} {.<li>Va
73c0: 72 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72 20 63  rious compiler c
73d0: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 66 69 78  ompatibility fix
73e0: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
73f0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 65   a bug in the "e
7400: 78 70 72 20 49 4e 20 28 29 22 20 6f 70 65 72 61  xpr IN ()" opera
7410: 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 63  tor.</li>.<li>Ac
7420: 63 65 70 74 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  cept column name
7430: 73 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73  s in parentheses
7440: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
7450: 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 73 74   problem with st
7460: 72 69 6e 67 20 6d 65 6d 6f 72 79 20 6d 61 6e 61  ring memory mana
7470: 67 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 56 44  gement in the VD
7480: 42 45 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  BE</li>.<li>Fix 
7490: 61 20 62 75 67 20 69 6e 20 74 68 65 20 22 74 61  a bug in the "ta
74a0: 62 6c 65 5f 69 6e 66 6f 22 20 70 72 61 67 6d 61  ble_info" pragma
74b0: 22 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70 6f 72  "</li>.<li>Expor
74c0: 74 20 74 68 65 20 73 71 6c 69 74 65 5f 66 75 6e  t the sqlite_fun
74d0: 63 74 69 6f 6e 5f 74 79 70 65 28 29 20 41 50 49  ction_type() API
74e0: 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65   function in the
74f0: 20 57 69 6e 64 6f 77 73 20 44 4c 4c 3c 2f 6c 69   Windows DLL</li
7500: 3e 0a 3c 6c 69 3e 46 69 78 20 6c 6f 63 6b 69 6e  >.<li>Fix lockin
7510: 67 20 62 65 68 61 76 69 6f 72 20 75 6e 64 65 72  g behavior under
7520: 20 77 69 6e 64 6f 77 73 3c 2f 6c 69 3e 0a 3c 6c   windows</li>.<l
7530: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 4c  i>Fix a bug in L
7540: 45 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f  EFT OUTER JOIN</
7550: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
7560: 32 20 53 65 70 20 32 35 20 28 32 2e 37 2e 32 29  2 Sep 25 (2.7.2)
7570: 7d 20 7b 0a 3c 6c 69 3e 50 72 65 76 65 6e 74 20  } {.<li>Prevent 
7580: 6a 6f 75 72 6e 61 6c 20 66 69 6c 65 20 6f 76 65  journal file ove
7590: 72 66 6c 6f 77 73 20 6f 6e 20 68 75 67 65 20 74  rflows on huge t
75a0: 72 61 6e 73 61 63 74 69 6f 6e 73 2e 3c 2f 6c 69  ransactions.</li
75b0: 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 6d 65 6d 6f  >.<li>Fix a memo
75c0: 72 79 20 6c 65 61 6b 20 74 68 61 74 20 6f 63 63  ry leak that occ
75d0: 75 72 72 65 64 20 77 68 65 6e 20 73 71 6c 69 74  urred when sqlit
75e0: 65 5f 6f 70 65 6e 28 29 20 66 61 69 6c 65 64 2e  e_open() failed.
75f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 48 6f 6e 6f 72 20  </li>.<li>Honor 
7600: 74 68 65 20 4f 52 44 45 52 20 42 59 20 61 6e 64  the ORDER BY and
7610: 20 4c 49 4d 49 54 20 63 6c 61 75 73 65 20 6f 66   LIMIT clause of
7620: 20 61 20 53 45 4c 45 43 54 20 65 76 65 6e 20 69   a SELECT even i
7630: 66 20 74 68 65 0a 20 20 20 20 72 65 73 75 6c 74  f the.    result
7640: 20 73 65 74 20 69 73 20 75 73 65 64 20 66 6f 72   set is used for
7650: 20 61 6e 20 49 4e 53 45 52 54 2e 3c 2f 6c 69 3e   an INSERT.</li>
7660: 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20 70 75 74 20  .<li>Do not put 
7670: 77 72 69 74 65 20 6c 6f 63 6b 73 20 6f 6e 20 74  write locks on t
7680: 68 65 20 66 69 6c 65 20 75 73 65 64 20 74 6f 20  he file used to 
7690: 68 6f 6c 64 20 54 45 4d 50 20 74 61 62 6c 65 73  hold TEMP tables
76a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
76b0: 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f   documentation o
76c0: 6e 20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  n SELECT DISTINC
76d0: 54 20 61 6e 64 20 6f 6e 20 68 6f 77 20 53 51 4c  T and on how SQL
76e0: 69 74 65 20 68 61 6e 64 6c 65 73 20 4e 55 4c 4c  ite handles NULL
76f0: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20  s.</li>.<li>Fix 
7700: 61 20 70 72 6f 62 6c 65 6d 20 74 68 61 74 20 77  a problem that w
7710: 61 73 20 63 61 75 73 69 6e 67 20 70 6f 6f 72 20  as causing poor 
7720: 70 65 72 66 6f 72 6d 61 6e 63 65 20 77 68 65 6e  performance when
7730: 20 6d 61 6e 79 20 74 68 6f 75 73 61 6e 64 73 0a   many thousands.
7740: 20 20 20 20 6f 66 20 53 51 4c 20 73 74 61 74 65      of SQL state
7750: 6d 65 6e 74 73 20 77 65 72 65 20 65 78 65 63 75  ments were execu
7760: 74 65 64 20 62 79 20 61 20 73 69 6e 67 6c 65 20  ted by a single 
7770: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 20 63 61  sqlite_exec() ca
7780: 6c 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ll.</li>.}..chng
7790: 20 7b 32 30 30 32 20 41 75 67 20 33 31 20 28 32   {2002 Aug 31 (2
77a0: 2e 37 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78  .7.1)} {.<li>Fix
77b0: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 4f 52   a bug in the OR
77c0: 44 45 52 20 42 59 20 6c 6f 67 69 63 20 74 68 61  DER BY logic tha
77d0: 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65 64  t was introduced
77e0: 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 37 2e   in version 2.7.
77f0: 30 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 2d 73 74 79  0</li>.<li>C-sty
7800: 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 61 72 65 20  le comments are 
7810: 6e 6f 77 20 61 63 63 65 70 74 65 64 20 62 79 20  now accepted by 
7820: 74 68 65 20 74 6f 6b 65 6e 69 7a 65 72 2e 3c 2f  the tokenizer.</
7830: 6c 69 3e 0a 3c 6c 69 3e 49 4e 53 45 52 54 20 72  li>.<li>INSERT r
7840: 75 6e 73 20 61 20 6c 69 74 74 6c 65 20 66 61 73  uns a little fas
7850: 74 65 72 20 77 68 65 6e 20 74 68 65 20 73 6f 75  ter when the sou
7860: 72 63 65 20 69 73 20 61 20 53 45 4c 45 43 54 20  rce is a SELECT 
7870: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
7880: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 75  }..chng {2002 Au
7890: 67 20 32 35 20 28 32 2e 37 2e 30 29 7d 20 7b 0a  g 25 (2.7.0)} {.
78a0: 3c 6c 69 3e 4d 61 6b 65 20 61 20 64 69 73 74 69  <li>Make a disti
78b0: 6e 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 6e  nction between n
78c0: 75 6d 65 72 69 63 20 61 6e 64 20 74 65 78 74 20  umeric and text 
78d0: 76 61 6c 75 65 73 20 77 68 65 6e 20 73 6f 72 74  values when sort
78e0: 69 6e 67 2e 0a 20 20 20 20 54 65 78 74 20 76 61  ing..    Text va
78f0: 6c 75 65 73 20 73 6f 72 74 20 61 63 63 6f 72 64  lues sort accord
7900: 69 6e 67 20 74 6f 20 6d 65 6d 63 6d 70 28 29 2e  ing to memcmp().
7910: 20 20 4e 75 6d 65 72 69 63 20 76 61 6c 75 65 73    Numeric values
7920: 20 73 6f 72 74 20 69 6e 0a 20 20 20 20 6e 75 6d   sort in.    num
7930: 65 72 69 63 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e  eric order.</li>
7940: 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 6d 75 6c 74 69  .<li>Allow multi
7950: 70 6c 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73  ple simultaneous
7960: 20 72 65 61 64 65 72 73 20 75 6e 64 65 72 20 77   readers under w
7970: 69 6e 64 6f 77 73 20 62 79 20 73 69 6d 75 6c 61  indows by simula
7980: 74 69 6e 67 0a 20 20 20 20 74 68 65 20 72 65 61  ting.    the rea
7990: 64 65 72 2f 77 72 69 74 65 72 73 20 6c 6f 63 6b  der/writers lock
79a0: 73 20 74 68 61 74 20 61 72 65 20 6d 69 73 73 69  s that are missi
79b0: 6e 67 20 66 72 6f 6d 20 57 69 6e 39 35 2f 39 38  ng from Win95/98
79c0: 2f 4d 45 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6e  /ME.</li>.<li>An
79d0: 20 65 72 72 6f 72 20 69 73 20 6e 6f 77 20 72 65   error is now re
79e0: 74 75 72 6e 65 64 20 77 68 65 6e 20 74 72 79 69  turned when tryi
79f0: 6e 67 20 74 6f 20 73 74 61 72 74 20 61 20 74 72  ng to start a tr
7a00: 61 6e 73 61 63 74 69 6f 6e 20 69 66 0a 20 20 20  ansaction if.   
7a10: 20 61 6e 6f 74 68 65 72 20 74 72 61 6e 73 61 63   another transac
7a20: 74 69 6f 6e 20 69 73 20 61 6c 72 65 61 64 79 20  tion is already 
7a30: 61 63 74 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  active.</li>.}..
7a40: 63 68 6e 67 20 7b 32 30 30 32 20 41 75 67 20 31  chng {2002 Aug 1
7a50: 32 20 28 32 2e 36 2e 33 29 7d 20 7b 0a 3c 6c 69  2 (2.6.3)} {.<li
7a60: 3e 41 64 64 20 74 68 65 20 61 62 69 6c 69 74 79  >Add the ability
7a70: 20 74 6f 20 72 65 61 64 20 62 6f 74 68 20 6c 69   to read both li
7a80: 74 74 6c 65 2d 65 6e 64 69 61 6e 20 61 6e 64 20  ttle-endian and 
7a90: 62 69 67 2d 65 6e 64 69 61 6e 20 64 61 74 61 62  big-endian datab
7aa0: 61 73 65 73 2e 0a 20 20 20 20 53 6f 20 64 61 74  ases..    So dat
7ab0: 61 62 61 73 65 20 63 72 65 61 74 65 64 20 75 6e  abase created un
7ac0: 64 65 72 20 53 75 6e 4f 53 20 6f 72 20 4d 61 63  der SunOS or Mac
7ad0: 4f 53 58 20 63 61 6e 20 62 65 20 72 65 61 64 20  OSX can be read 
7ae0: 61 6e 64 20 77 72 69 74 74 65 6e 0a 20 20 20 20  and written.    
7af0: 75 6e 64 65 72 20 4c 69 6e 75 78 20 6f 72 20 57  under Linux or W
7b00: 69 6e 64 6f 77 73 20 61 6e 64 20 76 69 63 65 20  indows and vice 
7b10: 76 65 72 73 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  versa.</li>.<li>
7b20: 43 6f 6e 76 65 72 74 20 74 6f 20 74 68 65 20 6e  Convert to the n
7b30: 65 77 20 77 65 62 73 69 74 65 3a 20 68 74 74 70  ew website: http
7b40: 3a 2f 2f 77 77 77 2e 73 71 6c 69 74 65 2e 6f 72  ://www.sqlite.or
7b50: 67 2f 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f  g/</li>.<li>Allo
7b60: 77 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74  w transactions t
7b70: 6f 20 73 70 61 6e 20 4c 69 6e 75 78 20 54 68 72  o span Linux Thr
7b80: 65 61 64 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  eads</li>.<li>Bu
7b90: 67 20 66 69 78 20 69 6e 20 74 68 65 20 70 72 6f  g fix in the pro
7ba0: 63 65 73 73 69 6e 67 20 6f 66 20 74 68 65 20 4f  cessing of the O
7bb0: 52 44 45 52 20 42 59 20 63 6c 61 75 73 65 20 66  RDER BY clause f
7bc0: 6f 72 20 47 52 4f 55 50 20 42 59 20 71 75 65 72  or GROUP BY quer
7bd0: 69 65 73 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ies</li>.}..chng
7be0: 20 7b 32 30 30 32 20 4a 6c 79 20 33 30 20 28 32   {2002 Jly 30 (2
7bf0: 2e 36 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 54 65 78  .6.2)} {.<li>Tex
7c00: 74 20 66 69 6c 65 73 20 72 65 61 64 20 62 79 20  t files read by 
7c10: 74 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64  the COPY command
7c20: 20 63 61 6e 20 6e 6f 77 20 68 61 76 65 20 6c 69   can now have li
7c30: 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 73 0a 20  ne terminators. 
7c40: 20 20 20 6f 66 20 4c 46 2c 20 20 43 52 4c 46 2c     of LF,  CRLF,
7c50: 20 6f 72 20 43 52 2e 3c 2f 6c 69 3e 0a 3c 6c 69   or CR.</li>.<li
7c60: 3e 53 51 4c 49 54 45 5f 42 55 53 59 20 69 73 20  >SQLITE_BUSY is 
7c70: 68 61 6e 64 6c 65 64 20 63 6f 72 72 65 63 74 6c  handled correctl
7c80: 79 20 69 66 20 65 6e 63 6f 75 6e 74 65 72 65 64  y if encountered
7c90: 20 64 75 72 69 6e 67 20 64 61 74 61 62 61 73 65   during database
7ca0: 0a 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 61 74  .    initializat
7cb0: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  ion.</li>.<li>Fi
7cc0: 78 20 74 6f 20 55 50 44 41 54 45 20 74 72 69 67  x to UPDATE trig
7cd0: 67 65 72 73 20 6f 6e 20 54 45 4d 50 20 74 61 62  gers on TEMP tab
7ce0: 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f  les.</li>.<li>Do
7cf0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
7d00: 74 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tes.</li>.}..chn
7d10: 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 39 20 28  g {2002 Jly 19 (
7d20: 32 2e 36 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 49 6e  2.6.1)} {.<li>In
7d30: 63 6c 75 64 65 20 61 20 73 74 61 74 69 63 20 73  clude a static s
7d40: 74 72 69 6e 67 20 69 6e 20 74 68 65 20 6c 69 62  tring in the lib
7d50: 72 61 72 79 20 74 68 61 74 20 72 65 73 70 6f 6e  rary that respon
7d60: 64 73 20 74 6f 20 74 68 65 20 52 43 53 0a 20 20  ds to the RCS.  
7d70: 20 20 22 69 64 65 6e 74 22 20 63 6f 6d 6d 61 6e    "ident" comman
7d80: 64 20 61 6e 64 20 77 68 69 63 68 20 63 6f 6e 74  d and which cont
7d90: 61 69 6e 73 20 74 68 65 20 6c 69 62 72 61 72 79  ains the library
7da0: 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e   version number.
7db0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 6e  </li>.<li>Fix an
7dc0: 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75   assertion failu
7dd0: 72 65 20 74 68 61 74 20 6f 63 63 75 72 72 65 64  re that occurred
7de0: 20 77 68 65 6e 20 64 65 6c 65 74 69 6e 67 20 61   when deleting a
7df0: 6c 6c 20 72 6f 77 73 20 6f 66 0a 20 20 20 20 61  ll rows of.    a
7e00: 20 74 61 62 6c 65 20 77 69 74 68 20 74 68 65 20   table with the 
7e10: 22 63 6f 75 6e 74 5f 63 68 61 6e 67 65 73 22 20  "count_changes" 
7e20: 70 72 61 67 6d 61 20 74 75 72 6e 65 64 20 6f 6e  pragma turned on
7e30: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 65 74 74 65  .</li>.<li>Bette
7e40: 72 20 65 72 72 6f 72 20 72 65 70 6f 72 74 69 6e  r error reportin
7e50: 67 20 77 68 65 6e 20 70 72 6f 62 6c 65 6d 73 20  g when problems 
7e60: 6f 63 63 75 72 20 64 75 72 69 6e 67 20 74 68 65  occur during the
7e70: 20 61 75 74 6f 6d 61 74 69 63 0a 20 20 20 20 32   automatic.    2
7e80: 2e 35 2e 36 20 74 6f 20 32 2e 36 2e 30 20 64 61  .5.6 to 2.6.0 da
7e90: 74 61 62 61 73 65 20 66 6f 72 6d 61 74 20 75 70  tabase format up
7ea0: 67 72 61 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  grade.</li>.}..c
7eb0: 68 6e 67 20 7b 32 30 30 32 20 4a 6c 79 20 31 37  hng {2002 Jly 17
7ec0: 20 28 32 2e 36 2e 30 29 7d 20 7b 0a 3c 6c 69 3e   (2.6.0)} {.<li>
7ed0: 43 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61  Change the forma
7ee0: 74 20 6f 66 20 69 6e 64 69 63 65 73 20 74 6f 20  t of indices to 
7ef0: 63 6f 72 72 65 63 74 20 61 20 64 65 73 69 67 6e  correct a design
7f00: 20 66 6c 61 77 20 74 68 65 20 6f 72 69 67 69 6e   flaw the origin
7f10: 61 74 65 64 0a 20 20 20 20 77 69 74 68 20 76 65  ated.    with ve
7f20: 72 73 69 6f 6e 20 32 2e 31 2e 30 2e 20 20 3c 66  rsion 2.1.0.  <f
7f30: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e  ont color="red">
7f40: 2a 2a 2a 20 54 68 69 73 20 69 73 20 61 6e 20 69  *** This is an i
7f50: 6e 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20 20 20  ncompatible.    
7f60: 66 69 6c 65 20 66 6f 72 6d 61 74 20 63 68 61 6e  file format chan
7f70: 67 65 20 2a 2a 2a 3c 2f 66 6f 6e 74 3e 20 20 57  ge ***</font>  W
7f80: 68 65 6e 20 76 65 72 73 69 6f 6e 20 32 2e 36 2e  hen version 2.6.
7f90: 30 20 6f 72 20 6c 61 74 65 72 20 6f 66 20 74 68  0 or later of th
7fa0: 65 0a 20 20 20 20 6c 69 62 72 61 72 79 20 61 74  e.    library at
7fb0: 74 65 6d 70 74 73 20 74 6f 20 6f 70 65 6e 20 61  tempts to open a
7fc0: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 63   database file c
7fd0: 72 65 61 74 65 64 20 62 79 20 76 65 72 73 69 6f  reated by versio
7fe0: 6e 20 32 2e 35 2e 36 20 6f 72 0a 20 20 20 20 65  n 2.5.6 or.    e
7ff0: 61 72 6c 69 65 72 2c 20 69 74 20 77 69 6c 6c 20  arlier, it will 
8000: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 6e  automatically an
8010: 64 20 69 72 72 65 76 65 72 73 69 62 6c 79 20 63  d irreversibly c
8020: 6f 6e 76 65 72 74 20 74 68 65 20 66 69 6c 65 20  onvert the file 
8030: 66 6f 72 6d 61 74 2e 0a 20 20 20 20 3c 62 3e 4d  format..    <b>M
8040: 61 6b 65 20 62 61 63 6b 75 70 20 63 6f 70 69 65  ake backup copie
8050: 73 20 6f 66 20 6f 6c 64 65 72 20 64 61 74 61 62  s of older datab
8060: 61 73 65 20 66 69 6c 65 73 20 62 65 66 6f 72 65  ase files before
8070: 20 6f 70 65 6e 69 6e 67 20 74 68 65 6d 20 77 69   opening them wi
8080: 74 68 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 32  th.    version 2
8090: 2e 36 2e 30 20 6f 66 20 74 68 65 20 6c 69 62 72  .6.0 of the libr
80a0: 61 72 79 2e 3c 2f 62 3e 0a 20 20 20 20 3c 2f 6c  ary.</b>.    </l
80b0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32  i>.}..chng {2002
80c0: 20 4a 6c 79 20 37 20 28 32 2e 35 2e 36 29 7d 20   Jly 7 (2.5.6)} 
80d0: 7b 0a 3c 6c 69 3e 46 69 78 20 6d 6f 72 65 20 70  {.<li>Fix more p
80e0: 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 72 6f 6c  roblems with rol
80f0: 6c 62 61 63 6b 2e 20 20 45 6e 68 61 6e 63 65 20  lback.  Enhance 
8100: 74 68 65 20 74 65 73 74 20 73 75 69 74 65 20 74  the test suite t
8110: 6f 20 65 78 65 72 63 69 73 65 0a 20 20 20 20 74  o exercise.    t
8120: 68 65 20 72 6f 6c 6c 62 61 63 6b 20 6c 6f 67 69  he rollback logi
8130: 63 20 65 78 74 65 6e 73 69 76 65 6c 79 20 69 6e  c extensively in
8140: 20 6f 72 64 65 72 20 74 6f 20 70 72 65 76 65 6e   order to preven
8150: 74 20 61 6e 79 20 66 75 74 75 72 65 20 70 72 6f  t any future pro
8160: 62 6c 65 6d 73 2e 0a 20 20 20 20 3c 2f 6c 69 3e  blems..    </li>
8170: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a  .}..chng {2002 J
8180: 6c 79 20 36 20 28 32 2e 35 2e 35 29 7d 20 7b 0a  ly 6 (2.5.5)} {.
8190: 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20 77 68  <li>Fix a bug wh
81a0: 69 63 68 20 63 6f 75 6c 64 20 63 61 75 73 65 20  ich could cause 
81b0: 64 61 74 61 62 61 73 65 20 63 6f 72 72 75 70 74  database corrupt
81c0: 69 6f 6e 20 64 75 72 69 6e 67 20 61 20 72 6f 6c  ion during a rol
81d0: 6c 62 61 63 6b 2e 0a 20 20 20 20 54 68 69 73 20  lback..    This 
81e0: 62 75 67 73 20 77 61 73 20 69 6e 74 72 6f 64 75  bugs was introdu
81f0: 63 65 64 20 69 6e 20 76 65 72 73 69 6f 6e 20 32  ced in version 2
8200: 2e 34 2e 30 20 62 79 20 74 68 65 20 66 72 65 65  .4.0 by the free
8210: 6c 69 73 74 0a 20 20 20 20 6f 70 74 69 6d 69 7a  list.    optimiz
8220: 61 74 69 6f 6e 20 6f 66 20 63 68 65 63 6b 69 6e  ation of checkin
8230: 67 20 5b 34 31 30 5d 2e 3c 2f 6c 69 3e 0a 3c 6c  g [410].</li>.<l
8240: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 61  i>Fix a bug in a
8250: 67 67 72 65 67 61 74 65 20 66 75 6e 63 74 69 6f  ggregate functio
8260: 6e 73 20 66 6f 72 20 56 49 45 57 73 2e 3c 2f 6c  ns for VIEWs.</l
8270: 69 3e 0a 3c 6c 69 3e 4f 74 68 65 72 20 6d 69 6e  i>.<li>Other min
8280: 6f 72 20 63 68 61 6e 67 65 73 20 61 6e 64 20 65  or changes and e
8290: 6e 68 61 6e 63 65 6d 65 6e 74 73 2e 3c 2f 6c 69  nhancements.</li
82a0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20  >.}..chng {2002 
82b0: 4a 6c 79 20 31 20 28 32 2e 35 2e 34 29 7d 20 7b  Jly 1 (2.5.4)} {
82c0: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 22 41  .<li>Make the "A
82d0: 53 22 20 6b 65 79 77 6f 72 64 20 6f 70 74 69 6f  S" keyword optio
82e0: 6e 61 6c 20 61 67 61 69 6e 2e 3c 2f 6c 69 3e 0a  nal again.</li>.
82f0: 3c 6c 69 3e 54 68 65 20 64 61 74 61 74 79 70 65  <li>The datatype
8300: 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 6e 6f 77 20   of columns now 
8310: 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 34 74  appear in the 4t
8320: 68 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68  h argument to th
8330: 65 0a 20 20 20 20 63 61 6c 6c 62 61 63 6b 2e 3c  e.    callback.<
8340: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74  /li>.<li>Added t
8350: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 6f 70 65  he <b>sqlite_ope
8360: 6e 5f 61 75 78 5f 66 69 6c 65 28 29 3c 2f 62 3e  n_aux_file()</b>
8370: 20 41 50 49 2c 20 74 68 6f 75 67 68 20 69 74 20   API, though it 
8380: 69 73 20 73 74 69 6c 6c 0a 20 20 20 20 6d 6f 73  is still.    mos
8390: 74 6c 79 20 75 6e 64 6f 63 75 6d 65 6e 74 65 64  tly undocumented
83a0: 20 61 6e 64 20 75 6e 74 65 73 74 65 64 2e 3c 2f   and untested.</
83b0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 61 64  li>.<li>Added ad
83c0: 64 69 74 69 6f 6e 61 6c 20 74 65 73 74 20 63 61  ditional test ca
83d0: 73 65 73 20 61 6e 64 20 66 69 78 65 64 20 61 20  ses and fixed a 
83e0: 66 65 77 20 62 75 67 73 20 74 68 61 74 20 74 68  few bugs that th
83f0: 6f 73 65 0a 20 20 20 20 74 65 73 74 20 63 61 73  ose.    test cas
8400: 65 73 20 66 6f 75 6e 64 2e 3c 2f 6c 69 3e 0a 7d  es found.</li>.}
8410: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 75 6e  ..chng {2002 Jun
8420: 20 32 34 20 28 32 2e 35 2e 33 29 7d 20 7b 0a 3c   24 (2.5.3)} {.<
8430: 6c 69 3e 42 75 67 20 66 69 78 3a 20 20 44 61 74  li>Bug fix:  Dat
8440: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
8450: 20 63 61 6e 20 6f 63 63 75 72 20 64 75 65 20 74   can occur due t
8460: 6f 20 74 68 65 20 6f 70 74 69 6d 69 7a 61 74 69  o the optimizati
8470: 6f 6e 0a 20 20 20 20 74 68 61 74 20 77 61 73 20  on.    that was 
8480: 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 76 65  introduced in ve
8490: 72 73 69 6f 6e 20 32 2e 34 2e 30 20 28 63 68 65  rsion 2.4.0 (che
84a0: 63 6b 2d 69 6e 20 5b 34 31 30 5d 29 2e 20 20 54  ck-in [410]).  T
84b0: 68 65 20 70 72 6f 62 6c 65 6d 0a 20 20 20 20 73  he problem.    s
84c0: 68 6f 75 6c 64 20 6e 6f 77 20 62 65 20 66 69 78  hould now be fix
84d0: 65 64 2e 20 20 54 68 65 20 75 73 65 20 6f 66 20  ed.  The use of 
84e0: 76 65 72 73 69 6f 6e 73 20 32 2e 34 2e 30 20 74  versions 2.4.0 t
84f0: 68 72 6f 75 67 68 20 32 2e 35 2e 32 20 69 73 0a  hrough 2.5.2 is.
8500: 20 20 20 20 6e 6f 74 20 72 65 63 6f 6d 6d 65 6e      not recommen
8510: 64 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ded.</li>.}..chn
8520: 67 20 7b 32 30 30 32 20 4a 75 6e 20 32 34 20 28  g {2002 Jun 24 (
8530: 32 2e 35 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.5.2)} {.<li>Ad
8540: 64 65 64 20 74 68 65 20 6e 65 77 20 3c 62 3e 53  ded the new <b>S
8550: 51 4c 49 54 45 5f 54 45 4d 50 5f 4d 41 53 54 45  QLITE_TEMP_MASTE
8560: 52 3c 2f 62 3e 20 74 61 62 6c 65 20 77 68 69 63  R</b> table whic
8570: 68 20 72 65 63 6f 72 64 73 20 74 68 65 20 73 63  h records the sc
8580: 68 65 6d 61 0a 20 20 20 20 66 6f 72 20 74 65 6d  hema.    for tem
8590: 70 6f 72 61 72 79 20 74 61 62 6c 65 73 20 69 6e  porary tables in
85a0: 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68   the same way th
85b0: 61 74 20 3c 62 3e 53 51 4c 49 54 45 5f 4d 41 53  at <b>SQLITE_MAS
85c0: 54 45 52 3c 2f 62 3e 20 64 6f 65 73 20 66 6f 72  TER</b> does for
85d0: 0a 20 20 20 20 70 65 72 73 69 73 74 65 6e 74 20  .    persistent 
85e0: 74 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69  tables.</li>.<li
85f0: 3e 41 64 64 65 64 20 61 6e 20 6f 70 74 69 6d 69  >Added an optimi
8600: 7a 61 74 69 6f 6e 20 74 6f 20 55 4e 49 4f 4e 20  zation to UNION 
8610: 41 4c 4c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  ALL</li>.<li>Fix
8620: 65 64 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ed a bug in the 
8630: 70 72 6f 63 65 73 73 69 6e 67 20 6f 66 20 4c 45  processing of LE
8640: 46 54 20 4f 55 54 45 52 20 4a 4f 49 4e 3c 2f 6c  FT OUTER JOIN</l
8650: 69 3e 0a 3c 6c 69 3e 54 68 65 20 4c 49 4d 49 54  i>.<li>The LIMIT
8660: 20 63 6c 61 75 73 65 20 6e 6f 77 20 77 6f 72 6b   clause now work
8670: 73 20 6f 6e 20 73 75 62 73 65 6c 65 63 74 73 3c  s on subselects<
8680: 2f 6c 69 3e 0a 3c 6c 69 3e 4f 52 44 45 52 20 42  /li>.<li>ORDER B
8690: 59 20 77 6f 72 6b 73 20 6f 6e 20 73 75 62 73 65  Y works on subse
86a0: 6c 65 63 74 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  lects</li>.<li>T
86b0: 68 65 72 65 20 69 73 20 61 20 6e 65 77 20 54 79  here is a new Ty
86c0: 70 65 4f 66 28 29 20 66 75 6e 63 74 69 6f 6e 20  peOf() function 
86d0: 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69 6e  used to determin
86e0: 65 20 69 66 20 61 6e 20 65 78 70 72 65 73 73 69  e if an expressi
86f0: 6f 6e 0a 20 20 20 20 69 73 20 6e 75 6d 65 72 69  on.    is numeri
8700: 63 20 6f 72 20 74 65 78 74 2e 3c 2f 6c 69 3e 0a  c or text.</li>.
8710: 3c 6c 69 3e 41 75 74 6f 69 6e 63 72 65 6d 65 6e  <li>Autoincremen
8720: 74 20 6e 6f 77 20 77 6f 72 6b 73 20 66 6f 72 20  t now works for 
8730: 49 4e 53 45 52 54 20 66 72 6f 6d 20 61 20 53 45  INSERT from a SE
8740: 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  LECT.</li>.}..ch
8750: 6e 67 20 7b 32 30 30 32 20 4a 75 6e 20 31 39 20  ng {2002 Jun 19 
8760: 28 32 2e 35 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 54  (2.5.1)} {.<li>T
8770: 68 65 20 71 75 65 72 79 20 6f 70 74 69 6d 69 7a  he query optimiz
8780: 65 72 20 6e 6f 77 20 61 74 74 65 6d 70 74 73 20  er now attempts 
8790: 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 65  to implement the
87a0: 20 4f 52 44 45 52 20 42 59 20 63 6c 61 75 73 65   ORDER BY clause
87b0: 0a 20 20 20 20 75 73 69 6e 67 20 61 6e 20 69 6e  .    using an in
87c0: 64 65 78 2e 20 20 53 6f 72 74 69 6e 67 20 69 73  dex.  Sorting is
87d0: 20 73 74 69 6c 6c 20 75 73 65 64 20 69 66 20 6e   still used if n
87e0: 6f 74 20 73 75 69 74 61 62 6c 65 20 69 6e 64 65  ot suitable inde
87f0: 78 20 69 73 0a 20 20 20 20 61 76 61 69 6c 61 62  x is.    availab
8800: 6c 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  le.</li>.}..chng
8810: 20 7b 32 30 30 32 20 4a 75 6e 20 31 37 20 28 32   {2002 Jun 17 (2
8820: 2e 35 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .5.0)} {.<li>Add
8830: 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72  ed support for r
8840: 6f 77 20 74 72 69 67 67 65 72 73 2e 3c 2f 6c 69  ow triggers.</li
8850: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 53 51 4c 2d  >.<li>Added SQL-
8860: 39 32 20 63 6f 6d 70 6c 69 61 6e 74 20 68 61 6e  92 compliant han
8870: 64 6c 69 6e 67 20 6f 66 20 4e 55 4c 4c 73 2e 3c  dling of NULLs.<
8880: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 73 75 70  /li>.<li>Add sup
8890: 70 6f 72 74 20 66 6f 72 20 74 68 65 20 66 75 6c  port for the ful
88a0: 6c 20 53 51 4c 2d 39 32 20 6a 6f 69 6e 20 73 79  l SQL-92 join sy
88b0: 6e 74 61 78 20 61 6e 64 20 4c 45 46 54 20 4f 55  ntax and LEFT OU
88c0: 54 45 52 20 4a 4f 49 4e 73 2e 3c 2f 6c 69 3e 0a  TER JOINs.</li>.
88d0: 3c 6c 69 3e 44 6f 75 62 6c 65 2d 71 75 6f 74 65  <li>Double-quote
88e0: 64 20 73 74 72 69 6e 67 73 20 69 6e 74 65 72 70  d strings interp
88f0: 72 65 74 65 64 20 61 73 20 63 6f 6c 75 6d 6e 20  reted as column 
8900: 6e 61 6d 65 73 20 6e 6f 74 20 74 65 78 74 20 6c  names not text l
8910: 69 74 65 72 61 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c  iterals.</li>.<l
8920: 69 3e 50 61 72 73 65 20 28 62 75 74 20 64 6f 20  i>Parse (but do 
8930: 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 29 20 66  not implement) f
8940: 6f 72 65 69 67 6e 20 6b 65 79 73 2e 3c 2f 6c 69  oreign keys.</li
8950: 3e 0a 3c 6c 69 3e 50 65 72 66 6f 72 6d 61 6e 63  >.<li>Performanc
8960: 65 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69  e improvements i
8970: 6e 20 74 68 65 20 70 61 72 73 65 72 2c 20 70 61  n the parser, pa
8980: 67 65 72 2c 20 61 6e 64 20 57 48 45 52 45 20 63  ger, and WHERE c
8990: 6c 61 75 73 65 20 63 6f 64 65 0a 20 20 20 20 67  lause code.    g
89a0: 65 6e 65 72 61 74 6f 72 2e 3c 2f 6c 69 3e 0a 3c  enerator.</li>.<
89b0: 6c 69 3e 4d 61 6b 65 20 74 68 65 20 4c 49 4d 49  li>Make the LIMI
89c0: 54 20 63 6c 61 75 73 65 20 77 6f 72 6b 20 6f 6e  T clause work on
89d0: 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 28 4f   subqueries.  (O
89e0: 52 44 45 52 20 42 59 20 73 74 69 6c 6c 20 64 6f  RDER BY still do
89f0: 65 73 20 6e 6f 74 0a 20 20 20 20 77 6f 72 6b 2c  es not.    work,
8a00: 20 74 68 6f 75 67 68 2e 29 3c 2f 6c 69 3e 0a 3c   though.)</li>.<
8a10: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 22 25 51  li>Added the "%Q
8a20: 22 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20 73  " expansion to s
8a30: 71 6c 69 74 65 5f 2a 5f 70 72 69 6e 74 66 28 29  qlite_*_printf()
8a40: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
8a50: 69 78 65 73 20 74 6f 6f 20 6e 75 6d 65 72 6f 75  ixes too numerou
8a60: 73 20 74 6f 20 6d 65 6e 74 69 6f 6e 20 28 73 65  s to mention (se
8a70: 65 20 74 68 65 20 63 68 61 6e 67 65 20 6c 6f 67  e the change log
8a80: 29 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ).</li>.}..chng 
8a90: 7b 32 30 30 32 20 4d 61 79 20 30 39 20 28 32 2e  {2002 May 09 (2.
8aa0: 34 2e 31 32 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  4.12)} {.<li>Add
8ab0: 65 64 20 6c 6f 67 69 63 20 74 6f 20 64 65 74 65  ed logic to dete
8ac0: 63 74 20 77 68 65 6e 20 74 68 65 20 6c 69 62 72  ct when the libr
8ad0: 61 72 79 20 41 50 49 20 72 6f 75 74 69 6e 65 73  ary API routines
8ae0: 20 61 72 65 20 63 61 6c 6c 65 64 20 6f 75 74 0a   are called out.
8af0: 20 20 20 20 6f 66 20 73 65 71 75 65 6e 63 65 2e      of sequence.
8b00: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
8b10: 30 30 32 20 4d 61 79 20 30 38 20 28 32 2e 34 2e  002 May 08 (2.4.
8b20: 31 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  11)} {.<li>Bug f
8b30: 69 78 3a 20 43 6f 6c 75 6d 6e 20 6e 61 6d 65 73  ix: Column names
8b40: 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 20 73   in the result s
8b50: 65 74 20 77 65 72 65 20 6e 6f 74 20 62 65 69 6e  et were not bein
8b60: 67 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20  g generated.    
8b70: 63 6f 72 72 65 63 74 6c 79 20 66 6f 72 20 73 6f  correctly for so
8b80: 6d 65 20 28 72 61 74 68 65 72 20 63 6f 6d 70 6c  me (rather compl
8b90: 65 78 29 20 56 49 45 57 73 2e 20 20 54 68 69 73  ex) VIEWs.  This
8ba0: 20 63 6f 75 6c 64 20 63 61 75 73 65 20 61 0a 20   could cause a. 
8bb0: 20 20 20 73 65 67 66 61 75 6c 74 20 75 6e 64 65     segfault unde
8bc0: 72 20 63 65 72 74 61 69 6e 20 63 69 72 63 75 6d  r certain circum
8bd0: 73 74 61 6e 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  stances.</li>.}.
8be0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 79 20  .chng {2002 May 
8bf0: 30 32 20 28 32 2e 34 2e 31 30 29 7d 20 7b 0a 3c  02 (2.4.10)} {.<
8c00: 6c 69 3e 42 75 67 20 66 69 78 3a 20 47 65 6e 65  li>Bug fix: Gene
8c10: 72 61 74 65 20 63 6f 72 72 65 63 74 20 63 6f 6c  rate correct col
8c20: 75 6d 6e 20 68 65 61 64 65 72 73 20 77 68 65 6e  umn headers when
8c30: 20 61 20 63 6f 6d 70 6f 75 6e 64 20 53 45 4c 45   a compound SELE
8c40: 43 54 20 69 73 20 75 73 65 64 0a 20 20 20 20 61  CT is used.    a
8c50: 73 20 61 20 73 75 62 71 75 65 72 79 2e 3c 2f 6c  s a subquery.</l
8c60: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
8c70: 20 73 71 6c 69 74 65 5f 65 6e 63 6f 64 65 5f 62   sqlite_encode_b
8c80: 69 6e 61 72 79 28 29 20 61 6e 64 20 73 71 6c 69  inary() and sqli
8c90: 74 65 5f 64 65 63 6f 64 65 5f 62 69 6e 61 72 79  te_decode_binary
8ca0: 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a  () functions to.
8cb0: 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 20 74      the source t
8cc0: 72 65 65 2e 20 20 42 75 74 20 74 68 65 79 20 61  ree.  But they a
8cd0: 72 65 20 6e 6f 74 20 79 65 74 20 6c 69 6e 6b 65  re not yet linke
8ce0: 64 20 69 6e 74 6f 20 74 68 65 20 6c 69 62 72 61  d into the libra
8cf0: 72 79 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  ry.</li>.<li>Doc
8d00: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
8d10: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 45 78 70  es.</li>.<li>Exp
8d20: 6f 72 74 20 74 68 65 20 73 71 6c 69 74 65 5f 63  ort the sqlite_c
8d30: 68 61 6e 67 65 73 28 29 20 66 75 6e 63 74 69 6f  hanges() functio
8d40: 6e 20 66 72 6f 6d 20 77 69 6e 64 6f 77 73 20 44  n from windows D
8d50: 4c 4c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75  LLs.</li>.<li>Bu
8d60: 67 20 66 69 78 3a 20 44 6f 20 6e 6f 74 20 61 74  g fix: Do not at
8d70: 74 65 6d 70 74 20 74 68 65 20 73 75 62 71 75 65  tempt the subque
8d80: 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20 6f 70  ry flattening op
8d90: 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 6e 20 71 75  timization on qu
8da0: 65 72 69 65 73 0a 20 20 20 20 74 68 61 74 20 6c  eries.    that l
8db0: 61 63 6b 20 61 20 46 52 4f 4d 20 63 6c 61 75 73  ack a FROM claus
8dc0: 65 2e 20 20 54 6f 20 64 6f 20 73 6f 20 63 61 75  e.  To do so cau
8dd0: 73 65 73 20 61 20 73 65 67 66 61 75 6c 74 2e 3c  ses a segfault.<
8de0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
8df0: 30 32 20 41 70 72 20 32 31 20 28 32 2e 34 2e 39  02 Apr 21 (2.4.9
8e00: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
8e10: 75 67 20 74 68 61 74 20 77 61 73 20 63 61 75 73  ug that was caus
8e20: 69 6e 67 20 74 68 65 20 70 72 65 63 6f 6d 70 69  ing the precompi
8e30: 6c 65 64 20 62 69 6e 61 72 79 20 6f 66 20 53 51  led binary of SQ
8e40: 4c 49 54 45 2e 45 58 45 20 74 6f 0a 20 20 20 20  LITE.EXE to.    
8e50: 72 65 70 6f 72 74 20 22 6f 75 74 20 6f 66 20 6d  report "out of m
8e60: 65 6d 6f 72 79 22 20 75 6e 64 65 72 20 57 69 6e  emory" under Win
8e70: 64 6f 77 73 20 39 38 2e 3c 2f 6c 69 3e 0a 7d 0a  dows 98.</li>.}.
8e80: 0a 63 68 6e 67 20 7b 32 30 30 32 20 41 70 72 20  .chng {2002 Apr 
8e90: 32 30 20 28 32 2e 34 2e 38 29 7d 20 7b 0a 3c 6c  20 (2.4.8)} {.<l
8ea0: 69 3e 4d 61 6b 65 20 73 75 72 65 20 56 49 45 57  i>Make sure VIEW
8eb0: 73 20 61 72 65 20 63 72 65 61 74 65 64 20 61 66  s are created af
8ec0: 74 65 72 20 74 68 65 69 72 20 63 6f 72 72 65 73  ter their corres
8ed0: 70 6f 6e 64 69 6e 67 20 54 41 42 4c 45 73 20 69  ponding TABLEs i
8ee0: 6e 20 74 68 65 0a 20 20 20 20 6f 75 74 70 75 74  n the.    output
8ef0: 20 6f 66 20 74 68 65 20 3c 62 3e 2e 64 75 6d 70   of the <b>.dump
8f00: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  </b> command in 
8f10: 74 68 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a  the shell.</li>.
8f20: 3c 6c 69 3e 53 70 65 65 64 20 69 6d 70 72 6f 76  <li>Speed improv
8f30: 65 6d 65 6e 74 73 3a 20 44 6f 20 6e 6f 74 20 64  ements: Do not d
8f40: 6f 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 75 70  o synchronous up
8f50: 64 61 74 65 73 20 6f 6e 20 54 45 4d 50 20 74 61  dates on TEMP ta
8f60: 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  bles.</li>.<li>M
8f70: 61 6e 79 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73  any improvements
8f80: 20 61 6e 64 20 65 6e 68 61 6e 63 65 6d 65 6e 74   and enhancement
8f90: 73 20 74 6f 20 74 68 65 20 73 68 65 6c 6c 2e 3c  s to the shell.<
8fa0: 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68  /li>.<li>Make th
8fb0: 65 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45 20  e GLOB and LIKE 
8fc0: 6f 70 65 72 61 74 6f 72 73 20 66 75 6e 63 74 69  operators functi
8fd0: 6f 6e 73 20 74 68 61 74 20 63 61 6e 20 62 65 20  ons that can be 
8fe0: 6f 76 65 72 72 69 64 64 65 6e 0a 20 20 20 20 62  overridden.    b
8ff0: 79 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20  y a programmer. 
9000: 20 54 68 69 73 20 61 6c 6c 6f 77 73 2c 20 66 6f   This allows, fo
9010: 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 4c  r example, the L
9020: 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 74 6f 0a  IKE operator to.
9030: 20 20 20 20 62 65 20 63 68 61 6e 67 65 64 20 74      be changed t
9040: 6f 20 62 65 20 63 61 73 65 20 73 65 6e 73 69 74  o be case sensit
9050: 69 76 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ive.</li>.}..chn
9060: 67 20 7b 32 30 30 32 20 41 70 72 20 30 36 20 28  g {2002 Apr 06 (
9070: 32 2e 34 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41 64  2.4.7)} {.<li>Ad
9080: 64 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f  d the ability to
9090: 20 70 75 74 20 54 41 42 4c 45 2e 2a 20 69 6e 20   put TABLE.* in 
90a0: 74 68 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20  the column list 
90b0: 6f 66 20 61 0a 20 20 20 20 53 45 4c 45 43 54 20  of a.    SELECT 
90c0: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
90d0: 3c 6c 69 3e 50 65 72 6d 69 74 20 53 45 4c 45 43  <li>Permit SELEC
90e0: 54 20 73 74 61 74 65 6d 65 6e 74 73 20 77 69 74  T statements wit
90f0: 68 6f 75 74 20 61 20 46 52 4f 4d 20 63 6c 61 75  hout a FROM clau
9100: 73 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  se.</li>.<li>Add
9110: 65 64 20 74 68 65 20 3c 62 3e 6c 61 73 74 5f 69  ed the <b>last_i
9120: 6e 73 65 72 74 5f 72 6f 77 69 64 28 29 3c 2f 62  nsert_rowid()</b
9130: 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 3c  > SQL function.<
9140: 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 20 6e 6f 74 20  /li>.<li>Do not 
9150: 63 6f 75 6e 74 20 72 6f 77 73 20 77 68 65 72 65  count rows where
9160: 20 74 68 65 20 49 47 4e 4f 52 45 20 63 6f 6e 66   the IGNORE conf
9170: 6c 69 63 74 20 72 65 73 6f 6c 75 74 69 6f 6e 20  lict resolution 
9180: 6f 63 63 75 72 73 20 69 6e 0a 20 20 20 20 74 68  occurs in.    th
9190: 65 20 72 6f 77 20 63 6f 75 6e 74 2e 3c 2f 6c 69  e row count.</li
91a0: 3e 0a 3c 6c 69 3e 4d 61 6b 65 20 73 75 72 65 20  >.<li>Make sure 
91b0: 66 75 6e 63 74 69 6f 6e 73 20 65 78 70 72 65 73  functions expres
91c0: 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 56 41 4c  sions in the VAL
91d0: 55 45 53 20 63 6c 61 75 73 65 20 6f 66 20 61 6e  UES clause of an
91e0: 20 49 4e 53 45 52 54 0a 20 20 20 20 61 72 65 20   INSERT.    are 
91f0: 63 6f 72 72 65 63 74 2e 3c 2f 6c 69 3e 0a 3c 6c  correct.</li>.<l
9200: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
9210: 71 6c 69 74 65 5f 63 68 61 6e 67 65 73 28 29 3c  qlite_changes()<
9220: 2f 62 3e 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  /b> API function
9230: 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6e   to return the n
9240: 75 6d 62 65 72 0a 20 20 20 20 6f 66 20 72 6f 77  umber.    of row
9250: 20 74 68 61 74 20 63 68 61 6e 67 65 64 20 69 6e   that changed in
9260: 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74   the most recent
9270: 20 6f 70 65 72 61 74 69 6f 6e 2e 3c 2f 6c 69 3e   operation.</li>
9280: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 41  .}..chng {2002 A
9290: 70 72 20 30 32 20 28 32 2e 34 2e 36 29 7d 20 7b  pr 02 (2.4.6)} {
92a0: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 43 6f  .<li>Bug fix: Co
92b0: 72 72 65 63 74 6c 79 20 68 61 6e 64 6c 65 20 74  rrectly handle t
92c0: 65 72 6d 73 20 69 6e 20 74 68 65 20 57 48 45 52  erms in the WHER
92d0: 45 20 63 6c 61 75 73 65 20 6f 66 20 61 20 6a 6f  E clause of a jo
92e0: 69 6e 20 74 68 61 74 0a 20 20 20 20 64 6f 20 6e  in that.    do n
92f0: 6f 74 20 63 6f 6e 74 61 69 6e 20 61 20 63 6f 6d  ot contain a com
9300: 70 61 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72  parison operator
9310: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9320: 32 30 30 32 20 41 70 72 20 30 31 20 28 32 2e 34  2002 Apr 01 (2.4
9330: 2e 35 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .5)} {.<li>Bug f
9340: 69 78 3a 20 43 6f 72 72 65 63 74 6c 79 20 68 61  ix: Correctly ha
9350: 6e 64 6c 65 20 66 75 6e 63 74 69 6f 6e 73 20 74  ndle functions t
9360: 68 61 74 20 61 70 70 65 61 72 20 69 6e 20 74 68  hat appear in th
9370: 65 20 57 48 45 52 45 20 63 6c 61 75 73 65 0a 20  e WHERE clause. 
9380: 20 20 20 6f 66 20 61 20 6a 6f 69 6e 2e 3c 2f 6c     of a join.</l
9390: 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 74 68 65 20  i>.<li>When the 
93a0: 50 52 41 47 4d 41 20 76 64 62 65 5f 74 72 61 63  PRAGMA vdbe_trac
93b0: 65 3d 4f 4e 20 69 73 20 73 65 74 2c 20 63 6f 72  e=ON is set, cor
93c0: 72 65 63 74 6c 79 20 70 72 69 6e 74 20 74 68 65  rectly print the
93d0: 20 50 33 20 6f 70 65 72 61 6e 64 0a 20 20 20 20   P3 operand.    
93e0: 76 61 6c 75 65 20 77 68 65 6e 20 69 74 20 69 73  value when it is
93f0: 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20   a pointer to a 
9400: 73 74 72 75 63 74 75 72 65 20 72 61 74 68 65 72  structure rather
9410: 20 74 68 61 6e 20 61 20 70 6f 69 6e 74 65 72 20   than a pointer 
9420: 74 6f 0a 20 20 20 20 61 20 73 74 72 69 6e 67 2e  to.    a string.
9430: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 57 68 65 6e 20 69  </li>.<li>When i
9440: 6e 73 65 72 74 69 6e 67 20 61 6e 20 65 78 70 6c  nserting an expl
9450: 69 63 69 74 20 4e 55 4c 4c 20 69 6e 74 6f 20 61  icit NULL into a
9460: 6e 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52  n INTEGER PRIMAR
9470: 59 20 4b 45 59 2c 20 63 6f 6e 76 65 72 74 0a 20  Y KEY, convert. 
9480: 20 20 20 74 68 65 20 4e 55 4c 4c 20 76 61 6c 75     the NULL valu
9490: 65 20 69 6e 74 6f 20 61 20 75 6e 69 71 75 65 20  e into a unique 
94a0: 6b 65 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  key automaticall
94b0: 79 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  y.</li>.}..chng 
94c0: 7b 32 30 30 32 20 4d 61 72 20 32 34 20 28 32 2e  {2002 Mar 24 (2.
94d0: 34 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f  4.4)} {.<li>Allo
94e0: 77 20 22 56 49 45 57 22 20 74 6f 20 62 65 20 61  w "VIEW" to be a
94f0: 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65 3c 2f 6c 69   column name</li
9500: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70  >.<li>Added supp
9510: 6f 72 74 20 66 6f 72 20 43 41 53 45 20 65 78 70  ort for CASE exp
9520: 72 65 73 73 69 6f 6e 73 20 28 70 61 74 63 68 20  ressions (patch 
9530: 66 72 6f 6d 20 44 61 6e 20 4b 65 6e 6e 65 64 79  from Dan Kennedy
9540: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  )</li>.<li>Added
9550: 20 52 50 4d 53 20 74 6f 20 74 68 65 20 64 65 6c   RPMS to the del
9560: 69 76 65 72 79 20 28 70 61 74 63 68 65 73 20 66  ivery (patches f
9570: 72 6f 6d 20 44 6f 75 67 20 48 65 6e 72 79 29 3c  rom Doug Henry)<
9580: 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 74 79 70  /li>.<li>Fix typ
9590: 6f 73 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65  os in the docume
95a0: 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 3c 6c 69  ntation</li>.<li
95b0: 3e 43 75 74 20 6f 76 65 72 20 63 6f 6e 66 69 67  >Cut over config
95c0: 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65  uration manageme
95d0: 6e 74 20 74 6f 20 61 20 6e 65 77 20 43 56 53 20  nt to a new CVS 
95e0: 72 65 70 6f 73 69 74 6f 72 79 20 77 69 74 68 0a  repository with.
95f0: 20 20 20 20 69 74 73 20 6f 77 6e 20 43 56 53 54      its own CVST
9600: 72 61 63 20 62 75 67 20 74 72 61 63 6b 69 6e 67  rac bug tracking
9610: 20 73 79 73 74 65 6d 2e 3c 2f 6c 69 3e 0a 7d 0a   system.</li>.}.
9620: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61 72 20  .chng {2002 Mar 
9630: 32 32 20 28 32 2e 34 2e 33 29 7d 20 7b 0a 3c 6c  22 (2.4.3)} {.<l
9640: 69 3e 46 69 78 20 61 20 62 75 67 20 69 6e 20 53  i>Fix a bug in S
9650: 45 4c 45 43 54 20 74 68 61 74 20 6f 63 63 75 72  ELECT that occur
9660: 73 20 77 68 65 6e 20 61 20 63 6f 6d 70 6f 75 6e  s when a compoun
9670: 64 20 53 45 4c 45 43 54 20 69 73 20 75 73 65 64  d SELECT is used
9680: 20 61 73 20 61 0a 20 20 20 20 73 75 62 71 75 65   as a.    subque
9690: 72 79 20 69 6e 20 74 68 65 20 46 52 4f 4d 20 6f  ry in the FROM o
96a0: 66 20 61 20 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e  f a SELECT.</li>
96b0: 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 73 71 6c 69  .<li>The <b>sqli
96c0: 74 65 5f 67 65 74 5f 74 61 62 6c 65 28 29 3c 2f  te_get_table()</
96d0: 62 3e 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 77 20  b> function now 
96e0: 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72  returns an error
96f0: 20 69 66 20 79 6f 75 0a 20 20 20 20 67 69 76 65   if you.    give
9700: 20 69 74 20 74 77 6f 20 6f 72 20 6d 6f 72 65 20   it two or more 
9710: 53 45 4c 45 43 54 73 20 74 68 61 74 20 72 65 74  SELECTs that ret
9720: 75 72 6e 20 64 69 66 66 65 72 65 6e 74 20 6e 75  urn different nu
9730: 6d 62 65 72 73 20 6f 66 20 63 6f 6c 75 6d 6e 73  mbers of columns
9740: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
9750: 32 30 30 32 20 4d 61 72 20 31 34 20 28 32 2e 34  2002 Mar 14 (2.4
9760: 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66  .2)} {.<li>Bug f
9770: 69 78 3a 20 46 69 78 20 61 6e 20 61 73 73 65 72  ix: Fix an asser
9780: 74 69 6f 6e 20 66 61 69 6c 75 72 65 20 74 68 61  tion failure tha
9790: 74 20 6f 63 63 75 72 72 65 64 20 77 68 65 6e 20  t occurred when 
97a0: 52 4f 57 49 44 20 77 61 73 20 61 20 63 6f 6c 75  ROWID was a colu
97b0: 6d 6e 0a 20 20 20 20 69 6e 20 61 20 53 45 4c 45  mn.    in a SELE
97c0: 43 54 20 73 74 61 74 65 6d 65 6e 74 20 6f 6e 20  CT statement on 
97d0: 61 20 76 69 65 77 2e 3c 2f 6c 69 3e 0a 3c 6c 69  a view.</li>.<li
97e0: 3e 42 75 67 20 66 69 78 3a 20 46 69 78 20 61 6e  >Bug fix: Fix an
97f0: 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 20 76   uninitialized v
9800: 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 56  ariable in the V
9810: 44 42 45 20 74 68 61 74 20 77 6f 75 6c 64 20 63  DBE that would c
9820: 6f 75 6c 64 20 61 6e 0a 20 20 20 20 61 73 73 65  ould an.    asse
9830: 72 74 20 66 61 69 6c 75 72 65 2e 3c 2f 6c 69 3e  rt failure.</li>
9840: 0a 3c 6c 69 3e 4d 61 6b 65 20 74 68 65 20 6f 73  .<li>Make the os
9850: 2e 68 20 68 65 61 64 65 72 20 66 69 6c 65 20 6d  .h header file m
9860: 6f 72 65 20 72 6f 62 75 73 74 20 69 6e 20 64 65  ore robust in de
9870: 74 65 63 74 69 6e 67 20 77 68 65 6e 20 74 68 65  tecting when the
9880: 20 63 6f 6d 70 69 6c 65 20 69 73 0a 20 20 20 20   compile is.    
9890: 66 6f 72 20 77 69 6e 64 6f 77 73 20 61 6e 64 20  for windows and 
98a0: 77 68 65 6e 20 69 74 20 69 73 20 66 6f 72 20 75  when it is for u
98b0: 6e 69 78 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nix.</li>.}..chn
98c0: 67 20 7b 32 30 30 32 20 4d 61 72 20 31 33 20 28  g {2002 Mar 13 (
98d0: 32 2e 34 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 55 73  2.4.1)} {.<li>Us
98e0: 69 6e 67 20 61 6e 20 75 6e 6e 61 6d 65 64 20 73  ing an unnamed s
98f0: 75 62 71 75 65 72 79 20 69 6e 20 61 20 46 52 4f  ubquery in a FRO
9900: 4d 20 63 6c 61 75 73 65 20 77 6f 75 6c 64 20 63  M clause would c
9910: 61 75 73 65 20 61 20 73 65 67 66 61 75 6c 74 2e  ause a segfault.
9920: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 70 61  </li>.<li>The pa
9930: 72 73 65 72 20 6e 6f 77 20 69 6e 73 69 73 74 73  rser now insists
9940: 20 6f 6e 20 73 65 65 69 6e 67 20 61 20 73 65 6d   on seeing a sem
9950: 69 63 6f 6c 6f 6e 20 6f 72 20 74 68 65 20 65 6e  icolon or the en
9960: 64 20 6f 66 20 69 6e 70 75 74 20 62 65 66 6f 72  d of input befor
9970: 65 0a 20 20 20 20 65 78 65 63 75 74 69 6e 67 20  e.    executing 
9980: 61 20 73 74 61 74 65 6d 65 6e 74 2e 20 20 54 68  a statement.  Th
9990: 69 73 20 61 76 6f 69 64 73 20 61 6e 20 61 63 63  is avoids an acc
99a0: 69 64 65 6e 74 61 6c 20 64 69 73 61 73 74 65 72  idental disaster
99b0: 20 69 66 20 74 68 65 0a 20 20 20 20 57 48 45 52   if the.    WHER
99c0: 45 20 6b 65 79 77 6f 72 64 20 69 73 20 6d 69 73  E keyword is mis
99d0: 73 70 65 6c 6c 65 64 20 69 6e 20 61 6e 20 55 50  spelled in an UP
99e0: 44 41 54 45 20 6f 72 20 44 45 4c 45 54 45 20 73  DATE or DELETE s
99f0: 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a 7d  tatement.</li>.}
9a00: 0a 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4d 61  ...chng {2002 Ma
9a10: 72 20 31 30 20 28 32 2e 34 2e 30 29 7d 20 7b 0a  r 10 (2.4.0)} {.
9a20: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 6e  <li>Change the n
9a30: 61 6d 65 20 6f 66 20 74 68 65 20 73 61 6e 69 74  ame of the sanit
9a40: 79 5f 63 68 65 63 6b 20 50 52 41 47 4d 41 20 74  y_check PRAGMA t
9a50: 6f 20 3c 62 3e 69 6e 74 65 67 72 69 74 79 5f 63  o <b>integrity_c
9a60: 68 65 63 6b 3c 2f 62 3e 0a 20 20 20 20 61 6e 64  heck</b>.    and
9a70: 20 6d 61 6b 65 20 69 74 20 61 76 61 69 6c 61 62   make it availab
9a80: 6c 65 20 69 6e 20 61 6c 6c 20 63 6f 6d 70 69 6c  le in all compil
9a90: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 45 4c  es.</li>.<li>SEL
9aa0: 45 43 54 20 6d 69 6e 28 29 20 6f 72 20 6d 61 78  ECT min() or max
9ab0: 28 29 20 6f 66 20 61 6e 20 69 6e 64 65 78 65 64  () of an indexed
9ac0: 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 6e 6f 20   column with no 
9ad0: 57 48 45 52 45 20 6f 72 20 47 52 4f 55 50 20 42  WHERE or GROUP B
9ae0: 59 0a 20 20 20 20 63 6c 61 75 73 65 20 69 73 20  Y.    clause is 
9af0: 68 61 6e 64 6c 65 64 20 61 73 20 61 20 73 70 65  handled as a spe
9b00: 63 69 61 6c 20 63 61 73 65 20 77 68 69 63 68 20  cial case which 
9b10: 61 76 6f 69 64 73 20 61 20 63 6f 6d 70 6c 65 74  avoids a complet
9b20: 65 20 74 61 62 6c 65 20 73 63 61 6e 2e 3c 2f 6c  e table scan.</l
9b30: 69 3e 0a 3c 6c 69 3e 41 75 74 6f 6d 61 74 69 63  i>.<li>Automatic
9b40: 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 52  ally generated R
9b50: 4f 57 49 44 73 20 61 72 65 20 6e 6f 77 20 73 65  OWIDs are now se
9b60: 71 75 65 6e 74 69 61 6c 2e 3c 2f 6c 69 3e 0a 3c  quential.</li>.<
9b70: 6c 69 3e 44 6f 20 6e 6f 74 20 61 6c 6c 6f 77 20  li>Do not allow 
9b80: 64 6f 74 2d 63 6f 6d 6d 61 6e 64 73 20 6f 66 20  dot-commands of 
9b90: 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65  the command-line
9ba0: 20 73 68 65 6c 6c 20 74 6f 20 6f 63 63 75 72 20   shell to occur 
9bb0: 69 6e 20 74 68 65 0a 20 20 20 20 6d 69 64 64 6c  in the.    middl
9bc0: 65 20 6f 66 20 61 20 72 65 61 6c 20 53 51 4c 20  e of a real SQL 
9bd0: 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c  command.</li>.<l
9be0: 69 3e 4d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20  i>Modifications 
9bf0: 74 6f 20 74 68 65 20 22 6c 65 6d 6f 6e 22 20 70  to the "lemon" p
9c00: 61 72 73 65 72 20 67 65 6e 65 72 61 74 6f 72 20  arser generator 
9c10: 73 6f 20 74 68 61 74 20 74 68 65 20 70 61 72 73  so that the pars
9c20: 65 72 20 74 61 62 6c 65 73 0a 20 20 20 20 61 72  er tables.    ar
9c30: 65 20 34 20 74 69 6d 65 73 20 73 6d 61 6c 6c 65  e 4 times smalle
9c40: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65  r.</li>.<li>Adde
9c50: 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 75 73  d support for us
9c60: 65 72 2d 64 65 66 69 6e 65 64 20 66 75 6e 63 74  er-defined funct
9c70: 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64  ions implemented
9c80: 20 69 6e 20 43 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e   in C.</li>.<li>
9c90: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
9ca0: 72 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 73 3a  r new functions:
9cb0: 20 3c 62 3e 63 6f 61 6c 65 73 63 65 28 29 3c 2f   <b>coalesce()</
9cc0: 62 3e 2c 20 3c 62 3e 6c 6f 77 65 72 28 29 3c 2f  b>, <b>lower()</
9cd0: 62 3e 2c 0a 20 20 20 20 3c 62 3e 75 70 70 65 72  b>,.    <b>upper
9ce0: 28 29 3c 2f 62 3e 2c 20 61 6e 64 20 3c 62 3e 72  ()</b>, and <b>r
9cf0: 61 6e 64 6f 6d 28 29 3c 2f 62 3e 0a 3c 6c 69 3e  andom()</b>.<li>
9d00: 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66 6f  Added support fo
9d10: 72 20 56 49 45 57 73 2e 3c 2f 6c 69 3e 0a 3c 6c  r VIEWs.</li>.<l
9d20: 69 3e 41 64 64 65 64 20 74 68 65 20 73 75 62 71  i>Added the subq
9d30: 75 65 72 79 20 66 6c 61 74 74 65 6e 69 6e 67 20  uery flattening 
9d40: 6f 70 74 69 6d 69 7a 65 72 2e 3c 2f 6c 69 3e 0a  optimizer.</li>.
9d50: 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65  <li>Modified the
9d60: 20 42 2d 54 72 65 65 20 61 6e 64 20 50 61 67 65   B-Tree and Page
9d70: 72 20 6d 6f 64 75 6c 65 73 20 73 6f 20 74 68 61  r modules so tha
9d80: 74 20 64 69 73 6b 20 70 61 67 65 73 20 74 68 61  t disk pages tha
9d90: 74 20 64 6f 20 6e 6f 74 0a 20 20 20 20 63 6f 6e  t do not.    con
9da0: 74 61 69 6e 20 72 65 61 6c 20 64 61 74 61 20 28  tain real data (
9db0: 66 72 65 65 20 70 61 67 65 73 29 20 61 72 65 20  free pages) are 
9dc0: 6e 6f 74 20 6a 6f 75 72 6e 61 6c 65 64 20 61 6e  not journaled an
9dd0: 64 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 77 72  d are not.    wr
9de0: 69 74 74 65 6e 20 66 72 6f 6d 20 6d 65 6d 6f 72  itten from memor
9df0: 79 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64 69  y back to the di
9e00: 73 6b 20 77 68 65 6e 20 74 68 65 79 20 63 68 61  sk when they cha
9e10: 6e 67 65 2e 20 20 54 68 69 73 20 64 6f 65 73 20  nge.  This does 
9e20: 6e 6f 74 20 0a 20 20 20 20 69 6d 70 61 63 74 20  not .    impact 
9e30: 64 61 74 61 62 61 73 65 20 69 6e 74 65 67 72 69  database integri
9e40: 74 79 2c 20 73 69 6e 63 65 20 74 68 65 0a 20 20  ty, since the.  
9e50: 20 20 70 61 67 65 73 20 63 6f 6e 74 61 69 6e 20    pages contain 
9e60: 6e 6f 20 72 65 61 6c 20 64 61 74 61 2c 20 62 75  no real data, bu
9e70: 74 20 69 74 20 64 6f 65 73 20 6d 61 6b 65 20 6c  t it does make l
9e80: 61 72 67 65 20 49 4e 53 45 52 54 20 6f 70 65 72  arge INSERT oper
9e90: 61 74 69 6f 6e 73 0a 20 20 20 20 61 62 6f 75 74  ations.    about
9ea0: 20 32 2e 35 20 74 69 6d 65 73 20 66 61 73 74 65   2.5 times faste
9eb0: 72 20 61 6e 64 20 6c 61 72 67 65 20 44 45 4c 45  r and large DELE
9ec0: 54 45 73 20 61 62 6f 75 74 20 35 20 74 69 6d 65  TEs about 5 time
9ed0: 73 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c  s faster.</li>.<
9ee0: 6c 69 3e 4d 61 64 65 20 74 68 65 20 43 41 43 48  li>Made the CACH
9ef0: 45 5f 53 49 5a 45 20 70 72 61 67 6d 61 20 70 65  E_SIZE pragma pe
9f00: 72 73 69 73 74 65 6e 74 3c 2f 6c 69 3e 0a 3c 6c  rsistent</li>.<l
9f10: 69 3e 41 64 64 65 64 20 74 68 65 20 53 59 4e 43  i>Added the SYNC
9f20: 48 52 4f 4e 4f 55 53 20 70 72 61 67 6d 61 3c 2f  HRONOUS pragma</
9f30: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 61 20  li>.<li>Fixed a 
9f40: 62 75 67 20 74 68 61 74 20 77 61 73 20 63 61 75  bug that was cau
9f50: 73 69 6e 67 20 75 70 64 61 74 65 73 20 74 6f 20  sing updates to 
9f60: 66 61 69 6c 20 69 6e 73 69 64 65 20 6f 66 20 74  fail inside of t
9f70: 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 68 65 6e  ransactions when
9f80: 0a 20 20 20 20 74 68 65 20 64 61 74 61 62 61 73  .    the databas
9f90: 65 20 63 6f 6e 74 61 69 6e 65 64 20 61 20 74 65  e contained a te
9fa0: 6d 70 6f 72 61 72 79 20 74 61 62 6c 65 2e 3c 2f  mporary table.</
9fb0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
9fc0: 32 20 46 65 62 20 31 38 20 28 32 2e 33 2e 33 29  2 Feb 18 (2.3.3)
9fd0: 7d 20 7b 0a 3c 6c 69 3e 41 6c 6c 6f 77 20 69 64  } {.<li>Allow id
9fe0: 65 6e 74 69 66 69 65 72 73 20 74 6f 20 62 65 20  entifiers to be 
9ff0: 71 75 6f 74 65 64 20 69 6e 20 73 71 75 61 72 65  quoted in square
a000: 20 62 72 61 63 6b 65 74 73 2c 20 66 6f 72 20 63   brackets, for c
a010: 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 20 20 20  ompatibility.   
a020: 20 77 69 74 68 20 4d 53 2d 41 63 63 65 73 73 2e   with MS-Access.
a030: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20  </li>.<li>Added 
a040: 73 75 70 70 6f 72 74 20 66 6f 72 20 73 75 62 2d  support for sub-
a050: 71 75 65 72 69 65 73 20 69 6e 20 74 68 65 20 46  queries in the F
a060: 52 4f 4d 20 63 6c 61 75 73 65 20 6f 66 20 61 20  ROM clause of a 
a070: 53 45 4c 45 43 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69  SELECT.</li>.<li
a080: 3e 4d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 20  >More efficient 
a090: 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f  implementation o
a0a0: 66 20 73 71 6c 69 74 65 46 69 6c 65 45 78 69 73  f sqliteFileExis
a0b0: 74 73 28 29 20 75 6e 64 65 72 20 57 69 6e 64 6f  ts() under Windo
a0c0: 77 73 2e 0a 20 20 20 20 28 62 79 20 4a 6f 65 6c  ws..    (by Joel
a0d0: 20 4c 75 73 63 79 29 3c 2f 6c 69 3e 0a 3c 6c 69   Luscy)</li>.<li
a0e0: 3e 54 68 65 20 56 41 4c 55 45 53 20 63 6c 61 75  >The VALUES clau
a0f0: 73 65 20 6f 66 20 61 6e 20 49 4e 53 45 52 54 20  se of an INSERT 
a100: 63 61 6e 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 20  can now contain 
a110: 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 69 6e 63  expressions, inc
a120: 6c 75 64 69 6e 67 0a 20 20 20 20 73 63 61 6c 61  luding.    scala
a130: 72 20 53 45 4c 45 43 54 20 63 6c 61 75 73 65 73  r SELECT clauses
a140: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
a150: 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 52 45   support for CRE
a160: 41 54 45 20 54 41 42 4c 45 20 41 53 20 53 45 4c  ATE TABLE AS SEL
a170: 45 43 54 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67  ECT</li>.<li>Bug
a180: 20 66 69 78 3a 20 43 72 65 61 74 69 6e 67 20 61   fix: Creating a
a190: 6e 64 20 64 72 6f 70 70 69 6e 67 20 61 20 74 61  nd dropping a ta
a1a0: 62 6c 65 20 61 6c 6c 20 77 69 74 68 69 6e 20 61  ble all within a
a1b0: 20 73 69 6e 67 6c 65 0a 20 20 20 20 74 72 61 6e   single.    tran
a1c0: 73 61 63 74 69 6f 6e 20 77 61 73 20 6e 6f 74 20  saction was not 
a1d0: 77 6f 72 6b 69 6e 67 2e 3c 2f 6c 69 3e 0a 7d 0a  working.</li>.}.
a1e0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 46 65 62 20  .chng {2002 Feb 
a1f0: 31 34 20 28 32 2e 33 2e 32 29 7d 20 7b 0a 3c 6c  14 (2.3.2)} {.<l
a200: 69 3e 42 75 67 20 66 69 78 3a 20 54 68 65 72 65  i>Bug fix: There
a210: 20 77 61 73 20 61 6e 20 69 6e 63 6f 72 72 65 63   was an incorrec
a220: 74 20 61 73 73 65 72 74 28 29 20 69 6e 20 70 61  t assert() in pa
a230: 67 65 72 2e 63 2e 20 20 54 68 65 20 72 65 61 6c  ger.c.  The real
a240: 20 63 6f 64 65 20 77 61 73 0a 20 20 20 20 61 6c   code was.    al
a250: 6c 20 63 6f 72 72 65 63 74 20 28 61 73 20 66 61  l correct (as fa
a260: 72 20 61 73 20 69 73 20 6b 6e 6f 77 6e 29 20 73  r as is known) s
a270: 6f 20 65 76 65 72 79 74 68 69 6e 67 20 73 68 6f  o everything sho
a280: 75 6c 64 20 77 6f 72 6b 20 4f 4b 20 69 66 20 79  uld work OK if y
a290: 6f 75 0a 20 20 20 20 63 6f 6d 70 69 6c 65 20 77  ou.    compile w
a2a0: 69 74 68 20 2d 44 4e 44 45 42 55 47 3d 31 2e 20  ith -DNDEBUG=1. 
a2b0: 20 57 68 65 6e 20 61 73 73 65 72 74 73 20 61 72   When asserts ar
a2c0: 65 20 6e 6f 74 20 64 69 73 61 62 6c 65 64 2c 20  e not disabled, 
a2d0: 74 68 65 72 65 0a 20 20 20 20 63 6f 75 6c 64 20  there.    could 
a2e0: 62 65 20 61 20 66 61 75 6c 74 2e 3c 2f 6c 69 3e  be a fault.</li>
a2f0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 46  .}..chng {2002 F
a300: 65 62 20 31 33 20 28 32 2e 33 2e 31 29 7d 20 7b  eb 13 (2.3.1)} {
a310: 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20 41 6e  .<li>Bug fix: An
a320: 20 61 73 73 65 72 74 69 6f 6e 20 77 61 73 20 66   assertion was f
a330: 61 69 6c 69 6e 67 20 69 66 20 22 50 52 41 47 4d  ailing if "PRAGM
a340: 41 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61  A full_column_na
a350: 6d 65 73 3d 4f 4e 3b 22 20 77 61 73 0a 20 20 20  mes=ON;" was.   
a360: 20 73 65 74 20 61 6e 64 20 79 6f 75 20 64 69 64   set and you did
a370: 20 61 20 71 75 65 72 79 20 74 68 61 74 20 75 73   a query that us
a380: 65 64 20 61 20 72 6f 77 69 64 2c 20 6c 69 6b 65  ed a rowid, like
a390: 20 74 68 69 73 3a 20 20 0a 20 20 20 20 22 53 45   this:  .    "SE
a3a0: 4c 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52  LECT rowid, * FR
a3b0: 4f 4d 20 2e 2e 2e 22 2e 3c 2f 6c 69 3e 0a 7d 0a  OM ...".</li>.}.
a3c0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
a3d0: 33 30 20 28 32 2e 33 2e 30 29 7d 20 7b 0a 3c 6c  30 (2.3.0)} {.<l
a3e0: 69 3e 46 69 78 20 61 20 73 65 72 69 6f 75 73 20  i>Fix a serious 
a3f0: 62 75 67 20 69 6e 20 74 68 65 20 49 4e 53 45 52  bug in the INSER
a400: 54 20 63 6f 6d 6d 61 6e 64 20 77 68 69 63 68 20  T command which 
a410: 77 61 73 20 63 61 75 73 69 6e 67 20 64 61 74 61  was causing data
a420: 20 74 6f 20 67 6f 0a 20 20 20 20 69 6e 74 6f 20   to go.    into 
a430: 74 68 65 20 77 72 6f 6e 67 20 63 6f 6c 75 6d 6e  the wrong column
a440: 73 20 69 66 20 74 68 65 20 64 61 74 61 20 73 6f  s if the data so
a450: 75 72 63 65 20 77 61 73 20 61 20 53 45 4c 45 43  urce was a SELEC
a460: 54 20 61 6e 64 20 74 68 65 20 49 4e 53 45 52 54  T and the INSERT
a470: 0a 20 20 20 20 63 6c 61 75 73 65 73 20 73 70 65  .    clauses spe
a480: 63 69 66 69 65 64 20 69 74 73 20 63 6f 6c 75 6d  cified its colum
a490: 6e 73 20 69 6e 20 73 6f 6d 65 20 6f 72 64 65 72  ns in some order
a4a0: 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20   other than the 
a4b0: 64 65 66 61 75 6c 74 2e 3c 2f 6c 69 3e 0a 3c 6c  default.</li>.<l
a4c0: 69 3e 41 64 64 65 64 20 74 68 65 20 61 62 69 6c  i>Added the abil
a4d0: 69 74 79 20 74 6f 20 72 65 73 6f 6c 76 65 20 63  ity to resolve c
a4e0: 6f 6e 73 74 72 61 69 6e 74 20 63 6f 6e 66 6c 69  onstraint confli
a4f0: 63 74 73 20 69 73 20 77 61 79 73 20 6f 74 68 65  cts is ways othe
a500: 72 20 74 68 61 6e 0a 20 20 20 20 61 6e 20 61 62  r than.    an ab
a510: 6f 72 74 20 61 6e 64 20 72 6f 6c 6c 62 61 63 6b  ort and rollback
a520: 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 75 6d  .  See the docum
a530: 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20  entation on the 
a540: 22 4f 4e 20 43 4f 4e 46 4c 49 43 54 22 0a 20 20  "ON CONFLICT".  
a550: 20 20 63 6c 61 75 73 65 20 66 6f 72 20 64 65 74    clause for det
a560: 61 69 6c 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54  ails.</li>.<li>T
a570: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61  emporary files a
a580: 72 65 20 6e 6f 77 20 61 75 74 6f 6d 61 74 69 63  re now automatic
a590: 61 6c 6c 79 20 64 65 6c 65 74 65 64 20 62 79 20  ally deleted by 
a5a0: 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79  the operating sy
a5b0: 73 74 65 6d 0a 20 20 20 20 77 68 65 6e 20 63 6c  stem.    when cl
a5c0: 6f 73 65 64 2e 20 20 54 68 65 72 65 20 61 72 65  osed.  There are
a5d0: 20 6e 6f 20 6d 6f 72 65 20 64 61 6e 67 6c 69 6e   no more danglin
a5e0: 67 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65  g temporary file
a5f0: 73 20 6f 6e 20 61 20 70 72 6f 67 72 61 6d 0a 20  s on a program. 
a600: 20 20 20 63 72 61 73 68 2e 20 20 28 49 66 20 74     crash.  (If t
a610: 68 65 20 4f 53 20 63 72 61 73 68 65 73 2c 20 66  he OS crashes, f
a620: 73 63 6b 20 77 69 6c 6c 20 64 65 6c 65 74 65 20  sck will delete 
a630: 74 68 65 20 66 69 6c 65 20 61 66 74 65 72 20 72  the file after r
a640: 65 62 6f 6f 74 20 0a 20 20 20 20 75 6e 64 65 72  eboot .    under
a650: 20 55 6e 69 78 2e 20 20 49 20 64 6f 20 6e 6f 74   Unix.  I do not
a660: 20 6b 6e 6f 77 20 77 68 61 74 20 68 61 70 70 65   know what happe
a670: 6e 73 20 75 6e 64 65 72 20 57 69 6e 64 6f 77 73  ns under Windows
a680: 2e 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4e 4f 54 20  .)</li>.<li>NOT 
a690: 4e 55 4c 4c 20 63 6f 6e 73 74 72 61 69 6e 74 73  NULL constraints
a6a0: 20 61 72 65 20 68 6f 6e 6f 72 65 64 2e 3c 2f 6c   are honored.</l
a6b0: 69 3e 0a 3c 6c 69 3e 54 68 65 20 43 4f 50 59 20  i>.<li>The COPY 
a6c0: 63 6f 6d 6d 61 6e 64 20 70 75 74 73 20 4e 55 4c  command puts NUL
a6d0: 4c 73 20 69 6e 20 63 6f 6c 75 6d 6e 73 20 77 68  Ls in columns wh
a6e0: 6f 73 65 20 64 61 74 61 20 69 73 20 27 5c 4e 27  ose data is '\N'
a6f0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68  .</li>.<li>In th
a700: 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2c 20  e COPY command, 
a710: 62 61 63 6b 73 6c 61 73 68 20 63 61 6e 20 6e 6f  backslash can no
a720: 77 20 62 65 20 75 73 65 64 20 74 6f 20 65 73 63  w be used to esc
a730: 61 70 65 20 61 20 6e 65 77 6c 69 6e 65 2e 3c 2f  ape a newline.</
a740: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
a750: 65 20 53 41 4e 49 54 59 5f 43 48 45 43 4b 20 70  e SANITY_CHECK p
a760: 72 61 67 6d 61 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ragma.</li>.}..c
a770: 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 32 38  hng {2002 Jan 28
a780: 20 28 32 2e 32 2e 35 29 7d 20 7b 0a 3c 6c 69 3e   (2.2.5)} {.<li>
a790: 49 6d 70 6f 72 74 61 6e 74 20 62 75 67 20 66 69  Important bug fi
a7a0: 78 3a 20 74 68 65 20 49 4e 20 6f 70 65 72 61 74  x: the IN operat
a7b0: 6f 72 20 77 61 73 20 6e 6f 74 20 77 6f 72 6b 69  or was not worki
a7c0: 6e 67 20 69 66 20 65 69 74 68 65 72 20 74 68 65  ng if either the
a7d0: 0a 20 20 20 20 6c 65 66 74 2d 68 61 6e 64 20 6f  .    left-hand o
a7e0: 72 20 72 69 67 68 74 2d 68 61 6e 64 20 73 69 64  r right-hand sid
a7f0: 65 20 77 61 73 20 64 65 72 69 76 65 64 20 66 72  e was derived fr
a800: 6f 6d 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52  om an INTEGER PR
a810: 49 4d 41 52 59 20 4b 45 59 2e 3c 2f 6c 69 3e 0a  IMARY KEY.</li>.
a820: 3c 6c 69 3e 44 6f 20 6e 6f 74 20 65 73 63 61 70  <li>Do not escap
a830: 65 20 74 68 65 20 62 61 63 6b 73 6c 61 73 68 20  e the backslash 
a840: 27 5c 27 20 63 68 61 72 61 63 74 65 72 20 69 6e  '\' character in
a850: 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74   the output of t
a860: 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69 74 65  he.    <b>sqlite
a870: 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e  </b> command-lin
a880: 65 20 61 63 63 65 73 73 20 70 72 6f 67 72 61 6d  e access program
a890: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
a8a0: 32 30 30 32 20 4a 61 6e 20 32 32 20 28 32 2e 32  2002 Jan 22 (2.2
a8b0: 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 54 68 65 20 6c  .4)} {.<li>The l
a8c0: 61 62 65 6c 20 74 6f 20 74 68 65 20 72 69 67 68  abel to the righ
a8d0: 74 20 6f 66 20 61 6e 20 41 53 20 69 6e 20 74 68  t of an AS in th
a8e0: 65 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20 6f 66  e column list of
a8f0: 20 61 20 53 45 4c 45 43 54 20 63 61 6e 20 6e 6f   a SELECT can no
a900: 77 0a 20 20 20 20 62 65 20 75 73 65 64 20 61 73  w.    be used as
a910: 20 70 61 72 74 20 6f 66 20 61 6e 20 65 78 70 72   part of an expr
a920: 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 57 48  ession in the WH
a930: 45 52 45 2c 20 4f 52 44 45 52 20 42 59 2c 20 47  ERE, ORDER BY, G
a940: 52 4f 55 50 20 42 59 2c 20 61 6e 64 2f 6f 72 0a  ROUP BY, and/or.
a950: 20 20 20 20 48 41 56 49 4e 47 20 63 6c 61 75 73      HAVING claus
a960: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78  es.</li>.<li>Fix
a970: 20 61 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62   a bug in the <b
a980: 3e 2d 73 65 70 61 72 61 74 6f 72 3c 2f 62 3e 20  >-separator</b> 
a990: 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74  command-line opt
a9a0: 69 6f 6e 20 74 6f 20 74 68 65 20 3c 62 3e 73 71  ion to the <b>sq
a9b0: 6c 69 74 65 3c 2f 62 3e 0a 20 20 20 20 63 6f 6d  lite</b>.    com
a9c0: 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  mand.</li>.<li>F
a9d0: 69 78 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74  ix a problem wit
a9e0: 68 20 74 68 65 20 73 6f 72 74 20 6f 72 64 65 72  h the sort order
a9f0: 20 77 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20   when comparing 
aa00: 75 70 70 65 72 2d 63 61 73 65 20 73 74 72 69 6e  upper-case strin
aa10: 67 73 20 61 67 61 69 6e 73 74 0a 20 20 20 20 63  gs against.    c
aa20: 68 61 72 61 63 74 65 72 73 20 67 72 65 61 74 65  haracters greate
aa30: 72 20 74 68 61 6e 20 27 5a 27 20 62 75 74 20 6c  r than 'Z' but l
aa40: 65 73 73 20 74 68 61 6e 20 27 61 27 2e 3c 2f 6c  ess than 'a'.</l
aa50: 69 3e 0a 3c 6c 69 3e 52 65 70 6f 72 74 20 61 6e  i>.<li>Report an
aa60: 20 65 72 72 6f 72 20 69 66 20 61 6e 20 4f 52 44   error if an ORD
aa70: 45 52 20 42 59 20 6f 72 20 47 52 4f 55 50 20 42  ER BY or GROUP B
aa80: 59 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20  Y expression is 
aa90: 63 6f 6e 73 74 61 6e 74 2e 3c 2f 6c 69 3e 0a 7d  constant.</li>.}
aaa0: 0a 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e  ..chng {2002 Jan
aab0: 20 31 36 20 28 32 2e 32 2e 33 29 7d 20 7b 0a 3c   16 (2.2.3)} {.<
aac0: 6c 69 3e 46 69 78 20 77 61 72 6e 69 6e 67 20 6d  li>Fix warning m
aad0: 65 73 73 61 67 65 73 20 69 6e 20 56 43 2b 2b 20  essages in VC++ 
aae0: 37 2e 30 2e 20 20 28 50 61 74 63 68 65 73 20 66  7.0.  (Patches f
aaf0: 72 6f 6d 20 6e 69 63 6f 6c 61 73 33 35 32 30 30  rom nicolas35200
ab00: 31 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 61 6b 65  1)</li>.<li>Make
ab10: 20 74 68 65 20 6c 69 62 72 61 72 79 20 74 68 72   the library thr
ab20: 65 61 64 2d 73 61 66 65 2e 20 20 28 54 68 65 20  ead-safe.  (The 
ab30: 63 6f 64 65 20 69 73 20 74 68 65 72 65 20 61 6e  code is there an
ab40: 64 20 61 70 70 65 61 72 73 20 74 6f 20 77 6f 72  d appears to wor
ab50: 6b 0a 20 20 20 20 62 75 74 20 68 61 73 20 6e 6f  k.    but has no
ab60: 74 20 62 65 65 6e 20 73 74 72 65 73 73 65 64 2e  t been stressed.
ab70: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  )</li>.<li>Added
ab80: 20 74 68 65 20 6e 65 77 20 3c 62 3e 73 71 6c 69   the new <b>sqli
ab90: 74 65 5f 6c 61 73 74 5f 69 6e 73 65 72 74 5f 72  te_last_insert_r
aba0: 6f 77 69 64 28 29 3c 2f 62 3e 20 41 50 49 20 66  owid()</b> API f
abb0: 75 6e 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a  unction.</li>.}.
abc0: 0a 63 68 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20  .chng {2002 Jan 
abd0: 31 33 20 28 32 2e 32 2e 32 29 7d 20 7b 0a 3c 6c  13 (2.2.2)} {.<l
abe0: 69 3e 42 75 67 20 66 69 78 3a 20 41 6e 20 61 73  i>Bug fix: An as
abf0: 73 65 72 74 69 6f 6e 20 77 61 73 20 66 61 69 6c  sertion was fail
ac00: 69 6e 67 20 77 68 65 6e 20 61 20 74 65 6d 70 6f  ing when a tempo
ac10: 72 61 72 79 20 74 61 62 6c 65 20 77 69 74 68 20  rary table with 
ac20: 61 6e 20 69 6e 64 65 78 0a 20 20 20 20 68 61 64  an index.    had
ac30: 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61   the same name a
ac40: 73 20 61 20 70 65 72 6d 61 6e 65 6e 74 20 74 61  s a permanent ta
ac50: 62 6c 65 20 63 72 65 61 74 65 64 20 62 79 20 61  ble created by a
ac60: 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73   separate proces
ac70: 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20  s.</li>.<li>Bug 
ac80: 66 69 78 3a 20 55 70 64 61 74 65 73 20 74 6f 20  fix: Updates to 
ac90: 74 61 62 6c 65 73 20 63 6f 6e 74 61 69 6e 69 6e  tables containin
aca0: 67 20 61 6e 20 49 4e 54 45 47 45 52 20 50 52 49  g an INTEGER PRI
acb0: 4d 41 52 59 20 4b 45 59 20 61 6e 64 20 61 6e 0a  MARY KEY and an.
acc0: 20 20 20 20 69 6e 64 65 78 20 63 6f 75 6c 64 20      index could 
acd0: 66 61 69 6c 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  fail.</li>.}..ch
ace0: 6e 67 20 7b 32 30 30 32 20 4a 61 6e 20 39 20 28  ng {2002 Jan 9 (
acf0: 32 2e 32 2e 31 29 7d 20 7b 0a 3c 6c 69 3e 42 75  2.2.1)} {.<li>Bu
ad00: 67 20 66 69 78 3a 20 41 6e 20 61 74 74 65 6d 70  g fix: An attemp
ad10: 74 20 74 6f 20 64 65 6c 65 74 65 20 61 20 73 69  t to delete a si
ad20: 6e 67 6c 65 20 72 6f 77 20 6f 66 20 61 20 74 61  ngle row of a ta
ad30: 62 6c 65 20 77 69 74 68 20 61 20 57 48 45 52 45  ble with a WHERE
ad40: 0a 20 20 20 20 63 6c 61 75 73 65 20 6f 66 20 22  .    clause of "
ad50: 52 4f 57 49 44 3d 78 22 20 77 68 65 6e 20 6e 6f  ROWID=x" when no
ad60: 20 73 75 63 68 20 72 6f 77 69 64 20 65 78 69 73   such rowid exis
ad70: 74 73 20 77 61 73 20 63 61 75 73 69 6e 67 20 61  ts was causing a
ad80: 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 3c 6c  n error.</li>.<l
ad90: 69 3e 42 75 67 20 66 69 78 3a 20 50 61 73 73 69  i>Bug fix: Passi
ada0: 6e 67 20 69 6e 20 61 20 4e 55 4c 4c 20 61 73 20  ng in a NULL as 
adb0: 74 68 65 20 33 72 64 20 70 61 72 61 6d 65 74 65  the 3rd paramete
adc0: 72 20 74 6f 20 3c 62 3e 73 71 6c 69 74 65 5f 6f  r to <b>sqlite_o
add0: 70 65 6e 28 29 3c 2f 62 3e 0a 20 20 20 20 77 6f  pen()</b>.    wo
ade0: 75 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61  uld sometimes ca
adf0: 75 73 65 20 61 20 63 6f 72 65 64 75 6d 70 2e 3c  use a coredump.<
ae00: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
ae10: 3a 20 44 52 4f 50 20 54 41 42 4c 45 20 66 6f 6c  : DROP TABLE fol
ae20: 6c 6f 77 65 64 20 62 79 20 61 20 43 52 45 41 54  lowed by a CREAT
ae30: 45 20 54 41 42 4c 45 20 77 69 74 68 20 74 68 65  E TABLE with the
ae40: 20 73 61 6d 65 20 6e 61 6d 65 20 61 6c 6c 0a 20   same name all. 
ae50: 20 20 20 77 69 74 68 69 6e 20 61 20 73 69 6e 67     within a sing
ae60: 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77  le transaction w
ae70: 61 73 20 63 61 75 73 69 6e 67 20 61 20 63 6f 72  as causing a cor
ae80: 65 64 75 6d 70 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  edump.</li>.<li>
ae90: 4d 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73  Makefile updates
aea0: 20 66 72 6f 6d 20 41 2e 20 52 6f 74 74 6d 61 6e   from A. Rottman
aeb0: 6e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  n</li>.}..chng {
aec0: 32 30 30 31 20 44 65 63 20 32 32 20 28 32 2e 32  2001 Dec 22 (2.2
aed0: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d  .0)} {.<li>Colum
aee0: 6e 73 20 6f 66 20 74 79 70 65 20 49 4e 54 45 47  ns of type INTEG
aef0: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 20 61  ER PRIMARY KEY a
af00: 72 65 20 61 63 74 75 61 6c 6c 79 20 75 73 65 64  re actually used
af10: 20 61 73 20 74 68 65 20 70 72 69 6d 61 72 79 0a   as the primary.
af20: 20 20 20 20 6b 65 79 20 69 6e 20 75 6e 64 65 72      key in under
af30: 6c 79 69 6e 67 20 42 2d 54 72 65 65 20 72 65 70  lying B-Tree rep
af40: 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74  resentation of t
af50: 68 65 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c  he table.</li>.<
af60: 6c 69 3e 53 65 76 65 72 61 6c 20 6f 62 73 63 75  li>Several obscu
af70: 72 65 2c 20 75 6e 72 65 6c 61 74 65 64 20 62 75  re, unrelated bu
af80: 67 73 20 77 65 72 65 20 66 6f 75 6e 64 20 61 6e  gs were found an
af90: 64 20 66 69 78 65 64 20 77 68 69 6c 65 20 0a 20  d fixed while . 
afa0: 20 20 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 74     implemented t
afb0: 68 65 20 69 6e 74 65 67 65 72 20 70 72 69 6d 61  he integer prima
afc0: 72 79 20 6b 65 79 20 63 68 61 6e 67 65 20 6f 66  ry key change of
afd0: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 75   the previous bu
afe0: 6c 6c 65 74 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  llet.</li>.<li>A
aff0: 64 64 65 64 20 74 68 65 20 61 62 69 6c 69 74 79  dded the ability
b000: 20 74 6f 20 73 70 65 63 69 66 79 20 22 2a 22 20   to specify "*" 
b010: 61 73 20 70 61 72 74 20 6f 66 20 61 20 6c 61 72  as part of a lar
b020: 67 65 72 20 63 6f 6c 75 6d 6e 20 6c 69 73 74 20  ger column list 
b030: 69 6e 0a 20 20 20 20 74 68 65 20 72 65 73 75 6c  in.    the resul
b040: 74 20 73 65 63 74 69 6f 6e 20 6f 66 20 61 20 53  t section of a S
b050: 45 4c 45 43 54 20 73 74 61 74 65 6d 65 6e 74 2e  ELECT statement.
b060: 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20    For example:. 
b070: 20 20 20 3c 6e 6f 62 72 3e 22 3c 62 3e 53 45 4c     <nobr>"<b>SEL
b080: 45 43 54 20 72 6f 77 69 64 2c 20 2a 20 46 52 4f  ECT rowid, * FRO
b090: 4d 20 74 61 62 6c 65 31 3b 3c 2f 62 3e 22 3c 2f  M table1;</b>"</
b0a0: 6e 6f 62 72 3e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  nobr>.</li>.<li>
b0b0: 55 70 64 61 74 65 73 20 74 6f 20 63 6f 6d 6d 65  Updates to comme
b0c0: 6e 74 73 20 61 6e 64 20 64 6f 63 75 6d 65 6e 74  nts and document
b0d0: 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ation.</li>.}..c
b0e0: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31 34  hng {2001 Dec 14
b0f0: 20 28 32 2e 31 2e 37 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.7)} {.<li>
b100: 46 69 78 20 61 20 62 75 67 20 69 6e 20 3c 62 3e  Fix a bug in <b>
b110: 43 52 45 41 54 45 20 54 45 4d 50 4f 52 41 52 59  CREATE TEMPORARY
b120: 20 54 41 42 4c 45 3c 2f 62 3e 20 77 68 69 63 68   TABLE</b> which
b130: 20 77 61 73 20 63 61 75 73 69 6e 67 20 74 68 65   was causing the
b140: 0a 20 20 20 20 74 61 62 6c 65 20 74 6f 20 62 65  .    table to be
b150: 20 69 6e 69 74 69 61 6c 6c 79 20 61 6c 6c 6f 63   initially alloc
b160: 61 74 65 64 20 69 6e 20 74 68 65 20 6d 61 69 6e  ated in the main
b170: 20 64 61 74 61 62 61 73 65 20 66 69 6c 65 20 69   database file i
b180: 6e 73 74 65 61 64 0a 20 20 20 20 6f 66 20 69 6e  nstead.    of in
b190: 20 74 68 65 20 73 65 70 61 72 61 74 65 20 74 65   the separate te
b1a0: 6d 70 6f 72 61 72 79 20 66 69 6c 65 2e 20 20 54  mporary file.  T
b1b0: 68 69 73 20 62 75 67 20 63 6f 75 6c 64 20 63 61  his bug could ca
b1c0: 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 0a  use the library.
b1d0: 20 20 20 20 74 6f 20 73 75 66 66 65 72 20 61 6e      to suffer an
b1e0: 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75   assertion failu
b1f0: 72 65 20 61 6e 64 20 69 74 20 63 6f 75 6c 64 20  re and it could 
b200: 63 61 75 73 65 20 22 70 61 67 65 20 6c 65 61 6b  cause "page leak
b210: 73 22 20 69 6e 20 74 68 65 0a 20 20 20 20 6d 61  s" in the.    ma
b220: 69 6e 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  in database file
b230: 2e 0a 3c 6c 69 3e 46 69 78 20 61 20 62 75 67 20  ..<li>Fix a bug 
b240: 69 6e 20 74 68 65 20 62 2d 74 72 65 65 20 73 75  in the b-tree su
b250: 62 73 79 73 74 65 6d 20 74 68 61 74 20 63 6f 75  bsystem that cou
b260: 6c 64 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75  ld sometimes cau
b270: 73 65 20 74 68 65 20 66 69 72 73 74 0a 20 20 20  se the first.   
b280: 20 72 6f 77 20 6f 66 20 61 20 74 61 62 6c 65 20   row of a table 
b290: 74 6f 20 62 65 20 72 65 70 65 61 74 65 64 20 64  to be repeated d
b2a0: 75 72 69 6e 67 20 61 20 64 61 74 61 62 61 73 65  uring a database
b2b0: 20 73 63 61 6e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63   scan.</li>.}..c
b2c0: 68 6e 67 20 7b 32 30 30 31 20 44 65 63 20 31 34  hng {2001 Dec 14
b2d0: 20 28 32 2e 31 2e 36 29 7d 20 7b 0a 3c 6c 69 3e   (2.1.6)} {.<li>
b2e0: 46 69 78 20 74 68 65 20 6c 6f 63 6b 69 6e 67 20  Fix the locking 
b2f0: 6d 65 63 68 61 6e 69 73 6d 20 79 65 74 20 61 67  mechanism yet ag
b300: 61 69 6e 20 74 6f 20 70 72 65 76 65 6e 74 0a 20  ain to prevent. 
b310: 20 20 20 3c 62 3e 73 71 6c 69 74 65 5f 65 78 65     <b>sqlite_exe
b320: 63 28 29 3c 2f 62 3e 20 66 72 6f 6d 20 72 65 74  c()</b> from ret
b330: 75 72 6e 69 6e 67 20 53 51 4c 49 54 45 5f 50 52  urning SQLITE_PR
b340: 4f 54 4f 43 4f 4c 0a 20 20 20 20 75 6e 6e 65 63  OTOCOL.    unnec
b350: 65 73 73 61 72 69 6c 79 2e 20 20 54 68 69 73 20  essarily.  This 
b360: 74 69 6d 65 20 74 68 65 20 62 75 67 20 77 61 73  time the bug was
b370: 20 61 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f   a race conditio
b380: 6e 20 69 6e 0a 20 20 20 20 74 68 65 20 6c 6f 63  n in.    the loc
b390: 6b 69 6e 67 20 63 6f 64 65 2e 20 20 54 68 69 73  king code.  This
b3a0: 20 63 68 61 6e 67 65 20 65 66 66 65 63 74 73 20   change effects 
b3b0: 62 6f 74 68 20 50 4f 53 49 58 20 61 6e 64 20 57  both POSIX and W
b3c0: 69 6e 64 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c  indows users.</l
b3d0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
b3e0: 20 44 65 63 20 36 20 28 32 2e 31 2e 35 29 7d 20   Dec 6 (2.1.5)} 
b3f0: 7b 0a 3c 6c 69 3e 46 69 78 20 66 6f 72 20 61 6e  {.<li>Fix for an
b400: 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 20 28 75  other problem (u
b410: 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20  nrelated to the 
b420: 6f 6e 65 20 66 69 78 65 64 20 69 6e 20 32 2e 31  one fixed in 2.1
b430: 2e 34 29 20 0a 20 20 20 20 74 68 61 74 20 73 6f  .4) .    that so
b440: 6d 65 74 69 6d 65 73 20 63 61 75 73 65 73 20 3c  metimes causes <
b450: 62 3e 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c  b>sqlite_exec()<
b460: 2f 62 3e 20 74 6f 20 72 65 74 75 72 6e 20 53 51  /b> to return SQ
b470: 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 0a 20 20  LITE_PROTOCOL.  
b480: 20 20 75 6e 6e 65 63 65 73 73 61 72 69 6c 79 2e    unnecessarily.
b490: 20 20 54 68 69 73 20 74 69 6d 65 20 74 68 65 20    This time the 
b4a0: 62 75 67 20 77 61 73 0a 20 20 20 20 69 6e 20 74  bug was.    in t
b4b0: 68 65 20 50 4f 53 49 58 20 6c 6f 63 6b 69 6e 67  he POSIX locking
b4c0: 20 63 6f 64 65 20 61 6e 64 20 73 68 6f 75 6c 64   code and should
b4d0: 20 6e 6f 74 20 65 66 66 65 63 74 20 77 69 6e 64   not effect wind
b4e0: 6f 77 73 20 75 73 65 72 73 2e 3c 2f 6c 69 3e 0a  ows users.</li>.
b4f0: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 44 65  }..chng {2001 De
b500: 63 20 34 20 28 32 2e 31 2e 34 29 7d 20 7b 0a 3c  c 4 (2.1.4)} {.<
b510: 6c 69 3e 53 6f 6d 65 74 69 6d 65 73 20 3c 62 3e  li>Sometimes <b>
b520: 73 71 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62  sqlite_exec()</b
b530: 3e 20 77 6f 75 6c 64 20 72 65 74 75 72 6e 20 53  > would return S
b540: 51 4c 49 54 45 5f 50 52 4f 54 4f 43 4f 4c 20 77  QLITE_PROTOCOL w
b550: 68 65 6e 20 69 74 0a 20 20 20 20 73 68 6f 75 6c  hen it.    shoul
b560: 64 20 68 61 76 65 20 72 65 74 75 72 6e 65 64 20  d have returned 
b570: 53 51 4c 49 54 45 5f 42 55 53 59 2e 3c 2f 6c 69  SQLITE_BUSY.</li
b580: 3e 0a 3c 6c 69 3e 54 68 65 20 66 69 78 20 74 6f  >.<li>The fix to
b590: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 62 75   the previous bu
b5a0: 67 20 75 6e 63 6f 76 65 72 65 64 20 61 20 64 65  g uncovered a de
b5b0: 61 64 6c 6f 63 6b 20 77 68 69 63 68 20 77 61 73  adlock which was
b5c0: 20 61 6c 73 6f 0a 20 20 20 20 66 69 78 65 64 2e   also.    fixed.
b5d0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68  </li>.<li>Add th
b5e0: 65 20 61 62 69 6c 69 74 79 20 74 6f 20 70 75 74  e ability to put
b5f0: 20 61 20 73 69 6e 67 6c 65 20 2e 63 6f 6d 6d 61   a single .comma
b600: 6e 64 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64  nd in the second
b610: 20 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 6f 66   argument.    of
b620: 20 74 68 65 20 73 71 6c 69 74 65 20 73 68 65 6c   the sqlite shel
b630: 6c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 55 70 64 61 74  l</li>.<li>Updat
b640: 65 73 20 74 6f 20 74 68 65 20 46 41 51 3c 2f 6c  es to the FAQ</l
b650: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
b660: 20 4e 6f 76 20 32 33 20 28 32 2e 31 2e 33 29 7d   Nov 23 (2.1.3)}
b670: 20 7b 0a 3c 6c 69 3e 46 69 78 20 74 68 65 20 62   {.<li>Fix the b
b680: 65 68 61 76 69 6f 72 20 6f 66 20 63 6f 6d 70 61  ehavior of compa
b690: 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 73 20  rison operators 
b6a0: 0a 20 20 20 20 28 65 78 3a 20 22 3c 62 3e 26 6c  .    (ex: "<b>&l
b6b0: 74 3c 2f 62 3e 22 2c 20 22 3c 62 3e 3d 3d 3c 2f  t</b>", "<b>==</
b6c0: 62 3e 22 2c 20 65 74 63 2e 29 0a 20 20 20 20 73  b>", etc.).    s
b6d0: 6f 20 74 68 61 74 20 74 68 65 79 20 61 72 65 20  o that they are 
b6e0: 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20  consistent with 
b6f0: 74 68 65 20 6f 72 64 65 72 20 6f 66 20 65 6e 74  the order of ent
b700: 72 69 65 73 20 69 6e 20 61 6e 20 69 6e 64 65 78  ries in an index
b710: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 72 72 65  .</li>.<li>Corre
b720: 63 74 20 68 61 6e 64 6c 69 6e 67 20 6f 66 20 69  ct handling of i
b730: 6e 74 65 67 65 72 73 20 69 6e 20 53 51 4c 20 65  ntegers in SQL e
b740: 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61 74 20  xpressions that 
b750: 61 72 65 20 6c 61 72 67 65 72 20 74 68 61 6e 0a  are larger than.
b760: 20 20 20 20 77 68 61 74 20 63 61 6e 20 62 65 20      what can be 
b770: 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 74  represented by t
b780: 68 65 20 6d 61 63 68 69 6e 65 20 69 6e 74 65 67  he machine integ
b790: 65 72 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  er.</li>.}..chng
b7a0: 20 7b 32 30 30 31 20 4e 6f 76 20 32 32 20 28 32   {2001 Nov 22 (2
b7b0: 2e 31 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61  .1.2)} {.<li>Cha
b7c0: 6e 67 65 73 20 74 6f 20 73 75 70 70 6f 72 74 20  nges to support 
b7d0: 36 34 2d 62 69 74 20 61 72 63 68 69 74 65 63 74  64-bit architect
b7e0: 75 72 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46  ures.</li>.<li>F
b7f0: 69 78 20 61 20 62 75 67 20 69 6e 20 74 68 65 20  ix a bug in the 
b800: 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63 6f 6c  locking protocol
b810: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
b820: 20 62 75 67 20 74 68 61 74 20 63 6f 75 6c 64 20   bug that could 
b830: 28 72 61 72 65 6c 79 29 20 63 61 75 73 65 20 74  (rarely) cause t
b840: 68 65 20 64 61 74 61 62 61 73 65 20 74 6f 20 62  he database to b
b850: 65 63 6f 6d 65 20 0a 20 20 20 20 75 6e 72 65 61  ecome .    unrea
b860: 64 61 62 6c 65 20 61 66 74 65 72 20 61 20 44 52  dable after a DR
b870: 4f 50 20 54 41 42 4c 45 20 64 75 65 20 74 6f 20  OP TABLE due to 
b880: 63 6f 72 72 75 70 74 69 6f 6e 20 74 6f 20 74 68  corruption to th
b890: 65 20 53 51 4c 49 54 45 5f 4d 41 53 54 45 52 0a  e SQLITE_MASTER.
b8a0: 20 20 20 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a      table.</li>.
b8b0: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 63  <li>Change the c
b8c0: 6f 64 65 20 73 6f 20 74 68 61 74 20 76 65 72 73  ode so that vers
b8d0: 69 6f 6e 20 32 2e 31 2e 31 20 64 61 74 61 62 61  ion 2.1.1 databa
b8e0: 73 65 73 20 74 68 61 74 20 77 65 72 65 20 72 65  ses that were re
b8f0: 6e 64 65 72 65 64 20 0a 20 20 20 20 75 6e 72 65  ndered .    unre
b900: 61 64 61 62 6c 65 20 62 79 20 74 68 65 20 61 62  adable by the ab
b910: 6f 76 65 20 62 75 67 20 63 61 6e 20 62 65 20 72  ove bug can be r
b920: 65 61 64 20 62 79 20 74 68 69 73 20 76 65 72 73  ead by this vers
b930: 69 6f 6e 20 6f 66 0a 20 20 20 20 74 68 65 20 6c  ion of.    the l
b940: 69 62 72 61 72 79 20 65 76 65 6e 20 74 68 6f 75  ibrary even thou
b950: 67 68 20 74 68 65 20 53 51 4c 49 54 45 5f 4d 41  gh the SQLITE_MA
b960: 53 54 45 52 20 74 61 62 6c 65 20 69 73 20 28 73  STER table is (s
b970: 6c 69 67 68 74 6c 79 29 0a 20 20 20 20 63 6f 72  lightly).    cor
b980: 72 75 70 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  rupted.</li>.}..
b990: 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f 76 20 31  chng {2001 Nov 1
b9a0: 33 20 28 32 2e 31 2e 31 29 7d 20 7b 0a 3c 6c 69  3 (2.1.1)} {.<li
b9b0: 3e 42 75 67 20 66 69 78 3a 20 53 6f 6d 65 74 69  >Bug fix: Someti
b9c0: 6d 65 73 20 61 72 62 69 74 72 61 72 79 20 73 74  mes arbitrary st
b9d0: 72 69 6e 67 73 20 77 65 72 65 20 70 61 73 73 65  rings were passe
b9e0: 64 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63  d to the callbac
b9f0: 6b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 77  k.    function w
ba00: 68 65 6e 20 74 68 65 20 61 63 74 75 61 6c 20 76  hen the actual v
ba10: 61 6c 75 65 20 6f 66 20 61 20 63 6f 6c 75 6d 6e  alue of a column
ba20: 20 77 61 73 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a   was NULL.</li>.
ba30: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4e 6f  }..chng {2001 No
ba40: 76 20 31 32 20 28 32 2e 31 2e 30 29 7d 20 7b 0a  v 12 (2.1.0)} {.
ba50: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 66  <li>Change the f
ba60: 6f 72 6d 61 74 20 6f 66 20 64 61 74 61 20 72 65  ormat of data re
ba70: 63 6f 72 64 73 20 73 6f 20 74 68 61 74 20 72 65  cords so that re
ba80: 63 6f 72 64 73 20 75 70 20 74 6f 20 31 36 4d 42  cords up to 16MB
ba90: 20 69 6e 20 73 69 7a 65 0a 20 20 20 20 63 61 6e   in size.    can
baa0: 20 62 65 20 73 74 6f 72 65 64 2e 3c 2f 6c 69 3e   be stored.</li>
bab0: 0a 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20  .<li>Change the 
bac0: 66 6f 72 6d 61 74 20 6f 66 20 69 6e 64 69 63 65  format of indice
bad0: 73 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 62  s to allow for b
bae0: 65 74 74 65 72 20 71 75 65 72 79 20 6f 70 74 69  etter query opti
baf0: 6d 69 7a 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c  mization.</li>.<
bb00: 6c 69 3e 49 6d 70 6c 65 6d 65 6e 74 20 74 68 65  li>Implement the
bb10: 20 22 4c 49 4d 49 54 20 2e 2e 2e 20 4f 46 46 53   "LIMIT ... OFFS
bb20: 45 54 20 2e 2e 2e 22 20 63 6c 61 75 73 65 20 6f  ET ..." clause o
bb30: 6e 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  n SELECT stateme
bb40: 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  nts.</li>.}..chn
bb50: 67 20 7b 32 30 30 31 20 4e 6f 76 20 33 20 28 32  g {2001 Nov 3 (2
bb60: 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e 4d 61 64  .0.8)} {.<li>Mad
bb70: 65 20 73 65 6c 65 63 74 65 64 20 70 61 72 61 6d  e selected param
bb80: 65 74 65 72 73 20 69 6e 20 41 50 49 20 66 75 6e  eters in API fun
bb90: 63 74 69 6f 6e 73 20 3c 62 3e 63 6f 6e 73 74 3c  ctions <b>const<
bba0: 2f 62 3e 2e 20 54 68 69 73 20 73 68 6f 75 6c 64  /b>. This should
bbb0: 0a 20 20 20 20 62 65 20 66 75 6c 6c 79 20 62 61  .    be fully ba
bbc0: 63 6b 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62  ckwards compatib
bbd0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 44 6f 63  le.</li>.<li>Doc
bbe0: 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74  umentation updat
bbf0: 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 69 6d 70  es</li>.<li>Simp
bc00: 6c 69 66 79 20 74 68 65 20 64 65 73 69 67 6e 20  lify the design 
bc10: 6f 66 20 74 68 65 20 56 44 42 45 20 62 79 20 72  of the VDBE by r
bc20: 65 73 74 72 69 63 74 69 6e 67 20 74 68 65 20 6e  estricting the n
bc30: 75 6d 62 65 72 20 6f 66 20 73 6f 72 74 65 72 73  umber of sorters
bc40: 0a 20 20 20 20 61 6e 64 20 6c 69 73 74 73 20 74  .    and lists t
bc50: 6f 20 31 2e 0a 20 20 20 20 49 6e 20 70 72 61 63  o 1..    In prac
bc60: 74 69 63 65 2c 20 6e 6f 20 6d 6f 72 65 20 74 68  tice, no more th
bc70: 61 6e 20 6f 6e 65 20 73 6f 72 74 65 72 20 61 6e  an one sorter an
bc80: 64 20 6f 6e 65 20 6c 69 73 74 20 77 61 73 20 65  d one list was e
bc90: 76 65 72 20 75 73 65 64 20 61 6e 79 68 6f 77 2e  ver used anyhow.
bca0: 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  .    </li>.}..ch
bcb0: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32 31 20  ng {2001 Oct 21 
bcc0: 28 32 2e 30 2e 37 29 7d 20 7b 0a 3c 6c 69 3e 41  (2.0.7)} {.<li>A
bcd0: 6e 79 20 55 54 46 2d 38 20 63 68 61 72 61 63 74  ny UTF-8 charact
bce0: 65 72 20 6f 72 20 49 53 4f 38 38 35 39 20 63 68  er or ISO8859 ch
bcf0: 61 72 61 63 74 65 72 20 63 61 6e 20 62 65 20 75  aracter can be u
bd00: 73 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a 20  sed as part of. 
bd10: 20 20 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72     an identifier
bd20: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 61 74 63 68  .</li>.<li>Patch
bd30: 65 73 20 66 72 6f 6d 20 43 68 72 69 73 74 69 61  es from Christia
bd40: 6e 20 57 65 72 6e 65 72 20 74 6f 20 69 6d 70 72  n Werner to impr
bd50: 6f 76 65 20 4f 44 42 43 20 63 6f 6d 70 61 74 69  ove ODBC compati
bd60: 62 69 6c 69 74 79 20 61 6e 64 20 74 6f 0a 20 20  bility and to.  
bd70: 20 20 66 69 78 20 61 20 62 75 67 20 69 6e 20 74    fix a bug in t
bd80: 68 65 20 72 6f 75 6e 64 28 29 20 66 75 6e 63 74  he round() funct
bd90: 69 6f 6e 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 50 6c  ion.</li>.<li>Pl
bda0: 75 67 20 73 6f 6d 65 20 6d 65 6d 6f 72 79 20 6c  ug some memory l
bdb0: 65 61 6b 73 20 74 68 61 74 20 75 73 65 20 74 6f  eaks that use to
bdc0: 20 6f 63 63 75 72 20 69 66 20 6d 61 6c 6c 6f 63   occur if malloc
bdd0: 28 29 20 66 61 69 6c 65 64 2e 0a 20 20 20 20 57  () failed..    W
bde0: 65 20 68 61 76 65 20 62 65 65 6e 20 61 6e 64 20  e have been and 
bdf0: 63 6f 6e 74 69 6e 75 65 20 74 6f 20 62 65 20 6d  continue to be m
be00: 65 6d 6f 72 79 20 6c 65 61 6b 20 66 72 65 65 20  emory leak free 
be10: 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 6d  as long as.    m
be20: 61 6c 6c 6f 63 28 29 20 77 6f 72 6b 73 2e 3c 2f  alloc() works.</
be30: 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 73 20  li>.<li>Changes 
be40: 74 6f 20 73 6f 6d 65 20 74 65 73 74 20 73 63 72  to some test scr
be50: 69 70 74 73 20 73 6f 20 74 68 61 74 20 74 68 65  ipts so that the
be60: 79 20 77 6f 72 6b 20 6f 6e 20 57 69 6e 64 6f 77  y work on Window
be70: 73 20 69 6e 0a 20 20 20 20 61 64 64 69 74 69 6f  s in.    additio
be80: 6e 20 74 6f 20 55 6e 69 78 2e 3c 2f 6c 69 3e 0a  n to Unix.</li>.
be90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
bea0: 74 20 31 39 20 28 32 2e 30 2e 36 29 7d 20 7b 0a  t 19 (2.0.6)} {.
beb0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 45 4d  <li>Added the EM
bec0: 50 54 59 5f 52 45 53 55 4c 54 5f 43 41 4c 4c 42  PTY_RESULT_CALLB
bed0: 41 43 4b 53 20 70 72 61 67 6d 61 3c 2f 6c 69 3e  ACKS pragma</li>
bee0: 0a 3c 6c 69 3e 53 75 70 70 6f 72 74 20 66 6f 72  .<li>Support for
bef0: 20 55 54 46 2d 38 20 61 6e 64 20 49 53 4f 38 38   UTF-8 and ISO88
bf00: 35 39 20 63 68 61 72 61 63 74 65 72 73 20 69 6e  59 characters in
bf10: 20 63 6f 6c 75 6d 6e 20 61 6e 64 20 74 61 62 6c   column and tabl
bf20: 65 20 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c  e names.</li>.<l
bf30: 69 3e 42 75 67 20 66 69 78 3a 20 43 6f 6d 70 75  i>Bug fix: Compu
bf40: 74 65 20 63 6f 72 72 65 63 74 20 74 61 62 6c 65  te correct table
bf50: 20 6e 61 6d 65 73 20 77 69 74 68 20 74 68 65 20   names with the 
bf60: 46 55 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45  FULL_COLUMN_NAME
bf70: 53 20 70 72 61 67 6d 61 0a 20 20 20 20 69 73 20  S pragma.    is 
bf80: 74 75 72 6e 65 64 20 6f 6e 2e 3c 2f 6c 69 3e 0a  turned on.</li>.
bf90: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 4f 63  }..chng {2001 Oc
bfa0: 74 20 31 34 20 28 32 2e 30 2e 35 29 7d 20 7b 0a  t 14 (2.0.5)} {.
bfb0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 43 4f  <li>Added the CO
bfc0: 55 4e 54 5f 43 48 41 4e 47 45 53 20 70 72 61 67  UNT_CHANGES prag
bfd0: 6d 61 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61  ma.</li>.<li>Cha
bfe0: 6e 67 65 73 20 74 6f 20 74 68 65 20 46 55 4c 4c  nges to the FULL
bff0: 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20 70 72  _COLUMN_NAMES pr
c000: 61 67 6d 61 20 74 6f 20 68 65 6c 70 20 6f 75 74  agma to help out
c010: 20 74 68 65 20 4f 44 42 43 20 64 72 69 76 65 72   the ODBC driver
c020: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66  .</li>.<li>Bug f
c030: 69 78 3a 20 22 53 45 4c 45 43 54 20 63 6f 75 6e  ix: "SELECT coun
c040: 74 28 2a 29 22 20 77 61 73 20 72 65 74 75 72 6e  t(*)" was return
c050: 69 6e 67 20 4e 55 4c 4c 20 66 6f 72 20 65 6d 70  ing NULL for emp
c060: 74 79 20 74 61 62 6c 65 73 2e 0a 20 20 20 20 4e  ty tables..    N
c070: 6f 77 20 69 74 20 72 65 74 75 72 6e 73 20 30 2e  ow it returns 0.
c080: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
c090: 30 30 31 20 4f 63 74 20 31 33 20 28 32 2e 30 2e  001 Oct 13 (2.0.
c0a0: 34 29 7d 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69  4)} {.<li>Bug fi
c0b0: 78 3a 20 61 6e 20 6f 62 73 63 75 72 65 20 61 6e  x: an obscure an
c0c0: 64 20 72 65 6c 61 74 69 76 65 6c 79 20 68 61 72  d relatively har
c0d0: 6d 6c 65 73 73 20 62 75 67 20 77 61 73 20 63 61  mless bug was ca
c0e0: 75 73 69 6e 67 20 6f 6e 65 20 6f 66 0a 20 20 20  using one of.   
c0f0: 20 74 68 65 20 74 65 73 74 73 20 74 6f 20 66 61   the tests to fa
c100: 69 6c 20 77 68 65 6e 20 67 63 63 20 6f 70 74 69  il when gcc opti
c110: 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 74 75  mizations are tu
c120: 72 6e 65 64 20 6f 6e 2e 20 20 54 68 69 73 20 72  rned on.  This r
c130: 65 6c 65 61 73 65 0a 20 20 20 20 66 69 78 65 73  elease.    fixes
c140: 20 74 68 65 20 70 72 6f 62 6c 65 6d 2e 3c 2f 6c   the problem.</l
c150: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31  i>.}..chng {2001
c160: 20 4f 63 74 20 31 33 20 28 32 2e 30 2e 33 29 7d   Oct 13 (2.0.3)}
c170: 20 7b 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a 20   {.<li>Bug fix: 
c180: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75  the <b>sqlite_bu
c190: 73 79 5f 74 69 6d 65 6f 75 74 28 29 3c 2f 62 3e  sy_timeout()</b>
c1a0: 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 20 64 65   function was de
c1b0: 6c 61 79 69 6e 67 20 31 30 30 30 0a 20 20 20 20  laying 1000.    
c1c0: 74 69 6d 65 73 20 74 6f 6f 20 6c 6f 6e 67 20 62  times too long b
c1d0: 65 66 6f 72 65 20 66 61 69 6c 69 6e 67 2e 3c 2f  efore failing.</
c1e0: 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78 3a  li>.<li>Bug fix:
c1f0: 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 77 61   an assertion wa
c200: 73 20 66 61 69 6c 69 6e 67 20 69 66 20 74 68 65  s failing if the
c210: 20 64 69 73 6b 20 68 6f 6c 64 69 6e 67 20 74 68   disk holding th
c220: 65 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66  e database.    f
c230: 69 6c 65 20 62 65 63 61 6d 65 20 66 75 6c 6c 20  ile became full 
c240: 6f 72 20 73 74 6f 70 70 65 64 20 61 63 63 65 70  or stopped accep
c250: 74 69 6e 67 20 77 72 69 74 65 73 20 66 6f 72 20  ting writes for 
c260: 73 6f 6d 65 20 6f 74 68 65 72 20 72 65 61 73 6f  some other reaso
c270: 6e 2e 0a 20 20 20 20 4e 65 77 20 74 65 73 74 73  n..    New tests
c280: 20 77 65 72 65 20 61 64 64 65 64 20 74 6f 20 64   were added to d
c290: 65 74 65 63 74 20 73 69 6d 69 6c 61 72 20 70 72  etect similar pr
c2a0: 6f 62 6c 65 6d 73 20 69 6e 20 74 68 65 20 66 75  oblems in the fu
c2b0: 74 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41  ture.</li>.<li>A
c2c0: 64 64 65 64 20 6e 65 77 20 6f 70 65 72 61 74 6f  dded new operato
c2d0: 72 73 3a 20 3c 62 3e 26 61 6d 70 3b 3c 2f 62 3e  rs: <b>&amp;</b>
c2e0: 20 28 62 69 74 77 69 73 65 2d 61 6e 64 29 0a 20   (bitwise-and). 
c2f0: 20 20 20 3c 62 3e 7c 3c 2f 62 3e 20 28 62 69 74     <b>|</b> (bit
c300: 77 69 73 65 2d 6f 72 29 2c 20 3c 62 3e 7e 3c 2f  wise-or), <b>~</
c310: 62 3e 20 28 6f 6e 65 73 2d 63 6f 6d 70 6c 65 6d  b> (ones-complem
c320: 65 6e 74 29 2c 0a 20 20 20 20 3c 62 3e 26 6c 74  ent),.    <b>&lt
c330: 3b 26 6c 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74  ;&lt;</b> (shift
c340: 20 6c 65 66 74 29 2c 20 3c 62 3e 26 67 74 3b 26   left), <b>&gt;&
c350: 67 74 3b 3c 2f 62 3e 20 28 73 68 69 66 74 20 72  gt;</b> (shift r
c360: 69 67 68 74 29 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  ight).</li>.<li>
c370: 41 64 64 65 64 20 6e 65 77 20 66 75 6e 63 74 69  Added new functi
c380: 6f 6e 73 3a 20 3c 62 3e 72 6f 75 6e 64 28 29 3c  ons: <b>round()<
c390: 2f 62 3e 20 61 6e 64 20 3c 62 3e 61 62 73 28 29  /b> and <b>abs()
c3a0: 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  </b>.</li>.}..ch
c3b0: 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 39 20 28  ng {2001 Oct 9 (
c3c0: 32 2e 30 2e 32 29 7d 20 7b 0a 3c 6c 69 3e 46 69  2.0.2)} {.<li>Fi
c3d0: 78 20 74 77 6f 20 62 75 67 73 20 69 6e 20 74 68  x two bugs in th
c3e0: 65 20 6c 6f 63 6b 69 6e 67 20 70 72 6f 74 6f 63  e locking protoc
c3f0: 6f 6c 2e 20 20 28 4f 6e 65 20 77 61 73 20 6d 61  ol.  (One was ma
c400: 73 6b 69 6e 67 20 74 68 65 20 6f 74 68 65 72 2e  sking the other.
c410: 29 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  )</li>.<li>Remov
c420: 65 64 20 73 6f 6d 65 20 75 6e 75 73 65 64 20 22  ed some unused "
c430: 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64  #include <unistd
c440: 2e 68 3e 22 20 74 68 61 74 20 77 65 72 65 20 63  .h>" that were c
c450: 61 75 73 69 6e 67 20 70 72 6f 62 6c 65 6d 73 0a  ausing problems.
c460: 20 20 20 20 66 6f 72 20 56 43 2b 2b 2e 3c 2f 6c      for VC++.</l
c470: 69 3e 0a 3c 6c 69 3e 46 69 78 65 64 20 3c 62 3e  i>.<li>Fixed <b>
c480: 73 71 6c 69 74 65 2e 68 3c 2f 62 3e 20 73 6f 20  sqlite.h</b> so 
c490: 74 68 61 74 20 69 74 20 69 73 20 75 73 61 62 6c  that it is usabl
c4a0: 65 20 66 72 6f 6d 20 43 2b 2b 3c 2f 6c 69 3e 0a  e from C++</li>.
c4b0: 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20 46 55  <li>Added the FU
c4c0: 4c 4c 5f 43 4f 4c 55 4d 4e 5f 4e 41 4d 45 53 20  LL_COLUMN_NAMES 
c4d0: 70 72 61 67 6d 61 2e 20 20 57 68 65 6e 20 73 65  pragma.  When se
c4e0: 74 20 74 6f 20 22 4f 4e 22 2c 20 74 68 65 20 6e  t to "ON", the n
c4f0: 61 6d 65 73 20 6f 66 0a 20 20 20 20 63 6f 6c 75  ames of.    colu
c500: 6d 6e 73 20 61 72 65 20 72 65 70 6f 72 74 65 64  mns are reported
c510: 20 62 61 63 6b 20 61 73 20 54 41 42 4c 45 2e 43   back as TABLE.C
c520: 4f 4c 55 4d 4e 20 69 6e 73 74 65 61 64 20 6f 66  OLUMN instead of
c530: 20 6a 75 73 74 20 43 4f 4c 55 4d 4e 2e 3c 2f 6c   just COLUMN.</l
c540: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65  i>.<li>Added the
c550: 20 54 41 42 4c 45 5f 49 4e 46 4f 28 29 20 61 6e   TABLE_INFO() an
c560: 64 20 49 4e 44 45 58 5f 49 4e 46 4f 28 29 20 70  d INDEX_INFO() p
c570: 72 61 67 6d 61 73 20 74 6f 20 68 65 6c 70 20 73  ragmas to help s
c580: 75 70 70 6f 72 74 20 74 68 65 0a 20 20 20 20 4f  upport the.    O
c590: 44 42 43 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f  DBC interface.</
c5a0: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75  li>.<li>Added su
c5b0: 70 70 6f 72 74 20 66 6f 72 20 54 45 4d 50 4f 52  pport for TEMPOR
c5c0: 41 52 59 20 74 61 62 6c 65 73 20 61 6e 64 20 69  ARY tables and i
c5d0: 6e 64 69 63 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  ndices.</li>.}..
c5e0: 63 68 6e 67 20 7b 32 30 30 31 20 4f 63 74 20 32  chng {2001 Oct 2
c5f0: 20 28 32 2e 30 2e 31 29 7d 20 7b 0a 3c 6c 69 3e   (2.0.1)} {.<li>
c600: 52 65 6d 6f 76 65 20 73 6f 6d 65 20 43 2b 2b 20  Remove some C++ 
c610: 73 74 79 6c 65 20 63 6f 6d 6d 65 6e 74 73 20 66  style comments f
c620: 72 6f 6d 20 62 74 72 65 65 2e 63 20 73 6f 20 74  rom btree.c so t
c630: 68 61 74 20 69 74 20 77 69 6c 6c 20 63 6f 6d 70  hat it will comp
c640: 69 6c 65 0a 20 20 20 20 75 73 69 6e 67 20 63 6f  ile.    using co
c650: 6d 70 69 6c 65 72 73 20 6f 74 68 65 72 20 74 68  mpilers other th
c660: 61 6e 20 67 63 63 2e 3c 2f 6c 69 3e 0a 3c 6c 69  an gcc.</li>.<li
c670: 3e 54 68 65 20 22 2e 64 75 6d 70 22 20 6f 75 74  >The ".dump" out
c680: 70 75 74 20 66 72 6f 6d 20 74 68 65 20 73 68 65  put from the she
c690: 6c 6c 20 64 6f 65 73 20 6e 6f 74 20 77 6f 72 6b  ll does not work
c6a0: 20 69 66 20 74 68 65 72 65 20 61 72 65 20 65 6d   if there are em
c6b0: 62 65 64 64 65 64 0a 20 20 20 20 6e 65 77 6c 69  bedded.    newli
c6c0: 6e 65 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20  nes anywhere in 
c6d0: 74 68 65 20 64 61 74 61 2e 20 20 54 68 69 73 20  the data.  This 
c6e0: 69 73 20 61 6e 20 6f 6c 64 20 62 75 67 20 74 68  is an old bug th
c6f0: 61 74 20 77 61 73 20 63 61 72 72 69 65 64 0a 20  at was carried. 
c700: 20 20 20 66 6f 72 77 61 72 64 20 66 72 6f 6d 20     forward from 
c710: 76 65 72 73 69 6f 6e 20 31 2e 30 2e 20 20 54 6f  version 1.0.  To
c720: 20 66 69 78 20 69 74 2c 20 74 68 65 20 22 2e 64   fix it, the ".d
c730: 75 6d 70 22 20 6f 75 74 70 75 74 20 6e 6f 20 6c  ump" output no l
c740: 6f 6e 67 65 72 0a 20 20 20 20 75 73 65 73 20 74  onger.    uses t
c750: 68 65 20 43 4f 50 59 20 63 6f 6d 6d 61 6e 64 2e  he COPY command.
c760: 20 20 49 74 20 69 6e 73 74 65 61 64 20 67 65 6e    It instead gen
c770: 65 72 61 74 65 73 20 49 4e 53 45 52 54 20 73 74  erates INSERT st
c780: 61 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c  atements.</li>.<
c790: 6c 69 3e 45 78 74 65 6e 64 20 74 68 65 20 65 78  li>Extend the ex
c7a0: 70 72 65 73 73 69 6f 6e 20 73 79 6e 74 61 78 20  pression syntax 
c7b0: 74 6f 20 73 75 70 70 6f 72 74 20 22 65 78 70 72  to support "expr
c7c0: 20 4e 4f 54 20 4e 55 4c 4c 22 20 28 77 69 74 68   NOT NULL" (with
c7d0: 20 61 0a 20 20 20 20 73 70 61 63 65 20 62 65 74   a.    space bet
c7e0: 77 65 65 6e 20 74 68 65 20 22 4e 4f 54 22 20 61  ween the "NOT" a
c7f0: 6e 64 20 74 68 65 20 22 4e 55 4c 4c 22 29 20 69  nd the "NULL") i
c800: 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 22 65  n addition to "e
c810: 78 70 72 20 4e 4f 54 4e 55 4c 4c 22 0a 20 20 20  xpr NOTNULL".   
c820: 20 28 77 69 74 68 20 6e 6f 20 73 70 61 63 65 29   (with no space)
c830: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
c840: 32 30 30 31 20 53 65 70 20 32 38 20 28 32 2e 30  2001 Sep 28 (2.0
c850: 2e 30 29 7d 20 7b 0a 3c 6c 69 3e 41 75 74 6f 6d  .0)} {.<li>Autom
c860: 61 74 69 63 61 6c 6c 79 20 62 75 69 6c 64 20 62  atically build b
c870: 69 6e 61 72 69 65 73 20 66 6f 72 20 4c 69 6e 75  inaries for Linu
c880: 78 20 61 6e 64 20 57 69 6e 64 6f 77 73 20 61 6e  x and Windows an
c890: 64 20 70 75 74 20 74 68 65 6d 20 6f 6e 0a 20 20  d put them on.  
c8a0: 20 20 74 68 65 20 77 65 62 73 69 74 65 2e 3c 2f    the website.</
c8b0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
c8c0: 31 20 53 65 70 20 32 38 20 28 32 2e 30 2d 61 6c  1 Sep 28 (2.0-al
c8d0: 70 68 61 2d 34 29 7d 20 7b 0a 3c 6c 69 3e 49 6e  pha-4)} {.<li>In
c8e0: 63 6f 72 70 6f 72 61 74 65 20 6d 61 6b 65 66 69  corporate makefi
c8f0: 6c 65 20 70 61 74 63 68 65 73 20 66 6f 72 6d 20  le patches form 
c900: 41 2e 20 52 6f 74 74 6d 61 6e 6e 20 74 6f 20 75  A. Rottmann to u
c910: 73 65 20 4c 49 42 54 4f 4f 4c 3c 2f 6c 69 3e 0a  se LIBTOOL</li>.
c920: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 53 65  }..chng {2001 Se
c930: 70 20 32 37 20 28 32 2e 30 2d 61 6c 70 68 61 2d  p 27 (2.0-alpha-
c940: 33 29 7d 20 7b 0a 3c 6c 69 3e 53 51 4c 69 74 65  3)} {.<li>SQLite
c950: 20 6e 6f 77 20 68 6f 6e 6f 72 73 20 74 68 65 20   now honors the 
c960: 55 4e 49 51 55 45 20 6b 65 79 77 6f 72 64 20 69  UNIQUE keyword i
c970: 6e 20 43 52 45 41 54 45 20 55 4e 49 51 55 45 20  n CREATE UNIQUE 
c980: 49 4e 44 45 58 2e 20 20 50 72 69 6d 61 72 79 0a  INDEX.  Primary.
c990: 20 20 20 20 6b 65 79 73 20 61 72 65 20 72 65 71      keys are req
c9a0: 75 69 72 65 64 20 74 6f 20 62 65 20 75 6e 69 71  uired to be uniq
c9b0: 75 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 6c  ue.</li>.<li>Fil
c9c0: 65 20 66 6f 72 6d 61 74 20 63 68 61 6e 67 65 64  e format changed
c9d0: 20 62 61 63 6b 20 74 6f 20 77 68 61 74 20 69 74   back to what it
c9e0: 20 77 61 73 20 66 6f 72 20 61 6c 70 68 61 2d 31   was for alpha-1
c9f0: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 65 73 20  </li>.<li>Fixes 
ca00: 74 6f 20 74 68 65 20 72 6f 6c 6c 62 61 63 6b 20  to the rollback 
ca10: 61 6e 64 20 6c 6f 63 6b 69 6e 67 20 62 65 68 61  and locking beha
ca20: 76 69 6f 72 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  vior</li>.}..chn
ca30: 67 20 7b 32 30 30 31 20 53 65 70 20 32 30 20 28  g {2001 Sep 20 (
ca40: 32 2e 30 2d 61 6c 70 68 61 2d 32 29 7d 20 7b 0a  2.0-alpha-2)} {.
ca50: 3c 6c 69 3e 49 6e 69 74 69 61 6c 20 72 65 6c 65  <li>Initial rele
ca60: 61 73 65 20 6f 66 20 76 65 72 73 69 6f 6e 20 32  ase of version 2
ca70: 2e 30 2e 20 20 54 68 65 20 69 64 65 61 20 6f 66  .0.  The idea of
ca80: 20 72 65 6e 61 6d 69 6e 67 20 74 68 65 20 6c 69   renaming the li
ca90: 62 72 61 72 79 0a 20 20 20 20 74 6f 20 22 53 51  brary.    to "SQ
caa0: 4c 75 73 22 20 77 61 73 20 61 62 61 6e 64 6f 6e  Lus" was abandon
cab0: 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 6b  ed in favor of k
cac0: 65 65 70 69 6e 67 20 74 68 65 20 22 53 51 4c 69  eeping the "SQLi
cad0: 74 65 22 20 6e 61 6d 65 20 61 6e 64 0a 20 20 20  te" name and.   
cae0: 20 62 75 6d 70 69 6e 67 20 74 68 65 20 6d 61 6a   bumping the maj
caf0: 6f 72 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65  or version numbe
cb00: 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20  r.</li>.<li>The 
cb10: 70 61 67 65 72 20 61 6e 64 20 62 74 72 65 65 20  pager and btree 
cb20: 73 75 62 73 79 73 74 65 6d 73 20 61 64 64 65 64  subsystems added
cb30: 20 62 61 63 6b 2e 20 54 68 65 79 20 61 72 65 20   back. They are 
cb40: 6e 6f 77 20 74 68 65 20 6f 6e 6c 79 0a 20 20 20  now the only.   
cb50: 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63 6b 65   available backe
cb60: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65  nd.</li>.<li>The
cb70: 20 44 62 62 65 20 61 62 73 74 72 61 63 74 69 6f   Dbbe abstractio
cb80: 6e 20 61 6e 64 20 74 68 65 20 47 44 42 4d 20 61  n and the GDBM a
cb90: 6e 64 20 6d 65 6d 6f 72 79 20 64 72 69 76 65 72  nd memory driver
cba0: 73 20 77 65 72 65 20 72 65 6d 6f 76 65 64 2e 3c  s were removed.<
cbb0: 2f 6c 69 3e 0a 3c 6c 69 3e 43 6f 70 79 72 69 67  /li>.<li>Copyrig
cbc0: 68 74 20 6f 6e 20 61 6c 6c 20 63 6f 64 65 20 77  ht on all code w
cbd0: 61 73 20 64 69 73 63 6c 61 69 6d 65 64 2e 20 20  as disclaimed.  
cbe0: 54 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 6e  The library is n
cbf0: 6f 77 20 69 6e 20 74 68 65 0a 20 20 20 20 70 75  ow in the.    pu
cc00: 62 6c 69 63 20 64 6f 6d 61 69 6e 2e 3c 2f 6c 69  blic domain.</li
cc10: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20  >.}..chng {2001 
cc20: 4a 75 6c 20 32 33 20 28 31 2e 30 2e 33 32 29 7d  Jul 23 (1.0.32)}
cc30: 20 7b 0a 3c 6c 69 3e 50 61 67 65 72 20 61 6e 64   {.<li>Pager and
cc40: 20 62 74 72 65 65 20 73 75 62 73 79 73 74 65 6d   btree subsystem
cc50: 73 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 65 73  s removed.  Thes
cc60: 65 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69  e will be used i
cc70: 6e 20 61 20 66 6f 6c 6c 6f 77 2d 6f 6e 0a 20 20  n a follow-on.  
cc80: 20 20 53 51 4c 20 73 65 72 76 65 72 20 6c 69 62    SQL server lib
cc90: 72 61 72 79 20 6e 61 6d 65 64 20 22 53 51 4c 75  rary named "SQLu
cca0: 73 22 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  s".</li>.<li>Add
ccb0: 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20   the ability to 
ccc0: 75 73 65 20 71 75 6f 74 65 64 20 73 74 72 69 6e  use quoted strin
ccd0: 67 73 20 61 73 20 74 61 62 6c 65 20 61 6e 64 20  gs as table and 
cce0: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 73 20 69 6e 0a  column names in.
ccf0: 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e      expressions.
cd00: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
cd10: 30 30 31 20 41 70 72 20 31 34 20 28 31 2e 30 2e  001 Apr 14 (1.0.
cd20: 33 31 29 7d 20 7b 0a 3c 6c 69 3e 50 61 67 65 72  31)} {.<li>Pager
cd30: 20 73 75 62 73 79 73 74 65 6d 20 61 64 64 65 64   subsystem added
cd40: 20 62 75 74 20 6e 6f 74 20 79 65 74 20 75 73 65   but not yet use
cd50: 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 72 65  d.</li>.<li>More
cd60: 20 72 6f 62 75 73 74 20 68 61 6e 64 6c 69 6e 67   robust handling
cd70: 20 6f 66 20 6f 75 74 2d 6f 66 2d 6d 65 6d 6f 72   of out-of-memor
cd80: 79 20 65 72 72 6f 72 73 2e 3c 2f 6c 69 3e 0a 3c  y errors.</li>.<
cd90: 6c 69 3e 4e 65 77 20 74 65 73 74 73 20 61 64 64  li>New tests add
cda0: 65 64 20 74 6f 20 74 68 65 20 74 65 73 74 20 73  ed to the test s
cdb0: 75 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  uite.</li>.}..ch
cdc0: 6e 67 20 7b 32 30 30 31 20 41 70 72 20 36 20 28  ng {2001 Apr 6 (
cdd0: 31 2e 30 2e 33 30 29 7d 20 7b 0a 3c 6c 69 3e 52  1.0.30)} {.<li>R
cde0: 65 6d 6f 76 65 20 74 68 65 20 3c 62 3e 73 71 6c  emove the <b>sql
cdf0: 69 74 65 5f 65 6e 63 6f 64 69 6e 67 3c 2f 62 3e  ite_encoding</b>
ce00: 20 54 43 4c 20 76 61 72 69 61 62 6c 65 20 74 68   TCL variable th
ce10: 61 74 20 77 61 73 20 69 6e 74 72 6f 64 75 63 65  at was introduce
ce20: 64 0a 20 20 20 20 69 6e 20 74 68 65 20 70 72 65  d.    in the pre
ce30: 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 2e 3c 2f  vious version.</
ce40: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 20 6f 70 74 69  li>.<li>Add opti
ce50: 6f 6e 73 20 3c 62 3e 2d 65 6e 63 6f 64 69 6e 67  ons <b>-encoding
ce60: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 2d 74 63 6c  </b> and <b>-tcl
ce70: 2d 75 73 65 73 2d 75 74 66 3c 2f 62 3e 20 74 6f  -uses-utf</b> to
ce80: 20 74 68 65 0a 20 20 20 20 3c 62 3e 73 71 6c 69   the.    <b>sqli
ce90: 74 65 3c 2f 62 3e 20 54 43 4c 20 63 6f 6d 6d 61  te</b> TCL comma
cea0: 6e 64 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  nd.</li>.<li>Add
ceb0: 20 74 65 73 74 73 20 74 6f 20 6d 61 6b 65 20 73   tests to make s
cec0: 75 72 65 20 74 68 61 74 20 74 63 6c 73 71 6c 69  ure that tclsqli
ced0: 74 65 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20  te was compiled 
cee0: 75 73 69 6e 67 20 54 63 6c 20 68 65 61 64 65 72  using Tcl header
cef0: 0a 20 20 20 20 66 69 6c 65 73 20 61 6e 64 20 6c  .    files and l
cf00: 69 62 72 61 72 69 65 73 20 74 68 61 74 20 6d 61  ibraries that ma
cf10: 74 63 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  tch.</li>.}..chn
cf20: 67 20 7b 32 30 30 31 20 41 70 72 20 35 20 28 31  g {2001 Apr 5 (1
cf30: 2e 30 2e 32 39 29 7d 20 7b 0a 3c 6c 69 3e 54 68  .0.29)} {.<li>Th
cf40: 65 20 6c 69 62 72 61 72 79 20 6e 6f 77 20 61 73  e library now as
cf50: 73 75 6d 65 73 20 64 61 74 61 20 69 73 20 73 74  sumes data is st
cf60: 6f 72 65 64 20 61 73 20 55 54 46 2d 38 20 69 66  ored as UTF-8 if
cf70: 20 74 68 65 20 2d 2d 65 6e 61 62 6c 65 2d 75 74   the --enable-ut
cf80: 66 38 0a 20 20 20 20 6f 70 74 69 6f 6e 20 69 73  f8.    option is
cf90: 20 67 69 76 65 6e 20 74 6f 20 63 6f 6e 66 69 67   given to config
cfa0: 75 72 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c  ure.  The defaul
cfb0: 74 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f  t behavior is to
cfc0: 20 61 73 73 75 6d 65 0a 20 20 20 20 69 73 6f 38   assume.    iso8
cfd0: 38 35 39 2d 78 2c 20 61 73 20 69 74 20 68 61 73  859-x, as it has
cfe0: 20 61 6c 77 61 79 73 20 64 6f 6e 65 2e 20 20 54   always done.  T
cff0: 68 69 73 20 6f 6e 6c 79 20 6d 61 6b 65 73 20 61  his only makes a
d000: 20 64 69 66 66 65 72 65 6e 63 65 20 66 6f 72 0a   difference for.
d010: 20 20 20 20 4c 49 4b 45 20 61 6e 64 20 47 4c 4f      LIKE and GLO
d020: 42 20 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20  B operators and 
d030: 74 68 65 20 4c 45 4e 47 54 48 20 61 6e 64 20 53  the LENGTH and S
d040: 55 42 53 54 52 20 66 75 6e 63 74 69 6f 6e 73 2e  UBSTR functions.
d050: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 49 66 20 74 68 65  </li>.<li>If the
d060: 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74 20   library is not 
d070: 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20 55  configured for U
d080: 54 46 2d 38 20 61 6e 64 20 74 68 65 20 54 63 6c  TF-8 and the Tcl
d090: 20 6c 69 62 72 61 72 79 0a 20 20 20 20 69 73 20   library.    is 
d0a0: 6f 6e 65 20 6f 66 20 74 68 65 20 6e 65 77 65 72  one of the newer
d0b0: 20 6f 6e 65 73 20 74 68 61 74 20 75 73 65 73 20   ones that uses 
d0c0: 55 54 46 2d 38 20 69 6e 74 65 72 6e 61 6c 6c 79  UTF-8 internally
d0d0: 2c 0a 20 20 20 20 74 68 65 6e 20 61 20 63 6f 6e  ,.    then a con
d0e0: 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 55 54 46  version from UTF
d0f0: 2d 38 20 74 6f 20 69 73 6f 38 38 35 39 20 61 6e  -8 to iso8859 an
d100: 64 0a 20 20 20 20 62 61 63 6b 20 61 67 61 69 6e  d.    back again
d110: 20 69 73 20 64 6f 6e 65 20 69 6e 73 69 64 65 20   is done inside 
d120: 74 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63  the TCL interfac
d130: 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  e.</li>.}..chng 
d140: 7b 32 30 30 31 20 41 70 72 20 34 20 28 31 2e 30  {2001 Apr 4 (1.0
d150: 2e 32 38 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65  .28)} {.<li>Adde
d160: 64 20 6c 69 6d 69 74 65 64 20 73 75 70 70 6f 72  d limited suppor
d170: 74 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f  t for transactio
d180: 6e 73 2e 20 20 41 74 20 74 68 69 73 20 70 6f 69  ns.  At this poi
d190: 6e 74 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73  nt, transactions
d1a0: 0a 20 20 20 20 77 69 6c 6c 20 64 6f 20 74 61 62  .    will do tab
d1b0: 6c 65 20 6c 6f 63 6b 69 6e 67 20 6f 6e 20 74 68  le locking on th
d1c0: 65 20 47 44 42 4d 20 62 61 63 6b 65 6e 64 2e 20  e GDBM backend. 
d1d0: 20 54 68 65 72 65 20 69 73 20 6e 6f 20 73 75 70   There is no sup
d1e0: 70 6f 72 74 20 28 79 65 74 29 0a 20 20 20 20 66  port (yet).    f
d1f0: 6f 72 20 72 6f 6c 6c 62 61 63 6b 20 6f 72 20 61  or rollback or a
d200: 74 6f 6d 69 63 20 63 6f 6d 6d 69 74 2e 3c 2f 6c  tomic commit.</l
d210: 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73 70 65  i>.<li>Added spe
d220: 63 69 61 6c 20 63 6f 6c 75 6d 6e 20 6e 61 6d 65  cial column name
d230: 73 20 52 4f 57 49 44 2c 20 4f 49 44 2c 20 61 6e  s ROWID, OID, an
d240: 64 20 5f 52 4f 57 49 44 5f 20 74 68 61 74 20 72  d _ROWID_ that r
d250: 65 66 65 72 20 74 6f 20 74 68 65 0a 20 20 20 20  efer to the.    
d260: 75 6e 69 71 75 65 20 72 61 6e 64 6f 6d 20 69 6e  unique random in
d270: 74 65 67 65 72 20 6b 65 79 20 61 73 73 6f 63 69  teger key associ
d280: 61 74 65 64 20 77 69 74 68 20 65 76 65 72 79 20  ated with every 
d290: 72 6f 77 20 6f 66 20 65 76 65 72 79 20 74 61 62  row of every tab
d2a0: 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64  le.</li>.<li>Add
d2b0: 69 74 69 6f 6e 61 6c 20 74 65 73 74 73 20 61 64  itional tests ad
d2c0: 64 65 64 20 74 6f 20 74 68 65 20 72 65 67 72 65  ded to the regre
d2d0: 73 73 69 6f 6e 20 73 75 69 74 65 20 74 6f 20 63  ssion suite to c
d2e0: 6f 76 65 72 20 74 68 65 20 6e 65 77 20 52 4f 57  over the new ROW
d2f0: 49 44 0a 20 20 20 20 66 65 61 74 75 72 65 20 61  ID.    feature a
d300: 6e 64 20 74 68 65 20 54 43 4c 20 69 6e 74 65 72  nd the TCL inter
d310: 66 61 63 65 20 62 75 67 73 20 6d 65 6e 74 69 6f  face bugs mentio
d320: 6e 65 64 20 62 65 6c 6f 77 2e 3c 2f 6c 69 3e 0a  ned below.</li>.
d330: 3c 6c 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 74  <li>Changes to t
d340: 68 65 20 22 6c 65 6d 6f 6e 22 20 70 61 72 73 65  he "lemon" parse
d350: 72 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 20 68  r generator to h
d360: 65 6c 70 20 69 74 20 77 6f 72 6b 20 62 65 74 74  elp it work bett
d370: 65 72 20 77 68 65 6e 0a 20 20 20 20 63 6f 6d 70  er when.    comp
d380: 69 6c 65 64 20 75 73 69 6e 67 20 4d 53 56 43 2e  iled using MSVC.
d390: 3c 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69  </li>.<li>Bug fi
d3a0: 78 65 73 20 69 6e 20 74 68 65 20 54 43 4c 20 69  xes in the TCL i
d3b0: 6e 74 65 72 66 61 63 65 20 69 64 65 6e 74 69 66  nterface identif
d3c0: 69 65 64 20 62 79 20 4f 6c 65 67 20 4f 6c 65 69  ied by Oleg Olei
d3d0: 6e 69 63 6b 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  nick.</li>.}..ch
d3e0: 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 32 30 20  ng {2001 Mar 20 
d3f0: 28 31 2e 30 2e 32 37 29 7d 20 7b 0a 3c 6c 69 3e  (1.0.27)} {.<li>
d400: 57 68 65 6e 20 64 6f 69 6e 67 20 44 45 4c 45 54  When doing DELET
d410: 45 20 61 6e 64 20 55 50 44 41 54 45 2c 20 74 68  E and UPDATE, th
d420: 65 20 6c 69 62 72 61 72 79 20 75 73 65 64 20 74  e library used t
d430: 6f 20 77 72 69 74 65 20 74 68 65 20 72 65 63 6f  o write the reco
d440: 72 64 0a 20 20 20 20 6e 75 6d 62 65 72 73 20 6f  rd.    numbers o
d450: 66 20 72 65 63 6f 72 64 73 20 74 6f 20 62 65 20  f records to be 
d460: 64 65 6c 65 74 65 64 20 6f 72 20 75 70 64 61 74  deleted or updat
d470: 65 64 20 69 6e 74 6f 20 61 20 74 65 6d 70 6f 72  ed into a tempor
d480: 61 72 79 20 66 69 6c 65 2e 0a 20 20 20 20 54 68  ary file..    Th
d490: 69 73 20 69 73 20 63 68 61 6e 67 65 64 20 73 6f  is is changed so
d4a0: 20 74 68 61 74 20 74 68 65 20 72 65 63 6f 72 64   that the record
d4b0: 20 6e 75 6d 62 65 72 73 20 61 72 65 20 68 65 6c   numbers are hel
d4c0: 64 20 69 6e 20 6d 65 6d 6f 72 79 2e 3c 2f 6c 69  d in memory.</li
d4d0: 3e 0a 3c 6c 69 3e 54 68 65 20 44 45 4c 45 54 45  >.<li>The DELETE
d4e0: 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 6f 75 74   command without
d4f0: 20 61 20 57 48 49 4c 45 20 63 6c 61 75 73 65 20   a WHILE clause 
d500: 6a 75 73 74 20 72 65 6d 6f 76 65 73 20 74 68 65  just removes the
d510: 20 64 61 74 61 62 61 73 65 0a 20 20 20 20 66 69   database.    fi
d520: 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 64 69 73  les from the dis
d530: 6b 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 67  k, rather than g
d540: 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 61 6e 64  oing through and
d550: 20 64 65 6c 65 74 69 6e 67 20 72 65 63 6f 72 64   deleting record
d560: 0a 20 20 20 20 62 79 20 72 65 63 6f 72 64 2e 3c  .    by record.<
d570: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d580: 30 31 20 4d 61 72 20 32 30 20 28 31 2e 30 2e 32  01 Mar 20 (1.0.2
d590: 36 29 7d 20 7b 0a 3c 6c 69 3e 41 20 73 65 72 69  6)} {.<li>A seri
d5a0: 6f 75 73 20 62 75 67 20 66 69 78 65 64 20 6f 6e  ous bug fixed on
d5b0: 20 57 69 6e 64 6f 77 73 2e 20 20 57 69 6e 64 6f   Windows.  Windo
d5c0: 77 73 20 75 73 65 72 73 20 73 68 6f 75 6c 64 20  ws users should 
d5d0: 75 70 67 72 61 64 65 2e 0a 20 20 20 20 4e 6f 20  upgrade..    No 
d5e0: 69 6d 70 61 63 74 20 74 6f 20 55 6e 69 78 2e 3c  impact to Unix.<
d5f0: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
d600: 30 31 20 4d 61 72 20 31 35 20 28 31 2e 30 2e 32  01 Mar 15 (1.0.2
d610: 35 29 7d 20 7b 0a 3c 6c 69 3e 4d 6f 64 69 66 79  5)} {.<li>Modify
d620: 20 74 68 65 20 74 65 73 74 20 73 63 72 69 70 74   the test script
d630: 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 65  s to identify te
d640: 73 74 73 20 74 68 61 74 20 64 65 70 65 6e 64 20  sts that depend 
d650: 6f 6e 20 73 79 73 74 65 6d 0a 20 20 20 20 6c 6f  on system.    lo
d660: 61 64 20 61 6e 64 20 70 72 6f 63 65 73 73 6f 72  ad and processor
d670: 20 73 70 65 65 64 20 61 6e 64 0a 20 20 20 20 74   speed and.    t
d680: 6f 20 77 61 72 6e 20 74 68 65 20 75 73 65 72 20  o warn the user 
d690: 74 68 61 74 20 61 20 66 61 69 6c 75 72 65 20 6f  that a failure o
d6a0: 66 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 28  f one of those (
d6b0: 72 61 72 65 29 20 74 65 73 74 73 20 64 6f 65 73  rare) tests does
d6c0: 0a 20 20 20 20 6e 6f 74 20 6e 65 63 65 73 73 61  .    not necessa
d6d0: 72 69 6c 79 20 6d 65 61 6e 20 74 68 65 20 6c 69  rily mean the li
d6e0: 62 72 61 72 79 20 69 73 20 6d 61 6c 66 75 6e 63  brary is malfunc
d6f0: 74 69 6f 6e 69 6e 67 2e 20 20 4e 6f 20 63 68 61  tioning.  No cha
d700: 6e 67 65 73 20 74 6f 0a 20 20 20 20 63 6f 64 65  nges to.    code
d710: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
d720: 68 6e 67 20 7b 32 30 30 31 20 4d 61 72 20 31 34  hng {2001 Mar 14
d730: 20 28 31 2e 30 2e 32 34 29 7d 20 7b 0a 3c 6c 69   (1.0.24)} {.<li
d740: 3e 46 69 78 20 61 20 62 75 67 20 77 68 69 63 68  >Fix a bug which
d750: 20 77 61 73 20 63 61 75 73 69 6e 67 0a 20 20 20   was causing.   
d760: 20 74 68 65 20 55 50 44 41 54 45 20 63 6f 6d 6d   the UPDATE comm
d770: 61 6e 64 20 74 6f 20 66 61 69 6c 20 6f 6e 20 73  and to fail on s
d780: 79 73 74 65 6d 73 20 77 68 65 72 65 20 22 6d 61  ystems where "ma
d790: 6c 6c 6f 63 28 30 29 22 20 72 65 74 75 72 6e 73  lloc(0)" returns
d7a0: 0a 20 20 20 20 4e 55 4c 4c 2e 20 20 54 68 65 20  .    NULL.  The 
d7b0: 70 72 6f 62 6c 65 6d 20 64 6f 65 73 20 6e 6f 74  problem does not
d7c0: 20 61 70 70 65 61 72 20 57 69 6e 64 6f 77 73 2c   appear Windows,
d7d0: 20 4c 69 6e 75 78 2c 20 6f 72 20 48 50 55 58 20   Linux, or HPUX 
d7e0: 62 75 74 20 64 6f 65 73 20 0a 20 20 20 20 63 61  but does .    ca
d7f0: 75 73 65 20 74 68 65 20 6c 69 62 72 61 72 79 20  use the library 
d800: 74 6f 20 66 61 69 6c 20 6f 6e 20 51 4e 58 2e 0a  to fail on QNX..
d810: 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e      </li>.}..chn
d820: 67 20 7b 32 30 30 31 20 46 65 62 20 31 39 20 28  g {2001 Feb 19 (
d830: 31 2e 30 2e 32 33 29 7d 20 7b 0a 3c 6c 69 3e 41  1.0.23)} {.<li>A
d840: 6e 20 75 6e 72 65 6c 61 74 65 64 20 28 61 6e 64  n unrelated (and
d850: 20 6d 69 6e 6f 72 29 20 62 75 67 20 66 72 6f 6d   minor) bug from
d860: 20 4d 61 72 6b 20 4d 75 72 61 6e 77 73 6b 69 20   Mark Muranwski 
d870: 66 69 78 65 64 2e 20 20 54 68 65 20 61 6c 67 6f  fixed.  The algo
d880: 72 69 74 68 6d 0a 20 20 20 20 66 6f 72 20 66 69  rithm.    for fi
d890: 67 75 72 69 6e 67 20 6f 75 74 20 77 68 65 72 65  guring out where
d8a0: 20 74 6f 20 70 75 74 20 74 65 6d 70 6f 72 61 72   to put temporar
d8b0: 79 20 66 69 6c 65 73 20 66 6f 72 20 61 20 22 6d  y files for a "m
d8c0: 65 6d 6f 72 79 3a 22 20 64 61 74 61 62 61 73 65  emory:" database
d8d0: 0a 20 20 20 20 77 61 73 20 6e 6f 74 20 77 6f 72  .    was not wor
d8e0: 6b 69 6e 67 20 71 75 69 74 65 20 72 69 67 68 74  king quite right
d8f0: 2e 0a 20 20 20 20 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ..    </li>.}..c
d900: 68 6e 67 20 7b 32 30 30 31 20 46 65 62 20 31 39  hng {2001 Feb 19
d910: 20 28 31 2e 30 2e 32 32 29 7d 20 7b 0a 3c 6c 69   (1.0.22)} {.<li
d920: 3e 54 68 65 20 70 72 65 76 69 6f 75 73 20 66 69  >The previous fi
d930: 78 20 77 61 73 20 6e 6f 74 20 71 75 69 74 65 20  x was not quite 
d940: 72 69 67 68 74 2e 20 20 54 68 69 73 20 6f 6e 65  right.  This one
d950: 20 73 65 65 6d 73 20 74 6f 20 77 6f 72 6b 20 62   seems to work b
d960: 65 74 74 65 72 2e 0a 20 20 20 20 3c 2f 6c 69 3e  etter..    </li>
d970: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
d980: 65 62 20 31 39 20 28 31 2e 30 2e 32 31 29 7d 20  eb 19 (1.0.21)} 
d990: 7b 0a 3c 6c 69 3e 54 68 65 20 55 50 44 41 54 45  {.<li>The UPDATE
d9a0: 20 73 74 61 74 65 6d 65 6e 74 20 77 61 73 20 6e   statement was n
d9b0: 6f 74 20 77 6f 72 6b 69 6e 67 20 77 68 65 6e 20  ot working when 
d9c0: 74 68 65 20 57 48 45 52 45 20 63 6c 61 75 73 65  the WHERE clause
d9d0: 20 63 6f 6e 74 61 69 6e 65 64 0a 20 20 20 20 73   contained.    s
d9e0: 6f 6d 65 20 74 65 72 6d 73 20 74 68 61 74 20 63  ome terms that c
d9f0: 6f 75 6c 64 20 62 65 20 73 61 74 69 73 66 69 65  ould be satisfie
da00: 64 20 75 73 69 6e 67 20 69 6e 64 69 63 65 73 20  d using indices 
da10: 61 6e 64 20 6f 74 68 65 72 20 74 65 72 6d 73 20  and other terms 
da20: 74 68 61 74 0a 20 20 20 20 63 6f 75 6c 64 20 6e  that.    could n
da30: 6f 74 2e 20 20 46 69 78 65 64 2e 3c 2f 6c 69 3e  ot.  Fixed.</li>
da40: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
da50: 65 62 20 31 31 20 28 31 2e 30 2e 32 30 29 7d 20  eb 11 (1.0.20)} 
da60: 7b 0a 3c 6c 69 3e 4d 65 72 67 65 20 64 65 76 65  {.<li>Merge deve
da70: 6c 6f 70 6d 65 6e 74 20 63 68 61 6e 67 65 73 20  lopment changes 
da80: 69 6e 74 6f 20 74 68 65 20 6d 61 69 6e 20 74 72  into the main tr
da90: 75 6e 6b 2e 20 20 46 75 74 75 72 65 20 77 6f 72  unk.  Future wor
daa0: 6b 20 74 6f 77 61 72 64 0a 20 20 20 20 75 73 69  k toward.    usi
dab0: 6e 67 20 61 20 42 54 72 65 65 20 66 69 6c 65 20  ng a BTree file 
dac0: 73 74 72 75 63 74 75 72 65 20 77 69 6c 6c 20 75  structure will u
dad0: 73 65 20 61 20 73 65 70 61 72 61 74 65 20 43 56  se a separate CV
dae0: 53 20 73 6f 75 72 63 65 20 74 72 65 65 2e 20 20  S source tree.  
daf0: 54 68 69 73 0a 20 20 20 20 43 56 53 20 74 72 65  This.    CVS tre
db00: 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20  e will continue 
db10: 74 6f 20 73 75 70 70 6f 72 74 20 74 68 65 20 47  to support the G
db20: 44 42 4d 20 76 65 72 73 69 6f 6e 20 6f 66 20 53  DBM version of S
db30: 51 4c 69 74 65 20 6f 6e 6c 79 2e 3c 2f 6c 69 3e  QLite only.</li>
db40: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 31 20 46  .}..chng {2001 F
db50: 65 62 20 36 20 28 31 2e 30 2e 31 39 29 7d 20 7b  eb 6 (1.0.19)} {
db60: 0a 3c 6c 69 3e 46 69 78 20 61 20 73 74 72 61 6e  .<li>Fix a stran
db70: 67 65 20 28 62 75 74 20 76 61 6c 69 64 29 20 43  ge (but valid) C
db80: 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 68 61   declaration tha
db90: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 70 72  t was causing pr
dba0: 6f 62 6c 65 6d 73 0a 20 20 20 20 66 6f 72 20 51  oblems.    for Q
dbb0: 4e 58 2e 20 20 4e 6f 20 6c 6f 67 69 63 61 6c 20  NX.  No logical 
dbc0: 63 68 61 6e 67 65 73 2e 3c 2f 6c 69 3e 0a 7d 0a  changes.</li>.}.
dbd0: 0a 63 68 6e 67 20 7b 32 30 30 31 20 4a 61 6e 20  .chng {2001 Jan 
dbe0: 34 20 28 31 2e 30 2e 31 38 29 7d 20 7b 0a 3c 6c  4 (1.0.18)} {.<l
dbf0: 69 3e 50 72 69 6e 74 20 74 68 65 20 6f 66 66 65  i>Print the offe
dc00: 6e 64 69 6e 67 20 53 51 4c 20 73 74 61 74 65 6d  nding SQL statem
dc10: 65 6e 74 20 77 68 65 6e 20 61 6e 20 65 72 72 6f  ent when an erro
dc20: 72 20 6f 63 63 75 72 73 2e 3c 2f 6c 69 3e 0a 3c  r occurs.</li>.<
dc30: 6c 69 3e 44 6f 20 6e 6f 74 20 72 65 71 75 69 72  li>Do not requir
dc40: 65 20 63 6f 6d 6d 61 73 20 62 65 74 77 65 65 6e  e commas between
dc50: 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 69 6e 20   constraints in 
dc60: 43 52 45 41 54 45 20 54 41 42 4c 45 20 73 74 61  CREATE TABLE sta
dc70: 74 65 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 3c 6c  tements.</li>.<l
dc80: 69 3e 41 64 64 65 64 20 74 68 65 20 22 2d 65 63  i>Added the "-ec
dc90: 68 6f 22 20 6f 70 74 69 6f 6e 20 74 6f 20 74 68  ho" option to th
dca0: 65 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e 0a 3c 6c  e shell.</li>.<l
dcb0: 69 3e 43 68 61 6e 67 65 73 20 74 6f 20 63 6f 6d  i>Changes to com
dcc0: 6d 65 6e 74 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ments.</li>.}..c
dcd0: 68 6e 67 20 7b 32 30 30 30 20 44 65 63 20 31 30  hng {2000 Dec 10
dce0: 20 28 31 2e 30 2e 31 37 29 7d 20 7b 0a 3c 6c 69   (1.0.17)} {.<li
dcf0: 3e 52 65 77 72 6f 74 65 20 3c 62 3e 73 71 6c 69  >Rewrote <b>sqli
dd00: 74 65 5f 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62  te_complete()</b
dd10: 3e 20 74 6f 20 6d 61 6b 65 20 69 74 20 66 61 73  > to make it fas
dd20: 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 69  ter.</li>.<li>Mi
dd30: 6e 6f 72 20 74 77 65 61 6b 73 20 74 6f 20 6f 74  nor tweaks to ot
dd40: 68 65 72 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65  her code to make
dd50: 20 69 74 20 72 75 6e 20 61 20 6c 69 74 74 6c 65   it run a little
dd60: 20 66 61 73 74 65 72 2e 3c 2f 6c 69 3e 0a 3c 6c   faster.</li>.<l
dd70: 69 3e 41 64 64 65 64 20 6e 65 77 20 74 65 73 74  i>Added new test
dd80: 73 20 66 6f 72 20 3c 62 3e 73 71 6c 69 74 65 5f  s for <b>sqlite_
dd90: 63 6f 6d 70 6c 65 74 65 28 29 3c 2f 62 3e 20 61  complete()</b> a
dda0: 6e 64 20 66 6f 72 20 6d 65 6d 6f 72 79 20 6c 65  nd for memory le
ddb0: 61 6b 73 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  aks.</li>.}..chn
ddc0: 67 20 7b 32 30 30 30 20 44 65 63 20 34 20 28 31  g {2000 Dec 4 (1
ddd0: 2e 30 2e 31 36 29 7d 20 7b 0a 3c 6c 69 3e 44 6f  .0.16)} {.<li>Do
dde0: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61  cumentation upda
ddf0: 74 65 73 2e 20 20 4d 6f 73 74 6c 79 20 66 69 78  tes.  Mostly fix
de00: 69 6e 67 20 6f 66 20 74 79 70 6f 73 20 61 6e 64  ing of typos and
de10: 20 73 70 65 6c 6c 69 6e 67 20 65 72 72 6f 72 73   spelling errors
de20: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
de30: 32 30 30 30 20 4f 63 74 20 32 33 20 28 31 2e 30  2000 Oct 23 (1.0
de40: 2e 31 35 29 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  .15)} {.<li>Docu
de50: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
de60: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 53 6f 6d 65 20  s</li>.<li>Some 
de70: 73 61 6e 69 74 79 20 63 68 65 63 6b 69 6e 67 20  sanity checking 
de80: 63 6f 64 65 20 77 61 73 20 72 65 6d 6f 76 65 64  code was removed
de90: 20 66 72 6f 6d 20 74 68 65 20 69 6e 6e 65 72 20   from the inner 
dea0: 6c 6f 6f 70 20 6f 66 20 76 64 62 65 2e 63 0a 20  loop of vdbe.c. 
deb0: 20 20 20 74 6f 20 68 65 6c 70 20 74 68 65 20 6c     to help the l
dec0: 69 62 72 61 72 79 20 74 6f 20 72 75 6e 20 61 20  ibrary to run a 
ded0: 6c 69 74 74 6c 65 20 66 61 73 74 65 72 2e 20 20  little faster.  
dee0: 54 68 65 20 63 6f 64 65 20 69 73 20 6f 6e 6c 79  The code is only
def0: 0a 20 20 20 20 72 65 6d 6f 76 65 64 20 69 66 20  .    removed if 
df00: 79 6f 75 20 63 6f 6d 70 69 6c 65 20 77 69 74 68  you compile with
df10: 20 2d 44 4e 44 45 42 55 47 2e 3c 2f 6c 69 3e 0a   -DNDEBUG.</li>.
df20: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63  }..chng {2000 Oc
df30: 74 20 31 39 20 28 31 2e 30 2e 31 34 29 7d 20 7b  t 19 (1.0.14)} {
df40: 0a 3c 6c 69 3e 41 64 64 65 64 20 61 20 22 6d 65  .<li>Added a "me
df50: 6d 6f 72 79 3a 22 20 62 61 63 6b 65 6e 64 20 64  mory:" backend d
df60: 72 69 76 65 72 20 74 68 61 74 20 73 74 6f 72 65  river that store
df70: 73 20 69 74 73 20 64 61 74 61 62 61 73 65 20 69  s its database i
df80: 6e 20 61 6e 0a 20 20 20 20 69 6e 2d 6d 65 6d 6f  n an.    in-memo
df90: 72 79 20 68 61 73 68 20 74 61 62 6c 65 2e 3c 2f  ry hash table.</
dfa0: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
dfb0: 30 20 4f 63 74 20 31 38 20 28 31 2e 30 2e 31 33  0 Oct 18 (1.0.13
dfc0: 29 7d 20 7b 0a 3c 6c 69 3e 42 72 65 61 6b 20 6f  )} {.<li>Break o
dfd0: 75 74 20 74 68 65 20 47 44 42 4d 20 64 72 69 76  ut the GDBM driv
dfe0: 65 72 20 69 6e 74 6f 20 61 20 73 65 70 61 72 61  er into a separa
dff0: 74 65 20 66 69 6c 65 20 69 6e 20 61 6e 74 69 63  te file in antic
e000: 69 70 61 74 69 6f 6e 0a 20 20 20 20 74 6f 20 61  ipation.    to a
e010: 64 64 65 64 20 6e 65 77 20 64 72 69 76 65 72 73  dded new drivers
e020: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 6c 6c 6f 77  .</li>.<li>Allow
e030: 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 64   the name of a d
e040: 61 74 61 62 61 73 65 20 74 6f 20 62 65 20 70 72  atabase to be pr
e050: 65 66 69 78 65 64 20 62 79 20 74 68 65 20 64 72  efixed by the dr
e060: 69 76 65 72 20 74 79 70 65 2e 0a 20 20 20 20 46  iver type..    F
e070: 6f 72 20 6e 6f 77 2c 20 74 68 65 20 6f 6e 6c 79  or now, the only
e080: 20 64 72 69 76 65 72 20 74 79 70 65 20 69 73 20   driver type is 
e090: 22 67 64 62 6d 3a 22 2e 3c 2f 6c 69 3e 0a 7d 0a  "gdbm:".</li>.}.
e0a0: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20  .chng {2000 Oct 
e0b0: 31 36 20 28 31 2e 30 2e 31 32 29 7d 20 7b 0a 3c  16 (1.0.12)} {.<
e0c0: 6c 69 3e 46 69 78 65 64 20 61 6e 20 6f 66 66 2d  li>Fixed an off-
e0d0: 62 79 2d 6f 6e 65 20 65 72 72 6f 72 20 74 68 61  by-one error tha
e0e0: 74 20 77 61 73 20 63 61 75 73 69 6e 67 20 61 20  t was causing a 
e0f0: 63 6f 72 65 64 75 6d 70 20 69 6e 20 0a 20 20 20  coredump in .   
e100: 20 74 68 65 20 27 25 71 27 20 66 6f 72 6d 61 74   the '%q' format
e110: 20 64 69 72 65 63 74 69 76 65 20 6f 66 20 74 68   directive of th
e120: 65 20 6e 65 77 0a 20 20 20 20 3c 62 3e 73 71 6c  e new.    <b>sql
e130: 69 74 65 5f 2e 2e 2e 5f 70 72 69 6e 74 66 28 29  ite_..._printf()
e140: 3c 2f 62 3e 20 72 6f 75 74 69 6e 65 73 2e 3c 2f  </b> routines.</
e150: 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68  li>.<li>Added th
e160: 65 20 3c 62 3e 73 71 6c 69 74 65 5f 69 6e 74 65  e <b>sqlite_inte
e170: 72 72 75 70 74 28 29 3c 2f 62 3e 20 69 6e 74 65  rrupt()</b> inte
e180: 72 66 61 63 65 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  rface.</li>.<li>
e190: 49 6e 20 74 68 65 20 73 68 65 6c 6c 2c 20 3c 62  In the shell, <b
e1a0: 3e 73 71 6c 69 74 65 5f 69 6e 74 65 72 72 75 70  >sqlite_interrup
e1b0: 74 28 29 3c 2f 62 3e 20 69 73 20 69 6e 76 6f 6b  t()</b> is invok
e1c0: 65 64 20 77 68 65 6e 20 74 68 65 0a 20 20 20 20  ed when the.    
e1d0: 75 73 65 72 20 70 72 65 73 73 65 73 20 43 6f 6e  user presses Con
e1e0: 74 72 6f 6c 2d 43 3c 2f 6c 69 3e 0a 3c 6c 69 3e  trol-C</li>.<li>
e1f0: 46 69 78 65 64 20 73 6f 6d 65 20 69 6e 73 74 61  Fixed some insta
e200: 6e 63 65 73 20 77 68 65 72 65 20 3c 62 3e 73 71  nces where <b>sq
e210: 6c 69 74 65 5f 65 78 65 63 28 29 3c 2f 62 3e 20  lite_exec()</b> 
e220: 77 61 73 0a 20 20 20 20 72 65 74 75 72 6e 69 6e  was.    returnin
e230: 67 20 74 68 65 20 77 72 6f 6e 67 20 65 72 72 6f  g the wrong erro
e240: 72 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r code.</li>.}..
e250: 63 68 6e 67 20 7b 32 30 30 30 20 4f 63 74 20 31  chng {2000 Oct 1
e260: 31 20 28 31 2e 30 2e 31 30 29 7d 20 7b 0a 3c 6c  1 (1.0.10)} {.<l
e270: 69 3e 41 64 64 65 64 20 6e 6f 74 65 73 20 6f 6e  i>Added notes on
e280: 20 68 6f 77 20 74 6f 20 63 6f 6d 70 69 6c 65 20   how to compile 
e290: 66 6f 72 20 57 69 6e 64 6f 77 73 39 35 2f 39 38  for Windows95/98
e2a0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 52 65 6d 6f 76  .</li>.<li>Remov
e2b0: 65 64 20 61 20 66 65 77 20 76 61 72 69 61 62 6c  ed a few variabl
e2c0: 65 73 20 74 68 61 74 20 77 65 72 65 20 6e 6f 74  es that were not
e2d0: 20 62 65 69 6e 67 20 75 73 65 64 2e 20 20 45 74   being used.  Et
e2e0: 63 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  c.</li>.}..chng 
e2f0: 7b 32 30 30 30 20 4f 63 74 20 38 20 28 31 2e 30  {2000 Oct 8 (1.0
e300: 2e 39 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  .9)} {.<li>Added
e310: 20 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 2e   the <b>sqlite_.
e320: 2e 2e 5f 70 72 69 6e 74 66 28 29 3c 2f 62 3e 20  .._printf()</b> 
e330: 69 6e 74 65 72 66 61 63 65 20 72 6f 75 74 69 6e  interface routin
e340: 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d 6f 64  es.</li>.<li>Mod
e350: 69 66 69 65 64 20 74 68 65 20 3c 62 3e 73 71 6c  ified the <b>sql
e360: 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20 70 72  ite</b> shell pr
e370: 6f 67 72 61 6d 20 74 6f 20 75 73 65 20 74 68 65  ogram to use the
e380: 20 6e 65 77 20 69 6e 74 65 72 66 61 63 65 20 0a   new interface .
e390: 20 20 20 20 72 6f 75 74 69 6e 65 73 2e 3c 2f 6c      routines.</l
e3a0: 69 3e 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20  i>.<li>Modified 
e3b0: 74 68 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62  the <b>sqlite</b
e3c0: 3e 20 73 68 65 6c 6c 20 70 72 6f 67 72 61 6d 20  > shell program 
e3d0: 74 6f 20 70 72 69 6e 74 20 74 68 65 20 73 63 68  to print the sch
e3e0: 65 6d 61 20 66 6f 72 0a 20 20 20 20 74 68 65 20  ema for.    the 
e3f0: 62 75 69 6c 74 2d 69 6e 20 53 51 4c 49 54 45 5f  built-in SQLITE_
e400: 4d 41 53 54 45 52 20 74 61 62 6c 65 2c 20 69 66  MASTER table, if
e410: 20 65 78 70 6c 69 63 69 74 6c 79 20 72 65 71 75   explicitly requ
e420: 65 73 74 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  ested.</li>.}..c
e430: 68 6e 67 20 7b 32 30 30 30 20 53 65 70 20 33 30  hng {2000 Sep 30
e440: 20 28 31 2e 30 2e 38 29 7d 20 7b 0a 3c 6c 69 3e   (1.0.8)} {.<li>
e450: 42 65 67 69 6e 20 77 72 69 74 69 6e 67 20 64 6f  Begin writing do
e460: 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 74  cumentation on t
e470: 68 65 20 54 43 4c 20 69 6e 74 65 72 66 61 63 65  he TCL interface
e480: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
e490: 32 30 30 30 20 53 65 70 20 32 39 20 28 4e 6f 74  2000 Sep 29 (Not
e4a0: 20 52 65 6c 65 61 73 65 64 29 7d 20 7b 0a 3c 6c   Released)} {.<l
e4b0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 73  i>Added the <b>s
e4c0: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
e4d0: 29 3c 2f 62 3e 20 41 50 49 3c 2f 6c 69 3e 0a 3c  )</b> API</li>.<
e4e0: 6c 69 3e 55 70 64 61 74 65 64 20 74 68 65 20 64  li>Updated the d
e4f0: 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72  ocumentation for
e500: 20 64 75 65 20 74 6f 20 74 68 65 20 61 62 6f 76   due to the abov
e510: 65 20 63 68 61 6e 67 65 2e 3c 2f 6c 69 3e 0a 3c  e change.</li>.<
e520: 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68 65 20  li>Modified the 
e530: 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 73 68  <b>sqlite</b> sh
e540: 65 6c 6c 20 74 6f 20 6d 61 6b 65 20 75 73 65 20  ell to make use 
e550: 6f 66 20 74 68 65 20 6e 65 77 0a 20 20 20 20 73  of the new.    s
e560: 71 6c 69 74 65 5f 67 65 74 5f 74 61 62 6c 65 28  qlite_get_table(
e570: 29 20 41 50 49 20 69 6e 20 6f 72 64 65 72 20 74  ) API in order t
e580: 6f 20 70 72 69 6e 74 20 61 20 6c 69 73 74 20 6f  o print a list o
e590: 66 20 74 61 62 6c 65 73 0a 20 20 20 20 69 6e 20  f tables.    in 
e5a0: 6d 75 6c 74 69 70 6c 65 20 63 6f 6c 75 6d 6e 73  multiple columns
e5b0: 2c 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65  , similar to the
e5c0: 20 77 61 79 20 22 6c 73 22 20 70 72 69 6e 74 73   way "ls" prints
e5d0: 20 66 69 6c 65 6e 61 6d 65 73 2e 3c 2f 6c 69 3e   filenames.</li>
e5e0: 0a 3c 6c 69 3e 4d 6f 64 69 66 69 65 64 20 74 68  .<li>Modified th
e5f0: 65 20 3c 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20  e <b>sqlite</b> 
e600: 73 68 65 6c 6c 20 74 6f 20 70 72 69 6e 74 20 61  shell to print a
e610: 20 73 65 6d 69 63 6f 6c 6f 6e 20 61 74 20 74 68   semicolon at th
e620: 65 0a 20 20 20 20 65 6e 64 20 6f 66 20 65 61 63  e.    end of eac
e630: 68 20 43 52 45 41 54 45 20 73 74 61 74 65 6d 65  h CREATE stateme
e640: 6e 74 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74  nt in the output
e650: 20 6f 66 20 74 68 65 20 22 2e 73 63 68 65 6d 61   of the ".schema
e660: 22 20 63 6f 6d 6d 61 6e 64 2e 3c 2f 6c 69 3e 0a  " command.</li>.
e670: 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 53 65  }..chng {2000 Se
e680: 70 20 32 31 20 28 4e 6f 74 20 52 65 6c 65 61 73  p 21 (Not Releas
e690: 65 64 29 7d 20 7b 0a 3c 6c 69 3e 43 68 61 6e 67  ed)} {.<li>Chang
e6a0: 65 20 74 68 65 20 74 63 6c 73 71 6c 69 74 65 20  e the tclsqlite 
e6b0: 22 65 76 61 6c 22 20 6d 65 74 68 6f 64 20 74 6f  "eval" method to
e6c0: 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f   return a list o
e6d0: 66 20 72 65 73 75 6c 74 73 20 69 66 0a 20 20 20  f results if.   
e6e0: 20 6e 6f 20 63 61 6c 6c 62 61 63 6b 20 73 63 72   no callback scr
e6f0: 69 70 74 20 69 73 20 73 70 65 63 69 66 69 65 64  ipt is specified
e700: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67  .</li>.<li>Chang
e710: 65 20 74 63 6c 73 71 6c 69 74 65 2e 63 20 74 6f  e tclsqlite.c to
e720: 20 75 73 65 20 74 68 65 20 54 63 6c 5f 4f 62 6a   use the Tcl_Obj
e730: 20 69 6e 74 65 72 66 61 63 65 3c 2f 6c 69 3e 0a   interface</li>.
e740: 3c 6c 69 3e 41 64 64 20 74 63 6c 73 71 6c 69 74  <li>Add tclsqlit
e750: 65 2e 63 20 74 6f 20 74 68 65 20 6c 69 62 73 71  e.c to the libsq
e760: 6c 69 74 65 2e 61 20 6c 69 62 72 61 72 79 3c 2f  lite.a library</
e770: 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30  li>.}..chng {200
e780: 30 20 53 65 70 20 31 33 20 28 56 65 72 73 69 6f  0 Sep 13 (Versio
e790: 6e 20 31 2e 30 2e 35 29 7d 20 7b 0a 3c 6c 69 3e  n 1.0.5)} {.<li>
e7a0: 43 68 61 6e 67 65 64 20 74 68 65 20 70 72 69 6e  Changed the prin
e7b0: 74 20 66 6f 72 6d 61 74 20 66 6f 72 20 66 6c 6f  t format for flo
e7c0: 61 74 69 6e 67 20 70 6f 69 6e 74 20 76 61 6c 75  ating point valu
e7d0: 65 73 20 66 72 6f 6d 20 22 25 67 22 20 74 6f 20  es from "%g" to 
e7e0: 22 25 2e 31 35 67 22 2e 0a 20 20 20 20 3c 2f 6c  "%.15g"..    </l
e7f0: 69 3e 0a 3c 6c 69 3e 43 68 61 6e 67 65 64 20 74  i>.<li>Changed t
e800: 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75  he comparison fu
e810: 6e 63 74 69 6f 6e 20 73 6f 20 74 68 61 74 20 6e  nction so that n
e820: 75 6d 62 65 72 73 20 69 6e 20 65 78 70 6f 6e 65  umbers in expone
e830: 6e 74 69 61 6c 20 6e 6f 74 61 74 69 6f 6e 0a 20  ntial notation. 
e840: 20 20 20 28 65 78 3a 20 31 2e 32 33 34 65 2b 30     (ex: 1.234e+0
e850: 35 29 20 73 6f 72 74 20 69 6e 20 6e 75 6d 65 72  5) sort in numer
e860: 69 63 61 6c 20 6f 72 64 65 72 2e 3c 2f 6c 69 3e  ical order.</li>
e870: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
e880: 75 67 20 32 38 20 28 56 65 72 73 69 6f 6e 20 31  ug 28 (Version 1
e890: 2e 30 2e 34 29 7d 20 7b 0a 3c 6c 69 3e 41 64 64  .0.4)} {.<li>Add
e8a0: 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 3c 62 3e  ed functions <b>
e8b0: 6c 65 6e 67 74 68 28 29 3c 2f 62 3e 20 61 6e 64  length()</b> and
e8c0: 20 3c 62 3e 73 75 62 73 74 72 28 29 3c 2f 62 3e   <b>substr()</b>
e8d0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61  .</li>.<li>Fix a
e8e0: 20 62 75 67 20 69 6e 20 74 68 65 20 3c 62 3e 73   bug in the <b>s
e8f0: 71 6c 69 74 65 3c 2f 62 3e 20 73 68 65 6c 6c 20  qlite</b> shell 
e900: 70 72 6f 67 72 61 6d 20 74 68 61 74 20 77 61 73  program that was
e910: 20 63 61 75 73 69 6e 67 0a 20 20 20 20 61 20 63   causing.    a c
e920: 6f 72 65 64 75 6d 70 20 77 68 65 6e 20 74 68 65  oredump when the
e930: 20 6f 75 74 70 75 74 20 6d 6f 64 65 20 77 61 73   output mode was
e940: 20 22 63 6f 6c 75 6d 6e 22 20 61 6e 64 20 74 68   "column" and th
e950: 65 20 66 69 72 73 74 20 72 6f 77 0a 20 20 20 20  e first row.    
e960: 6f 66 20 64 61 74 61 20 63 6f 6e 74 61 69 6e 65  of data containe
e970: 64 20 61 20 4e 55 4c 4c 2e 3c 2f 6c 69 3e 0a 7d  d a NULL.</li>.}
e980: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67  ..chng {2000 Aug
e990: 20 32 32 20 28 56 65 72 73 69 6f 6e 20 31 2e 30   22 (Version 1.0
e9a0: 2e 33 29 7d 20 7b 0a 3c 6c 69 3e 49 6e 20 74 68  .3)} {.<li>In th
e9b0: 65 20 73 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20  e sqlite shell, 
e9c0: 70 72 69 6e 74 20 74 68 65 20 22 44 61 74 61 62  print the "Datab
e9d0: 61 73 65 20 6f 70 65 6e 65 64 20 52 45 41 44 20  ase opened READ 
e9e0: 4f 4e 4c 59 22 20 6d 65 73 73 61 67 65 0a 20 20  ONLY" message.  
e9f0: 20 20 74 6f 20 73 74 64 65 72 72 20 69 6e 73 74    to stderr inst
ea00: 65 61 64 20 6f 66 20 73 74 64 6f 75 74 2e 3c 2f  ead of stdout.</
ea10: 6c 69 3e 0a 3c 6c 69 3e 49 6e 20 74 68 65 20 73  li>.<li>In the s
ea20: 71 6c 69 74 65 20 73 68 65 6c 6c 2c 20 6e 6f 77  qlite shell, now
ea30: 20 70 72 69 6e 74 20 74 68 65 20 76 65 72 73 69   print the versi
ea40: 6f 6e 20 6e 75 6d 62 65 72 20 6f 6e 20 69 6e 69  on number on ini
ea50: 74 69 61 6c 20 73 74 61 72 74 75 70 2e 3c 2f 6c  tial startup.</l
ea60: 69 3e 0a 3c 6c 69 3e 41 64 64 20 74 68 65 20 3c  i>.<li>Add the <
ea70: 62 3e 73 71 6c 69 74 65 5f 76 65 72 73 69 6f 6e  b>sqlite_version
ea80: 5b 5d 3c 2f 62 3e 20 73 74 72 69 6e 67 20 63 6f  []</b> string co
ea90: 6e 73 74 61 6e 74 20 74 6f 20 74 68 65 20 6c 69  nstant to the li
eaa0: 62 72 61 72 79 3c 2f 6c 69 3e 0a 3c 6c 69 3e 4d  brary</li>.<li>M
eab0: 61 6b 65 66 69 6c 65 20 75 70 64 61 74 65 73 3c  akefile updates<
eac0: 2f 6c 69 3e 0a 3c 6c 69 3e 42 75 67 20 66 69 78  /li>.<li>Bug fix
ead0: 3a 20 69 6e 63 6f 72 72 65 63 74 20 56 44 42 45  : incorrect VDBE
eae0: 20 63 6f 64 65 20 77 61 73 20 62 65 69 6e 67 20   code was being 
eaf0: 67 65 6e 65 72 61 74 65 64 20 66 6f 72 20 74 68  generated for th
eb00: 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 20 20 20 20  e following.    
eb10: 63 69 72 63 75 6d 73 74 61 6e 63 65 3a 20 61 20  circumstance: a 
eb20: 71 75 65 72 79 20 6f 6e 20 61 6e 20 69 6e 64 65  query on an inde
eb30: 78 65 64 20 74 61 62 6c 65 20 63 6f 6e 74 61 69  xed table contai
eb40: 6e 69 6e 67 20 61 20 57 48 45 52 45 20 63 6c 61  ning a WHERE cla
eb50: 75 73 65 20 77 69 74 68 0a 20 20 20 20 61 6e 20  use with.    an 
eb60: 49 4e 20 6f 70 65 72 61 74 6f 72 20 74 68 61 74  IN operator that
eb70: 20 68 61 64 20 61 20 73 75 62 71 75 65 72 79 20   had a subquery 
eb80: 6f 6e 20 69 74 73 20 72 69 67 68 74 2d 68 61 6e  on its right-han
eb90: 64 20 73 69 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  d side.</li>.}..
eba0: 63 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 31  chng {2000 Aug 1
ebb0: 38 20 28 56 65 72 73 69 6f 6e 20 31 2e 30 2e 31  8 (Version 1.0.1
ebc0: 29 7d 20 7b 0a 3c 6c 69 3e 46 69 78 20 61 20 62  )} {.<li>Fix a b
ebd0: 75 67 20 69 6e 20 74 68 65 20 63 6f 6e 66 69 67  ug in the config
ebe0: 75 72 65 20 73 63 72 69 70 74 2e 3c 2f 6c 69 3e  ure script.</li>
ebf0: 0a 3c 6c 69 3e 4d 69 6e 6f 72 20 72 65 76 69 73  .<li>Minor revis
ec00: 69 6f 6e 73 20 74 6f 20 74 68 65 20 77 65 62 73  ions to the webs
ec10: 69 74 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e  ite.</li>.}..chn
ec20: 67 20 7b 32 30 30 30 20 41 75 67 20 31 37 20 28  g {2000 Aug 17 (
ec30: 56 65 72 73 69 6f 6e 20 31 2e 30 29 7d 20 7b 0a  Version 1.0)} {.
ec40: 3c 6c 69 3e 43 68 61 6e 67 65 20 74 68 65 20 3c  <li>Change the <
ec50: 62 3e 73 71 6c 69 74 65 3c 2f 62 3e 20 70 72 6f  b>sqlite</b> pro
ec60: 67 72 61 6d 20 73 6f 20 74 68 61 74 20 69 74 20  gram so that it 
ec70: 63 61 6e 20 72 65 61 64 0a 20 20 20 20 64 61 74  can read.    dat
ec80: 61 62 61 73 65 73 20 66 6f 72 20 77 68 69 63 68  abases for which
ec90: 20 69 74 20 6c 61 63 6b 73 20 77 72 69 74 65 20   it lacks write 
eca0: 70 65 72 6d 69 73 73 69 6f 6e 2e 20 20 28 49 74  permission.  (It
ecb0: 20 75 73 65 64 20 74 6f 0a 20 20 20 20 72 65 66   used to.    ref
ecc0: 75 73 65 20 61 6c 6c 20 61 63 63 65 73 73 20 69  use all access i
ecd0: 66 20 69 74 20 63 6f 75 6c 64 20 6e 6f 74 20 77  f it could not w
ece0: 72 69 74 65 2e 29 3c 2f 6c 69 3e 0a 7d 0a 0a 63  rite.)</li>.}..c
ecf0: 68 6e 67 20 7b 32 30 30 30 20 41 75 67 20 39 7d  hng {2000 Aug 9}
ed00: 20 7b 0a 3c 6c 69 3e 54 72 65 61 74 20 63 61 72   {.<li>Treat car
ed10: 72 69 61 67 65 20 72 65 74 75 72 6e 73 20 61 73  riage returns as
ed20: 20 77 68 69 74 65 20 73 70 61 63 65 2e 3c 2f 6c   white space.</l
ed30: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
ed40: 20 41 75 67 20 38 7d 20 7b 0a 3c 6c 69 3e 41 64   Aug 8} {.<li>Ad
ed50: 64 65 64 20 70 61 74 74 65 72 6e 20 6d 61 74 63  ded pattern matc
ed60: 68 69 6e 67 20 74 6f 20 74 68 65 20 22 2e 74 61  hing to the ".ta
ed70: 62 6c 65 22 20 63 6f 6d 6d 61 6e 64 20 69 6e 20  ble" command in 
ed80: 74 68 65 20 22 73 71 6c 69 74 65 22 0a 63 6f 6d  the "sqlite".com
ed90: 6d 61 6e 64 20 73 68 65 6c 6c 2e 3c 2f 6c 69 3e  mand shell.</li>
eda0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 41  .}..chng {2000 A
edb0: 75 67 20 34 7d 20 7b 0a 3c 6c 69 3e 44 6f 63 75  ug 4} {.<li>Docu
edc0: 6d 65 6e 74 61 74 69 6f 6e 20 75 70 64 61 74 65  mentation update
edd0: 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  s</li>.<li>Added
ede0: 20 22 62 75 73 79 22 20 61 6e 64 20 22 74 69 6d   "busy" and "tim
edf0: 65 6f 75 74 22 20 6d 65 74 68 6f 64 73 20 74 6f  eout" methods to
ee00: 20 74 68 65 20 54 63 6c 20 69 6e 74 65 72 66 61   the Tcl interfa
ee10: 63 65 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20  ce</li>.}..chng 
ee20: 7b 32 30 30 30 20 41 75 67 20 33 7d 20 7b 0a 3c  {2000 Aug 3} {.<
ee30: 6c 69 3e 46 69 6c 65 20 66 6f 72 6d 61 74 20 76  li>File format v
ee40: 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 77 61  ersion number wa
ee50: 73 20 62 65 69 6e 67 20 73 74 6f 72 65 64 20 69  s being stored i
ee60: 6e 20 73 71 6c 69 74 65 5f 6d 61 73 74 65 72 2e  n sqlite_master.
ee70: 74 63 6c 0a 20 20 20 20 6d 75 6c 74 69 70 6c 65  tcl.    multiple
ee80: 20 74 69 6d 65 73 2e 20 54 68 69 73 20 77 61 73   times. This was
ee90: 20 68 61 72 6d 6c 65 73 73 2c 20 62 75 74 20 75   harmless, but u
eea0: 6e 6e 65 63 65 73 73 61 72 79 2e 20 49 74 20 69  nnecessary. It i
eeb0: 73 20 6e 6f 77 20 66 69 78 65 64 2e 3c 2f 6c 69  s now fixed.</li
eec0: 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20  >.}..chng {2000 
eed0: 41 75 67 20 32 7d 20 7b 0a 3c 6c 69 3e 54 68 65  Aug 2} {.<li>The
eee0: 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72   file format for
eef0: 20 69 6e 64 69 63 65 73 20 77 61 73 20 63 68 61   indices was cha
ef00: 6e 67 65 64 20 73 6c 69 67 68 74 6c 79 20 69 6e  nged slightly in
ef10: 20 6f 72 64 65 72 20 74 6f 20 77 6f 72 6b 0a 20   order to work. 
ef20: 20 20 20 61 72 6f 75 6e 64 20 61 6e 20 69 6e 65     around an ine
ef30: 66 66 69 63 69 65 6e 63 79 20 74 68 61 74 20 63  fficiency that c
ef40: 61 6e 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6d  an sometimes com
ef50: 65 20 75 70 20 77 69 74 68 20 47 44 42 4d 20 77  e up with GDBM w
ef60: 68 65 6e 0a 20 20 20 20 74 68 65 72 65 20 61 72  hen.    there ar
ef70: 65 20 6c 61 72 67 65 20 69 6e 64 69 63 65 73 20  e large indices 
ef80: 68 61 76 69 6e 67 20 6d 61 6e 79 20 65 6e 74 72  having many entr
ef90: 69 65 73 20 77 69 74 68 20 74 68 65 20 73 61 6d  ies with the sam
efa0: 65 20 6b 65 79 2e 0a 20 20 20 20 3c 66 6f 6e 74  e key..    <font
efb0: 20 63 6f 6c 6f 72 3d 22 72 65 64 22 3e 2a 2a 20   color="red">** 
efc0: 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 43 68 61  Incompatible Cha
efd0: 6e 67 65 20 2a 2a 3c 2f 66 6f 6e 74 3e 3c 2f 6c  nge **</font></l
efe0: 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30  i>.}..chng {2000
eff0: 20 41 75 67 20 31 7d 20 7b 0a 3c 6c 69 3e 54 68   Aug 1} {.<li>Th
f000: 65 20 70 61 72 73 65 72 27 73 20 73 74 61 63 6b  e parser's stack
f010: 20 77 61 73 20 6f 76 65 72 66 6c 6f 77 69 6e 67   was overflowing
f020: 20 6f 6e 20 61 20 76 65 72 79 20 6c 6f 6e 67 20   on a very long 
f030: 55 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74  UPDATE statement
f040: 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 6e 6f  ..    This is no
f050: 77 20 66 69 78 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a  w fixed.</li>.}.
f060: 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79  .chng {2000 July
f070: 20 33 31 7d 20 7b 0a 3c 6c 69 3e 46 69 6e 69 73   31} {.<li>Finis
f080: 68 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76  h the <a href="v
f090: 64 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74  dbe.html">VDBE t
f0a0: 75 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69  utorial</a>.</li
f0b0: 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 64 6f 63 75  >.<li>Added docu
f0c0: 6d 65 6e 74 61 74 69 6f 6e 20 6f 6e 20 63 6f 6d  mentation on com
f0d0: 70 69 6c 69 6e 67 20 74 6f 20 57 69 6e 64 6f 77  piling to Window
f0e0: 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 46 69  sNT.</li>.<li>Fi
f0f0: 78 20 61 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  x a configuratio
f100: 6e 20 70 72 6f 67 72 61 6d 20 66 6f 72 20 57 69  n program for Wi
f110: 6e 64 6f 77 73 4e 54 2e 3c 2f 6c 69 3e 0a 3c 6c  ndowsNT.</li>.<l
f120: 69 3e 46 69 78 20 61 20 63 6f 6e 66 69 67 75 72  i>Fix a configur
f130: 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 20 66 6f  ation problem fo
f140: 72 20 48 50 55 58 2e 3c 2f 6c 69 3e 0a 7d 0a 0a  r HPUX.</li>.}..
f150: 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20  chng {2000 July 
f160: 32 39 7d 20 7b 0a 3c 6c 69 3e 42 65 74 74 65 72  29} {.<li>Better
f170: 20 6c 61 62 65 6c 73 20 6f 6e 20 63 6f 6c 75 6d   labels on colum
f180: 6e 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 72  n names of the r
f190: 65 73 75 6c 74 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63  esult.</li>.}..c
f1a0: 68 6e 67 20 7b 32 30 30 30 20 4a 75 6c 79 20 32  hng {2000 July 2
f1b0: 38 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74  8} {.<li>Added t
f1c0: 68 65 20 3c 62 3e 73 71 6c 69 74 65 5f 62 75 73  he <b>sqlite_bus
f1d0: 79 5f 68 61 6e 64 6c 65 72 28 29 3c 2f 62 3e 20  y_handler()</b> 
f1e0: 0a 20 20 20 20 61 6e 64 20 3c 62 3e 73 71 6c 69  .    and <b>sqli
f1f0: 74 65 5f 62 75 73 79 5f 74 69 6d 65 6f 75 74 28  te_busy_timeout(
f200: 29 3c 2f 62 3e 20 69 6e 74 65 72 66 61 63 65 2e  )</b> interface.
f210: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f220: 30 30 30 20 4a 75 6e 65 20 32 33 7d 20 7b 0a 3c  000 June 23} {.<
f230: 6c 69 3e 42 65 67 69 6e 20 77 72 69 74 69 6e 67  li>Begin writing
f240: 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 76 64   the <a href="vd
f250: 62 65 2e 68 74 6d 6c 22 3e 56 44 42 45 20 74 75  be.html">VDBE tu
f260: 74 6f 72 69 61 6c 3c 2f 61 3e 2e 3c 2f 6c 69 3e  torial</a>.</li>
f270: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a  .}..chng {2000 J
f280: 75 6e 65 20 32 31 7d 20 7b 0a 3c 6c 69 3e 43 6c  une 21} {.<li>Cl
f290: 65 61 6e 20 75 70 20 63 6f 6d 6d 65 6e 74 73 20  ean up comments 
f2a0: 61 6e 64 20 76 61 72 69 61 62 6c 65 20 6e 61 6d  and variable nam
f2b0: 65 73 2e 20 20 43 68 61 6e 67 65 73 20 74 6f 20  es.  Changes to 
f2c0: 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20  documentation.. 
f2d0: 20 20 20 4e 6f 20 66 75 6e 63 74 69 6f 6e 61 6c     No functional
f2e0: 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20   changes to the 
f2f0: 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68  code.</li>.}..ch
f300: 6e 67 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 39  ng {2000 June 19
f310: 7d 20 7b 0a 3c 6c 69 3e 43 6f 6c 75 6d 6e 20 6e  } {.<li>Column n
f320: 61 6d 65 73 20 69 6e 20 55 50 44 41 54 45 20 73  ames in UPDATE s
f330: 74 61 74 65 6d 65 6e 74 73 20 77 65 72 65 20 63  tatements were c
f340: 61 73 65 20 73 65 6e 73 69 74 69 76 65 2e 0a 20  ase sensitive.. 
f350: 20 20 20 54 68 69 73 20 6d 69 73 74 61 6b 65 20     This mistake 
f360: 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 66 69 78  has now been fix
f370: 65 64 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  ed.</li>.}..chng
f380: 20 7b 32 30 30 30 20 4a 75 6e 65 20 31 36 7d 20   {2000 June 16} 
f390: 7b 0a 3c 6c 69 3e 41 64 64 65 64 20 74 68 65 20  {.<li>Added the 
f3a0: 63 6f 6e 63 61 74 65 6e 61 74 65 20 73 74 72 69  concatenate stri
f3b0: 6e 67 20 6f 70 65 72 61 74 6f 72 20 28 7c 7c 29  ng operator (||)
f3c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f3d0: 30 30 30 20 4a 75 6e 65 20 31 32 7d 20 7b 0a 3c  000 June 12} {.<
f3e0: 6c 69 3e 41 64 64 65 64 20 74 68 65 20 66 63 6e  li>Added the fcn
f3f0: 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  t() function to 
f400: 74 68 65 20 53 51 4c 20 69 6e 74 65 72 70 72 65  the SQL interpre
f410: 74 65 72 2e 20 20 54 68 65 20 66 63 6e 74 28 29  ter.  The fcnt()
f420: 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 72 65   function.    re
f430: 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72  turns the number
f440: 20 6f 66 20 64 61 74 61 62 61 73 65 20 22 46 65   of database "Fe
f450: 74 63 68 22 20 6f 70 65 72 61 74 69 6f 6e 73 20  tch" operations 
f460: 74 68 61 74 20 68 61 76 65 20 6f 63 63 75 72 72  that have occurr
f470: 65 64 2e 0a 20 20 20 20 54 68 69 73 20 66 75 6e  ed..    This fun
f480: 63 74 69 6f 6e 20 69 73 20 64 65 73 69 67 6e 65  ction is designe
f490: 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 65 73  d for use in tes
f4a0: 74 20 73 63 72 69 70 74 73 20 74 6f 20 76 65 72  t scripts to ver
f4b0: 69 66 79 20 74 68 61 74 0a 20 20 20 20 71 75 65  ify that.    que
f4c0: 72 69 65 73 20 61 72 65 20 65 66 66 69 63 69 65  ries are efficie
f4d0: 6e 74 20 61 6e 64 20 61 70 70 72 6f 70 72 69 61  nt and appropria
f4e0: 74 65 6c 79 20 6f 70 74 69 6d 69 7a 65 64 2e 20  tely optimized. 
f4f0: 20 46 63 6e 74 28 29 20 68 61 73 20 6e 6f 20 6f   Fcnt() has no o
f500: 74 68 65 72 0a 20 20 20 20 75 73 65 66 75 6c 20  ther.    useful 
f510: 70 75 72 70 6f 73 65 2c 20 61 73 20 66 61 72 20  purpose, as far 
f520: 61 73 20 49 20 6b 6e 6f 77 2e 3c 2f 6c 69 3e 0a  as I know.</li>.
f530: 3c 6c 69 3e 41 64 64 65 64 20 61 20 62 75 6e 63  <li>Added a bunc
f540: 68 20 6d 6f 72 65 20 74 65 73 74 73 20 74 68 61  h more tests tha
f550: 74 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65  t take advantage
f560: 20 6f 66 20 74 68 65 20 6e 65 77 20 66 63 6e 74   of the new fcnt
f570: 28 29 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20  () function..   
f580: 20 54 68 65 20 6e 65 77 20 74 65 73 74 73 20 64   The new tests d
f590: 69 64 20 6e 6f 74 20 75 6e 63 6f 76 65 72 20 61  id not uncover a
f5a0: 6e 79 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 2e  ny new problems.
f5b0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f5c0: 30 30 30 20 4a 75 6e 65 20 38 7d 20 7b 0a 3c 6c  000 June 8} {.<l
f5d0: 69 3e 41 64 64 65 64 20 6c 6f 74 73 20 6f 66 20  i>Added lots of 
f5e0: 6e 65 77 20 74 65 73 74 20 63 61 73 65 73 3c 2f  new test cases</
f5f0: 6c 69 3e 0a 3c 6c 69 3e 46 69 78 20 61 20 66 65  li>.<li>Fix a fe
f600: 77 20 62 75 67 73 20 64 69 73 63 6f 76 65 72 65  w bugs discovere
f610: 64 20 77 68 69 6c 65 20 61 64 64 69 6e 67 20 74  d while adding t
f620: 65 73 74 20 63 61 73 65 73 3c 2f 6c 69 3e 0a 3c  est cases</li>.<
f630: 6c 69 3e 42 65 67 69 6e 20 61 64 64 69 6e 67 20  li>Begin adding 
f640: 6c 6f 74 73 20 6f 66 20 6e 65 77 20 64 6f 63 75  lots of new docu
f650: 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6c 69 3e 0a 7d  mentation</li>.}
f660: 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4a 75 6e  ..chng {2000 Jun
f670: 65 20 36 7d 20 7b 0a 3c 6c 69 3e 41 64 64 65 64  e 6} {.<li>Added
f680: 20 63 6f 6d 70 6f 75 6e 64 20 73 65 6c 65 63 74   compound select
f690: 20 6f 70 65 72 61 74 6f 72 73 3a 20 3c 42 3e 55   operators: <B>U
f6a0: 4e 49 4f 4e 3c 2f 62 3e 2c 20 3c 62 3e 55 4e 49  NION</b>, <b>UNI
f6b0: 4f 4e 20 41 4c 4c 3c 2f 42 3e 2c 0a 3c 62 3e 49  ON ALL</B>,.<b>I
f6c0: 4e 54 45 52 53 45 43 54 3c 2f 62 3e 2c 20 61 6e  NTERSECT</b>, an
f6d0: 64 20 3c 62 3e 45 58 43 45 50 54 3c 2f 62 3e 3c  d <b>EXCEPT</b><
f6e0: 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64 20 73  /li>.<li>Added s
f6f0: 75 70 70 6f 72 74 20 66 6f 72 20 75 73 69 6e 67  upport for using
f700: 20 3c 62 3e 28 53 45 4c 45 43 54 20 2e 2e 2e 29   <b>(SELECT ...)
f710: 3c 2f 62 3e 20 77 69 74 68 69 6e 20 65 78 70 72  </b> within expr
f720: 65 73 73 69 6f 6e 73 3c 2f 6c 69 3e 0a 3c 6c 69  essions</li>.<li
f730: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
f740: 6f 72 20 3c 62 3e 49 4e 3c 2f 62 3e 20 61 6e 64  or <b>IN</b> and
f750: 20 3c 62 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20   <b>BETWEEN</b> 
f760: 6f 70 65 72 61 74 6f 72 73 3c 2f 6c 69 3e 0a 3c  operators</li>.<
f770: 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74  li>Added support
f780: 20 66 6f 72 20 3c 62 3e 47 52 4f 55 50 20 42 59   for <b>GROUP BY
f790: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 48 41 56 49  </b> and <b>HAVI
f7a0: 4e 47 3c 2f 62 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  NG</b></li>.<li>
f7b0: 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72 65 20  NULL values are 
f7c0: 6e 6f 77 20 72 65 70 6f 72 74 65 64 20 74 6f 20  now reported to 
f7d0: 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 73 20  the callback as 
f7e0: 61 20 4e 55 4c 4c 20 70 6f 69 6e 74 65 72 0a 20  a NULL pointer. 
f7f0: 20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20 61     rather than a
f800: 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 3c  n empty string.<
f810: 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30  /li>.}..chng {20
f820: 30 30 20 4a 75 6e 65 20 33 7d 20 7b 0a 3c 6c 69  00 June 3} {.<li
f830: 3e 41 64 64 65 64 20 73 75 70 70 6f 72 74 20 66  >Added support f
f840: 6f 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65  or default value
f850: 73 20 6f 6e 20 63 6f 6c 75 6d 6e 73 20 6f 66 20  s on columns of 
f860: 61 20 74 61 62 6c 65 2e 3c 2f 6c 69 3e 0a 3c 6c  a table.</li>.<l
f870: 69 3e 49 6d 70 72 6f 76 65 64 20 74 65 73 74 20  i>Improved test 
f880: 63 6f 76 65 72 61 67 65 2e 20 20 46 69 78 65 64  coverage.  Fixed
f890: 20 61 20 66 65 77 20 6f 62 73 63 75 72 65 20 62   a few obscure b
f8a0: 75 67 73 20 66 6f 75 6e 64 20 62 79 20 74 68 65  ugs found by the
f8b0: 0a 69 6d 70 72 6f 76 65 64 20 74 65 73 74 73 2e  .improved tests.
f8c0: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
f8d0: 30 30 30 20 4a 75 6e 65 20 32 7d 20 7b 0a 3c 6c  000 June 2} {.<l
f8e0: 69 3e 41 6c 6c 20 64 61 74 61 62 61 73 65 20 66  i>All database f
f8f0: 69 6c 65 73 20 74 6f 20 62 65 20 6d 6f 64 69 66  iles to be modif
f900: 69 65 64 20 62 79 20 61 6e 20 55 50 44 41 54 45  ied by an UPDATE
f910: 2c 20 49 4e 53 45 52 54 20 6f 72 20 44 45 4c 45  , INSERT or DELE
f920: 54 45 20 61 72 65 20 0a 6e 6f 77 20 6c 6f 63 6b  TE are .now lock
f930: 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 63 68  ed before any ch
f940: 61 6e 67 65 73 20 61 72 65 20 6d 61 64 65 20 74  anges are made t
f950: 6f 20 61 6e 79 20 66 69 6c 65 73 2e 20 20 0a 54  o any files.  .T
f960: 68 69 73 20 6d 61 6b 65 73 20 69 74 20 73 61 66  his makes it saf
f970: 65 20 28 49 20 74 68 69 6e 6b 29 20 74 6f 20 61  e (I think) to a
f980: 63 63 65 73 73 0a 74 68 65 20 73 61 6d 65 20 64  ccess.the same d
f990: 61 74 61 62 61 73 65 20 73 69 6d 75 6c 74 61 6e  atabase simultan
f9a0: 65 6f 75 73 6c 79 20 66 72 6f 6d 20 6d 75 6c 74  eously from mult
f9b0: 69 70 6c 65 20 70 72 6f 63 65 73 73 65 73 2e 3c  iple processes.<
f9c0: 2f 6c 69 3e 0a 3c 6c 69 3e 54 68 65 20 63 6f 64  /li>.<li>The cod
f9d0: 65 20 61 70 70 65 61 72 73 20 73 74 61 62 6c 65  e appears stable
f9e0: 20 73 6f 20 77 65 20 61 72 65 20 6e 6f 77 20 63   so we are now c
f9f0: 61 6c 6c 69 6e 67 20 69 74 20 22 62 65 74 61 22  alling it "beta"
fa00: 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b  .</li>.}..chng {
fa10: 32 30 30 30 20 4a 75 6e 65 20 31 7d 20 7b 0a 3c  2000 June 1} {.<
fa20: 6c 69 3e 42 65 74 74 65 72 20 73 75 70 70 6f 72  li>Better suppor
fa30: 74 20 66 6f 72 20 66 69 6c 65 20 6c 6f 63 6b 69  t for file locki
fa40: 6e 67 20 73 6f 20 74 68 61 74 20 74 77 6f 20 6f  ng so that two o
fa50: 72 20 6d 6f 72 65 20 70 72 6f 63 65 73 73 65 73  r more processes
fa60: 20 0a 28 6f 72 20 74 68 72 65 61 64 73 29 0a 63   .(or threads).c
fa70: 61 6e 20 61 63 63 65 73 73 20 74 68 65 20 73 61  an access the sa
fa80: 6d 65 20 64 61 74 61 62 61 73 65 20 73 69 6d 75  me database simu
fa90: 6c 74 61 6e 65 6f 75 73 6c 79 2e 20 20 4d 6f 72  ltaneously.  Mor
faa0: 65 20 77 6f 72 6b 20 6e 65 65 64 65 64 20 69 6e  e work needed in
fab0: 0a 74 68 69 73 20 61 72 65 61 2c 20 74 68 6f 75  .this area, thou
fac0: 67 68 2e 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67  gh.</li>.}..chng
fad0: 20 7b 32 30 30 30 20 4d 61 79 20 33 31 7d 20 7b   {2000 May 31} {
fae0: 0a 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f  .<li>Added suppo
faf0: 72 74 20 66 6f 72 20 61 67 67 72 65 67 61 74 65  rt for aggregate
fb00: 20 66 75 6e 63 74 69 6f 6e 73 20 28 45 78 3a 20   functions (Ex: 
fb10: 3c 62 3e 43 4f 55 4e 54 28 2a 29 3c 2f 62 3e 2c  <b>COUNT(*)</b>,
fb20: 20 3c 62 3e 4d 49 4e 28 2e 2e 2e 29 3c 2f 62 3e   <b>MIN(...)</b>
fb30: 29 0a 74 6f 20 74 68 65 20 53 45 4c 45 43 54 20  ).to the SELECT 
fb40: 73 74 61 74 65 6d 65 6e 74 2e 3c 2f 6c 69 3e 0a  statement.</li>.
fb50: 3c 6c 69 3e 41 64 64 65 64 20 73 75 70 70 6f 72  <li>Added suppor
fb60: 74 20 66 6f 72 20 3c 42 3e 53 45 4c 45 43 54 20  t for <B>SELECT 
fb70: 44 49 53 54 49 4e 43 54 20 2e 2e 2e 3c 2f 42 3e  DISTINCT ...</B>
fb80: 3c 2f 6c 69 3e 0a 7d 0a 0a 63 68 6e 67 20 7b 32  </li>.}..chng {2
fb90: 30 30 30 20 4d 61 79 20 33 30 7d 20 7b 0a 3c 6c  000 May 30} {.<l
fba0: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 62 3e 4c  i>Added the <b>L
fbb0: 49 4b 45 3c 2f 62 3e 20 6f 70 65 72 61 74 6f 72  IKE</b> operator
fbc0: 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 41 64 64 65 64  .</li>.<li>Added
fbd0: 20 61 20 3c 62 3e 47 4c 4f 42 3c 2f 62 3e 20 6f   a <b>GLOB</b> o
fbe0: 70 65 72 61 74 6f 72 3a 20 73 69 6d 69 6c 61 72  perator: similar
fbf0: 20 74 6f 20 3c 42 3e 4c 49 4b 45 3c 2f 42 3e 20   to <B>LIKE</B> 
fc00: 0a 62 75 74 20 69 74 20 75 73 65 73 20 55 6e 69  .but it uses Uni
fc10: 78 20 73 68 65 6c 6c 20 67 6c 6f 62 62 69 6e 67  x shell globbing
fc20: 20 77 69 6c 64 63 61 72 64 73 20 69 6e 73 74 65   wildcards inste
fc30: 61 64 20 6f 66 20 74 68 65 20 27 25 27 20 0a 61  ad of the '%' .a
fc40: 6e 64 20 27 5f 27 20 77 69 6c 64 63 61 72 64 73  nd '_' wildcards
fc50: 20 6f 66 20 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c   of SQL.</li>.<l
fc60: 69 3e 41 64 64 65 64 20 74 68 65 20 3c 42 3e 43  i>Added the <B>C
fc70: 4f 50 59 3c 2f 62 3e 20 63 6f 6d 6d 61 6e 64 20  OPY</b> command 
fc80: 70 61 74 74 65 72 6e 65 64 20 61 66 74 65 72 20  patterned after 
fc90: 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 3a 2f  .<a href="http:/
fca0: 2f 77 77 77 2e 70 6f 73 74 67 72 65 73 71 6c 2e  /www.postgresql.
fcb0: 6f 72 67 2f 22 3e 50 6f 73 74 67 72 65 53 51 4c  org/">PostgreSQL
fcc0: 3c 2f 61 3e 20 73 6f 20 74 68 61 74 20 53 51 4c  </a> so that SQL
fcd0: 69 74 65 0a 63 61 6e 20 6e 6f 77 20 72 65 61 64  ite.can now read
fce0: 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74   the output of t
fcf0: 68 65 20 3c 62 3e 70 67 5f 64 75 6d 70 3c 2f 62  he <b>pg_dump</b
fd00: 3e 20 64 61 74 61 62 61 73 65 20 64 75 6d 70 20  > database dump 
fd10: 75 74 69 6c 69 74 79 0a 6f 66 20 50 6f 73 74 67  utility.of Postg
fd20: 72 65 53 51 4c 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  reSQL.</li>.<li>
fd30: 41 64 64 65 64 20 61 20 3c 42 3e 56 41 43 55 55  Added a <B>VACUU
fd40: 4d 3c 2f 42 3e 20 63 6f 6d 6d 61 6e 64 20 74 68  M</B> command th
fd50: 61 74 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68  at that calls th
fd60: 65 20 0a 3c 62 3e 67 64 62 6d 5f 72 65 6f 72 67  e .<b>gdbm_reorg
fd70: 61 6e 69 7a 65 28 29 3c 2f 62 3e 20 66 75 6e 63  anize()</b> func
fd80: 74 69 6f 6e 20 6f 6e 20 74 68 65 20 75 6e 64 65  tion on the unde
fd90: 72 6c 79 69 6e 67 20 64 61 74 61 62 61 73 65 0a  rlying database.
fda0: 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a 3c 6c 69 3e  files.</li>.<li>
fdb0: 41 6e 64 20 6d 61 6e 79 2c 20 6d 61 6e 79 20 62  And many, many b
fdc0: 75 67 20 66 69 78 65 73 2e 2e 2e 3c 2f 6c 69 3e  ug fixes...</li>
fdd0: 0a 7d 0a 0a 63 68 6e 67 20 7b 32 30 30 30 20 4d  .}..chng {2000 M
fde0: 61 79 20 32 39 7d 20 7b 0a 3c 6c 69 3e 49 6e 69  ay 29} {.<li>Ini
fdf0: 74 69 61 6c 20 50 75 62 6c 69 63 20 52 65 6c 65  tial Public Rele
fe00: 61 73 65 20 6f 66 20 41 6c 70 68 61 20 63 6f 64  ase of Alpha cod
fe10: 65 3c 2f 6c 69 3e 0a 7d 0a 0a 70 75 74 73 20 7b  e</li>.}..puts {
fe20: 0a 3c 2f 44 4c 3e 0a 7d 0a 66 6f 6f 74 65 72 20  .</DL>.}.footer 
fe30: 7b 24 49 64 3a 7d 0a                             {$Id:}.